X-Git-Url: http://git.maemo.org/git/?p=someplayer;a=blobdiff_plain;f=src%2Flibraryform.cpp;h=96afd2bcb0292497365ef205bfc21bc7e20db89f;hp=2406b4c666330f9403965596bc1b9467d4eda92f;hb=HEAD;hpb=b5a3d3da30e21951de62bea941882ea27f041c8a diff --git a/src/libraryform.cpp b/src/libraryform.cpp index 2406b4c..96afd2b 100644 --- a/src/libraryform.cpp +++ b/src/libraryform.cpp @@ -281,6 +281,7 @@ void LibraryForm::_process_list_click(QModelIndex index) { case 2: //never played _current_playlist = _lib->getNeverPlayed(); _is_favorites = false; + break; case 3: //recently added _current_playlist = _lib->getRecentlyAdded(); _is_favorites = false; @@ -305,6 +306,8 @@ void LibraryForm::_process_list_click(QModelIndex index) { } 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 @@ -347,6 +350,9 @@ void LibraryForm::_add_button() { _lib->saveCurrentPlaylist(cur); emit refreshPlayer(); break; + case STATE_DYNAMIC: + + break; case STATE_PLAYLIST_TRACK: foreach (QModelIndex id, selected) { _add_track(&cur, _current_tracks.at(id.row())); @@ -496,9 +502,62 @@ void LibraryForm::_delete_track(Track track) { } 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) { @@ -587,8 +646,13 @@ void LibraryForm::_toggle_select_all_button() { 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); @@ -630,6 +694,9 @@ void LibraryForm::landscapeMode() { ui->rverticalLayout->addItem(ui->rverticalSpacer_3); ui->rverticalLayout->addWidget(ui->playlistsButton); + ui->lverticalWidget->show(); + ui->rverticalWidget->show(); + if (_tools_widget->isVisible()) { ui->moreButton->setIcon(QIcon(":/icons/"+_icons_theme+"/more_l.png")); } else { @@ -640,8 +707,8 @@ void LibraryForm::landscapeMode() { void LibraryForm::portraitMode() { landscape = false; - ui->topWidget->show(); - ui->bottomWidget->show(); + ui->lverticalWidget->hide(); + ui->rverticalWidget->hide(); ui->lverticalLayout->removeItem(ui->lverticalSpacer_0); ui->lverticalLayout->removeItem(ui->lverticalSpacer_1); @@ -681,6 +748,9 @@ void LibraryForm::portraitMode() { ui->bottomWidget->layout()->addItem(ui->bhorizontalSpacer_2); ui->bottomWidget->layout()->addWidget(ui->playlistsButton); + ui->topWidget->show(); + ui->bottomWidget->show(); + if (_tools_widget->isVisible()) { ui->moreButton->setIcon(QIcon(":/icons/"+_icons_theme+"/unmore.png")); } else { @@ -766,9 +836,14 @@ void LibraryForm::_process_selection(QItemSelection selected, QItemSelection des } 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); @@ -777,6 +852,10 @@ void LibraryForm::_process_selection(QItemSelection selected, QItemSelection des } 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()); }