Merge remote-tracking branch 'origin/3.4'

Conflicts:
	src/libs/timeline/qml/MainView.qml
	src/plugins/git/gitclient.cpp

Change-Id: I0b6ec7b9a592014deb0dd2e1145b19dd6753b1c3
This commit is contained in:
Eike Ziller
2015-04-15 17:45:47 +02:00
65 changed files with 2457 additions and 1578 deletions

View File

@@ -162,6 +162,16 @@ private:
IEditor *m_editor;
};
bool isProbablyGlobalCompletion(const QStringList &list)
{
const int numberOfPrimitivesAndBasicKeywords = (T_LAST_PRIMITIVE - T_FIRST_PRIMITIVE)
+ (T_FIRST_OBJC_AT_KEYWORD - T_FIRST_KEYWORD);
return list.size() >= numberOfPrimitivesAndBasicKeywords
&& list.contains(QLatin1String("if"))
&& list.contains(QLatin1String("bool"));
}
} // anonymous namespace
void CppToolsPlugin::test_completion_basic_1()
@@ -329,6 +339,31 @@ void CppToolsPlugin::test_completion()
QCOMPARE(actualCompletions, expectedCompletions);
}
void CppToolsPlugin::test_global_completion_data()
{
QTest::addColumn<QByteArray>("code");
QTest::addColumn<QByteArray>("prefix");
// Check that special completion after '&' for Qt5 signal/slots does not
// interfere global completion after '&'
QTest::newRow("global completion after & in return expression")
<< _("void f() { foo(myObject, @); }\n")
<< _("&");
QTest::newRow("global completion after & in function argument")
<< _("int f() { return @; }\n")
<< _("&");
}
void CppToolsPlugin::test_global_completion()
{
QFETCH(QByteArray, code);
QFETCH(QByteArray, prefix);
CompletionTestCase test(code, prefix);
QVERIFY(test.succeededSoFar());
QVERIFY(isProbablyGlobalCompletion(test.getCompletions()));
}
static void enumTestCase(const QByteArray &tag, const QByteArray &source,
const QByteArray &prefix = QByteArray())
{
@@ -2339,14 +2374,6 @@ void CppToolsPlugin::test_completion_data()
<< QLatin1String("hiddenFunction")
<< QLatin1String("hiddenSignal"));
QTest::newRow("Qt5 signals: no class name completion if not after 'connect(' 1")
<< commonSignalSlotCompletionTestCode
<< _("foo(myObject, &") << (QStringList());
QTest::newRow("Qt5 signals/slots: no class name completion if not after 'connect(' 2")
<< commonSignalSlotCompletionTestCode
<< _("&") << (QStringList());
QTest::newRow("Qt5 signals: fallback to scope completion")
<< commonSignalSlotCompletionTestCode
<< _("connect(myObject, &N::") << (QStringList()