diff options
author | Erik Verbruggen <erik@verbruggen.consulting> | 2022-03-11 16:29:33 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2022-03-14 13:21:21 +0300 |
commit | 96ede25289e410b98af26a83b09045167bac9e01 (patch) | |
tree | 67f83e78ade0c0ffc9591c67eca95f1877593bac /src/gui/activitywidget.cpp | |
parent | bfb6743cb507934bd508c7817705a21e085492b2 (diff) |
Fix filter menus
- replaced "No filter" option text with "All", to avoid the "No filter
is not enabled" situation
- replace the "Filter" label on the button with "1 Filter"/"2 Filters"
when a filter is active, so a user can immediately see that without
having to open the filter pop-up
Diffstat (limited to 'src/gui/activitywidget.cpp')
-rw-r--r-- | src/gui/activitywidget.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gui/activitywidget.cpp b/src/gui/activitywidget.cpp index 270d2aa97..2ae611419 100644 --- a/src/gui/activitywidget.cpp +++ b/src/gui/activitywidget.cpp @@ -59,7 +59,7 @@ ActivityWidget::ActivityWidget(QWidget *parent) _ui->setupUi(this); _model = new ActivityListModel(this); - _sortModel = new QSortFilterProxyModel(this); + _sortModel = new SignalledQSortFilterProxyModel(this); _sortModel->setSourceModel(_model); _ui->_activityList->setModel(_sortModel); _sortModel->setSortRole(Models::UnderlyingDataRole); @@ -103,12 +103,16 @@ ActivityWidget::ActivityWidget(QWidget *parent) header->setContextMenuPolicy(Qt::CustomContextMenu); connect(header, &QListView::customContextMenuRequested, header, [header, this] { auto menu = ProtocolWidget::showFilterMenu(header, _sortModel, static_cast<int>(ActivityListModel::ActivityRole::Account), tr("Account")); + menu->addSeparator(); header->addResetActionToMenu(menu); }); connect(_ui->_filterButton, &QAbstractButton::clicked, this, [this] { ProtocolWidget::showFilterMenu(_ui->_filterButton, _sortModel, static_cast<int>(ActivityListModel::ActivityRole::Account), tr("Account")); }); + connect(_sortModel, &SignalledQSortFilterProxyModel::filterChanged, [this]() { + _ui->_filterButton->setText(CommonStrings::filterButtonText(_sortModel->filterRegExp().isEmpty() ? 0 : 1)); + }); connect(&_removeTimer, &QTimer::timeout, this, &ActivityWidget::slotCheckToCleanWidgets); _removeTimer.setInterval(1000); |