From e4d5489861cc0fd5df267ea507478a4affb64ab9 Mon Sep 17 00:00:00 2001 From: Lana Black Date: Tue, 18 Jun 2024 07:55:19 +0000 Subject: [PATCH] tmp --- app/wm/tasktools.cpp | 57 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 8 deletions(-) diff --git a/app/wm/tasktools.cpp b/app/wm/tasktools.cpp index 251768ace..55579cc0f 100644 --- a/app/wm/tasktools.cpp +++ b/app/wm/tasktools.cpp @@ -6,23 +6,24 @@ #include "tasktools.h" #include -#include +#include #include #include #include -#include -#include -#include +//#include +//#include #include #include #include #include +#include #include #include #include #include #include +#include #if HAVE_X11 #include #endif @@ -32,6 +33,45 @@ namespace Latte namespace WindowSystem { +enum class AppSearchParam { + AppName, + ExecName, + CmdLine, + StartUpWMClass, + XWMClass +}; + +static KService::List searchApplication(AppSearchParam pm, const QString& arg) { + if(arg.isEmpty()) + return {}; + KApplicationTrader::FilterFunc filter = [&arg](const KService::Ptr&) { + qDebug() << "APPSEARCH default :: " << arg; + return false; + }; + switch(pm) { + case AppSearchParam::AppName: + filter = [&arg](const KService::Ptr& s) { + qDebug() << "APPSEARCH AppName :: " << arg; + return s->isApplication() && s->name() == arg; + }; + break; + case AppSearchParam::ExecName: + filter = [&arg](const KService::Ptr& s) { + qDebug() << "APPSEARCH ExecName :: " << arg; + return s->isApplication() && s->exec() == arg; + }; + break; + case AppSearchParam::CmdLine: + filter = [&arg](const KService::Ptr& s) { + qDebug() << "APPSEARCH CmdLine :: " << arg; + return s->isApplication() && s->exec() == arg; + }; + break; + } + + return KApplicationTrader::query(filter); +} + AppData appDataFromUrl(const QUrl &url, const QIcon &fallbackIcon) { AppData data; @@ -143,8 +183,10 @@ AppData appDataFromUrl(const QUrl &url, const QIcon &fallbackIcon) return data; } -QUrl windowUrlFromMetadata(const QString &appId, quint32 pid, - KSharedConfig::Ptr rulesConfig, const QString &xWindowsWMClassName) +QUrl windowUrlFromMetadata(const QString &appId, + quint32 pid, + KSharedConfig::Ptr rulesConfig, + const QString &xWindowsWMClassName) { if (!rulesConfig) { return QUrl(); @@ -491,8 +533,7 @@ KService::List servicesFromPid(quint32 pid, KSharedConfig::Ptr rulesConfig) return servicesFromCmdLine(cmdLine, proc.name(), rulesConfig); } -KService::List servicesFromCmdLine(const QString &_cmdLine, const QString &processName, - KSharedConfig::Ptr rulesConfig) +KService::List servicesFromCmdLine(const QString &_cmdLine, const QString &processName, KSharedConfig::Ptr rulesConfig) { QString cmdLine = _cmdLine; KService::List services;