}
ui->addButton->setEnabled(false);
ui->addButton->setIcon(QIcon());
+ ui->useButton->setEnabled(false);
+ ui->useButton->setIcon(QIcon());
ui->deleteButton->setEnabled(false);
ui->deleteButton->setIcon(QIcon());
QTimer::singleShot(100, ui->listView, SLOT(clearSelection())); // workaround
}
void LibraryForm::_use_button() {
- _lib->saveCurrentPlaylist(_current_playlist);
- emit refreshPlayer();
- _current_playlist = _lib->getCurrentPlaylist();
+ if (_state == STATE_PLAYLIST_TRACK) {
+ _lib->saveCurrentPlaylist(_current_playlist);
+ emit refreshPlayer();
+ _current_playlist = _lib->getCurrentPlaylist();
+ return;
+ }
+
+ if (_state == STATE_NONE) return;
+ QModelIndexList selected = ui->listView->selectionModel()->selectedIndexes();
+ ui->listView->selectionModel()->clearSelection();
+ Playlist cur;
+ QRegExp regexp("\\[\\d+\\]\\ (.*)");
+ switch (_state) {
+ case STATE_ARTIST:
+ foreach (QModelIndex id, selected) {
+ _add_artist(&cur, id.data().toString());
+ }
+ _lib->saveCurrentPlaylist(cur);
+ emit refreshPlayer();
+ break;
+ case STATE_ALBUM:
+ foreach (QModelIndex id, selected) {
+ if (regexp.indexIn(id.data().toString()) != -1) {
+ _add_album(&cur, _current_artist, regexp.cap(1).trimmed());
+ }
+ }
+ _lib->saveCurrentPlaylist(cur);
+ emit refreshPlayer();
+ break;
+ case STATE_TRACK:
+ foreach (QModelIndex id, selected) {
+ _add_track(&cur, _current_tracks.at(id.row()));
+ }
+ _lib->saveCurrentPlaylist(cur);
+ emit refreshPlayer();
+ break;
+ case STATE_PLAYLIST:
+ foreach (QModelIndex id, selected) {
+ _add_playlist(&cur, id.data().toString());
+ }
+ _lib->saveCurrentPlaylist(cur);
+ emit refreshPlayer();
+ break;
+ case STATE_DYNAMIC:
+
+ break;
+ case STATE_SEARCH:
+ foreach (QModelIndex id, selected) {
+ _add_track(&cur, _current_tracks.at(id.row()));
+ }
+ _lib->saveCurrentPlaylist(cur);
+ emit refreshPlayer();
+ break;
+ default:
+ return;
+ }
}
void LibraryForm::search(QString pattern) {
connect(ui->listView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
this, SLOT(_process_selection(QItemSelection,QItemSelection)));
ui->selectAllButton->setIcon(QIcon(":/icons/"+_icons_theme+"/deselect_all.png"));
- ui->addButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png"));
- ui->addButton->setEnabled(true);
+ if (_state != STATE_DYNAMIC) {
+ ui->addButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png"));
+ ui->addButton->setEnabled(true);
+ ui->useButton->setEnabled(true);
+ ui->useButton->setIcon(QIcon(":/icons/"+_icons_theme+"/use.png"));
+ }
+
if (_state == STATE_PLAYLIST || (_state == STATE_PLAYLIST_TRACK && !_is_dynamic)
|| (_state == STATE_PLAYLIST_TRACK && _is_favorites)) {
ui->deleteButton->setEnabled(true);
}
ui->listView->selectionModel()->select(id, QItemSelectionModel::Deselect);
}
- if (ui->listView->selectionModel()->selectedRows().count() > 0) {
+ if (ui->listView->selectionModel()->selectedRows().count() > 0 ) {
+ if (_state == STATE_DYNAMIC) {
+ return;
+ }
ui->addButton->setEnabled(true);
ui->addButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png"));
+ ui->useButton->setEnabled(true);
+ ui->useButton->setIcon(QIcon(":/icons/"+_icons_theme+"/use.png"));
if (_state == STATE_PLAYLIST || (_state == STATE_PLAYLIST_TRACK && !_is_dynamic)
|| (_state == STATE_PLAYLIST_TRACK && _is_favorites)) {
ui->deleteButton->setEnabled(true);
} else {
ui->addButton->setEnabled(false);
ui->addButton->setIcon(QIcon());
+ if (_state != STATE_PLAYLIST_TRACK) {
+ ui->useButton->setEnabled(false);
+ ui->useButton->setIcon(QIcon());
+ }
ui->deleteButton->setEnabled(false);
ui->deleteButton->setIcon(QIcon());
}