summaryrefslogtreecommitdiffstats
path: root/collectionwidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-05-11 20:43:46 +0200
committerArno <arno@disconnect.de>2018-05-11 20:43:46 +0200
commitd8749da92d94981efb77820d61d2547a168679d6 (patch)
tree81357c601a427475fd63ff483468a809dca57709 /collectionwidget.cpp
parent6ebcf9f1c7499ed577f18b999ec38ce1c50659af (diff)
downloadBeetPlayer-d8749da92d94981efb77820d61d2547a168679d6.tar.gz
BeetPlayer-d8749da92d94981efb77820d61d2547a168679d6.tar.bz2
BeetPlayer-d8749da92d94981efb77820d61d2547a168679d6.zip
Expand the level when filtering
E.g., expand the artist to albums.
Diffstat (limited to 'collectionwidget.cpp')
-rw-r--r--collectionwidget.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/collectionwidget.cpp b/collectionwidget.cpp
index 96c46fc..127c6a6 100644
--- a/collectionwidget.cpp
+++ b/collectionwidget.cpp
@@ -28,7 +28,10 @@ CollectionWidget::CollectionWidget(QWidget *parent) : QWidget(parent){
connect(clearFilter, &QAction::triggered, [this, proxy] { mFilter->clear(); proxy->setFilterRegExp("");} );
filterTB->addAction(clearFilter);
QAction *activateFilter = new QAction(QIcon(":/stomp.png"), tr("Filter!"), this);
- connect(activateFilter, &QAction::triggered, [this, proxy] { proxy->setFilterRegExp(mFilter->text());} );
+ connect(activateFilter, &QAction::triggered, [this, proxy] {
+ proxy->setFilterRegExp(mFilter->text());
+ expandFirst(proxy);
+ } );
connect(mFilter, &QLineEdit::returnPressed, activateFilter, &QAction::trigger);
filterTB->addAction(activateFilter);
filterGBL->addWidget(filterTB);
@@ -43,3 +46,12 @@ void CollectionWidget::enableSorting(int column, Qt::SortOrder sortOrder){
view()->setSortingEnabled(true);
view()->sortByColumn(column, sortOrder);
}
+
+void CollectionWidget::expandFirst(QSortFilterProxyModel *proxy){
+ int row = 0;
+ QModelIndex idx = proxy->index(0, 0);
+ while(idx.isValid()){
+ mView->expand(idx);
+ idx = proxy->index(++row, 0);
+ }
+}