diff --git a/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp b/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp index 78db10c80d6..8f35bee0a44 100644 --- a/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp +++ b/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp @@ -353,7 +353,7 @@ static void addTask(const ClangBackEnd::DiagnosticContainer &diagnostic, bool is diagnostic.location.line, Constants::TASK_CATEGORY_DIAGNOSTICS, icon, - /*addTextMark =*/ false)); + Task::NoOptions)); } void ClangDiagnosticManager::clearTaskHubIssues() diff --git a/src/plugins/projectexplorer/task.cpp b/src/plugins/projectexplorer/task.cpp index d076b3e349d..83409fadd5a 100644 --- a/src/plugins/projectexplorer/task.cpp +++ b/src/plugins/projectexplorer/task.cpp @@ -61,8 +61,8 @@ unsigned int Task::s_nextId = 1; Task::Task(TaskType type_, const QString &description_, const Utils::FileName &file_, int line_, Core::Id category_, - const QIcon &icon, bool addTextMark) : - taskId(s_nextId), type(type_), addTextMark(addTextMark), description(description_), + const QIcon &icon, Options options) : + taskId(s_nextId), type(type_), options(options), description(description_), file(file_), line(line_), movedLine(line_), category(category_), icon(icon.isNull() ? taskTypeIcon(type_) : icon) { diff --git a/src/plugins/projectexplorer/task.h b/src/plugins/projectexplorer/task.h index a0f9c168e71..f3e1b76c88b 100644 --- a/src/plugins/projectexplorer/task.h +++ b/src/plugins/projectexplorer/task.h @@ -52,11 +52,18 @@ public: Warning }; + enum Option : char { + NoOptions = 0, + AddTextMark = 1 << 0, + FlashWorthy = 1 << 1, + }; + using Options = char; + Task() = default; Task(TaskType type, const QString &description, const Utils::FileName &file, int line, Core::Id category, const QIcon &icon = QIcon(), - bool addTextMark = true); + Options options = AddTextMark | FlashWorthy); static Task compilerMissingTask(); static Task buildConfigurationMissingTask(); @@ -66,7 +73,7 @@ public: unsigned int taskId = 0; TaskType type = Unknown; - bool addTextMark = true; + Options options = AddTextMark | FlashWorthy; QString description; Utils::FileName file; int line = -1; diff --git a/src/plugins/projectexplorer/taskhub.cpp b/src/plugins/projectexplorer/taskhub.cpp index 0f00e79e9a6..726034f0664 100644 --- a/src/plugins/projectexplorer/taskhub.cpp +++ b/src/plugins/projectexplorer/taskhub.cpp @@ -154,7 +154,7 @@ void TaskHub::addTask(Task task) task.line = -1; task.movedLine = task.line; - if (task.addTextMark && task.line != -1) + if ((task.options & Task::AddTextMark) && task.line != -1) task.setMark(new TaskMark(task)); emit m_instance->taskAdded(task); } diff --git a/src/plugins/projectexplorer/taskwindow.cpp b/src/plugins/projectexplorer/taskwindow.cpp index 215ec1eaee3..79255cd367d 100644 --- a/src/plugins/projectexplorer/taskwindow.cpp +++ b/src/plugins/projectexplorer/taskwindow.cpp @@ -446,9 +446,12 @@ void TaskWindow::addTask(const Task &task) emit tasksChanged(); navigateStateChanged(); - if (task.type == Task::Error && d->m_filter->filterIncludesErrors() - && !d->m_filter->filteredCategories().contains(task.category)) + if ((task.options & Task::FlashWorthy) + && task.type == Task::Error + && d->m_filter->filterIncludesErrors() + && !d->m_filter->filteredCategories().contains(task.category)) { flash(); + } } void TaskWindow::removeTask(const Task &task)