summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodemodelsettingspage.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2017-01-12 18:01:12 +0100
committerNikolai Kosjar <nikolai.kosjar@qt.io>2017-01-16 10:17:50 +0000
commite4e65726614fa4e3ee02f25db755d959850441ea (patch)
treea76a4aab899eb313f25f0da8a1f3e89ede71b67b /src/plugins/cpptools/cppcodemodelsettingspage.cpp
parent4416eecc024e155438c7ed6399182dbff143bd0d (diff)
downloadqt-creator-e4e65726614fa4e3ee02f25db755d959850441ea.tar.gz
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 <david.schulz@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppcodemodelsettingspage.cpp')
-rw-r--r--src/plugins/cpptools/cppcodemodelsettingspage.cpp54
1 files changed, 26 insertions, 28 deletions
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 QSharedPointer<CppCodeModelSe
{
m_settings = s;
+ setupGeneralWidgets();
setupClangCodeModelWidgets();
- setupPchCheckBox();
- setupSkipIndexingFilesWidgets();
}
void CppCodeModelSettingsWidget::applyToSettings() const
{
bool changed = false;
+ changed |= applyGeneralWidgetsToSettings();
changed |= applyClangCodeModelWidgetsToSettings();
- changed |= applyPchCheckBoxToSettings();
- changed |= applySkipIndexingFilesWidgets();
if (changed)
m_settings->toSettings(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;
}