forked from qt-creator/qt-creator
CppEditor: Add quickfix to convert to new style connect()
Limitations: * Overloads are not yet handled * Action is not offered if the slot can't be looked up in the receiver expression (e.g. when it's a base class pointer). Change-Id: I5779ff1b74657025d058d4f3690f6723b4784497 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
@@ -3827,5 +3827,70 @@ void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_notTriggeringForIn
|
||||
QuickFixTestCase(testFiles, &factory);
|
||||
}
|
||||
|
||||
void CppEditorPlugin::test_quickfix_ConvertQt4Connect_connectOutOfClass()
|
||||
{
|
||||
QByteArray prefix =
|
||||
"class QObject {};\n"
|
||||
"class TestClass : public QObject\n"
|
||||
"{\n"
|
||||
"public:\n"
|
||||
" void setProp(int) {}\n"
|
||||
" void sigFoo(int) {}\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"int foo()\n"
|
||||
"{\n";
|
||||
|
||||
QByteArray suffix = "\n}\n";
|
||||
|
||||
QByteArray original = prefix
|
||||
+ " TestClass obj;\n"
|
||||
" conne@ct(&obj, SIGNAL(sigFoo(int)), &obj, SLOT(setProp(int)));"
|
||||
+ suffix;
|
||||
|
||||
QByteArray expected = prefix
|
||||
+ " TestClass obj;\n"
|
||||
" connect(&obj, &TestClass::sigFoo, &obj, &TestClass::setProp);"
|
||||
+ suffix;
|
||||
|
||||
QList<QuickFixTestDocument::Ptr> testFiles;
|
||||
testFiles << QuickFixTestDocument::create("file.cpp", original, expected);
|
||||
|
||||
ConvertQt4Connect factory;
|
||||
QuickFixTestCase(testFiles, &factory);
|
||||
}
|
||||
|
||||
void CppEditorPlugin::test_quickfix_ConvertQt4Connect_connectWithinClass()
|
||||
{
|
||||
QByteArray prefix =
|
||||
"class QObject {};\n"
|
||||
"class TestClass : public QObject\n"
|
||||
"{\n"
|
||||
"public:\n"
|
||||
" void setProp(int) {}\n"
|
||||
" void sigFoo(int) {}\n"
|
||||
" void setupSignals();\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"int TestClass::setupSignals()\n"
|
||||
"{\n";
|
||||
|
||||
QByteArray suffix = "\n}\n";
|
||||
|
||||
QByteArray original = prefix
|
||||
+ " conne@ct(this, SIGNAL(sigFoo(int)), this, SLOT(setProp(int)));"
|
||||
+ suffix;
|
||||
|
||||
QByteArray expected = prefix
|
||||
+ " connect(this, &TestClass::sigFoo, this, &TestClass::setProp);"
|
||||
+ suffix;
|
||||
|
||||
QList<QuickFixTestDocument::Ptr> testFiles;
|
||||
testFiles << QuickFixTestDocument::create("file.cpp", original, expected);
|
||||
|
||||
ConvertQt4Connect factory;
|
||||
QuickFixTestCase(testFiles, &factory);
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace CppEditor
|
||||
|
||||
Reference in New Issue
Block a user