From d2f948ec20b3ed03a60f95ee2bcd5228c3593cef Mon Sep 17 00:00:00 2001 From: Alexander Lohnau Date: Thu, 10 Feb 2022 19:14:05 +0000 Subject: [PATCH] appstream runner: De-duplicate results from multiple sources BUG: 448619 FIXED-IN: 5.24.1 --- runners/appstream/appstreamrunner.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/runners/appstream/appstreamrunner.cpp b/runners/appstream/appstreamrunner.cpp index 9b0b16448..2e14b4ff9 100644 --- a/runners/appstream/appstreamrunner.cpp +++ b/runners/appstream/appstreamrunner.cpp @@ -18,6 +18,8 @@ #include #include +#include + #include "debug.h" K_PLUGIN_CLASS_WITH_JSON(InstallerRunner, "plasma-runner-appstream.json") @@ -87,6 +89,7 @@ void InstallerRunner::match(Plasma::RunnerContext &context) } } + std::set uniqueIds; const auto components = findComponentsByString(context.query()).mid(0, 3); for (const AppStream::Component &component : components) { @@ -118,6 +121,10 @@ void InstallerRunner::match(Plasma::RunnerContext &context) if (!servicesFound.isEmpty()) continue; + const auto [_, inserted] = uniqueIds.insert(componentId); + if (!inserted) { + continue; + } Plasma::QueryMatch match(this); match.setType(Plasma::QueryMatch::PossibleMatch);