diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp index c964e438b2d..c2fd582d4d8 100644 --- a/src/plugins/cppeditor/cppquickfix_test.cpp +++ b/src/plugins/cppeditor/cppquickfix_test.cpp @@ -4537,6 +4537,12 @@ void CppEditorPlugin::test_quickfix_ConvertQt4Connect_connectWithinClass_data() QTest::newRow("three-args-connect") << QByteArray("conne@ct(this, SIGNAL(sigFoo(int)), SLOT(setProp(int)));") << QByteArray("connect(this, &TestClass::sigFoo, this, &TestClass::setProp);"); + + QTest::newRow("template-value") + << QByteArray("Pointer p;\n" + "conne@ct(p.t, SIGNAL(sigFoo(int)), p.t, SLOT(setProp(int)));") + << QByteArray("Pointer p;\n" + "connect(p.t, &TestClass::sigFoo, p.t, &TestClass::setProp);"); } void CppEditorPlugin::test_quickfix_ConvertQt4Connect_connectWithinClass() @@ -4545,6 +4551,11 @@ void CppEditorPlugin::test_quickfix_ConvertQt4Connect_connectWithinClass() QFETCH(QByteArray, expected); QByteArray prefix = + "template\n" + "struct Pointer\n" + "{\n" + " T *t;\n" + "};\n" "class QObject {};\n" "class TestClass : public QObject\n" "{\n" diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp index d28b33be426..3c252082d18 100644 --- a/src/plugins/cppeditor/cppquickfixes.cpp +++ b/src/plugins/cppeditor/cppquickfixes.cpp @@ -5592,6 +5592,7 @@ Class *senderOrReceiverClass(const CppQuickFixInterface &interface, objectPointerExpression = "this"; TypeOfExpression toe; + toe.setExpandTemplates(true); toe.init(interface.semanticInfo().doc, interface.snapshot(), context.bindings()); const QList objectPointerExpressions = toe(objectPointerExpression, objectPointerScope, TypeOfExpression::Preprocess);