Auto-expand first level when searching

This commit is contained in:
Craig Drummond
2015-07-30 19:32:37 +01:00
committed by Craig Drummond
parent b3e26b7d33
commit fd17c43e51
4 changed files with 11 additions and 0 deletions

View File

@@ -113,6 +113,7 @@ LibraryPage::LibraryPage(QWidget *p)
#endif
#endif // TAGLIB_FOUND
connect(view, SIGNAL(updateToPlayQueue(QModelIndex,bool)), this, SLOT(updateToPlayQueue(QModelIndex,bool)));
view->setOpenAfterSearch(SqlLibraryModel::T_Album!=MpdLibraryModel::self()->topLevel());
}
LibraryPage::~LibraryPage()
@@ -301,6 +302,7 @@ void LibraryPage::groupByChanged()
break;
}
}
view->setOpenAfterSearch(SqlLibraryModel::T_Album!=MpdLibraryModel::self()->topLevel());
}
void LibraryPage::libraryAlbumSortChanged()

View File

@@ -55,6 +55,7 @@ OnlineDbWidget::OnlineDbWidget(OnlineDbService *s, QWidget *p)
init(ReplacePlayQueue|AddToPlayQueue|Refresh, QList<QWidget *>() << menu);
connect(view, SIGNAL(headerClicked(int)), SLOT(headerClicked(int)));
connect(view, SIGNAL(updateToPlayQueue(QModelIndex,bool)), this, SLOT(updateToPlayQueue(QModelIndex,bool)));
view->setOpenAfterSearch(SqlLibraryModel::T_Album!=srv->topLevel());
}
OnlineDbWidget::~OnlineDbWidget()
@@ -72,6 +73,7 @@ void OnlineDbWidget::groupByChanged()
}
int mode=act->property(constValProp).toInt();
srv->setTopLevel((SqlLibraryModel::Type)mode);
view->setOpenAfterSearch(SqlLibraryModel::T_Album!=srv->topLevel());
}
QStringList OnlineDbWidget::selectedFiles(bool allowPlaylists) const

View File

@@ -593,6 +593,7 @@ ItemView::ItemView(QWidget *p)
, msgOverlay(0)
, performedSearch(false)
, searchResetLevel(0)
, openFirstLevelAfterSearch(false)
{
setupUi(this);
if (!backAction) {
@@ -1401,6 +1402,10 @@ void ItemView::modelReset()
{
if (Mode_List==mode || Mode_IconTop==mode) {
goToTop();
} else if (usingTreeView() && !searchText().isEmpty()) {
for (int r=0; r<itemModel->rowCount(); ++r) {
treeView->expand(itemModel->index(r, 0, QModelIndex()));
}
}
}

View File

@@ -145,6 +145,7 @@ public:
void setSearchResetLevel(int l) { searchResetLevel=l; }
void showEvent(QShowEvent *ev);
void goToTop();
void setOpenAfterSearch(bool o) { openFirstLevelAfterSearch=o; }
private:
void setLevel(int level, bool haveChildren=true);
@@ -207,6 +208,7 @@ private:
QIcon bgndIcon;
bool performedSearch;
int searchResetLevel;
bool openFirstLevelAfterSearch;
};
#endif