diff --git a/src/plugins/coreplugin/locator/ilocatorfilter.h b/src/plugins/coreplugin/locator/ilocatorfilter.h index bc44cfb1f79..48679878691 100644 --- a/src/plugins/coreplugin/locator/ilocatorfilter.h +++ b/src/plugins/coreplugin/locator/ilocatorfilter.h @@ -31,9 +31,10 @@ #include #include -#include #include #include +#include +#include namespace Core { @@ -74,12 +75,6 @@ struct LocatorFilterEntry , displayIcon(icon) {} - bool operator==(const LocatorFilterEntry &other) const { - if (internalData.canConvert(QVariant::String)) - return (internalData.toString() == other.internalData.toString()); - return internalData.constData() == other.internalData.constData(); - } - /* backpointer to creating filter */ ILocatorFilter *filter = nullptr; /* displayed string */ diff --git a/src/plugins/coreplugin/locator/locatorsearchutils.cpp b/src/plugins/coreplugin/locator/locatorsearchutils.cpp index a9eb1a7de23..cefe9481c04 100644 --- a/src/plugins/coreplugin/locator/locatorsearchutils.cpp +++ b/src/plugins/coreplugin/locator/locatorsearchutils.cpp @@ -29,21 +29,10 @@ #include #include -namespace Core { - -uint qHash(const LocatorFilterEntry &entry) -{ - if (entry.internalData.canConvert(QVariant::String)) - return QT_PREPEND_NAMESPACE(qHash)(entry.internalData.toString()); - return QT_PREPEND_NAMESPACE(qHash)(entry.internalData.constData()); -} - -} // namespace Core - void Core::Internal::runSearch(QFutureInterface &future, const QList &filters, const QString &searchText) { - QSet alreadyAdded; + QSet alreadyAdded; const bool checkDuplicates = (filters.size() > 1); for (ILocatorFilter *filter : filters) { if (future.isCanceled()) @@ -53,11 +42,15 @@ void Core::Internal::runSearch(QFutureInterface &futur QVector uniqueFilterResults; uniqueFilterResults.reserve(filterResults.size()); for (const LocatorFilterEntry &entry : filterResults) { - if (checkDuplicates && alreadyAdded.contains(entry)) - continue; + if (checkDuplicates) { + const QString stringData = entry.internalData.toString(); + if (!stringData.isEmpty()) { + if (alreadyAdded.contains(stringData)) + continue; + alreadyAdded.insert(stringData); + } + } uniqueFilterResults.append(entry); - if (checkDuplicates) - alreadyAdded.insert(entry); } if (!uniqueFilterResults.isEmpty()) future.reportResults(uniqueFilterResults);