diff options
author | Arno <arno@disconnect.de> | 2018-05-11 20:43:46 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-05-11 20:43:46 +0200 |
commit | d8749da92d94981efb77820d61d2547a168679d6 (patch) | |
tree | 81357c601a427475fd63ff483468a809dca57709 /collectionwidget.cpp | |
parent | 6ebcf9f1c7499ed577f18b999ec38ce1c50659af (diff) | |
download | BeetPlayer-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.cpp | 14 |
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); + } +} |