diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp index 67754c8f990..f2302c08d71 100644 --- a/src/plugins/projectexplorer/buildmanager.cpp +++ b/src/plugins/projectexplorer/buildmanager.cpp @@ -446,10 +446,12 @@ bool BuildManager::buildQueueAppend(const QList &steps, QStringList { if (!d->m_running) { d->m_outputWindow->clearContents(); - TaskHub::clearTasks(Constants::TASK_CATEGORY_COMPILE); - TaskHub::clearTasks(Constants::TASK_CATEGORY_BUILDSYSTEM); - TaskHub::clearTasks(Constants::TASK_CATEGORY_DEPLOYMENT); - TaskHub::clearTasks(Constants::TASK_CATEGORY_AUTOTEST); + if (ProjectExplorerPlugin::projectExplorerSettings().clearIssuesOnRebuild) { + TaskHub::clearTasks(Constants::TASK_CATEGORY_COMPILE); + TaskHub::clearTasks(Constants::TASK_CATEGORY_BUILDSYSTEM); + TaskHub::clearTasks(Constants::TASK_CATEGORY_DEPLOYMENT); + TaskHub::clearTasks(Constants::TASK_CATEGORY_AUTOTEST); + } foreach (const QString &str, preambleMessage) addToOutputWindow(str, BuildStep::OutputFormat::NormalMessage, BuildStep::DontAppendNewline); diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 6fa773ad6e0..266a2629688 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -251,6 +251,7 @@ const char DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY[] = "Directories/BuildDirectory. const char TERMINAL_MODE_SETTINGS_KEY[] = "ProjectExplorer/Settings/TerminalMode"; const char CLOSE_FILES_WITH_PROJECT_SETTINGS_KEY[] = "ProjectExplorer/Settings/CloseFilesWithProject"; +const char CLEAR_ISSUES_ON_REBUILD_SETTINGS_KEY[] = "ProjectExplorer/Settings/ClearIssuesOnRebuild"; } // namespace Constants @@ -1361,6 +1362,8 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er Constants::TERMINAL_MODE_SETTINGS_KEY, int(TerminalMode::Smart)).toInt()); dd->m_projectExplorerSettings.closeSourceFilesWithProject = s->value(Constants::CLOSE_FILES_WITH_PROJECT_SETTINGS_KEY, true).toBool(); + dd->m_projectExplorerSettings.clearIssuesOnRebuild + = s->value(Constants::CLEAR_ISSUES_ON_REBUILD_SETTINGS_KEY, true).toBool(); dd->m_projectExplorerSettings.buildDirectoryTemplate = s->value(Constants::DEFAULT_BUILD_DIRECTORY_TEMPLATE_KEY).toString(); if (dd->m_projectExplorerSettings.buildDirectoryTemplate.isEmpty()) @@ -1952,6 +1955,8 @@ void ProjectExplorerPluginPrivate::savePersistentSettings() int(dd->m_projectExplorerSettings.terminalMode)); s->setValue(Constants::CLOSE_FILES_WITH_PROJECT_SETTINGS_KEY, dd->m_projectExplorerSettings.closeSourceFilesWithProject); + s->setValue(Constants::CLEAR_ISSUES_ON_REBUILD_SETTINGS_KEY, + dd->m_projectExplorerSettings.clearIssuesOnRebuild); s->setValue(QLatin1String("ProjectExplorer/Settings/AutomaticallyCreateRunConfigurations"), dd->m_projectExplorerSettings.automaticallyCreateRunConfigurations); s->setValue(QLatin1String("ProjectExplorer/Settings/EnvironmentId"), dd->m_projectExplorerSettings.environmentId.toByteArray()); diff --git a/src/plugins/projectexplorer/projectexplorersettings.h b/src/plugins/projectexplorer/projectexplorersettings.h index 6d15d21a5c3..85e9a77abe1 100644 --- a/src/plugins/projectexplorer/projectexplorersettings.h +++ b/src/plugins/projectexplorer/projectexplorersettings.h @@ -49,6 +49,7 @@ public: bool automaticallyCreateRunConfigurations = true; bool addLibraryPathsToRunEnv = true; bool closeSourceFilesWithProject = true; + bool clearIssuesOnRebuild = true; StopBeforeBuild stopBeforeBuild = StopBeforeBuild::StopNone; TerminalMode terminalMode = TerminalMode::Smart; QString buildDirectoryTemplate; @@ -73,6 +74,7 @@ inline bool operator==(const ProjectExplorerSettings &p1, const ProjectExplorerS && p1.stopBeforeBuild == p2.stopBeforeBuild && p1.terminalMode == p2.terminalMode && p1.closeSourceFilesWithProject == p2.closeSourceFilesWithProject + && p1.clearIssuesOnRebuild == p2.clearIssuesOnRebuild && p1.buildDirectoryTemplate == p2.buildDirectoryTemplate; } diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.cpp b/src/plugins/projectexplorer/projectexplorersettingspage.cpp index d5760dd8990..05586ce173f 100644 --- a/src/plugins/projectexplorer/projectexplorersettingspage.cpp +++ b/src/plugins/projectexplorer/projectexplorersettingspage.cpp @@ -107,6 +107,7 @@ ProjectExplorerSettings ProjectExplorerSettingsWidget::settings() const m_settings.stopBeforeBuild = static_cast(m_ui.stopBeforeBuildComboBox->currentIndex()); m_settings.terminalMode = static_cast(m_ui.terminalModeComboBox->currentIndex()); m_settings.closeSourceFilesWithProject = m_ui.closeSourceFilesCheckBox->isChecked(); + m_settings.clearIssuesOnRebuild = m_ui.clearIssuesCheckBox->isChecked(); m_settings.buildDirectoryTemplate = buildDirectoryTemplate(); return m_settings; } @@ -124,6 +125,7 @@ void ProjectExplorerSettingsWidget::setSettings(const ProjectExplorerSettings & m_ui.stopBeforeBuildComboBox->setCurrentIndex(static_cast(m_settings.stopBeforeBuild)); m_ui.terminalModeComboBox->setCurrentIndex(static_cast(m_settings.terminalMode)); m_ui.closeSourceFilesCheckBox->setChecked(m_settings.closeSourceFilesWithProject); + m_ui.clearIssuesCheckBox->setChecked(m_settings.clearIssuesOnRebuild); setBuildDirectoryTemplate(pes.buildDirectoryTemplate); } diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.ui b/src/plugins/projectexplorer/projectexplorersettingspage.ui index edec69ee1f9..448ad3655b4 100644 --- a/src/plugins/projectexplorer/projectexplorersettingspage.ui +++ b/src/plugins/projectexplorer/projectexplorersettingspage.ui @@ -134,6 +134,13 @@ + + + + Clear issues list on new build + + + @@ -294,6 +301,7 @@ deployProjectBeforeRunCheckBox promptToStopRunControlCheckBox addLibraryPathsToRunEnvCheckBox + clearIssuesCheckBox