diff --git a/src/plugins/cpptools/cppcodemodelsettings.cpp b/src/plugins/cpptools/cppcodemodelsettings.cpp index d319f5c5dbe33dcb2cae4db0d70322161dfb23ae..ae1f319111bb2b96b1616c137824dbee8731826f 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<PCHUsage>(v.toInt())); s->endGroup(); @@ -65,6 +69,23 @@ void CppCodeModelSettings::setModelManagerSupports(const QList<ModelManagerSuppo m_availableModelManagerSupportersByName[supporter->displayName()] = 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<QString, QVariant> mimeToId = var.toHash(); diff --git a/src/plugins/cpptools/cppcodemodelsettings.h b/src/plugins/cpptools/cppcodemodelsettings.h index d1acc8331af86502bea3b83310368011bbec6618..84939905f592984dfdc9450d5b32ac9416a2b181 100644 --- a/src/plugins/cpptools/cppcodemodelsettings.h +++ b/src/plugins/cpptools/cppcodemodelsettings.h @@ -57,8 +57,8 @@ public: void setModelManagerSupports(const QList<ModelManagerSupport *> &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<QString, QString> &availableModelManagerSupportersByName() const { return m_availableModelManagerSupportersByName; } diff --git a/src/plugins/cpptools/cppcodemodelsettingspage.cpp b/src/plugins/cpptools/cppcodemodelsettingspage.cpp index 3a5b41224cbe0ff12e151b34bcd1d598d2a9eb10..ffacb11e5f3727202a1b5b341ab90cabeef12799 100644 --- a/src/plugins/cpptools/cppcodemodelsettingspage.cpp +++ b/src/plugins/cpptools/cppcodemodelsettingspage.cpp @@ -60,6 +60,7 @@ void CppCodeModelSettingsWidget::setSettings(const QSharedPointer<CppCodeModelSe applyToWidget(m_ui->cppChooser, 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 310c01d966ebc8a8af0217390556be5edc0d61c0..1109649ceb6767e8a4db5dcbf07e0fed4fbb1c10 100644 --- a/src/plugins/cpptools/cppcodemodelsettingspage.ui +++ b/src/plugins/cpptools/cppcodemodelsettingspage.ui @@ -74,6 +74,16 @@ <item row="3" column="1"> <widget class="QComboBox" name="objcppChooser"/> </item> + <item row="4" column="0"> + <widget class="QLabel" name="hLabel"> + <property name="text"> + <string>Headers</string> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="QComboBox" name="hChooser"/> + </item> </layout> </widget> </item>