diff --git a/src/plugins/cppeditor/cppeditorconstants.h b/src/plugins/cppeditor/cppeditorconstants.h index 1d4c0cc18b4..39551833275 100644 --- a/src/plugins/cppeditor/cppeditorconstants.h +++ b/src/plugins/cppeditor/cppeditorconstants.h @@ -38,16 +38,17 @@ const char QUICK_FIX_SETTING_GETTER_IN_CPP_FILE_FROM[] = "GettersInCppFileFrom"; const char QUICK_FIX_SETTING_SETTER_OUTSIDE_CLASS_FROM[] = "SettersOutsideClassFrom"; const char QUICK_FIX_SETTING_SETTER_IN_CPP_FILE_FROM[] = "SettersInCppFileFrom"; const char QUICK_FIX_SETTING_GETTER_ATTRIBUTES[] = "GetterAttributes"; -const char QUICK_FIX_SETTING_GETTER_NAME_TEMPLATE[] = "GetterNameTemplate"; -const char QUICK_FIX_SETTING_SETTER_NAME_TEMPLATE[] = "SetterNameTemplate"; -const char QUICK_FIX_SETTING_SIGNAL_NAME_TEMPLATE[] = "SignalNameTemplate"; -const char QUICK_FIX_SETTING_RESET_NAME_TEMPLATE[] = "ResetNameTemplate"; +const char QUICK_FIX_SETTING_GETTER_NAME_TEMPLATE[] = "GetterNameTemplateV2"; +const char QUICK_FIX_SETTING_SETTER_NAME_TEMPLATE[] = "SetterNameTemplateV2"; +const char QUICK_FIX_SETTING_SIGNAL_NAME_TEMPLATE[] = "SignalNameTemplateV2"; +const char QUICK_FIX_SETTING_RESET_NAME_TEMPLATE[] = "ResetNameTemplateV2"; const char QUICK_FIX_SETTING_SIGNAL_WITH_NEW_VALUE[] = "SignalWithNewValue"; const char QUICK_FIX_SETTING_SETTER_AS_SLOT[] = "SetterAsSlot"; -const char QUICK_FIX_SETTING_SETTER_PARAMETER_NAME[] = "SetterParameterName"; +const char QUICK_FIX_SETTING_SETTER_PARAMETER_NAME[] = "SetterParameterNameV2"; const char QUICK_FIX_SETTING_CPP_FILE_NAMESPACE_HANDLING[] = "CppFileNamespaceHandling"; const char QUICK_FIX_SETTING_USE_AUTO[] = "UseAutoInAssignToVar"; -const char QUICK_FIX_SETTING_MEMBER_VARIABEL_NAME_TEMPLATE[] = "MemberVariableNameTemplate"; +const char QUICK_FIX_SETTING_MEMBER_VARIABLE_NAME_TEMPLATE[] = "MemberVariableNameTemplateV2"; +const char QUICK_FIX_SETTING_REVERSE_MEMBER_VARIABLE_NAME_TEMPLATE[] = "ReverseMemberVariableNameTemplate"; const char QUICK_FIX_SETTING_VALUE_TYPES[] = "ValueTypes"; const char QUICK_FIX_SETTING_RETURN_BY_CONST_REF[] = "ReturnNonValueTypesByConstRef"; const char QUICK_FIX_SETTING_CUSTOM_TEMPLATES[] = "CustomTemplate"; diff --git a/src/plugins/cppeditor/quickfixes/cppcodegenerationquickfixes.cpp b/src/plugins/cppeditor/quickfixes/cppcodegenerationquickfixes.cpp index 6b54a5e9e63..810d6495a88 100644 --- a/src/plugins/cppeditor/quickfixes/cppcodegenerationquickfixes.cpp +++ b/src/plugins/cppeditor/quickfixes/cppcodegenerationquickfixes.cpp @@ -131,15 +131,11 @@ static QString memberBaseName(const QString &name) }; QString baseName = name; - CppQuickFixSettings *settings = CppQuickFixProjectsSettings::getQuickFixSettings( + const CppQuickFixSettings * const settings = CppQuickFixProjectsSettings::getQuickFixSettings( ProjectExplorer::ProjectTree::currentProject()); - const QString &nameTemplate = settings->memberVariableNameTemplate; - const QString prefix = nameTemplate.left(nameTemplate.indexOf('<')); - const QString postfix = nameTemplate.mid(nameTemplate.lastIndexOf('>') + 1); - if (name.startsWith(prefix) && name.endsWith(postfix)) { - const QString base = name.mid(prefix.length(), name.length() - postfix.length()); - if (validName(base)) - return base; + if (!settings->nameFromMemberVariableTemplate.isEmpty()) { + return CppQuickFixSettings::replaceNamePlaceholders( + settings->nameFromMemberVariableTemplate, name); } // Remove leading and trailing "_" @@ -2863,8 +2859,7 @@ private slots: QuickFixSettings s; s->cppFileNamespaceHandling = CppQuickFixSettings::MissingNamespaceHandling::CreateMissing; - s->setterParameterNameTemplate = "value"; - s->getterNameTemplate = "get"; + s->setterParameterNameTemplate = "\"value\""; s->setterInCppFileFrom = 1; s->getterInCppFileFrom = 1; GenerateGetterSetter factory; @@ -2986,7 +2981,7 @@ private slots: QuickFixSettings s; s->cppFileNamespaceHandling = CppQuickFixSettings::MissingNamespaceHandling::AddUsingDirective; - s->setterParameterNameTemplate = "value"; + s->setterParameterNameTemplate = "\"value\""; s->setterInCppFileFrom = 1; if (std::strstr(QTest::currentDataTag(), "unnamed nested") != nullptr) @@ -3118,7 +3113,7 @@ private slots: QuickFixSettings s; s->cppFileNamespaceHandling = CppQuickFixSettings::MissingNamespaceHandling::RewriteType; - s->setterParameterNameTemplate = "value"; + s->setterParameterNameTemplate = "\"value\""; s->setterInCppFileFrom = 1; if (std::strstr(QTest::currentDataTag(), "unnamed nested") != nullptr) @@ -3306,12 +3301,20 @@ private slots: QuickFixSettings s; s->setterInCppFileFrom = 0; s->getterInCppFileFrom = 0; - s->setterNameTemplate = "Seet_"; - s->getterNameTemplate = "give_me_"; - s->signalNameTemplate = "newValue"; - s->setterParameterNameTemplate = "New_"; - s->resetNameTemplate = "set__toDefault"; - s->memberVariableNameTemplate = "mem_"; + s->setterNameTemplate = R"js("Seet_" + name[0].toUpperCase() + name.slice(1))js"; + s->getterNameTemplate = R"js("give_me_" + name.replace(/([A-Z])/g, + function(v) { return "_" + v.toLowerCase(); }))js"; + s->signalNameTemplate = R"js("new" + name[0].toUpperCase() + + name.slice(1).replace(/_([a-z])/g, function(v) { return v.slice(1).toUpperCase(); }) + + "Value")js"; + s->setterParameterNameTemplate = R"js("New_" + name[0].toUpperCase() + + name.slice(1).replace(/([A-Z])/g, + "_" + "$1").replace(/(_[a-z])/g, function(v) { return v.toUpperCase(); }))js"; + s->resetNameTemplate = R"js("set_" + name.replace(/_([a-z])/g, + function(v) { return v.slice(1).toUpperCase(); }) + "_toDefault")js"; + s->memberVariableNameTemplate = R"js("mem_" + name)js"; + if (QByteArray(QTest::currentDataTag()) == "create methods with given member variable") + s->nameFromMemberVariableTemplate = R"js(name.slice(4))js"; if (operation == 0) { InsertQtPropertyMembers factory; QuickFixOperationTest(testDocuments, &factory, ProjectExplorer::HeaderPaths(), operation); @@ -3572,7 +3575,6 @@ private slots: QuickFixSettings s; s->setterInCppFileFrom = 0; s->getterInCppFileFrom = 0; - s->getterNameTemplate = "get"; s->valueTypes << "Value"; s->returnByConstRef = true; @@ -3644,7 +3646,6 @@ void Foo::setBar(const custom &newBar) QuickFixSettings s; s->cppFileNamespaceHandling = CppQuickFixSettings::MissingNamespaceHandling::AddUsingDirective; - s->getterNameTemplate = "get"; s->getterInCppFileFrom = 1; s->signalWithNewValue = true; CppQuickFixSettings::CustomTemplate t; @@ -3684,7 +3685,7 @@ void Foo::setBar(const custom &newBar) testDocuments << CppTestDocument::create("file.h", original, expected); QuickFixSettings s; - s->setterParameterNameTemplate = ""; + s->setterParameterNameTemplate = "name"; s->setterInCppFileFrom = 0; GenerateGetterSetter factory; @@ -4023,7 +4024,8 @@ void Foo::setBar(const custom &newBar) QFETCH(QByteArray, expected); QuickFixSettings s; - s->setterParameterNameTemplate = ""; + s->getterNameTemplate = "name"; + s->setterParameterNameTemplate = "name"; s->getterInCppFileFrom = 1; s->setterInCppFileFrom = 1; @@ -4069,7 +4071,6 @@ void Foo::setBar(const custom &newBar) QuickFixSettings s; s->getterInCppFileFrom = 1; - s->getterNameTemplate = "get"; GenerateGetterSetter factory; QuickFixOperationTest(testDocuments, &factory, ProjectExplorer::HeaderPaths(), 1); } @@ -4110,7 +4111,7 @@ void Foo::setBar(const custom &newBar) testDocuments << CppTestDocument::create("file.cpp", original, expected); s->setterInCppFileFrom = 1; - s->setterParameterNameTemplate = "value"; + s->setterParameterNameTemplate = "\"value\""; GenerateGetterSetter factory; QuickFixOperationTest(testDocuments, &factory, ProjectExplorer::HeaderPaths(), 0); @@ -4123,7 +4124,8 @@ void Foo::setBar(const custom &newBar) QByteArray expected; QuickFixSettings s; s->setterInCppFileFrom = 1; - s->setterParameterNameTemplate = "value"; + s->getterNameTemplate = "name"; + s->setterParameterNameTemplate = "\"value\""; // Header File original = R"( @@ -4213,8 +4215,7 @@ void Foo::setBar(const custom &newBar) QuickFixSettings s; s->setterOutsideClassFrom = 1; s->getterOutsideClassFrom = 1; - s->setterParameterNameTemplate = "value"; - s->getterNameTemplate = "get"; + s->setterParameterNameTemplate = "\"value\""; GenerateGetterSetter factory; QuickFixOperationTest(testDocuments, &factory, ProjectExplorer::HeaderPaths(), 4); @@ -4251,7 +4252,7 @@ void Foo::setBar(const custom &newBar) QuickFixSettings s; s->setterOutsideClassFrom = 1; - s->setterParameterNameTemplate = "value"; + s->setterParameterNameTemplate = "\"value\""; GenerateGetterSetter factory; QuickFixOperationTest(testDocuments, &factory, ProjectExplorer::HeaderPaths(), 0); @@ -4288,7 +4289,6 @@ void Foo::setBar(const custom &newBar) QuickFixSettings s; s->getterOutsideClassFrom = 0; s->getterInCppFileFrom = 0; - s->getterNameTemplate = "get"; s->returnByConstRef = true; GenerateGetterSetter factory; @@ -4448,8 +4448,7 @@ private slots: QFETCH(QByteArray, expected); QuickFixSettings s; - s->getterNameTemplate = "get"; - s->setterParameterNameTemplate = "value"; + s->setterParameterNameTemplate = "\"value\""; s->setterOutsideClassFrom = 1; s->getterOutsideClassFrom = 1; s->returnByConstRef = true; @@ -4613,7 +4612,7 @@ private slots: QuickFixSettings s; s->setterAsSlot = true; s->setterInCppFileFrom = 0; - s->setterParameterNameTemplate = ""; + s->setterParameterNameTemplate = "name"; s->signalWithNewValue = true; InsertQtPropertyMembers factory; diff --git a/src/plugins/cppeditor/quickfixes/cppquickfixsettings.cpp b/src/plugins/cppeditor/quickfixes/cppquickfixsettings.cpp index e08de44675f..a523b7e8680 100644 --- a/src/plugins/cppeditor/quickfixes/cppquickfixsettings.cpp +++ b/src/plugins/cppeditor/quickfixes/cppquickfixsettings.cpp @@ -7,6 +7,7 @@ #include "../cppeditorconstants.h" #include +#include #include @@ -25,17 +26,7 @@ CppQuickFixSettings::CppQuickFixSettings(bool loadGlobalSettings) void CppQuickFixSettings::loadGlobalSettings() { - // TODO remove the conversion of the old setting preferGetterNameWithoutGetPrefix of the - // CppCodeStyleSettings in 4.16 (also remove the member preferGetterNameWithoutGetPrefix) - getterNameTemplate = "__dummy"; loadSettingsFrom(Core::ICore::settings()); - if (getterNameTemplate == "__dummy") { - // there was no saved property for getterNameTemplate - if (CppCodeStyleSettings::currentGlobalCodeStyle().preferGetterNameWithoutGetPrefix) - getterNameTemplate = ""; - else - getterNameTemplate = "get"; - } } void CppQuickFixSettings::loadSettingsFrom(QtcSettings *s) @@ -81,9 +72,13 @@ void CppQuickFixSettings::loadSettingsFrom(QtcSettings *s) .toInt()); useAuto = s->value(Constants::QUICK_FIX_SETTING_USE_AUTO, def.useAuto).toBool(); - memberVariableNameTemplate = s->value(Constants::QUICK_FIX_SETTING_MEMBER_VARIABEL_NAME_TEMPLATE, + memberVariableNameTemplate = s->value(Constants::QUICK_FIX_SETTING_MEMBER_VARIABLE_NAME_TEMPLATE, def.memberVariableNameTemplate) .toString(); + nameFromMemberVariableTemplate + = s->value(Constants::QUICK_FIX_SETTING_REVERSE_MEMBER_VARIABLE_NAME_TEMPLATE, + def.nameFromMemberVariableTemplate) + .toString(); valueTypes = s->value(Constants::QUICK_FIX_SETTING_VALUE_TYPES, def.valueTypes).toStringList(); returnByConstRef = s->value(Constants::QUICK_FIX_SETTING_RETURN_BY_CONST_REF, def.returnByConstRef).toBool(); @@ -151,9 +146,12 @@ void CppQuickFixSettings::saveSettingsTo(QtcSettings *s) s->setValueWithDefault(Constants::QUICK_FIX_SETTING_CPP_FILE_NAMESPACE_HANDLING, int(cppFileNamespaceHandling), int(def.cppFileNamespaceHandling)); - s->setValueWithDefault(Constants::QUICK_FIX_SETTING_MEMBER_VARIABEL_NAME_TEMPLATE, + s->setValueWithDefault(Constants::QUICK_FIX_SETTING_MEMBER_VARIABLE_NAME_TEMPLATE, memberVariableNameTemplate, def.memberVariableNameTemplate); + s->setValueWithDefault(Constants::QUICK_FIX_SETTING_REVERSE_MEMBER_VARIABLE_NAME_TEMPLATE, + nameFromMemberVariableTemplate, + def.nameFromMemberVariableTemplate); s->setValueWithDefault(Constants::QUICK_FIX_SETTING_SETTER_PARAMETER_NAME, setterParameterNameTemplate, def.setterParameterNameTemplate); @@ -224,84 +222,16 @@ void CppQuickFixSettings::setDefaultSettings() customTemplates.push_back(unique_ptr); } -QString toUpperCamelCase(const QString &s) -{ - auto parts = s.split('_'); - if (parts.size() == 1) - return s; - - QString camel; - camel.reserve(s.length() - parts.size() + 1); - for (const auto &part : parts) { - camel += part[0].toUpper(); - camel += part.mid(1); - } - return camel; -} - -QString toSnakeCase(const QString &s, bool upperSnakeCase) -{ - QString snake; - snake.reserve(s.length() + 5); - if (upperSnakeCase) - snake += s[0].toUpper(); - else - snake += s[0].toLower(); - - for (int i = 1; i < s.length(); ++i) { - if (s[i].isUpper() && s[i - 1].isLower()) { - snake += '_'; - if (upperSnakeCase) - snake += s[i].toUpper(); - else - snake += s[i].toLower(); - - } else { - if (s[i - 1] == '_') { - if (upperSnakeCase) - snake += s[i].toUpper(); - else - snake += s[i].toLower(); - } else { - snake += s[i]; - } - } - } - return snake; -} - QString CppQuickFixSettings::replaceNamePlaceholders(const QString &nameTemplate, const QString &name) { - const int start = nameTemplate.indexOf("<"); - const int end = nameTemplate.indexOf(">"); - if (start < 0 || end < 0) - return nameTemplate; - - const auto before = nameTemplate.left(start); - const auto after = nameTemplate.right(nameTemplate.length() - end - 1); - if (name.isEmpty()) - return before + after; - - // const auto charBefore = start >= 1 ? nameTemplate.at(start - 1) : QChar{}; - const auto nameType = nameTemplate.mid(start + 1, end - start - 1); - if (nameType == "name") { - return before + name + after; - } else if (nameType == "Name") { - return before + name.at(0).toUpper() + name.mid(1) + after; - } else if (nameType == "camel") { - auto camel = toUpperCamelCase(name); - camel.data()[0] = camel.data()[0].toLower(); - return before + camel + after; - } else if (nameType == "Camel") { - return before + toUpperCamelCase(name) + after; - } else if (nameType == "snake") { - return before + toSnakeCase(name, false) + after; - } else if (nameType == "Snake") { - return before + toSnakeCase(name, true) + after; - } else { - return "templateHasErrors"; - } + Core::JsExpander expander; + QString jsError; + const auto jsExpr = QString("(function(name) { return %1; })(\"%2\")").arg(nameTemplate, name); + const QString jsRes = expander.evaluate(jsExpr, &jsError); + if (!jsError.isEmpty()) + return jsError; // TODO: Use Utils::Result? + return jsRes; } auto removeAndExtractTemplate(QString type) diff --git a/src/plugins/cppeditor/quickfixes/cppquickfixsettings.h b/src/plugins/cppeditor/quickfixes/cppquickfixsettings.h index d0335162768..2aae89be771 100644 --- a/src/plugins/cppeditor/quickfixes/cppquickfixsettings.h +++ b/src/plugins/cppeditor/quickfixes/cppquickfixsettings.h @@ -117,15 +117,16 @@ public: int setterOutsideClassFrom = 0; int setterInCppFileFrom = 1; QString getterAttributes; // e.g. [[nodiscard]] - QString getterNameTemplate = ""; // or get - QString setterNameTemplate = "set"; // or set_ or Set - QString setterParameterNameTemplate = "new"; - QString signalNameTemplate = "Changed"; - QString resetNameTemplate = "reset"; + QString getterNameTemplate = R"js("get" + name[0].toUpperCase() + name.slice(1))js"; + QString setterNameTemplate = R"js("set" + name[0].toUpperCase() + name.slice(1))js"; + QString setterParameterNameTemplate = R"js("new" + name[0].toUpperCase() + name.slice(1))js"; + QString signalNameTemplate = R"js(name + "Changed")js"; + QString resetNameTemplate = R"js("reset" + name[0].toUpperCase() + name.slice(1))js"; bool signalWithNewValue = false; bool setterAsSlot = false; MissingNamespaceHandling cppFileNamespaceHandling = MissingNamespaceHandling::CreateMissing; - QString memberVariableNameTemplate = "m_"; + QString memberVariableNameTemplate = R"js("m_" + name)js"; + QString nameFromMemberVariableTemplate; QStringList valueTypes; // if contains use value. Ignores namespaces and template parameters bool returnByConstRef = false; bool useAuto = true; diff --git a/src/plugins/cppeditor/quickfixes/cppquickfixsettingswidget.cpp b/src/plugins/cppeditor/quickfixes/cppquickfixsettingswidget.cpp index 67213105bc4..226f0322650 100644 --- a/src/plugins/cppeditor/quickfixes/cppquickfixsettingswidget.cpp +++ b/src/plugins/cppeditor/quickfixes/cppquickfixsettingswidget.cpp @@ -104,38 +104,39 @@ CppQuickFixSettingsWidget::CppQuickFixSettingsWidget() const QString placeHolderTect = Tr::tr("See tool tip for more information"); const QString toolTip = Tr::tr( -R"==(Use for the variable -Use for camel case -Use for snake case -Use , and for upper case -e.g. name = "m_test_foo_": -"set_ => "set_test_foo" -"set => "setTest_foo" -"set => "setTestFoo")=="); + "A JavaScript expression acting as the return value of a function taking a parameter " + "called \"name\""); + CppQuickFixSettings defaultSettings; m_lineEdit_getterAttribute = new QLineEdit; m_lineEdit_getterAttribute->setPlaceholderText(Tr::tr("For example, [[nodiscard]]")); m_lineEdit_getterName = new QLineEdit; - m_lineEdit_getterName->setPlaceholderText(placeHolderTect); + m_lineEdit_getterName->setPlaceholderText(defaultSettings.getterNameTemplate); m_lineEdit_getterName->setToolTip(toolTip); m_lineEdit_setterName = new QLineEdit; - m_lineEdit_setterName->setPlaceholderText(placeHolderTect); + m_lineEdit_setterName->setPlaceholderText(defaultSettings.setterNameTemplate); m_lineEdit_setterName->setToolTip(toolTip); m_lineEdit_setterParameter = new QLineEdit; - m_lineEdit_setterParameter->setPlaceholderText(Tr::tr("For example, new")); + m_lineEdit_setterParameter->setPlaceholderText(defaultSettings.setterParameterNameTemplate); m_lineEdit_setterParameter->setToolTip(toolTip); m_checkBox_setterSlots = new QCheckBox(Tr::tr("Setters should be slots")); m_lineEdit_resetName = new QLineEdit; - m_lineEdit_resetName->setPlaceholderText(Tr::tr("Normally reset")); + m_lineEdit_resetName->setPlaceholderText(defaultSettings.resetNameTemplate); m_lineEdit_resetName->setToolTip(toolTip); m_lineEdit_signalName = new QLineEdit; - m_lineEdit_signalName->setPlaceholderText(Tr::tr("Normally Changed")); + m_lineEdit_signalName->setPlaceholderText(defaultSettings.signalNameTemplate); m_lineEdit_signalName->setToolTip(toolTip); m_checkBox_signalWithNewValue = new QCheckBox( Tr::tr("Generate signals with the new value as parameter")); m_lineEdit_memberVariableName = new QLineEdit; - m_lineEdit_memberVariableName->setPlaceholderText(Tr::tr("For example, m_")); + m_lineEdit_memberVariableName->setPlaceholderText(defaultSettings.memberVariableNameTemplate); m_lineEdit_memberVariableName->setToolTip(toolTip); + m_lineEdit_nameFromMemberVariable = new QLineEdit; + m_lineEdit_nameFromMemberVariable->setToolTip( + Tr::tr( + "How to get from the member variable to the semantic name.\n" + "This is the reverse of the operation above.\n" + "Leave empty to apply heuristics.")); m_radioButton_generateMissingNamespace = new QRadioButton(Tr::tr("Generate missing namespaces")); m_radioButton_addUsingnamespace = new QRadioButton(Tr::tr("Add \"using namespace ...\"")); @@ -253,6 +254,7 @@ e.g. name = "m_test_foo_": Tr::tr("Signal name:"), m_lineEdit_signalName, br, m_checkBox_signalWithNewValue, br, Tr::tr("Member variable name:"), m_lineEdit_memberVariableName, br, + Tr::tr("Name from member variable:"), m_lineEdit_nameFromMemberVariable, br, }, }, Group { @@ -312,6 +314,7 @@ e.g. name = "m_test_foo_": connect(m_lineEdit_getterAttribute, &QLineEdit::textEdited, then); connect(m_lineEdit_getterName, &QLineEdit::textEdited, then); connect(m_lineEdit_memberVariableName, &QLineEdit::textEdited, then); + connect(m_lineEdit_nameFromMemberVariable, &QLineEdit::textEdited, then); connect(m_lineEdit_resetName, &QLineEdit::textEdited, then); connect(m_lineEdit_setterName, &QLineEdit::textEdited, then); connect(m_lineEdit_setterParameter, &QLineEdit::textEdited, then); @@ -348,6 +351,7 @@ void CppQuickFixSettingsWidget::loadSettings(CppQuickFixSettings *settings) m_lineEdit_resetName->setText(settings->resetNameTemplate); m_lineEdit_signalName->setText(settings->signalNameTemplate); m_lineEdit_memberVariableName->setText(settings->memberVariableNameTemplate); + m_lineEdit_nameFromMemberVariable->setText(settings->nameFromMemberVariableTemplate); m_checkBox_setterSlots->setChecked(settings->setterAsSlot); m_checkBox_signalWithNewValue->setChecked(settings->signalWithNewValue); m_useAutoCheckBox->setChecked(settings->useAuto); @@ -402,6 +406,7 @@ void CppQuickFixSettingsWidget::saveSettings(CppQuickFixSettings *settings) settings->resetNameTemplate = m_lineEdit_resetName->text(); settings->signalNameTemplate = m_lineEdit_signalName->text(); settings->memberVariableNameTemplate = m_lineEdit_memberVariableName->text(); + settings->nameFromMemberVariableTemplate = m_lineEdit_nameFromMemberVariable->text(); if (m_radioButton_rewriteTypes->isChecked()) { settings->cppFileNamespaceHandling = CppQuickFixSettings::MissingNamespaceHandling::RewriteType; } else if (m_radioButton_addUsingnamespace->isChecked()) { diff --git a/src/plugins/cppeditor/quickfixes/cppquickfixsettingswidget.h b/src/plugins/cppeditor/quickfixes/cppquickfixsettingswidget.h index e11d81a9f23..fdabd5b351d 100644 --- a/src/plugins/cppeditor/quickfixes/cppquickfixsettingswidget.h +++ b/src/plugins/cppeditor/quickfixes/cppquickfixsettingswidget.h @@ -66,6 +66,7 @@ private: QLineEdit *m_lineEdit_setterName; QLineEdit *m_lineEdit_signalName; QLineEdit *m_lineEdit_memberVariableName; + QLineEdit *m_lineEdit_nameFromMemberVariable; QRadioButton *m_radioButton_generateMissingNamespace; QRadioButton *m_radioButton_addUsingnamespace; QRadioButton *m_radioButton_rewriteTypes;