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.cpp39
1 files changed, 17 insertions, 22 deletions
diff --git a/src/plugins/projectexplorer/taskwindow.cpp b/src/plugins/projectexplorer/taskwindow.cpp
index dfc72e667f..7416c383e7 100644
--- a/src/plugins/projectexplorer/taskwindow.cpp
+++ b/src/plugins/projectexplorer/taskwindow.cpp
@@ -21,6 +21,7 @@
#include <coreplugin/session.h>
#include <utils/algorithm.h>
+#include <utils/execmenu.h>
#include <utils/fileinprojectfinder.h>
#include <utils/hostosinfo.h>
#include <utils/itemviews.h>
@@ -221,6 +222,7 @@ TaskWindow::TaskWindow() : d(std::make_unique<TaskWindowPrivate>())
d->m_categoriesMenu = new QMenu(d->m_categoriesButton);
connect(d->m_categoriesMenu, &QMenu::aboutToShow, this, &TaskWindow::updateCategoriesMenu);
+ Utils::addToolTipsToMenu(d->m_categoriesMenu);
d->m_categoriesButton->setMenu(d->m_categoriesMenu);
@@ -239,17 +241,17 @@ 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::rowsAboutToBeRemoved,
+ connect(d->m_filter, &TaskFilterModel::rowsAboutToBeRemoved, this,
[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,
+ connect(d->m_filter, &TaskFilterModel::rowsInserted, this,
[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] {
+ connect(d->m_filter, &TaskFilterModel::modelReset, this, [this] {
d->m_visibleIssuesCount = d->m_filter->issuesCount(0, d->m_filter->rowCount());
emit setBadgeNumber(d->m_visibleIssuesCount);
});
@@ -367,12 +369,12 @@ void TaskWindow::visibilityChanged(bool visible)
delayedInitialization();
}
-void TaskWindow::addCategory(Id categoryId, const QString &displayName, bool visible, int priority)
+void TaskWindow::addCategory(const TaskCategory &category)
{
- d->m_model->addCategory(categoryId, displayName, priority);
- if (!visible) {
+ d->m_model->addCategory(category);
+ if (!category.visible) {
QSet<Id> filters = d->m_filter->filteredCategories();
- filters.insert(categoryId);
+ filters.insert(category.id);
d->m_filter->setFilteredCategories(filters);
}
}
@@ -467,27 +469,20 @@ void TaskWindow::setShowWarnings(bool show)
void TaskWindow::updateCategoriesMenu()
{
- using NameToIdsConstIt = QMap<QString, Id>::ConstIterator;
-
d->m_categoriesMenu->clear();
const QSet<Id> filteredCategories = d->m_filter->filteredCategories();
+ const QList<TaskCategory> categories = Utils::sorted(d->m_model->categories(),
+ &TaskCategory::displayName);
- QMap<QString, Id> nameToIds;
- const QList<Id> ids = d->m_model->categoryIds();
- for (const Id categoryId : ids)
- nameToIds.insert(d->m_model->categoryDisplayName(categoryId), categoryId);
-
- const NameToIdsConstIt cend = nameToIds.constEnd();
- for (NameToIdsConstIt it = nameToIds.constBegin(); it != cend; ++it) {
- const QString &displayName = it.key();
- const Id categoryId = it.value();
+ for (const TaskCategory &c : categories) {
auto action = new QAction(d->m_categoriesMenu);
action->setCheckable(true);
- action->setText(displayName);
- action->setChecked(!filteredCategories.contains(categoryId));
- connect(action, &QAction::triggered, this, [this, action, categoryId] {
- setCategoryVisibility(categoryId, action->isChecked());
+ action->setText(c.displayName);
+ action->setToolTip(c.description);
+ action->setChecked(!filteredCategories.contains(c.id));
+ connect(action, &QAction::triggered, this, [this, action, id = c.id] {
+ setCategoryVisibility(id, action->isChecked());
});
d->m_categoriesMenu->addAction(action);
}