diff --git a/applets/kicker/plugin/actionlist.cpp b/applets/kicker/plugin/actionlist.cpp --- a/applets/kicker/plugin/actionlist.cpp +++ b/applets/kicker/plugin/actionlist.cpp @@ -186,15 +186,10 @@ return false; } -// HACK TEMP FIXME TODO IVAN QString storageIdFromService(KService::Ptr service) { QString storageId = service->storageId(); - if (storageId.startsWith("org.kde.")) { - storageId = storageId.right(storageId.length() - 8); - } - if (storageId.endsWith(".desktop")) { storageId = storageId.left(storageId.length() - 8); } @@ -246,6 +241,13 @@ | Activity::current() | Url::file(); + // Due to KRecentDocument::add() bug, application name "" could + // be stored instead of its desktop entry name "org.kde.". Let's + // check for both in order to get all results for the application. + if (storageId.startsWith("org.kde.")) { + query = query | Agent(storageId.mid(8)); + } + ResultSet results(query); ResultSet::const_iterator resultIt; @@ -303,6 +305,13 @@ | Activity::current() | Url::file(); + // Due to KRecentDocument::add() bug, application name "" could + // be stored instead of its desktop entry name "org.kde.". Let's + // check for both in order to get all results for the application. + if (storageId.startsWith("org.kde.")) { + query = query | Agent(storageId.mid(8)); + } + KAStats::forgetResources(query); return false; diff --git a/applets/taskmanager/plugin/backend.cpp b/applets/taskmanager/plugin/backend.cpp --- a/applets/taskmanager/plugin/backend.cpp +++ b/applets/taskmanager/plugin/backend.cpp @@ -303,10 +303,6 @@ QString desktopName = desktopEntryUrl.fileName(); QString storageId = desktopName; - if (storageId.startsWith(QLatin1String("org.kde."))) { - storageId = storageId.right(storageId.length() - 8); - } - if (storageId.endsWith(QLatin1String(".desktop"))) { storageId = storageId.left(storageId.length() - 8); } @@ -318,6 +314,13 @@ | Activity::current() | Url::file(); + // Due to KRecentDocument::add() bug, application name "" could + // be stored instead of its desktop entry name "org.kde.". Let's + // check for both in order to get all results for the application. + if (storageId.startsWith(QLatin1String("org.kde."))) { + query = query | Agent(storageId.mid(8)); + } + ResultSet results(query); ResultSet::const_iterator resultIt = results.begin(); @@ -408,6 +411,13 @@ | Activity::current() | Url::file(); + // Due to KRecentDocument::add() bug, application name "" could + // be stored instead of its desktop entry name "org.kde.". Let's + // check for both in order to get all results for the application. + if (agent.startsWith(QLatin1String("org.kde."))) { + query = query | Agent(agent.mid(8)); + } + KAStats::forgetResources(query); return;