CppEditor: Fix following signals/slots in old-style connects

... if the first argument is a call to a function returning a pointer to
QObject.

Fixes: QTCREATORBUG-13265
Change-Id: I12c2d07331a0c6dca56ad55c518240fd74be3dca
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Christian Kandeler
2020-08-06 15:53:07 +02:00
parent c6a56cce28
commit 7cd9699766
3 changed files with 27 additions and 1 deletions

View File

@@ -85,6 +85,7 @@ private slots:
void test_FollowSymbolUnderCursor_QObject_connect_data();
void test_FollowSymbolUnderCursor_QObject_connect();
void test_FollowSymbolUnderCursor_QObject_oldStyleConnect();
void test_FollowSymbolUnderCursor_classOperator_onOperatorToken_data();
void test_FollowSymbolUnderCursor_classOperator_onOperatorToken();

View File

@@ -1309,6 +1309,26 @@ void CppEditorPlugin::test_FollowSymbolUnderCursor_QObject_connect()
F2TestCase(F2TestCase::FollowSymbolUnderCursorAction, singleDocument(source));
}
void CppEditorPlugin::test_FollowSymbolUnderCursor_QObject_oldStyleConnect()
{
const QByteArray source =
"class O : public QObject {\n"
" Q_OBJECT\n"
"signals:\n"
" void $theSignal();\n"
"};\n"
"struct S {\n"
" O* o();\n"
"};\n"
"int main()\n"
"{\n"
" S s;\n"
" QObject::connect(s.o(), SIGNAL(@theSignal()), s.o(), SIGNAL(theSignal()));\n"
"}\n";
F2TestCase(F2TestCase::FollowSymbolUnderCursorAction, singleDocument(source));
}
void CppEditorPlugin::test_FollowSymbolUnderCursor_classOperator_onOperatorToken_data()
{
QTest::addColumn<bool>("toDeclaration");