aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/taskwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/projectexplorer/taskwindow.cpp')
-rw-r--r--src/plugins/projectexplorer/taskwindow.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/plugins/projectexplorer/taskwindow.cpp b/src/plugins/projectexplorer/taskwindow.cpp
index 7a98d0fd33..d864c8f585 100644
--- a/src/plugins/projectexplorer/taskwindow.cpp
+++ b/src/plugins/projectexplorer/taskwindow.cpp
@@ -227,6 +227,7 @@ public:
QToolButton *m_categoriesButton;
QMenu *m_categoriesMenu;
QList<QAction *> m_actions;
+ int m_visibleIssuesCount = 0;
};
static QToolButton *createFilterButton(const QIcon &icon, const QString &toolTip,
@@ -304,12 +305,20 @@ TaskWindow::TaskWindow() : d(std::make_unique<TaskWindowPrivate>())
connect(hub, &TaskHub::showTask, this, &TaskWindow::showTask);
connect(hub, &TaskHub::openTask, this, &TaskWindow::openTask);
- connect(d->m_filter, &TaskFilterModel::rowsRemoved,
- [this]() { emit setBadgeNumber(d->m_filter->rowCount()); });
+ connect(d->m_filter, &TaskFilterModel::rowsAboutToBeRemoved,
+ [this](const QModelIndex &, int first, int last) {
+ d->m_visibleIssuesCount -= d->m_filter->issuesCount(first, last);
+ emit setBadgeNumber(d->m_visibleIssuesCount);
+ });
connect(d->m_filter, &TaskFilterModel::rowsInserted,
- [this]() { emit setBadgeNumber(d->m_filter->rowCount()); });
- connect(d->m_filter, &TaskFilterModel::modelReset,
- [this]() { emit setBadgeNumber(d->m_filter->rowCount()); });
+ [this](const QModelIndex &, int first, int last) {
+ d->m_visibleIssuesCount += d->m_filter->issuesCount(first, last);
+ emit setBadgeNumber(d->m_visibleIssuesCount);
+ });
+ connect(d->m_filter, &TaskFilterModel::modelReset, [this] {
+ d->m_visibleIssuesCount = d->m_filter->issuesCount(0, d->m_filter->rowCount());
+ emit setBadgeNumber(d->m_visibleIssuesCount);
+ });
SessionManager *session = SessionManager::instance();
connect(session, &SessionManager::aboutToSaveSession, this, &TaskWindow::saveSettings);