From 18ac68adb3057882d0f664132d34d4337e86b05f Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Tue, 10 Dec 2013 14:32:09 +0100 Subject: [PATCH] C++: add header chooser to codemodel settings page. Change-Id: I2da9c4b382afcad2faad1817af266381a2f02b2a Reviewed-by: Nikolai Kosjar --- src/plugins/cpptools/cppcodemodelsettings.cpp | 21 +++++++++++++++++++ src/plugins/cpptools/cppcodemodelsettings.h | 4 ++-- .../cpptools/cppcodemodelsettingspage.cpp | 7 +++++-- .../cpptools/cppcodemodelsettingspage.ui | 10 +++++++++ 4 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/plugins/cpptools/cppcodemodelsettings.cpp b/src/plugins/cpptools/cppcodemodelsettings.cpp index d319f5c5dbe..ae1f319111b 100644 --- a/src/plugins/cpptools/cppcodemodelsettings.cpp +++ b/src/plugins/cpptools/cppcodemodelsettings.cpp @@ -34,6 +34,9 @@ using namespace CppTools; using namespace CppTools::Internal; +static QLatin1String cppHeaderMimeType(Constants::CPP_HEADER_MIMETYPE); +static QLatin1String cHeaderMimeType(Constants::C_HEADER_MIMETYPE); + void CppCodeModelSettings::fromSettings(QSettings *s) { s->beginGroup(QLatin1String(Constants::CPPTOOLS_SETTINGSGROUP)); @@ -42,6 +45,7 @@ void CppCodeModelSettings::fromSettings(QSettings *s) setIdForMimeType(supporters, QLatin1String(Constants::CPP_SOURCE_MIMETYPE)); setIdForMimeType(supporters, QLatin1String(Constants::OBJECTIVE_C_SOURCE_MIMETYPE)); setIdForMimeType(supporters, QLatin1String(Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)); + setIdForMimeType(supporters, QLatin1String(Constants::CPP_HEADER_MIMETYPE)); QVariant v = s->value(QLatin1String(Constants::CPPTOOLS_MODEL_MANAGER_PCH_USAGE), PchUse_None); setPCHUsage(static_cast(v.toInt())); s->endGroup(); @@ -65,6 +69,23 @@ void CppCodeModelSettings::setModelManagerSupports(const QListdisplayName()] = supporter->id(); } +QString CppCodeModelSettings::modelManagerSupportId(const QString &mimeType) const +{ + if (mimeType == cHeaderMimeType) + return m_modelManagerSupportByMimeType.value(cppHeaderMimeType); + else + return m_modelManagerSupportByMimeType.value(mimeType); +} + +void CppCodeModelSettings::setModelManagerSupportId(const QString &mimeType, + const QString &supporter) +{ + if (mimeType == cHeaderMimeType) + m_modelManagerSupportByMimeType.insert(cppHeaderMimeType, supporter); + else + m_modelManagerSupportByMimeType.insert(mimeType, supporter); +} + void CppCodeModelSettings::setIdForMimeType(const QVariant &var, const QString &mimeType) { QHash mimeToId = var.toHash(); diff --git a/src/plugins/cpptools/cppcodemodelsettings.h b/src/plugins/cpptools/cppcodemodelsettings.h index d1acc8331af..84939905f59 100644 --- a/src/plugins/cpptools/cppcodemodelsettings.h +++ b/src/plugins/cpptools/cppcodemodelsettings.h @@ -57,8 +57,8 @@ public: void setModelManagerSupports(const QList &supporters); - QString &modelManagerSupportId(const QString &mimeType) - { return m_modelManagerSupportByMimeType[mimeType]; } + QString modelManagerSupportId(const QString &mimeType) const; + void setModelManagerSupportId(const QString &mimeType, const QString &supporter); const QHash &availableModelManagerSupportersByName() const { return m_availableModelManagerSupportersByName; } diff --git a/src/plugins/cpptools/cppcodemodelsettingspage.cpp b/src/plugins/cpptools/cppcodemodelsettingspage.cpp index 3a5b41224cb..ffacb11e5f3 100644 --- a/src/plugins/cpptools/cppcodemodelsettingspage.cpp +++ b/src/plugins/cpptools/cppcodemodelsettingspage.cpp @@ -60,6 +60,7 @@ void CppCodeModelSettingsWidget::setSettings(const QSharedPointercppChooser, QLatin1String(Constants::CPP_SOURCE_MIMETYPE)); applyToWidget(m_ui->objcChooser, QLatin1String(Constants::OBJECTIVE_C_SOURCE_MIMETYPE)); applyToWidget(m_ui->objcppChooser, QLatin1String(Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)); + applyToWidget(m_ui->hChooser, QLatin1String(Constants::C_HEADER_MIMETYPE)); m_ui->ignorePCHCheckBox->setChecked(s->pchUsage() == CppCodeModelSettings::PchUse_None); } @@ -88,6 +89,8 @@ void CppCodeModelSettingsWidget::applyToSettings() const QLatin1String(Constants::OBJECTIVE_C_SOURCE_MIMETYPE)); changed |= applyToSettings(m_ui->objcppChooser, QLatin1String(Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)); + changed |= applyToSettings(m_ui->hChooser, + QLatin1String(Constants::C_HEADER_MIMETYPE)); if (m_ui->ignorePCHCheckBox->isChecked() != (m_settings->pchUsage() == CppCodeModelSettings::PchUse_None)) { @@ -104,11 +107,11 @@ void CppCodeModelSettingsWidget::applyToSettings() const bool CppCodeModelSettingsWidget::applyToSettings(QComboBox *chooser, const QString &mimeType) const { QString newId = chooser->itemData(chooser->currentIndex()).toString(); - QString ¤tId = m_settings->modelManagerSupportId(mimeType); + QString currentId = m_settings->modelManagerSupportId(mimeType); if (newId == currentId) return false; - currentId = newId; + m_settings->setModelManagerSupportId(mimeType, newId); return true; } diff --git a/src/plugins/cpptools/cppcodemodelsettingspage.ui b/src/plugins/cpptools/cppcodemodelsettingspage.ui index 310c01d966e..1109649ceb6 100644 --- a/src/plugins/cpptools/cppcodemodelsettingspage.ui +++ b/src/plugins/cpptools/cppcodemodelsettingspage.ui @@ -74,6 +74,16 @@ + + + + Headers + + + + + +