From 14d585f1056c1ce05f50b990bb595adbd402c8f2 Mon Sep 17 00:00:00 2001 From: Ivan Donchevskii Date: Fri, 8 Jun 2018 14:18:29 +0200 Subject: [PATCH] Clang: Restore custom settings for Clang-Tidy and Clazy run If the last run used global settings do not forget the custom configuration. Change-Id: Ie8e0eefb18eed60fd5f6bf07392e5a0d1474c549 Reviewed-by: Nikolai Kosjar --- .../clangtools/clangselectablefilesdialog.cpp | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/plugins/clangtools/clangselectablefilesdialog.cpp b/src/plugins/clangtools/clangselectablefilesdialog.cpp index 91b5c8ea531..53d9556220b 100644 --- a/src/plugins/clangtools/clangselectablefilesdialog.cpp +++ b/src/plugins/clangtools/clangselectablefilesdialog.cpp @@ -269,9 +269,10 @@ enum { GlobalSettings , CustomSettings }; static Core::Id diagnosticConfiguration(ClangToolsProjectSettings *settings) { - if (settings->useGlobalSettings()) - return ClangToolsSettings::instance()->savedDiagnosticConfigId(); - return settings->diagnosticConfig(); + Core::Id id = settings->diagnosticConfig(); + if (id.isValid()) + return id; + return ClangToolsSettings::instance()->savedDiagnosticConfigId(); } SelectableFilesDialog::SelectableFilesDialog(const ProjectInfo &projectInfo, @@ -293,16 +294,18 @@ SelectableFilesDialog::SelectableFilesDialog(const ProjectInfo &projectInfo, m_ui->diagnosticConfigsSelectionWidget->showLabel(false); ClangToolsProjectSettings *settings = ClangToolsProjectSettingsManager::getSettings(m_project); + m_customDiagnosticConfig = diagnosticConfiguration(settings); if (settings->useGlobalSettings()) { m_ui->globalOrCustom->setCurrentIndex(GlobalSettings); m_ui->diagnosticConfigsSelectionWidget->setEnabled(false); + m_ui->diagnosticConfigsSelectionWidget->refresh( + ClangToolsSettings::instance()->savedDiagnosticConfigId()); } else { m_ui->globalOrCustom->setCurrentIndex(CustomSettings); m_ui->diagnosticConfigsSelectionWidget->setEnabled(true); + m_ui->diagnosticConfigsSelectionWidget->refresh(m_customDiagnosticConfig); } - m_customDiagnosticConfig = diagnosticConfiguration(settings); - m_ui->diagnosticConfigsSelectionWidget->refresh(m_customDiagnosticConfig); connect(m_ui->globalOrCustom, static_cast(&QComboBox::currentIndexChanged), @@ -335,7 +338,12 @@ SelectableFilesDialog::SelectableFilesDialog(const ProjectInfo &projectInfo, connect(CppTools::codeModelSettings().data(), &CppTools::CppCodeModelSettings::changed, this, [=]() { - m_ui->diagnosticConfigsSelectionWidget->refresh(diagnosticConfiguration(settings)); + if (m_ui->globalOrCustom->currentIndex() == CustomSettings) { + m_ui->diagnosticConfigsSelectionWidget->refresh(m_customDiagnosticConfig); + } else { + m_ui->diagnosticConfigsSelectionWidget->refresh( + ClangToolsSettings::instance()->savedDiagnosticConfigId()); + } }); }