+ _current_playlist = _lib->getCurrentPlaylist();
+}
+
+void LibraryForm::search(QString &pattern) {
+ _search_pattern = pattern;
+ _search_current_id = -1;
+ nextItem();
+}
+
+void LibraryForm::nextItem() {
+ QString data = _model->index(_search_current_id, 0).data().toString();
+ for (int i = _search_current_id+1; i < _model->rowCount(); i++) {
+ data = _model->index(i, 0).data().toString();
+ if (data.contains(_search_pattern, Qt::CaseInsensitive)) {
+ _search_current_id = i;
+ break;
+ }
+ }
+ QModelIndex id = _model->index(_search_current_id, 0);
+ ui->listView->selectionModel()->clearSelection();
+ ui->listView->selectionModel()->select(id, QItemSelectionModel::Select);
+ ui->listView->scrollTo(id);
+}
+
+void LibraryForm::prevItem() {
+ QString data = _model->index(_search_current_id, 0).data().toString();
+ for (int i = _search_current_id-1; i >= 0; i--) {
+ data = _model->index(i, 0).data().toString();
+ if (data.contains(_search_pattern, Qt::CaseInsensitive)) {
+ _search_current_id = i;
+ break;
+ }
+ }
+ QModelIndex id = _model->index(_search_current_id, 0);
+ ui->listView->selectionModel()->clearSelection();
+ ui->listView->selectionModel()->select(id, QItemSelectionModel::Select);
+ ui->listView->scrollTo(id);
+}
+
+void LibraryForm::cancelSearch() {
+ _search_pattern = "";
+ ui->listView->selectionModel()->clearSelection();
+}
+
+void LibraryForm::refresh() {
+ switch (_state) {
+ case STATE_ARTIST:
+ _view_button();
+ break;
+ case STATE_ALBUM:
+ __fill_model(_model, _lib->getAlbumsForArtist(_current_artist));
+ break;
+ case STATE_PLAYLIST:
+ _playlists_button();
+ break;
+ case STATE_DYNAMIC:
+ _dynamic_button();
+ break;
+ case STATE_PLAYLIST_TRACK:
+ _current_playlist = _lib->getPlaylist(_current_playlist.name());
+ _current_tracks = _current_playlist.tracks();
+ __fill_model_tracks(_model, _current_tracks);
+ break;
+ case STATE_TRACK:
+ _current_tracks = _lib->getTracksForAlbum(_current_album, _current_artist);
+ __fill_model_tracks(_model, _current_tracks);
+ break;
+ }