summaryrefslogtreecommitdiffstats
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
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.
-rw-r--r--collectionwidget.cpp14
-rw-r--r--collectionwidget.h1
2 files changed, 14 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);
+ }
+}
diff --git a/collectionwidget.h b/collectionwidget.h
index d464054..fe4a086 100644
--- a/collectionwidget.h
+++ b/collectionwidget.h
@@ -26,6 +26,7 @@ class CollectionWidget : public QWidget {
public slots:
virtual void populate() { return; }
+ virtual void expandFirst(QSortFilterProxyModel *proxy);
private:
BeetView *mView;