aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangcodemodel/clangprojectsettingswidget.cpp
diff options
context:
space:
mode:
authorIvan Donchevskii <[email protected]>2018-05-04 15:58:41 +0200
committerIvan Donchevskii <[email protected]>2018-05-14 07:02:53 +0000
commit3737b6a12468ef4edf3eadf531203914d081e622 (patch)
treeb216522987a6a93c8587132ea31c88530125553f /src/plugins/clangcodemodel/clangprojectsettingswidget.cpp
parent6b70c27e3b5116bd27b17b007646836252d69225 (diff)
CppTools: Split diagnostic settings and selection
Now selection is only consists of combobox and a "Manage" button to diagnostic configurations. Diagnostic configurations are moved to the modal dialog which is shown by clicking the mentioned "Manage" button. Change-Id: I607fb923c97e8730448548708f3aaf32ce1983c8 Reviewed-by: Nikolai Kosjar <[email protected]>
Diffstat (limited to 'src/plugins/clangcodemodel/clangprojectsettingswidget.cpp')
-rw-r--r--src/plugins/clangcodemodel/clangprojectsettingswidget.cpp50
1 files changed, 12 insertions, 38 deletions
diff --git a/src/plugins/clangcodemodel/clangprojectsettingswidget.cpp b/src/plugins/clangcodemodel/clangprojectsettingswidget.cpp
index fcee2b1dd85..6b25d99ecf6 100644
--- a/src/plugins/clangcodemodel/clangprojectsettingswidget.cpp
+++ b/src/plugins/clangcodemodel/clangprojectsettingswidget.cpp
@@ -59,19 +59,14 @@ ClangProjectSettingsWidget::ClangProjectSettingsWidget(ProjectExplorer::Project
using namespace CppTools;
- m_diagnosticConfigWidget = new ClangDiagnosticConfigsWidget;
- refreshDiagnosticConfigsWidgetFromSettings();
-
m_ui.generalConfigurationGroupBox->setVisible(Utils::HostOsInfo::isWindowsHost());
m_ui.clangSettings->setCurrentIndex(m_projectSettings.useGlobalConfig() ? 0 : 1);
- syncOtherWidgetsToComboBox();
- connectToCppCodeModelSettingsChanged();
- connect(m_diagnosticConfigWidget.data(), &ClangDiagnosticConfigsWidget::currentConfigChanged,
+ connect(m_ui.clangDiagnosticConfigsSelectionWidget,
+ &ClangDiagnosticConfigsSelectionWidget::currentConfigChanged,
this, &ClangProjectSettingsWidget::onCurrentWarningConfigChanged);
- connect(m_diagnosticConfigWidget.data(), &ClangDiagnosticConfigsWidget::customConfigsChanged,
- this, &ClangProjectSettingsWidget::onCustomWarningConfigsChanged);
+
connect(m_ui.delayedTemplateParse, &QCheckBox::toggled,
this, &ClangProjectSettingsWidget::onDelayedTemplateParseClicked);
connect(m_ui.clangSettings,
@@ -80,7 +75,12 @@ ClangProjectSettingsWidget::ClangProjectSettingsWidget(ProjectExplorer::Project
connect(project, &ProjectExplorer::Project::aboutToSaveSettings,
this, &ClangProjectSettingsWidget::onAboutToSaveProjectSettings);
- m_ui.diagnosticConfigurationGroupBox->layout()->addWidget(m_diagnosticConfigWidget);
+ connect(CppTools::codeModelSettings().data(), &CppTools::CppCodeModelSettings::changed,
+ this, &ClangProjectSettingsWidget::syncOtherWidgetsToComboBox);
+
+ connectToClangDiagnosticConfigsDialog(m_ui.manageButton);
+
+ syncOtherWidgetsToComboBox();
}
void ClangProjectSettingsWidget::onCurrentWarningConfigChanged(const Core::Id &currentConfigId)
@@ -91,18 +91,6 @@ void ClangProjectSettingsWidget::onCurrentWarningConfigChanged(const Core::Id &c
m_projectSettings.setWarningConfigId(currentConfigId);
}
-void ClangProjectSettingsWidget::onCustomWarningConfigsChanged(
- const CppTools::ClangDiagnosticConfigs &customConfigs)
-{
- disconnectFromCppCodeModelSettingsChanged();
-
- const QSharedPointer<CppTools::CppCodeModelSettings> codeModelSettings
- = CppTools::codeModelSettings();
- codeModelSettings->setClangCustomDiagnosticConfigs(customConfigs);
-
- connectToCppCodeModelSettingsChanged();
-}
-
void ClangProjectSettingsWidget::onDelayedTemplateParseClicked(bool checked)
{
// Don't save it when we reset the global config in code
@@ -137,29 +125,15 @@ void ClangProjectSettingsWidget::syncOtherWidgetsToComboBox()
const bool isCustom = !m_projectSettings.useGlobalConfig();
m_ui.generalConfigurationGroupBox->setEnabled(isCustom);
- m_ui.diagnosticConfigurationGroupBox->setEnabled(isCustom);
+ m_ui.clangDiagnosticsLabel->setEnabled(isCustom);
+ m_ui.clangDiagnosticConfigsSelectionWidget->setEnabled(isCustom);
refreshDiagnosticConfigsWidgetFromSettings();
}
void ClangProjectSettingsWidget::refreshDiagnosticConfigsWidgetFromSettings()
{
- CppTools::ClangDiagnosticConfigsModel configsModel(
- CppTools::codeModelSettings()->clangCustomDiagnosticConfigs());
- m_diagnosticConfigWidget->refresh(configsModel,
- configIdForProject(m_projectSettings));
-}
-
-void ClangProjectSettingsWidget::connectToCppCodeModelSettingsChanged()
-{
- connect(CppTools::codeModelSettings().data(), &CppTools::CppCodeModelSettings::changed,
- this, &ClangProjectSettingsWidget::refreshDiagnosticConfigsWidgetFromSettings);
-}
-
-void ClangProjectSettingsWidget::disconnectFromCppCodeModelSettingsChanged()
-{
- disconnect(CppTools::codeModelSettings().data(), &CppTools::CppCodeModelSettings::changed,
- this, &ClangProjectSettingsWidget::refreshDiagnosticConfigsWidgetFromSettings);
+ m_ui.clangDiagnosticConfigsSelectionWidget->refresh(configIdForProject(m_projectSettings));
}
} // namespace Internal