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 <nikolai.kosjar@qt.io>
This commit is contained in:
Ivan Donchevskii
2018-06-08 14:18:29 +02:00
parent 29dd67f45e
commit 14d585f105

View File

@@ -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<void (QComboBox::*)(int)>(&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());
}
});
}