From e4e65726614fa4e3ee02f25db755d959850441ea Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Thu, 12 Jan 2017 18:01:12 +0100 Subject: CppTools: Allow interpreting ambiguous headers as C headers ...instead of C++ headers. For the Clang Code Model this results in using "-x c-header" instead of "-x c++-header". This introduces a new option in Options > C++ > "Code Model" to configure this. Change-Id: I8a0ce8fa6155f5ef58743ebc7f1d0b500fbf6599 Reviewed-by: David Schulz Reviewed-by: Leena Miettinen --- src/plugins/cpptools/cppcodemodelsettingspage.cpp | 54 +++++++++++------------ 1 file changed, 26 insertions(+), 28 deletions(-) (limited to 'src/plugins/cpptools/cppcodemodelsettingspage.cpp') diff --git a/src/plugins/cpptools/cppcodemodelsettingspage.cpp b/src/plugins/cpptools/cppcodemodelsettingspage.cpp index e1792ed0b7..e6af115aed 100644 --- a/src/plugins/cpptools/cppcodemodelsettingspage.cpp +++ b/src/plugins/cpptools/cppcodemodelsettingspage.cpp @@ -56,18 +56,16 @@ void CppCodeModelSettingsWidget::setSettings(const QSharedPointertoSettings(Core::ICore::settings()); @@ -88,16 +86,16 @@ void CppCodeModelSettingsWidget::setupClangCodeModelWidgets() m_ui->clangSettingsGroupBox->layout()->addWidget(m_clangDiagnosticConfigsWidget); } -void CppCodeModelSettingsWidget::setupPchCheckBox() const +void CppCodeModelSettingsWidget::setupGeneralWidgets() { - const bool ignorePch = m_settings->pchUsage() == CppCodeModelSettings::PchUse_None; - m_ui->ignorePCHCheckBox->setChecked(ignorePch); -} + m_ui->interpretAmbiguousHeadersAsCHeaders->setChecked( + m_settings->interpretAmbigiousHeadersAsCHeaders()); -void CppCodeModelSettingsWidget::setupSkipIndexingFilesWidgets() -{ m_ui->skipIndexingBigFilesCheckBox->setChecked(m_settings->skipIndexingBigFiles()); m_ui->bigFilesLimitSpinBox->setValue(m_settings->indexerFileSizeLimitInMb()); + + const bool ignorePch = m_settings->pchUsage() == CppCodeModelSettings::PchUse_None; + m_ui->ignorePCHCheckBox->setChecked(ignorePch); } bool CppCodeModelSettingsWidget::applyClangCodeModelWidgetsToSettings() const @@ -122,39 +120,39 @@ bool CppCodeModelSettingsWidget::applyClangCodeModelWidgetsToSettings() const return settingsChanged; } -bool CppCodeModelSettingsWidget::applyPchCheckBoxToSettings() const +bool CppCodeModelSettingsWidget::applyGeneralWidgetsToSettings() const { - const bool newIgnorePch = m_ui->ignorePCHCheckBox->isChecked(); - const bool previousIgnorePch = m_settings->pchUsage() == CppCodeModelSettings::PchUse_None; - - if (newIgnorePch != previousIgnorePch) { - const CppCodeModelSettings::PCHUsage pchUsage = m_ui->ignorePCHCheckBox->isChecked() - ? CppCodeModelSettings::PchUse_None - : CppCodeModelSettings::PchUse_BuildSystem; - m_settings->setPCHUsage(pchUsage); + bool settingsChanged = false; - return true; + const bool newInterpretAmbiguousHeaderAsCHeaders + = m_ui->interpretAmbiguousHeadersAsCHeaders->isChecked(); + if (m_settings->interpretAmbigiousHeadersAsCHeaders() + != newInterpretAmbiguousHeaderAsCHeaders) { + m_settings->setInterpretAmbigiousHeadersAsCHeaders(newInterpretAmbiguousHeaderAsCHeaders); + settingsChanged = true; } - return false; -} - -bool CppCodeModelSettingsWidget::applySkipIndexingFilesWidgets() const -{ - bool settingsChanged = false; - const bool newSkipIndexingBigFiles = m_ui->skipIndexingBigFilesCheckBox->isChecked(); if (m_settings->skipIndexingBigFiles() != newSkipIndexingBigFiles) { m_settings->setSkipIndexingBigFiles(newSkipIndexingBigFiles); settingsChanged = true; } - const int newFileSizeLimit = m_ui->bigFilesLimitSpinBox->value(); if (m_settings->indexerFileSizeLimitInMb() != newFileSizeLimit) { m_settings->setIndexerFileSizeLimitInMb(newFileSizeLimit); settingsChanged = true; } + const bool newIgnorePch = m_ui->ignorePCHCheckBox->isChecked(); + const bool previousIgnorePch = m_settings->pchUsage() == CppCodeModelSettings::PchUse_None; + if (newIgnorePch != previousIgnorePch) { + const CppCodeModelSettings::PCHUsage pchUsage = m_ui->ignorePCHCheckBox->isChecked() + ? CppCodeModelSettings::PchUse_None + : CppCodeModelSettings::PchUse_BuildSystem; + m_settings->setPCHUsage(pchUsage); + settingsChanged = true; + } + return settingsChanged; } -- cgit v1.2.1