diff --git a/src/plugins/cpptools/cppclassesfilter.cpp b/src/plugins/cpptools/cppclassesfilter.cpp index 0b5a0816217..62ea01f5f9a 100644 --- a/src/plugins/cpptools/cppclassesfilter.cpp +++ b/src/plugins/cpptools/cppclassesfilter.cpp @@ -47,8 +47,11 @@ CppClassesFilter::~CppClassesFilter() { } -QString CppClassesFilter::stringToMatchUserInputAgainst(const ModelItemInfo &info) +QString CppClassesFilter::stringToMatchUserInputAgainst(const ModelItemInfo &info, + bool userInputContainsColonColon) { + if (userInputContainsColonColon) + return info.scopedSymbolName(); return info.symbolName; } diff --git a/src/plugins/cpptools/cppclassesfilter.h b/src/plugins/cpptools/cppclassesfilter.h index 522d45ecf89..7f82d3bef8f 100644 --- a/src/plugins/cpptools/cppclassesfilter.h +++ b/src/plugins/cpptools/cppclassesfilter.h @@ -44,7 +44,8 @@ public: ~CppClassesFilter(); private: - QString stringToMatchUserInputAgainst(const ModelItemInfo &info); + QString stringToMatchUserInputAgainst(const ModelItemInfo &info, + bool userInputContainsColonColon); Locator::FilterEntry filterEntryFromModelItemInfo(const ModelItemInfo &info); }; diff --git a/src/plugins/cpptools/cppfunctionsfilter.cpp b/src/plugins/cpptools/cppfunctionsfilter.cpp index b6ec05162d9..a82c8e4b81a 100644 --- a/src/plugins/cpptools/cppfunctionsfilter.cpp +++ b/src/plugins/cpptools/cppfunctionsfilter.cpp @@ -46,8 +46,11 @@ CppFunctionsFilter::~CppFunctionsFilter() { } -QString CppFunctionsFilter::stringToMatchUserInputAgainst(const CppTools::ModelItemInfo &info) +QString CppFunctionsFilter::stringToMatchUserInputAgainst(const CppTools::ModelItemInfo &info, + bool userInputContainsColonColon) { + if (userInputContainsColonColon) + return info.scopedSymbolName(); return info.symbolName; } diff --git a/src/plugins/cpptools/cppfunctionsfilter.h b/src/plugins/cpptools/cppfunctionsfilter.h index 5a7c812f78e..58252105230 100644 --- a/src/plugins/cpptools/cppfunctionsfilter.h +++ b/src/plugins/cpptools/cppfunctionsfilter.h @@ -44,7 +44,8 @@ public: ~CppFunctionsFilter(); private: - QString stringToMatchUserInputAgainst(const ModelItemInfo &info); + QString stringToMatchUserInputAgainst(const ModelItemInfo &info, + bool userInputContainsColonColon); Locator::FilterEntry filterEntryFromModelItemInfo(const ModelItemInfo &info); }; diff --git a/src/plugins/cpptools/cpplocatorfilter.cpp b/src/plugins/cpptools/cpplocatorfilter.cpp index 333fee5a4c6..0dd7745e7ef 100644 --- a/src/plugins/cpptools/cpplocatorfilter.cpp +++ b/src/plugins/cpptools/cpplocatorfilter.cpp @@ -108,8 +108,10 @@ void CppLocatorFilter::onAboutToRemoveFiles(const QStringList &files) m_searchList.remove(file); } -QString CppLocatorFilter::stringToMatchUserInputAgainst(const CppTools::ModelItemInfo &info) +QString CppLocatorFilter::stringToMatchUserInputAgainst(const CppTools::ModelItemInfo &info, + bool userInputContainsColonColon) { + Q_UNUSED(userInputContainsColonColon) return info.scopedSymbolName(); } @@ -149,6 +151,7 @@ QList CppLocatorFilter::matchesFor(QFutureInterface > it(m_searchList); @@ -160,7 +163,7 @@ QList CppLocatorFilter::matchesFor(QFutureInterface items = it.value(); foreach (const ModelItemInfo &info, items) { - const QString matchString = stringToMatchUserInputAgainst(info); + const QString matchString = stringToMatchUserInputAgainst(info, hasColonColon); if ((hasWildcard && regexp.exactMatch(matchString)) || (!hasWildcard && matcher.indexIn(matchString) != -1)) { const Locator::FilterEntry filterEntry = filterEntryFromModelItemInfo(info); diff --git a/src/plugins/cpptools/cpplocatorfilter.h b/src/plugins/cpptools/cpplocatorfilter.h index c0353b4ef65..50e5184ecca 100644 --- a/src/plugins/cpptools/cpplocatorfilter.h +++ b/src/plugins/cpptools/cpplocatorfilter.h @@ -63,7 +63,8 @@ private slots: void onAboutToRemoveFiles(const QStringList &files); private: - virtual QString stringToMatchUserInputAgainst(const ModelItemInfo &info); + virtual QString stringToMatchUserInputAgainst(const ModelItemInfo &info, + bool userInputContainsColonColon); virtual Locator::FilterEntry filterEntryFromModelItemInfo(const ModelItemInfo &info); private: diff --git a/src/plugins/cpptools/cpplocatorfilter_test.cpp b/src/plugins/cpptools/cpplocatorfilter_test.cpp index b4e92736010..9d2e9e8c7ef 100644 --- a/src/plugins/cpptools/cpplocatorfilter_test.cpp +++ b/src/plugins/cpptools/cpplocatorfilter_test.cpp @@ -180,6 +180,16 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data() << ResultData(_("myFunction(bool, int)"), _("")) ); + QTest::newRow("CppFunctionsFilter-WithNamespacePrefix") + << testFile + << cppFunctionsFilter + << _("mynamespace::") + << (QList() + << ResultData(_("MyClass()"), _("MyNamespace::MyClass")) + << ResultData(_("function2(bool, int)"), _("MyNamespace::MyClass")) + << ResultData(_("myFunction(bool, int)"), _("MyNamespace")) + ); + QTest::newRow("CppClassesFilter") << testFile << cppClassesFilter @@ -190,6 +200,14 @@ void CppToolsPlugin::test_cpplocatorfilters_CppLocatorFilter_data() << ResultData(_("MyClass"), _("")) ); + QTest::newRow("CppClassesFilter-WithNamespacePrefix") + << testFile + << cppClassesFilter + << _("mynamespace::") + << (QList() + << ResultData(_("MyClass"), _("MyNamespace")) + ); + QTest::newRow("CppLocatorFilter") << testFile << cppLocatorFilter