diff options
author | Ivan Donchevskii <[email protected]> | 2018-05-04 15:58:41 +0200 |
---|---|---|
committer | Ivan Donchevskii <[email protected]> | 2018-05-14 07:02:53 +0000 |
commit | 3737b6a12468ef4edf3eadf531203914d081e622 (patch) | |
tree | b216522987a6a93c8587132ea31c88530125553f /src/plugins/clangcodemodel/clangprojectsettingswidget.cpp | |
parent | 6b70c27e3b5116bd27b17b007646836252d69225 (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.cpp | 50 |
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 ¤tConfigId) @@ -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 |