X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Flibraryform.cpp;h=178f7df563f21db832a030c18801bf98dafb1cca;hb=66740aa10a20d9b17651910e3c2feca0dab0862e;hp=2b8c0925bdea3a21e16bc1c40bc07fb2faddd51c;hpb=684f9a2e23a11cbe3c5284c55fd45eb5d51a31fc;p=someplayer diff --git a/src/libraryform.cpp b/src/libraryform.cpp index 2b8c092..178f7df 100644 --- a/src/libraryform.cpp +++ b/src/libraryform.cpp @@ -58,9 +58,12 @@ inline void __fill_model(QStandardItemModel *model, QList data, QString inline void __fill_model_album(QStandardItemModel *model, QMap data, QString icons_theme) { model->clear(); int count = data.count(); - model->setRowCount(count); + model->setRowCount(count+1); int i = 0; Config config; + model->setItem(i, 0, new QStandardItem(QIcon(":/icons/"+icons_theme+"/deselect_all.png"), "")); + model->setItem(i, 1, new QStandardItem(QObject::tr("All tracks"))); + i++; if (config.getValue("ui/albumsorting").toString() == "date") { QMap > years; foreach (QString name, data.keys()) { @@ -114,17 +117,17 @@ LibraryForm::LibraryForm(Library *lib, QWidget *parent) : _model->setColumnCount(2); _state = STATE_NONE; _tools_widget = new ToolsWidget(this); - QPushButton *search_in_library = new QPushButton(QIcon(":/icons/"+_icons_theme+"/search.png"), "", _tools_widget); - search_in_library->setFlat(true); - search_in_library->setCheckable(true); + _search_in_library_button = new QPushButton(QIcon(":/icons/"+_icons_theme+"/search.png"), "", _tools_widget); + _search_in_library_button->setFlat(true); + _search_in_library_button->setCheckable(true); _tools_widget->layout()->addItem(new QSpacerItem(20, 20)); - _tools_widget->layout()->addWidget(search_in_library); + _tools_widget->layout()->addWidget(_search_in_library_button); ui->setupUi(this); ui->listView->setModel(_model); ui->listView->setColumnWidth(0, 70); ui->toolsLayout->addWidget(_tools_widget); + _tools_widget->hideFSButton(); _tools_widget->hide(); - 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())); @@ -140,49 +143,48 @@ LibraryForm::LibraryForm(Library *lib, QWidget *parent) : connect(_tools_widget, SIGNAL(search(QString)), this, SLOT(search(QString))); connect(_tools_widget, SIGNAL(nextSearch()), this, SLOT(nextItem())); connect(_tools_widget, SIGNAL(prevSearch()), this, SLOT(prevItem())); - connect(_tools_widget, SIGNAL(toggleFullscreen(bool)), this, SIGNAL(fullscreen(bool))); connect(ui->moreButton, SIGNAL(clicked()), this, SLOT(_more_button())); - connect(search_in_library, SIGNAL(toggled(bool)), this, SLOT(_search_button(bool))); + connect(_search_in_library_button, SIGNAL(toggled(bool)), this, SLOT(_search_button(bool))); + connect(ui->playerButton, SIGNAL(clicked()), this, SLOT(hide())); _view_button(); - _current_playlist_changed = true; _top_gradient = ui->topWidget->styleSheet(); _bottom_gradient = ui->bottomWidget->styleSheet(); _is_dynamic = false; + _is_favorites = false; + setAttribute(Qt::WA_Maemo5StackedWindow); + setWindowFlags(Qt::Window | windowFlags()); + ui->addButton->setEnabled(false); + ui->addButton->setIcon(QIcon()); + ui->deleteButton->setEnabled(false); + ui->deleteButton->setIcon(QIcon()); } LibraryForm::~LibraryForm() { - _lib->saveCurrentPlaylist(_lib->getCurrentPlaylist()); // wtf? - _current_playlist_changed = true; delete ui; } -void LibraryForm::_player() { - emit player(_current_playlist_changed); - _current_playlist_changed = false; -} - void LibraryForm::_view_button() { QList artitst = _lib->getArtists(); __fill_model(_model, artitst, _icons_theme); ui->listView->setColumnWidth(0, 70); _state = STATE_ARTIST; ui->backButton->setEnabled(false); - ui->listLabel->setText("Artists"); - ui->addButton->setEnabled(true); - ui->addButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png")); - ui->deleteButton->setEnabled(false); - ui->deleteButton->setIcon(QIcon()); + ui->backButton->setIcon(QIcon()); + ui->listLabel->setText(tr("Artists")); ui->useButton->setEnabled(false); ui->useButton->setIcon(QIcon()); + ui->addButton->setEnabled(false); + ui->addButton->setIcon(QIcon()); + ui->deleteButton->setEnabled(false); + ui->deleteButton->setIcon(QIcon()); } void LibraryForm::_dynamic_button() { ui->useButton->setEnabled(false); ui->useButton->setIcon(QIcon()); ui->backButton->setEnabled(false); - ui->addButton->setEnabled(true); - ui->addButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png")); + ui->backButton->setIcon(QIcon()); ui->deleteButton->setEnabled(false); ui->deleteButton->setIcon(QIcon()); _model->clear(); @@ -196,8 +198,12 @@ void LibraryForm::_dynamic_button() { _model->setItem(3, 0, new QStandardItem(QIcon(":/icons/"+_icons_theme+"/deselect_all.png"), "")); _model->setItem(3, 1, new QStandardItem("Recently added")); ui->listView->setColumnWidth(0, 70); - ui->listLabel->setText("Dynamic playlists"); + ui->listLabel->setText(tr("Dynamic playlists")); _state = STATE_DYNAMIC; + ui->addButton->setEnabled(false); + ui->addButton->setIcon(QIcon()); + ui->deleteButton->setEnabled(false); + ui->deleteButton->setIcon(QIcon()); } void LibraryForm::_process_list_click(QModelIndex index) { @@ -209,15 +215,18 @@ void LibraryForm::_process_list_click(QModelIndex index) { QRegExp regexp("\\[\\d+\\]\\ (.*)"); switch (_state) { case STATE_ARTIST: + _artist_row_for_scroll_to = index.row(); __fill_model_album(_model, _lib->getAlbumsForArtist(data), _icons_theme); ui->listView->setColumnWidth(0, 70); ui->listView->scrollToTop(); _current_artist = data; _state = STATE_ALBUM; ui->backButton->setEnabled(true); - ui->listLabel->setText(QString("Albums by \"%1\"").arg(_current_artist)); + ui->backButton->setIcon(QIcon(":/icons/"+_icons_theme+"/back.png")); + ui->listLabel->setText(QString(tr("Albums by \"%1\"")).arg(_current_artist)); break; case STATE_ALBUM: + _album_row_for_scroll_to = index.row(); if (regexp.indexIn(data) != -1) { _current_album = regexp.cap(1).trimmed(); _current_tracks = _lib->getTracksForAlbum(_current_album, _current_artist); @@ -226,23 +235,36 @@ void LibraryForm::_process_list_click(QModelIndex index) { ui->listView->scrollToTop(); _state = STATE_TRACK; ui->backButton->setEnabled(true); - ui->listLabel->setText(QString("Tracks from \"%1\" by \"%2\"").arg(_current_album).arg(_current_artist)); + ui->backButton->setIcon(QIcon(":/icons/"+_icons_theme+"/back.png")); + ui->listLabel->setText(QString(tr("Tracks from \"%1\" by \"%2\"")).arg(_current_album).arg(_current_artist)); + } else { + if (index.row() == 0) { // all tracks + _current_tracks = _lib->getAllTracksForArtist(_current_artist); + __fill_model_tracks(_model, _current_tracks, _icons_theme); + ui->listView->setColumnWidth(0, 70); + ui->listView->scrollToTop(); + _state = STATE_TRACK; + ui->backButton->setEnabled(true); + ui->backButton->setIcon(QIcon(":/icons/"+_icons_theme+"/back.png")); + ui->listLabel->setText(QString(tr("All tracks by \"%1\"")).arg(_current_artist)); + } } break; case STATE_PLAYLIST: { + _playlist_row_for_scroll_to = index.row(); _current_playlist = _lib->getPlaylist(data); _current_tracks = _current_playlist.tracks(); __fill_model_tracks(_model, _current_tracks, _icons_theme); ui->listView->setColumnWidth(0, 70); ui->listView->scrollToTop(); _state = STATE_PLAYLIST_TRACK; + _is_dynamic = false; ui->backButton->setEnabled(true); - ui->deleteButton->setEnabled(true); - ui->deleteButton->setIcon(QIcon(":/icons/"+_icons_theme+"/delete.png")); + ui->backButton->setIcon(QIcon(":/icons/"+_icons_theme+"/back.png")); ui->useButton->setEnabled(true); ui->useButton->setIcon(QIcon(":/icons/"+_icons_theme+"/use.png")); - ui->listLabel->setText(QString("Tracks in playlist \"%1\"").arg(data)); + ui->listLabel->setText(QString(tr("Tracks in playlist \"%1\"")).arg(data)); } break; case STATE_DYNAMIC: @@ -250,14 +272,19 @@ void LibraryForm::_process_list_click(QModelIndex index) { switch(index.row()) { case 0: //favorites _current_playlist = _lib->getFavorites(); + _is_favorites = true; break; case 1: //most played _current_playlist = _lib->getMostPlayed(); + _is_favorites = false; break; case 2: //never played _current_playlist = _lib->getNeverPlayed(); + _is_favorites = false; + break; case 3: //recently added _current_playlist = _lib->getRecentlyAdded(); + _is_favorites = false; break; default: return; @@ -269,15 +296,18 @@ void LibraryForm::_process_list_click(QModelIndex index) { _state = STATE_PLAYLIST_TRACK; _is_dynamic = true; ui->backButton->setEnabled(true); + ui->backButton->setIcon(QIcon(":/icons/"+_icons_theme+"/back.png")); ui->useButton->setEnabled(true); ui->useButton->setIcon(QIcon(":/icons/"+_icons_theme+"/use.png")); - ui->addButton->setEnabled(true); - ui->addButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png")); ui->listLabel->setText(_current_playlist.name()); } default: return; } + ui->addButton->setEnabled(false); + ui->addButton->setIcon(QIcon()); + ui->deleteButton->setEnabled(false); + ui->deleteButton->setIcon(QIcon()); QTimer::singleShot(100, ui->listView, SLOT(clearSelection())); // workaround } @@ -285,7 +315,6 @@ void LibraryForm::_add_button() { if (_state == STATE_NONE) return; QModelIndexList selected = ui->listView->selectionModel()->selectedIndexes(); ui->listView->selectionModel()->clearSelection(); - emit busy(QString("

Adding... Please wait

")); Playlist cur = _lib->getCurrentPlaylist(); QRegExp regexp("\\[\\d+\\]\\ (.*)"); switch (_state) { @@ -294,7 +323,7 @@ void LibraryForm::_add_button() { _add_artist(&cur, id.data().toString()); } _lib->saveCurrentPlaylist(cur); - _current_playlist_changed = true; + emit refreshPlayer(); break; case STATE_ALBUM: foreach (QModelIndex id, selected) { @@ -303,41 +332,42 @@ void LibraryForm::_add_button() { } } _lib->saveCurrentPlaylist(cur); - _current_playlist_changed = true; + emit refreshPlayer(); break; case STATE_TRACK: foreach (QModelIndex id, selected) { _add_track(&cur, _current_tracks.at(id.row())); } _lib->saveCurrentPlaylist(cur); - _current_playlist_changed = true; + emit refreshPlayer(); break; case STATE_PLAYLIST: foreach (QModelIndex id, selected) { _add_playlist(&cur, id.data().toString()); } _lib->saveCurrentPlaylist(cur); - _current_playlist_changed = true; + emit refreshPlayer(); + break; + case STATE_DYNAMIC: + break; case STATE_PLAYLIST_TRACK: foreach (QModelIndex id, selected) { _add_track(&cur, _current_tracks.at(id.row())); } _lib->saveCurrentPlaylist(cur); - _current_playlist_changed = true; + emit refreshPlayer(); break; case STATE_SEARCH: foreach (QModelIndex id, selected) { _add_track(&cur, _current_tracks.at(id.row())); } _lib->saveCurrentPlaylist(cur); - _current_playlist_changed = true; + emit refreshPlayer(); break; default: - emit done(); return; } - emit done(); } @@ -371,14 +401,18 @@ void LibraryForm::_back_button() { switch (_state) { case STATE_ALBUM: _view_button(); - ui->listView->scrollToTop(); + if (_model->rowCount() != 0) { + ui->listView->scrollTo(_model->index(_artist_row_for_scroll_to, 1), QAbstractItemView::PositionAtCenter); + } break; case STATE_TRACK: __fill_model_album(_model, _lib->getAlbumsForArtist(_current_artist), _icons_theme); ui->listView->setColumnWidth(0, 70); - ui->listView->scrollToTop(); + if (_model->rowCount() != 0) { + ui->listView->scrollTo(_model->index(_album_row_for_scroll_to, 1), QAbstractItemView::PositionAtCenter); + } _state = STATE_ALBUM; - ui->listLabel->setText(QString("Albums by \"%1\"").arg(_current_artist)); + ui->listLabel->setText(QString(tr("Albums by \"%1\"")).arg(_current_artist)); break; case STATE_PLAYLIST_TRACK: if (_is_dynamic) { @@ -387,7 +421,9 @@ void LibraryForm::_back_button() { } else { _playlists_button(); } - ui->listView->scrollToTop(); + if (_model->rowCount() != 0 && !_is_dynamic) { + ui->listView->scrollTo(_model->index(_playlist_row_for_scroll_to, 1), QAbstractItemView::PositionAtCenter); + } default: return; } @@ -399,13 +435,14 @@ void LibraryForm::_playlists_button() { ui->listView->setColumnWidth(0, 70); _state = STATE_PLAYLIST; ui->backButton->setEnabled(false); - ui->listLabel->setText("Playlists"); - ui->addButton->setEnabled(true); - ui->addButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png")); - ui->deleteButton->setEnabled(true); - ui->deleteButton->setIcon(QIcon(":/icons/"+_icons_theme+"/delete.png")); + ui->backButton->setIcon(QIcon()); + ui->listLabel->setText(tr("Playlists")); ui->useButton->setEnabled(false); ui->useButton->setIcon(QIcon()); + ui->addButton->setEnabled(false); + ui->addButton->setIcon(QIcon()); + ui->deleteButton->setEnabled(false); + ui->deleteButton->setIcon(QIcon()); } void LibraryForm::_delete_button() { @@ -419,12 +456,21 @@ void LibraryForm::_delete_button() { } qSort(to_delete); int count = to_delete.count(); - for (int i = count-1; i >= 0; i--) { - _current_playlist.removeTrackAt(to_delete.at(i)); + if (_is_dynamic && _is_favorites) { + _current_tracks = _lib->getFavorites().tracks(); + for (int i = count-1; i >= 0; i--) { + _lib->removeFromFavorites(_current_tracks.at(to_delete.at(i))); + } + _current_playlist = _lib->getFavorites(); + _current_tracks = _current_playlist.tracks(); + } else { + for (int i = count-1; i >= 0; i--) { + _current_playlist.removeTrackAt(to_delete.at(i)); + } + _current_tracks = _current_playlist.tracks(); + _lib->savePlaylist(_current_playlist); + emit refreshPlayer(); } - _current_tracks = _current_playlist.tracks(); - _lib->savePlaylist(_current_playlist); - _current_playlist_changed = true; __fill_model_tracks(_model, _current_tracks, _icons_theme); ui->listView->setColumnWidth(0, 70); } else if (_state == STATE_PLAYLIST) { @@ -450,12 +496,12 @@ void LibraryForm::_delete_track(Track track) { Playlist current = _lib->getCurrentPlaylist(); current.removeTrack(track); _lib->saveCurrentPlaylist(current); - _current_playlist_changed = true; + emit refreshPlayer(); } void LibraryForm::_use_button() { _lib->saveCurrentPlaylist(_current_playlist); - _current_playlist_changed = true; + emit refreshPlayer(); _current_playlist = _lib->getCurrentPlaylist(); } @@ -477,7 +523,7 @@ void LibraryForm::nextItem() { QModelIndex id = _model->index(_search_current_id, 1); ui->listView->selectionModel()->clearSelection(); ui->listView->selectRow(id.row()); - ui->listView->scrollTo(id); + ui->listView->scrollTo(id, QAbstractItemView::PositionAtCenter); } void LibraryForm::prevItem() { @@ -492,7 +538,7 @@ void LibraryForm::prevItem() { QModelIndex id = _model->index(_search_current_id, 1); ui->listView->selectionModel()->clearSelection(); ui->listView->selectRow(id.row()); - ui->listView->scrollTo(id); + ui->listView->scrollTo(id, QAbstractItemView::PositionAtCenter); } void LibraryForm::cancelSearch() { @@ -535,8 +581,23 @@ void LibraryForm::_toggle_select_all_button() { ui->listView->selectionModel()->clearSelection(); ui->selectAllButton->setIcon(QIcon(":/icons/"+_icons_theme+"/select_all.png")); } else { + disconnect(ui->listView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), + this, SLOT(_process_selection(QItemSelection,QItemSelection))); ui->listView->selectAll(); + int cnt = _model->rowCount(); + for (int i = 0; i < cnt; i++) { + _model->item(i)->setIcon(QIcon(":/icons/"+_icons_theme+"/select_all.png")); + } + 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_PLAYLIST || (_state == STATE_PLAYLIST_TRACK && !_is_dynamic) + || (_state == STATE_PLAYLIST_TRACK && _is_favorites)) { + ui->deleteButton->setEnabled(true); + ui->deleteButton->setIcon(QIcon(":/icons/"+_icons_theme+"/delete.png")); + } } } @@ -573,6 +634,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 { @@ -583,8 +647,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); @@ -624,6 +688,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 { @@ -658,21 +725,30 @@ void LibraryForm::updateIcons() { if (!ui->useButton->icon().isNull()) { ui->useButton->setIcon(QIcon(":/icons/"+_icons_theme+"/use.png")); } - ui->backButton->setIcon(QIcon(":/icons/"+_icons_theme+"/back.png")); - ui->dynamicButton->setIcon(QIcon(":/icons/"+_icons_theme+"/dynamic.png")); + if (!ui->backButton->icon().isNull()) { + ui->backButton->setIcon(QIcon(":/icons/"+_icons_theme+"/back.png")); + } + if (!ui->dynamicButton->icon().isNull()) { + ui->dynamicButton->setIcon(QIcon(":/icons/"+_icons_theme+"/dynamic.png")); + } if (_tools_widget->isVisible()) { ui->moreButton->setIcon(QIcon(landscape ? ":/icons/"+_icons_theme+"/more_l.png" : ":/icons/"+_icons_theme+"/unmore.png")); } else { ui->moreButton->setIcon(QIcon(landscape ? ":/icons/"+_icons_theme+"/unmore_l.png" : ":/icons/"+_icons_theme+"/more.png")); } + if (!ui->playlistsButton->icon().isNull()) { + ui->playlistsButton->setIcon(QIcon(":/icons/"+_icons_theme+"/playlists.png")); + } ui->playerButton->setIcon(QIcon(":/icons/"+_icons_theme+"/player.png")); - ui->playlistsButton->setIcon(QIcon(":/icons/"+_icons_theme+"/playlists.png")); - ui->viewButton->setIcon(QIcon(":/icons/"+_icons_theme+"/artists.png")); + if (!ui->viewButton->icon().isNull()) { + ui->viewButton->setIcon(QIcon(":/icons/"+_icons_theme+"/artists.png")); + } if (ui->listView->selectionModel()->selectedRows().count() == _model->rowCount()) { - ui->selectAllButton->setIcon(QIcon(":/icons/"+_icons_theme+"/unselect_all.png")); + ui->selectAllButton->setIcon(QIcon(":/icons/"+_icons_theme+"/deselect_all.png")); } else { ui->selectAllButton->setIcon(QIcon(":/icons/"+_icons_theme+"/select_all.png")); } + _search_in_library_button->setIcon(QIcon(":/icons/"+_icons_theme+"/search.png")); refresh(); } @@ -700,6 +776,20 @@ void LibraryForm::_process_selection(QItemSelection selected, QItemSelection des } ui->listView->selectionModel()->select(id, QItemSelectionModel::Deselect); } + if (ui->listView->selectionModel()->selectedRows().count() > 0) { + ui->addButton->setEnabled(true); + ui->addButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png")); + if (_state == STATE_PLAYLIST || (_state == STATE_PLAYLIST_TRACK && !_is_dynamic) + || (_state == STATE_PLAYLIST_TRACK && _is_favorites)) { + ui->deleteButton->setEnabled(true); + ui->deleteButton->setIcon(QIcon(":/icons/"+_icons_theme+"/delete.png")); + } + } else { + ui->addButton->setEnabled(false); + ui->addButton->setIcon(QIcon()); + ui->deleteButton->setEnabled(false); + ui->deleteButton->setIcon(QIcon()); + } } void LibraryForm::_process_dblclick(QModelIndex id) { @@ -710,7 +800,7 @@ void LibraryForm::_process_dblclick(QModelIndex id) { Track track = _current_tracks.at(id.row()); cur.addTrack(track); _lib->saveCurrentPlaylist(cur); - _current_playlist_changed = true; + emit refreshPlayer(); emit addAndPlay(track); ui->listView->clearSelection(); } @@ -720,21 +810,32 @@ void LibraryForm::_search_button(bool state) { ui->moreButton->setEnabled(!state); _tools_widget->toggleArrows(!state); ui->backButton->setEnabled(!state); + ui->backButton->setIcon(state ? QIcon() : QIcon(":/icons/"+_icons_theme+"/back.png")); _tools_widget->setFocus(); _tools_widget->reset(); if (state) { - ui->listLabel->setText("Search in library"); + ui->listLabel->setText(tr("Search in library")); ui->deleteButton->setIcon(QIcon()); ui->deleteButton->setEnabled(false); ui->useButton->setIcon(QIcon()); ui->useButton->setEnabled(false); - ui->addButton->setIcon(QIcon(":/icons/"+_icons_theme+"/add.png")); - ui->addButton->setEnabled(true); + ui->viewButton->setIcon(QIcon()); + ui->viewButton->setEnabled(false); + ui->dynamicButton->setIcon(QIcon()); + ui->dynamicButton->setEnabled(false); + ui->playlistsButton->setIcon(QIcon()); + ui->playlistsButton->setEnabled(false); disconnect(_tools_widget, SIGNAL(search(QString)), this, SLOT(search(QString))); connect(_tools_widget, SIGNAL(search(QString)), this, SLOT(_search_in_library(QString))); _model->clear(); _state = STATE_SEARCH; } else { + ui->viewButton->setIcon(QIcon(":/icons/"+_icons_theme+"/artists.png")); + ui->viewButton->setEnabled(true); + ui->dynamicButton->setIcon(QIcon(":/icons/"+_icons_theme+"/dynamic.png")); + ui->dynamicButton->setEnabled(true); + ui->playlistsButton->setIcon(QIcon(":/icons/"+_icons_theme+"/playlists.png")); + ui->playlistsButton->setEnabled(true); _view_button(); connect(_tools_widget, SIGNAL(search(QString)), this, SLOT(search(QString))); disconnect(_tools_widget, SIGNAL(search(QString)), this, SLOT(_search_in_library(QString))); @@ -747,8 +848,12 @@ void LibraryForm::_search_in_library(QString pattern) { _model->clear(); return; } - _current_tracks = _lib->search(pattern); + _current_tracks = _lib->searchTracks(pattern); __fill_model_tracks(_model, _current_tracks, _icons_theme); ui->listView->setColumnWidth(0, 70); ui->listView->scrollToTop(); } + +void LibraryForm::updateTranslations() { + ui->retranslateUi(this); +}