CppTools: Hide "QPrivateSignal" on signal completion (Qt5)

See also http://woboq.com/blog/how-qt-signals-slots-work-part2-qt5.html

Task-number: QTCREATORBUG-8540
Change-Id: Iccad837d7a0da982e7d7a1eda95ff1828cf1dce6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
This commit is contained in:
Nikolai Kosjar
2013-07-30 11:56:50 +02:00
parent 05c6a5724f
commit 8d283ffd16
3 changed files with 55 additions and 0 deletions

View File

@@ -2463,3 +2463,36 @@ void CppToolsPlugin::test_completion_recursive_using_typedef_declarations()
QCOMPARE(completions.size(), 0);
}
void CppToolsPlugin::test_completion_signals_hide_QPrivateSignal()
{
const QByteArray source =
"#define SIGNAL(a) #a\n"
"#define SLOT(a) #a\n"
"#define signals public\n"
"#define Q_OBJECT struct QPrivateSignal {};\n"
"\n"
"class QObject\n"
"{\n"
"public:\n"
" void connect(QObject *, char *, QObject *, char *);\n"
"};\n"
"\n"
"class Timer : public QObject\n"
"{\n"
" Q_OBJECT\n"
"signals:\n"
" void timeout(QPrivateSignal);\n"
"};\n"
"\n"
"void client()\n"
"{\n"
" Timer *timer = new Timer;\n"
" connect(timer, SIGNAL(@\n"
"}\n";
CompletionTestCase test(source);
const QStringList completions = test.getCompletions();
QCOMPARE(completions.size(), 1);
QVERIFY(completions.contains(QLatin1String("timeout()")));
}