diff --git a/src/library/libraryview.cpp b/src/library/libraryview.cpp index 2a09cf29d..eeac84914 100644 --- a/src/library/libraryview.cpp +++ b/src/library/libraryview.cpp @@ -244,7 +244,16 @@ void LibraryView::AddToPlaylist() { } void LibraryView::keyboardSearch(const QString& search) { - emit FocusFilterBox(search); + is_in_keyboard_search_ = true; + QTreeView::keyboardSearch(search); + is_in_keyboard_search_ = false; +} + +void LibraryView::scrollTo(const QModelIndex& index, ScrollHint hint) { + if (is_in_keyboard_search_) + QTreeView::scrollTo(index, QAbstractItemView::PositionAtTop); + else + QTreeView::scrollTo(index, hint); } void LibraryView::GetSelectedFileInfo( diff --git a/src/library/libraryview.h b/src/library/libraryview.h index 4844b2844..e81bc2761 100644 --- a/src/library/libraryview.h +++ b/src/library/libraryview.h @@ -50,6 +50,7 @@ class LibraryView : public AutoExpandingTreeView { // QTreeView void keyboardSearch(const QString &search); + void scrollTo(const QModelIndex& index, ScrollHint hint = EnsureVisible); public slots: void TotalSongCountUpdated(int count); @@ -63,7 +64,6 @@ class LibraryView : public AutoExpandingTreeView { void ShowConfigDialog(); void Load(const QModelIndexList& indexes); void AddToPlaylist(const QModelIndexList& indexes); - void FocusFilterBox(const QString& text); protected: // QWidget @@ -108,6 +108,8 @@ class LibraryView : public AutoExpandingTreeView { QAction* no_show_in_various_; boost::scoped_ptr organise_dialog_; + + bool is_in_keyboard_search_; }; #endif // LIBRARYVIEW_H diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 710bed306..ba8fc8c42 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -365,7 +365,6 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg connect(ui_->library_view, SIGNAL(Load(QModelIndexList)), SLOT(LoadLibraryItemToPlaylist(QModelIndexList))); connect(ui_->library_view, SIGNAL(AddToPlaylist(QModelIndexList)), SLOT(AddLibraryItemToPlaylist(QModelIndexList))); connect(ui_->library_view, SIGNAL(ShowConfigDialog()), SLOT(ShowLibraryConfig())); - connect(ui_->library_view, SIGNAL(FocusFilterBox(QString)), ui_->library_filter, SLOT(AppendAndFocus(QString))); connect(library_->model(), SIGNAL(TotalSongCountUpdated(int)), ui_->library_view, SLOT(TotalSongCountUpdated(int))); connect(task_manager_, SIGNAL(PauseLibraryWatchers()), library_, SLOT(PauseWatcher()));