summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2018-05-25 14:28:15 +0200
committerIvan Donchevskii <ivan.donchevskii@qt.io>2018-05-29 07:52:24 +0000
commit0d64011e4744b40b04d8f7999967700d87332c64 (patch)
tree3a25c1ad9c84d7d96746b8ea1dad6852befdb7c4
parent80dd54ec8bf732917f44ebb235d8083cec829ec6 (diff)
downloadqt-creator-0d64011e4744b40b04d8f7999967700d87332c64.tar.gz
ClangTools: Synchronize standalone tool diagnostic settings
...to the global diagnostic settings list. It was possible to add/remove some configurations without adding/removing them to the checks combobox. Change-Id: I31608fd3758c385aa2fb7ce06aceeb0b91403c50 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
-rw-r--r--src/plugins/clangtools/clangselectablefilesdialog.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/plugins/clangtools/clangselectablefilesdialog.cpp b/src/plugins/clangtools/clangselectablefilesdialog.cpp
index 4dab13a726..91b5c8ea53 100644
--- a/src/plugins/clangtools/clangselectablefilesdialog.cpp
+++ b/src/plugins/clangtools/clangselectablefilesdialog.cpp
@@ -31,7 +31,9 @@
#include "clangtoolsutils.h"
#include <cpptools/compileroptionsbuilder.h>
+#include <cpptools/cppcodemodelsettings.h>
#include <cpptools/cppmodelmanager.h>
+#include <cpptools/cpptoolsreuse.h>
#include <cpptools/projectinfo.h>
#include <cpptools/projectpart.h>
@@ -265,6 +267,13 @@ private:
enum { GlobalSettings , CustomSettings };
+static Core::Id diagnosticConfiguration(ClangToolsProjectSettings *settings)
+{
+ if (settings->useGlobalSettings())
+ return ClangToolsSettings::instance()->savedDiagnosticConfigId();
+ return settings->diagnosticConfig();
+}
+
SelectableFilesDialog::SelectableFilesDialog(const ProjectInfo &projectInfo,
const FileInfos &allFileInfos)
: QDialog(nullptr)
@@ -285,18 +294,15 @@ SelectableFilesDialog::SelectableFilesDialog(const ProjectInfo &projectInfo,
ClangToolsProjectSettings *settings = ClangToolsProjectSettingsManager::getSettings(m_project);
- Core::Id diagnosticConfig;
if (settings->useGlobalSettings()) {
m_ui->globalOrCustom->setCurrentIndex(GlobalSettings);
m_ui->diagnosticConfigsSelectionWidget->setEnabled(false);
- diagnosticConfig = ClangToolsSettings::instance()->savedDiagnosticConfigId();
} else {
m_ui->globalOrCustom->setCurrentIndex(CustomSettings);
m_ui->diagnosticConfigsSelectionWidget->setEnabled(true);
- diagnosticConfig = settings->diagnosticConfig();
}
- m_customDiagnosticConfig = diagnosticConfig;
- m_ui->diagnosticConfigsSelectionWidget->refresh(diagnosticConfig);
+ m_customDiagnosticConfig = diagnosticConfiguration(settings);
+ m_ui->diagnosticConfigsSelectionWidget->refresh(m_customDiagnosticConfig);
connect(m_ui->globalOrCustom,
static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
@@ -326,6 +332,11 @@ SelectableFilesDialog::SelectableFilesDialog(const ProjectInfo &projectInfo,
connect(m_filesModel.get(), &QAbstractItemModel::dataChanged, [this]() {
m_analyzeButton->setEnabled(m_filesModel->hasCheckedFiles());
});
+
+ connect(CppTools::codeModelSettings().data(), &CppTools::CppCodeModelSettings::changed,
+ this, [=]() {
+ m_ui->diagnosticConfigsSelectionWidget->refresh(diagnosticConfiguration(settings));
+ });
}
SelectableFilesDialog::~SelectableFilesDialog() {}