diff options
author | Arno <arno@disconnect.de> | 2018-02-17 19:29:41 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-02-17 19:29:41 +0100 |
commit | 280c75090cb518f0f1a4e2b470a7722f95b9c9ab (patch) | |
tree | 466cb4a6ea3dedb02a944fa9378fa5fa0355a206 /collectionwidget.cpp | |
parent | b49d5333119239cf32f873d25a3d46d788f9747e (diff) | |
download | BeetPlayer-280c75090cb518f0f1a4e2b470a7722f95b9c9ab.tar.gz BeetPlayer-280c75090cb518f0f1a4e2b470a7722f95b9c9ab.tar.bz2 BeetPlayer-280c75090cb518f0f1a4e2b470a7722f95b9c9ab.zip |
Make filtering useful
Add a custom QSortFilterProxyModel which filterAcceptsRow() returns true
if the uppermost parent matches the filter RegExp.
Diffstat (limited to 'collectionwidget.cpp')
-rw-r--r-- | collectionwidget.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/collectionwidget.cpp b/collectionwidget.cpp index 0066e22..af75520 100644 --- a/collectionwidget.cpp +++ b/collectionwidget.cpp @@ -7,13 +7,14 @@ #include <QVBoxLayout> #include "collectionwidget.h" +#include "collectionwidgetproxy.h" CollectionWidget::CollectionWidget(QWidget *parent) : QWidget(parent){ mView = new QTreeView; mModel = new QStandardItemModel(this); - mProxy = new QSortFilterProxyModel(this); - mProxy->setSourceModel(mModel); - mView->setModel(mProxy); + CollectionWidgetProxy *proxy = new CollectionWidgetProxy(this); + proxy->setSourceModel(mModel); + mView->setModel(proxy); mView->setSortingEnabled(true); mView->setAlternatingRowColors(true); QGroupBox *filterGB = new QGroupBox(tr("Filter")); @@ -22,10 +23,10 @@ CollectionWidget::CollectionWidget(QWidget *parent) : QWidget(parent){ filterGBL->addWidget(mFilter); QToolBar *filterTB = new QToolBar; QAction *clearFilter = new QAction(QIcon(":/clean_tampon.png"), tr("Clear filter"), this); - connect(clearFilter, &QAction::triggered, [this] { mFilter->clear(); proxy()->setFilterRegExp("");} ); + 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()->setFilterRegExp(mFilter->text());} ); + connect(activateFilter, &QAction::triggered, [this, proxy] { proxy->setFilterRegExp(mFilter->text());} ); connect(mFilter, &QLineEdit::returnPressed, activateFilter, &QAction::trigger); filterTB->addAction(activateFilter); filterGBL->addWidget(filterTB); |