connect(ui->playerButton, SIGNAL(clicked()), this, SLOT(_player()));
connect(ui->viewButton, SIGNAL(clicked()), this, SLOT(_view_button()));
connect(ui->playlistsButton, SIGNAL(clicked()), this, SLOT(_playlists_button()));
+ connect(ui->dynamicButton, SIGNAL(clicked()), this, SLOT(_dynamic_button()));
connect(ui->listView, SIGNAL(clicked(QModelIndex)), this, SLOT(_process_list_click(QModelIndex)));
connect(ui->addButton, SIGNAL(clicked()), this, SLOT(_add_button()));
connect(ui->backButton, SIGNAL(clicked()), this, SLOT(_back_button()));
connect(ui->deleteButton, SIGNAL(clicked()), this, SLOT(_delete_button()));
+ connect(ui->useButton, SIGNAL(clicked()), this, SLOT(_use_button()));
_view_button();
}
ui->backButton->setEnabled(false);
ui->listLabel->setText("Artists");
ui->addButton->setEnabled(true);
- ui->deleteButton->setEnabled(false);
+ ui->deleteButton->hide();
+ ui->useButton->hide();
}
void LibraryForm::_dynamic_button() {
+ ui->useButton->hide();
+ ui->backButton->setEnabled(false);
+ ui->addButton->setEnabled(true);
+ _model->clear();
+ _model->setRowCount(4);
+ _model->setItem(0, new QStandardItem("Favorites"));
+ _model->setItem(1, new QStandardItem("Most played"));
+ _model->setItem(2, new QStandardItem("Never played"));
+ _model->setItem(3, new QStandardItem("Recently added"));
+ _state = STATE_DYNAMIC;
}
void LibraryForm::_process_list_click(QModelIndex index) {
break;
case STATE_PLAYLIST:
{
- Playlist playlist = _lib->getPlaylist(data);
- _current_tracks = playlist.tracks();
+ _current_playlist = _lib->getPlaylist(data);
+ _current_tracks = _current_playlist.tracks();
__fill_model_tracks(_model, _current_tracks);
_state = STATE_PLAYLIST_TRACK;
ui->backButton->setEnabled(true);
- ui->deleteButton->setEnabled(true);
+ ui->deleteButton->show();
+ ui->useButton->show();
ui->listLabel->setText(QString("Tracks in playlist \"%1\"").arg(data));
}
break;
+ case STATE_DYNAMIC:
+ {
+ switch(index.row()) {
+ case 0: //favorites
+ _current_playlist = _lib->getFavorites();
+ break;
+ case 1: //most played
+ _current_playlist = _lib->getMostPlayed();
+ break;
+ case 2: //never played
+ _current_playlist = _lib->getNeverPlayed();
+ case 3: //recently added
+ _current_playlist = _lib->getRecentlyAdded();
+ break;
+ default:
+ return;
+ }
+ _current_tracks = _current_playlist.tracks();
+ __fill_model_tracks(_model, _current_tracks);
+ _state = STATE_PLAYLIST_TRACK;
+ ui->backButton->setEnabled(true);
+ ui->useButton->show();
+ ui->listLabel->setText(_current_playlist.name());
+ }
default:
return;
}
if (_state == STATE_NONE) return;
QModelIndexList selected = ui->listView->selectionModel()->selectedIndexes();
ui->listView->selectionModel()->clearSelection();
+ emit busy(QString("<H1>Adding... Please wait</H1>"));
switch (_state) {
case STATE_ARTIST:
foreach (QModelIndex id, selected) {
}
break;
default:
+ emit done();
return;
}
+ emit done();
}
ui->backButton->setEnabled(false);
ui->listLabel->setText("Playlists");
ui->addButton->setEnabled(false);
+ ui->deleteButton->hide();
+ ui->useButton->hide();
}
void LibraryForm::_delete_button() {
current.removeTrack(track);
_lib->saveCurrentPlaylist(current);
}
+
+void LibraryForm::_use_button() {
+ _lib->saveCurrentPlaylist(_current_playlist);
+}