diff options
author | Eike Ziller <eike.ziller@qt.io> | 2021-01-20 17:39:04 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2021-01-22 09:37:12 +0000 |
commit | 8112a004329e1992df607e5d5e6a417ea4602a78 (patch) | |
tree | 9d91ee25ae047b6d4f7ab41dc6548c3c9b501a4c /src/plugins/cppeditor | |
parent | 8443fbe3d480c2cd6414e8daf18964623f34386f (diff) |
Cpp: Use new settings API
Avoid writing defaults to the settings.
Task-number: QTCREATORBUG-24430
Change-Id: I8e1d5a5b8ca21ef96a68a4d71a7d97d138bd186b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/cppeditor')
-rw-r--r-- | src/plugins/cppeditor/cppincludehierarchy.cpp | 6 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppinsertvirtualmethods.cpp | 56 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppquickfixsettings.cpp | 211 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppquickfixsettings.h | 8 |
4 files changed, 170 insertions, 111 deletions
diff --git a/src/plugins/cppeditor/cppincludehierarchy.cpp b/src/plugins/cppeditor/cppincludehierarchy.cpp index f3a038c50de..2a9e9b7cfee 100644 --- a/src/plugins/cppeditor/cppincludehierarchy.cpp +++ b/src/plugins/cppeditor/cppincludehierarchy.cpp @@ -447,16 +447,18 @@ void CppIncludeHierarchyWidget::perform() showIncludeHierarchy(); } +const bool kSyncDefault = false; + void CppIncludeHierarchyWidget::saveSettings(QSettings *settings, int position) { const QString key = QString("IncludeHierarchy.%1.SyncWithEditor").arg(position); - settings->setValue(key, m_toggleSync->isChecked()); + QtcSettings::setValueWithDefault(settings, key, m_toggleSync->isChecked(), kSyncDefault); } void CppIncludeHierarchyWidget::restoreSettings(QSettings *settings, int position) { const QString key = QString("IncludeHierarchy.%1.SyncWithEditor").arg(position); - m_toggleSync->setChecked(settings->value(key).toBool()); + m_toggleSync->setChecked(settings->value(key, kSyncDefault).toBool()); } void CppIncludeHierarchyWidget::onItemActivated(const QModelIndex &index) diff --git a/src/plugins/cppeditor/cppinsertvirtualmethods.cpp b/src/plugins/cppeditor/cppinsertvirtualmethods.cpp index 49da4a8a772..7b2c36145c9 100644 --- a/src/plugins/cppeditor/cppinsertvirtualmethods.cpp +++ b/src/plugins/cppeditor/cppinsertvirtualmethods.cpp @@ -297,6 +297,13 @@ QStringList sortedAndTrimmedStringListWithoutEmptyElements(const QStringList &li namespace CppEditor { namespace Internal { +const bool kInsertVirtualKeywordDefault = false; +const bool kHideReimplementedFunctionsDefault = false; +const bool kInsertOVerrideReplacementDefault = false; +const int kOverrideReplacementIndexDefault = 0; +const InsertVirtualMethodsDialog::ImplementationMode kImplementationModeDefault + = InsertVirtualMethodsDialog::ModeOnlyDeclarations; + class VirtualMethodsSettings { public: @@ -304,37 +311,50 @@ public: { QSettings *s = Core::ICore::settings(); s->beginGroup(group()); - insertVirtualKeyword = s->value(insertVirtualKeywordKey(), false).toBool(); - hideReimplementedFunctions = s->value(hideReimplementedFunctionsKey(), false).toBool(); - insertOverrideReplacement = s->value(insertOverrideReplacementKey(), false).toBool(); - overrideReplacementIndex = s->value(overrideReplacementIndexKey(), 0).toInt(); + insertVirtualKeyword = s->value(insertVirtualKeywordKey(), kInsertVirtualKeywordDefault) + .toBool(); + hideReimplementedFunctions + = s->value(hideReimplementedFunctionsKey(), kHideReimplementedFunctionsDefault).toBool(); + insertOverrideReplacement + = s->value(insertOverrideReplacementKey(), kInsertOVerrideReplacementDefault).toBool(); + overrideReplacementIndex + = s->value(overrideReplacementIndexKey(), kOverrideReplacementIndexDefault).toInt(); userAddedOverrideReplacements = s->value(userAddedOverrideReplacementsKey()).toStringList(); implementationMode = static_cast<InsertVirtualMethodsDialog::ImplementationMode>( - s->value(implementationModeKey(), 1).toInt()); + s->value(implementationModeKey(), int(kImplementationModeDefault)).toInt()); s->endGroup(); } void write() const { - QSettings *s = Core::ICore::settings(); + Utils::QtcSettings *s = Core::ICore::settings(); s->beginGroup(group()); - s->setValue(insertVirtualKeywordKey(), insertVirtualKeyword); - s->setValue(hideReimplementedFunctionsKey(), hideReimplementedFunctions); - s->setValue(insertOverrideReplacementKey(), insertOverrideReplacement); - s->setValue(overrideReplacementIndexKey(), overrideReplacementIndex); - s->setValue(userAddedOverrideReplacementsKey(), userAddedOverrideReplacements); - s->setValue(implementationModeKey(), implementationMode); + s->setValueWithDefault(insertVirtualKeywordKey(), + insertVirtualKeyword, + kInsertVirtualKeywordDefault); + s->setValueWithDefault(hideReimplementedFunctionsKey(), + hideReimplementedFunctions, + kHideReimplementedFunctionsDefault); + s->setValueWithDefault(insertOverrideReplacementKey(), + insertOverrideReplacement, + kInsertOVerrideReplacementDefault); + s->setValueWithDefault(overrideReplacementIndexKey(), + overrideReplacementIndex, + kOverrideReplacementIndexDefault); + s->setValueWithDefault(userAddedOverrideReplacementsKey(), userAddedOverrideReplacements); + s->setValueWithDefault(implementationModeKey(), + int(implementationMode), + int(kImplementationModeDefault)); s->endGroup(); } QString overrideReplacement; // internal QStringList userAddedOverrideReplacements; - InsertVirtualMethodsDialog::ImplementationMode implementationMode = - InsertVirtualMethodsDialog::ModeOnlyDeclarations; - int overrideReplacementIndex = 0; - bool insertVirtualKeyword = false; - bool hideReimplementedFunctions = false; - bool insertOverrideReplacement = false; + InsertVirtualMethodsDialog::ImplementationMode implementationMode = kImplementationModeDefault; + int overrideReplacementIndex = kOverrideReplacementIndexDefault; + bool insertVirtualKeyword = kInsertVirtualKeywordDefault; + bool hideReimplementedFunctions = kHideReimplementedFunctionsDefault; + bool insertOverrideReplacement = kInsertOVerrideReplacementDefault; private: using _ = QLatin1String; diff --git a/src/plugins/cppeditor/cppquickfixsettings.cpp b/src/plugins/cppeditor/cppquickfixsettings.cpp index a2ec232097c..6d016d6e203 100644 --- a/src/plugins/cppeditor/cppquickfixsettings.cpp +++ b/src/plugins/cppeditor/cppquickfixsettings.cpp @@ -25,8 +25,11 @@ #include "cppquickfixsettings.h" #include "cppeditorconstants.h" + #include <coreplugin/icore.h> #include <cpptools/cppcodestylesettings.h> +#include <utils/qtcsettings.h> + #include <QRegularExpression> namespace CppEditor { @@ -54,81 +57,66 @@ void CppQuickFixSettings::loadGlobalSettings() void CppQuickFixSettings::loadSettingsFrom(QSettings *s) { - s->beginGroup(QLatin1String(Constants::QUICK_FIX_SETTINGS_ID)); - getterOutsideClassFrom = s->value(QLatin1String( - Constants::QUICK_FIX_SETTING_GETTER_OUTSIDE_CLASS_FROM), - getterOutsideClassFrom) + CppQuickFixSettings def; + s->beginGroup(Constants::QUICK_FIX_SETTINGS_ID); + getterOutsideClassFrom = s->value(Constants::QUICK_FIX_SETTING_GETTER_OUTSIDE_CLASS_FROM, + def.getterOutsideClassFrom) .toInt(); - getterInCppFileFrom = s->value(QLatin1String( - Constants::QUICK_FIX_SETTING_GETTER_IN_CPP_FILE_FROM), - getterInCppFileFrom) + getterInCppFileFrom = s->value(Constants::QUICK_FIX_SETTING_GETTER_IN_CPP_FILE_FROM, + def.getterInCppFileFrom) .toInt(); - setterOutsideClassFrom = s->value(QLatin1String( - Constants::QUICK_FIX_SETTING_SETTER_OUTSIDE_CLASS_FROM), - setterOutsideClassFrom) + setterOutsideClassFrom = s->value(Constants::QUICK_FIX_SETTING_SETTER_OUTSIDE_CLASS_FROM, + def.setterOutsideClassFrom) .toInt(); - setterInCppFileFrom = s->value(QLatin1String( - Constants::QUICK_FIX_SETTING_SETTER_IN_CPP_FILE_FROM), - setterInCppFileFrom) + setterInCppFileFrom = s->value(Constants::QUICK_FIX_SETTING_SETTER_IN_CPP_FILE_FROM, + def.setterInCppFileFrom) .toInt(); - getterAttributes = s->value(QLatin1String(Constants::QUICK_FIX_SETTING_GETTER_ATTRIBUTES), - getterAttributes) - .toString(); - getterNameTemplate = s->value(QLatin1String(Constants::QUICK_FIX_SETTING_GETTER_NAME_TEMPLATE), - getterNameTemplate) + getterAttributes + = s->value(Constants::QUICK_FIX_SETTING_GETTER_ATTRIBUTES, def.getterAttributes).toString(); + getterNameTemplate = s->value(Constants::QUICK_FIX_SETTING_GETTER_NAME_TEMPLATE, + def.getterNameTemplate) .toString(); - setterNameTemplate = s->value(QLatin1String(Constants::QUICK_FIX_SETTING_SETTER_NAME_TEMPLATE), - setterNameTemplate) + setterNameTemplate = s->value(Constants::QUICK_FIX_SETTING_SETTER_NAME_TEMPLATE, + def.setterNameTemplate) .toString(); - setterParameterNameTemplate = s->value(QLatin1String( - Constants::QUICK_FIX_SETTING_SETTER_PARAMETER_NAME), - setterParameterNameTemplate) + setterParameterNameTemplate = s->value(Constants::QUICK_FIX_SETTING_SETTER_PARAMETER_NAME, + def.setterParameterNameTemplate) .toString(); - resetNameTemplate = s->value(QLatin1String(Constants::QUICK_FIX_SETTING_RESET_NAME_TEMPLATE), - resetNameTemplate) + resetNameTemplate = s->value(Constants::QUICK_FIX_SETTING_RESET_NAME_TEMPLATE, + def.resetNameTemplate) .toString(); - signalNameTemplate = s->value(QLatin1String(Constants::QUICK_FIX_SETTING_SIGNAL_NAME_TEMPLATE), - signalNameTemplate) + signalNameTemplate = s->value(Constants::QUICK_FIX_SETTING_SIGNAL_NAME_TEMPLATE, + def.signalNameTemplate) .toString(); - signalWithNewValue = s->value(QLatin1String(Constants::QUICK_FIX_SETTING_SIGNAL_WITH_NEW_VALUE), - signalWithNewValue) + signalWithNewValue = s->value(Constants::QUICK_FIX_SETTING_SIGNAL_WITH_NEW_VALUE, + def.signalWithNewValue) .toBool(); - setterAsSlot = s->value(QLatin1String(Constants::QUICK_FIX_SETTING_SETTER_AS_SLOT), setterAsSlot) - .toBool(); + setterAsSlot = s->value(Constants::QUICK_FIX_SETTING_SETTER_AS_SLOT, def.setterAsSlot).toBool(); cppFileNamespaceHandling = static_cast<MissingNamespaceHandling>( - s->value(QLatin1String(Constants::QUICK_FIX_SETTING_CPP_FILE_NAMESPACE_HANDLING), - static_cast<int>(cppFileNamespaceHandling)) + s->value(Constants::QUICK_FIX_SETTING_CPP_FILE_NAMESPACE_HANDLING, + static_cast<int>(def.cppFileNamespaceHandling)) .toInt()); - memberVariableNameTemplate - = s->value(QLatin1String(Constants::QUICK_FIX_SETTING_MEMBER_VARIABEL_NAME_TEMPLATE), - memberVariableNameTemplate) - .toString(); - valueTypes = s->value(QLatin1String(Constants::QUICK_FIX_SETTING_VALUE_TYPES), valueTypes) - .toStringList(); - int size = s->beginReadArray(QLatin1String(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATES)); + memberVariableNameTemplate = s->value(Constants::QUICK_FIX_SETTING_MEMBER_VARIABEL_NAME_TEMPLATE, + def.memberVariableNameTemplate) + .toString(); + valueTypes = s->value(Constants::QUICK_FIX_SETTING_VALUE_TYPES, def.valueTypes).toStringList(); + customTemplates = def.customTemplates; + int size = s->beginReadArray(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATES); if (size > 0) customTemplates.clear(); for (int i = 0; i < size; ++i) { s->setArrayIndex(i); CustomTemplate c; - c.types = s->value(QLatin1String(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_TYPES)) - .toStringList(); + c.types = s->value(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_TYPES).toStringList(); if (c.types.isEmpty()) continue; - c.equalComparison = s->value(QLatin1String( - Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_COMPARISON)) + c.equalComparison = s->value(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_COMPARISON) .toString(); - c.returnType = s->value(QLatin1String( - Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_RETURN_TYPE)) - .toString(); + c.returnType = s->value(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_RETURN_TYPE).toString(); c.returnExpression - = s->value( - QLatin1String(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_RETURN_EXPRESSION)) - .toString(); - c.assignment = s->value( - QLatin1String(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_ASSIGNMENT)) - .toString(); + = s->value(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_RETURN_EXPRESSION).toString(); + c.assignment = s->value(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_ASSIGNMENT).toString(); if (c.assignment.isEmpty() && c.returnType.isEmpty() && c.equalComparison.isEmpty()) continue; // nothing custom here @@ -140,45 +128,86 @@ void CppQuickFixSettings::loadSettingsFrom(QSettings *s) void CppQuickFixSettings::saveSettingsTo(QSettings *s) { - s->beginGroup(QLatin1String(Constants::QUICK_FIX_SETTINGS_ID)); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_GETTER_OUTSIDE_CLASS_FROM), - getterOutsideClassFrom); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_GETTER_IN_CPP_FILE_FROM), - getterInCppFileFrom); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_SETTER_OUTSIDE_CLASS_FROM), - setterOutsideClassFrom); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_SETTER_IN_CPP_FILE_FROM), - setterInCppFileFrom); - - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_GETTER_ATTRIBUTES), getterAttributes); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_GETTER_NAME_TEMPLATE), getterNameTemplate); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_SETTER_NAME_TEMPLATE), setterNameTemplate); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_RESET_NAME_TEMPLATE), resetNameTemplate); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_SIGNAL_NAME_TEMPLATE), signalNameTemplate); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_SIGNAL_WITH_NEW_VALUE), signalWithNewValue); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_CPP_FILE_NAMESPACE_HANDLING), - static_cast<int>(cppFileNamespaceHandling)); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_MEMBER_VARIABEL_NAME_TEMPLATE), - memberVariableNameTemplate); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_SETTER_PARAMETER_NAME), - setterParameterNameTemplate); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_SETTER_AS_SLOT), setterAsSlot); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_VALUE_TYPES), valueTypes); - s->beginWriteArray(QLatin1String(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATES)); - for (int i = 0; i < static_cast<int>(customTemplates.size()); ++i) { - const auto &c = customTemplates[i]; - s->setArrayIndex(i); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_TYPES), c.types); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_COMPARISON), - c.equalComparison); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_RETURN_TYPE), - c.returnType); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_RETURN_EXPRESSION), - c.returnExpression); - s->setValue(QLatin1String(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_ASSIGNMENT), - c.assignment); + using Utils::QtcSettings; + CppQuickFixSettings def; + s->beginGroup(Constants::QUICK_FIX_SETTINGS_ID); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_GETTER_OUTSIDE_CLASS_FROM, + getterOutsideClassFrom, + def.getterOutsideClassFrom); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_GETTER_IN_CPP_FILE_FROM, + getterInCppFileFrom, + def.getterInCppFileFrom); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_SETTER_OUTSIDE_CLASS_FROM, + setterOutsideClassFrom, + def.setterOutsideClassFrom); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_SETTER_IN_CPP_FILE_FROM, + setterInCppFileFrom, + def.setterInCppFileFrom); + + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_GETTER_ATTRIBUTES, + getterAttributes, + def.getterAttributes); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_GETTER_NAME_TEMPLATE, + getterNameTemplate, + def.getterNameTemplate); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_SETTER_NAME_TEMPLATE, + setterNameTemplate, + def.setterNameTemplate); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_RESET_NAME_TEMPLATE, + resetNameTemplate, + def.resetNameTemplate); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_SIGNAL_NAME_TEMPLATE, + signalNameTemplate, + def.signalNameTemplate); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_SIGNAL_WITH_NEW_VALUE, + signalWithNewValue, + def.signalWithNewValue); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_CPP_FILE_NAMESPACE_HANDLING, + int(cppFileNamespaceHandling), + int(def.cppFileNamespaceHandling)); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_MEMBER_VARIABEL_NAME_TEMPLATE, + memberVariableNameTemplate, + def.memberVariableNameTemplate); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_SETTER_PARAMETER_NAME, + setterParameterNameTemplate, + def.setterParameterNameTemplate); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_SETTER_AS_SLOT, + setterAsSlot, + def.setterAsSlot); + QtcSettings::setValueWithDefault(s, + Constants::QUICK_FIX_SETTING_VALUE_TYPES, + valueTypes, + def.valueTypes); + if (customTemplates == def.customTemplates) { + s->remove(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATES); + } else { + s->beginWriteArray(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATES); + for (int i = 0; i < static_cast<int>(customTemplates.size()); ++i) { + const auto &c = customTemplates[i]; + s->setArrayIndex(i); + s->setValue(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_TYPES, c.types); + s->setValue(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_COMPARISON, c.equalComparison); + s->setValue(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_RETURN_TYPE, c.returnType); + s->setValue(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_RETURN_EXPRESSION, + c.returnExpression); + s->setValue(Constants::QUICK_FIX_SETTING_CUSTOM_TEMPLATE_ASSIGNMENT, c.assignment); + } + s->endArray(); } - s->endArray(); s->endGroup(); } diff --git a/src/plugins/cppeditor/cppquickfixsettings.h b/src/plugins/cppeditor/cppquickfixsettings.h index 2b13f76de02..89d9f2a9f4b 100644 --- a/src/plugins/cppeditor/cppquickfixsettings.h +++ b/src/plugins/cppeditor/cppquickfixsettings.h @@ -48,6 +48,14 @@ public: } struct CustomTemplate { + bool operator==(const CustomTemplate &b) const + { + return types == b.types + && equalComparison == b.equalComparison + && returnExpression == b.returnExpression + && returnType == b.returnType + && assignment == b.assignment; + } QStringList types; QString equalComparison; QString returnExpression; |