work/plasma6
Lana Black 8 months ago
parent 0074c8856f
commit e4d5489861

@ -6,23 +6,24 @@
#include "tasktools.h"
#include <config-latte.h>
#include <KActivities/ResourceInstance>
#include <PlasmaActivities/ResourceInstance>
#include <KApplicationTrader>
#include <KConfigGroup>
#include <KDesktopFile>
#include <kemailsettings.h>
#include <KMimeTypeTrader>
#include <KServiceTypeTrader>
//#include <KMimeTypeTrader>
//#include <KServiceTypeTrader>
#include <KSharedConfig>
#include <KStartupInfo>
#include <KWindowSystem>
#include <KProcessList>
#include <QtCore>
#include <QDir>
#include <QGuiApplication>
#include <QRegularExpression>
#include <QScreen>
#include <QUrlQuery>
#include <kservice.h>
#if HAVE_X11
#include <private/qtx11extras_p.h>
#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;

Loading…
Cancel
Save