utils/serviceutils: Improve Exec key parsing
Take into account Exec field codes. The change makes possible to have both X-KDE-Wayland-Interfaces field (for example, kde_lockscreen_overlay_v1) (and additional arguments for Exec field (for example, %U). See also: https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s07.html Contributes to: https://invent.kde.org/plasma-mobile/plasma-dialer/-/merge_requests/105
This commit is contained in:
parent
c01569e4b8
commit
462d5f0642
1 changed files with 4 additions and 3 deletions
|
@ -17,6 +17,7 @@
|
|||
// Qt
|
||||
#include <QFileInfo>
|
||||
#include <QLoggingCategory>
|
||||
#include <QProcess>
|
||||
// KF
|
||||
#include <KApplicationTrader>
|
||||
|
||||
|
@ -31,11 +32,11 @@ static QStringList fetchProcessServiceField(const QString &executablePath, const
|
|||
// needed to be able to use the logging category in a header static function
|
||||
static QLoggingCategory KWIN_UTILS("KWIN_UTILS", QtWarningMsg);
|
||||
const auto servicesFound = KApplicationTrader::query([&executablePath](const KService::Ptr &service) {
|
||||
if (service->exec().isEmpty() || QFileInfo(service->exec()).canonicalFilePath() != executablePath) {
|
||||
const auto splitCommandList = QProcess::splitCommand(service->exec());
|
||||
if (splitCommandList.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
return QFileInfo(splitCommandList.first()).canonicalFilePath() == executablePath;
|
||||
});
|
||||
|
||||
if (servicesFound.isEmpty()) {
|
||||
|
|
Loading…
Reference in a new issue