diff --git a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp index f178dc2824e..62dae070400 100644 --- a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp +++ b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp @@ -77,9 +77,10 @@ ClangCodeModelPlugin::~ClangCodeModelPlugin() void ClangCodeModelPlugin::initialize() { - TaskHub::addCategory({Constants::TASK_CATEGORY_DIAGNOSTICS, Tr::tr("Clang Code Model")}); - CppEditor::CppModelManager::activateClangCodeModel( - std::make_unique()); + TaskHub::addCategory({Constants::TASK_CATEGORY_DIAGNOSTICS, + Tr::tr("Clang Code Model"), + Tr::tr("C++ code issues that Clangd found in the current document.")}); + CppEditor::CppModelManager::activateClangCodeModel(std::make_unique()); createCompilationDBAction(); #ifdef WITH_TESTS diff --git a/src/plugins/clangtools/clangtoolsplugin.cpp b/src/plugins/clangtools/clangtoolsplugin.cpp index 57b11d61b51..8a5815f116b 100644 --- a/src/plugins/clangtools/clangtoolsplugin.cpp +++ b/src/plugins/clangtools/clangtoolsplugin.cpp @@ -89,7 +89,9 @@ ClangToolsPlugin::~ClangToolsPlugin() void ClangToolsPlugin::initialize() { - TaskHub::addCategory({taskCategory(), Tr::tr("Clang Tools")}); + TaskHub::addCategory({taskCategory(), + Tr::tr("Clang Tools"), + Tr::tr("Issues that Clang-Tidy and Clazy found when analyzing code.")}); // Import tidy/clazy diagnostic configs from CppEditor now // instead of at opening time of the settings page diff --git a/src/plugins/debugger/debuggerinternalconstants.h b/src/plugins/debugger/debuggerinternalconstants.h index 5c4205b5a8f..bb3e5181ee2 100644 --- a/src/plugins/debugger/debuggerinternalconstants.h +++ b/src/plugins/debugger/debuggerinternalconstants.h @@ -42,7 +42,6 @@ const char C_DEBUGGER_NOTRUNNING[] = "Debugger.NotRunning"; const char PRESET_PERSPECTIVE_ID[] = "Debugger.Perspective.Preset"; -const char TASK_CATEGORY_DEBUGGER_DEBUGINFO[] = "Debuginfo"; const char TASK_CATEGORY_DEBUGGER_RUNTIME[] = "DebugRuntime"; const char TEXT_MARK_CATEGORY_BREAKPOINT[] = "Debugger.Mark.Breakpoint"; diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index b76eb6c932a..9e1217307f9 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -723,7 +723,9 @@ DebuggerPluginPrivate::DebuggerPluginPrivate(const QStringList &arguments) // Task integration. //: Category under which Analyzer tasks are listed in Issues view - TaskHub::addCategory({ANALYZERTASK_ID, Tr::tr("Debugger")}); + TaskHub::addCategory({ANALYZERTASK_ID, + Tr::tr("Valgrind"), + Tr::tr("Issues that the Valgrind tools found when analyzing the code.")}); const Context debuggerNotRunning(C_DEBUGGER_NOTRUNNING); ICore::addAdditionalContext(debuggerNotRunning); @@ -765,8 +767,9 @@ DebuggerPluginPrivate::DebuggerPluginPrivate(const QStringList &arguments) act->setEnabled(false); Command *cmd = ActionManager::registerAction(act, Constants::OPEN_MEMORY_EDITOR); - TaskHub::addCategory({TASK_CATEGORY_DEBUGGER_DEBUGINFO, Tr::tr("Debug Information")}); - TaskHub::addCategory({TASK_CATEGORY_DEBUGGER_RUNTIME, Tr::tr("Debugger Runtime")}); + TaskHub::addCategory({TASK_CATEGORY_DEBUGGER_RUNTIME, + Tr::tr("Debugger Runtime"), + Tr::tr("Issues with starting the debugger.")}); m_debuggerSettings.readSettings(); diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index fa2aa3da693..95eb60c83c1 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -427,7 +427,6 @@ void DebuggerRunTool::addSearchDirectory(const Utils::FilePath &dir) void DebuggerRunTool::start() { - TaskHub::clearTasks(Constants::TASK_CATEGORY_DEBUGGER_DEBUGINFO); TaskHub::clearTasks(Constants::TASK_CATEGORY_DEBUGGER_RUNTIME); if (d->portsGatherer) { diff --git a/src/plugins/nim/nimconstants.h b/src/plugins/nim/nimconstants.h index 5c66be9f295..868fb0b96ee 100644 --- a/src/plugins/nim/nimconstants.h +++ b/src/plugins/nim/nimconstants.h @@ -42,9 +42,6 @@ const QString C_NIMCOMPILERBUILDSTEP_TARGETNIMFILE = QStringLiteral("Nim.NimComp // NimCompilerCleanStep const char C_NIMCOMPILERCLEANSTEP_ID[] = "Nim.NimCompilerCleanStep"; -// Nim task category (Issues pane) -const char C_NIMPARSE_ID[] = "Nim.NimParse"; - const char C_NIMLANGUAGE_ID[] = "Nim"; const char C_NIMCODESTYLESETTINGSPAGE_ID[] = "Nim.NimCodeStyleSettings"; const char C_NIMCODESTYLESETTINGSPAGE_CATEGORY[] = "Z.Nim"; diff --git a/src/plugins/nim/nimplugin.cpp b/src/plugins/nim/nimplugin.cpp index 47138b906a1..2ffcadfbf27 100644 --- a/src/plugins/nim/nimplugin.cpp +++ b/src/plugins/nim/nimplugin.cpp @@ -97,7 +97,6 @@ void NimPlugin::extensionsInitialized() FileIconProvider::registerIconOverlayForMimeType(icon, Constants::C_NIM_SCRIPT_MIMETYPE); FileIconProvider::registerIconOverlayForMimeType(icon, Constants::C_NIMBLE_MIMETYPE); } - TaskHub::addCategory({Constants::C_NIMPARSE_ID, "Nim"}); } } // namespace Nim diff --git a/src/plugins/nim/project/nimblebuildsystem.cpp b/src/plugins/nim/project/nimblebuildsystem.cpp index 3a8ccb08d62..baed02b5254 100644 --- a/src/plugins/nim/project/nimblebuildsystem.cpp +++ b/src/plugins/nim/project/nimblebuildsystem.cpp @@ -39,7 +39,7 @@ static std::vector parseTasks(const FilePath &nimblePath, const File std::vector result; if (process.exitCode() != 0) { - TaskHub::addTask(Task(Task::Error, process.cleanedStdOut(), {}, -1, Constants::C_NIMPARSE_ID)); + TaskHub::addTask(ProjectExplorer::BuildSystemTask(Task::Error, process.cleanedStdOut())); return result; } @@ -67,7 +67,7 @@ static NimbleMetadata parseMetadata(const FilePath &nimblePath, const FilePath & NimbleMetadata result = {}; if (process.exitCode() != 0) { - TaskHub::addTask(Task(Task::Error, process.cleanedStdOut(), {}, -1, Constants::C_NIMPARSE_ID)); + TaskHub::addTask(ProjectExplorer::BuildSystemTask(Task::Error, process.cleanedStdOut())); return result; } const QList &lines = linesFromProcessOutput(&process); @@ -141,7 +141,6 @@ void NimbleBuildSystem::triggerParsing() void NimbleBuildSystem::updateProject() { - TaskHub::clearTasks(Constants::C_NIMPARSE_ID); const FilePath projectDir = projectDirectory(); const FilePath nimble = Nim::nimblePathFromKit(kit()); diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp index 5a9575743fa..76336d3aa13 100644 --- a/src/plugins/projectexplorer/buildmanager.cpp +++ b/src/plugins/projectexplorer/buildmanager.cpp @@ -293,16 +293,26 @@ void BuildManager::extensionsInitialized() { TaskHub::addCategory({Constants::TASK_CATEGORY_COMPILE, Tr::tr("Compile", "Category for compiler issues listed under 'Issues'"), - true, 100}); - TaskHub::addCategory({Constants::TASK_CATEGORY_BUILDSYSTEM, - Tr::tr("Build System", "Category for build system issues listed under 'Issues'"), - true, 100}); - TaskHub::addCategory({Constants::TASK_CATEGORY_DEPLOYMENT, - Tr::tr("Deployment", "Category for deployment issues listed under 'Issues'"), - true, 100}); + Tr::tr("Issues parsed from the compile output."), + true, + 100}); + TaskHub::addCategory( + {Constants::TASK_CATEGORY_BUILDSYSTEM, + Tr::tr("Build System", "Category for build system issues listed under 'Issues'"), + Tr::tr("Issues from the build system, such as CMake or qmake."), + true, + 100}); + TaskHub::addCategory( + {Constants::TASK_CATEGORY_DEPLOYMENT, + Tr::tr("Deployment", "Category for deployment issues listed under 'Issues'"), + Tr::tr("Issues found when deploying applications to devices."), + true, + 100}); TaskHub::addCategory({Constants::TASK_CATEGORY_AUTOTEST, Tr::tr("Autotests", "Category for autotest issues listed under 'Issues'"), - true, 100}); + Tr::tr("Issues found when running tests."), + true, + 100}); } void BuildManager::buildProjectWithoutDependencies(Project *project) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index bb473b900ea..9b9ae3886ab 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -2075,8 +2075,11 @@ void ProjectExplorerPlugin::extensionsInitialized() BuildManager::extensionsInitialized(); TaskHub::addCategory({Constants::TASK_CATEGORY_SANITIZER, - Tr::tr("Sanitizer", "Category for sanitizer issues listed under 'Issues'")}); - TaskHub::addCategory({Constants::TASK_CATEGORY_TASKLIST_ID, Tr::tr("My Tasks")}); + Tr::tr("Sanitizer", "Category for sanitizer issues listed under 'Issues'"), + Tr::tr("Memory handling issues that the address sanitizer found.")}); + TaskHub::addCategory({Constants::TASK_CATEGORY_TASKLIST_ID, + Tr::tr("My Tasks"), + Tr::tr("Issues from a task list file (.tasks).")}); SshSettings::loadSettings(ICore::settings()); const auto searchPathRetriever = [] { diff --git a/src/plugins/projectexplorer/taskhub.h b/src/plugins/projectexplorer/taskhub.h index 1822129bc26..0afc8d51f47 100644 --- a/src/plugins/projectexplorer/taskhub.h +++ b/src/plugins/projectexplorer/taskhub.h @@ -17,6 +17,7 @@ class PROJECTEXPLORER_EXPORT TaskCategory public: Utils::Id id; QString displayName; + QString description; bool visible = true; int priority = 0; }; diff --git a/src/plugins/projectexplorer/taskwindow.cpp b/src/plugins/projectexplorer/taskwindow.cpp index 7e41ef26cff..ec174887b2e 100644 --- a/src/plugins/projectexplorer/taskwindow.cpp +++ b/src/plugins/projectexplorer/taskwindow.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -221,6 +222,7 @@ TaskWindow::TaskWindow() : d(std::make_unique()) 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); @@ -475,6 +477,7 @@ void TaskWindow::updateCategoriesMenu() auto action = new QAction(d->m_categoriesMenu); action->setCheckable(true); 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()); diff --git a/src/plugins/python/pythonplugin.cpp b/src/plugins/python/pythonplugin.cpp index 55377c57222..bc95ddd2aa8 100644 --- a/src/plugins/python/pythonplugin.cpp +++ b/src/plugins/python/pythonplugin.cpp @@ -8,6 +8,7 @@ #include "pythonproject.h" #include "pythonrunconfiguration.h" #include "pythonsettings.h" +#include "pythontr.h" #include "pythonwizardpage.h" #include @@ -70,7 +71,10 @@ void PythonPlugin::extensionsInitialized() ::Constants::FILEOVERLAY_PY); FileIconProvider::registerIconOverlayForSuffix(imageFile, "py"); - TaskHub::addCategory({PythonErrorTaskCategory, "Python", true}); + TaskHub::addCategory({PythonErrorTaskCategory, + "Python", + Tr::tr("Issues parsed from Python runtime output."), + true}); } } // Python::Internal diff --git a/src/plugins/qmldesigner/assetexporterplugin/assetexporterplugin.cpp b/src/plugins/qmldesigner/assetexporterplugin/assetexporterplugin.cpp index 6e66a9bba17..ea0899d07c6 100644 --- a/src/plugins/qmldesigner/assetexporterplugin/assetexporterplugin.cpp +++ b/src/plugins/qmldesigner/assetexporterplugin/assetexporterplugin.cpp @@ -39,7 +39,9 @@ namespace QmlDesigner { AssetExporterPlugin::AssetExporterPlugin() { ProjectExplorer::TaskHub::addCategory({Constants::TASK_CATEGORY_ASSET_EXPORT, - tr("Asset Export"), false}); + tr("Asset Export"), + tr("Issues with exporting assets."), + false}); auto *designerPlugin = QmlDesigner::QmlDesignerPlugin::instance(); auto &viewManager = designerPlugin->viewManager(); diff --git a/src/plugins/qmljseditor/qmljseditorplugin.cpp b/src/plugins/qmljseditor/qmljseditorplugin.cpp index d0393e2df2a..b0736b29d15 100644 --- a/src/plugins/qmljseditor/qmljseditorplugin.cpp +++ b/src/plugins/qmljseditor/qmljseditorplugin.cpp @@ -205,8 +205,13 @@ void QmlJSEditorPlugin::extensionsInitialized() FileIconProvider::registerIconOverlayForMimeType(ProjectExplorer::Constants::FILEOVERLAY_UI, "application/x-qt.ui+qml"); - TaskHub::addCategory({Constants::TASK_CATEGORY_QML, Tr::tr("QML")}); - TaskHub::addCategory({Constants::TASK_CATEGORY_QML_ANALYSIS, Tr::tr("QML Analysis"), false}); + TaskHub::addCategory({Constants::TASK_CATEGORY_QML, + Tr::tr("QML"), + Tr::tr("Issues that the QML code parser found.")}); + TaskHub::addCategory({Constants::TASK_CATEGORY_QML_ANALYSIS, + Tr::tr("QML Analysis"), + Tr::tr("Issues that the QML static analyzer found."), + false}); QmllsSettingsManager::instance()->setupAutoupdate(); }