-
Eike Hein authored
Summary: The overall mission of TaskTools::windowUrlFromMetadata is to use various pieces of metadata to run KServiceTypeTrader queries and get a list of matching services. Sometimes this will find more than one service. So far we simply used whatever KServiceTypeTrader returned first, but in some cases we can and should do better. The included lengthy code comment names an example case. In concert with D13058, this allows both the Linux-native and Wine- installed (S|s)team.desktop files to coexist and their windows be correctly mapped to the relevant .desktop file, by exploiting that by their nature each case ends up with a different KService::menuId() (that this is useful for differentiation is why the menuId differs, after all). This change looks like it introduces disgusting complexity at first, but in some sense, trying to pick the most match-y out of the found services instead of just randomly picking the first one makes sense. Reviewers: broulik, davidedmundson Subscribers: plasma-devel Tags: #plasma Differential Revision: https://phabricator.kde.org/D13073
664b90af