添加应用管理器接口

This commit is contained in:
lixueman 2022-06-23 16:23:49 +08:00
parent 4ab17b5d0c
commit 3f8c573edb
2 changed files with 24 additions and 14 deletions

View File

@ -615,7 +615,7 @@ void TabletWindow::execApplication(QString desktopfp)
if (!g_subProjectCodeName.contains("mavis")
|| (g_subProjectCodeName.contains("mavis") && !QDBusReply<bool>(iface.call("LaunchApp", desktopfp)))) {
execApp(desktopfp);
// execApp(desktopfp);
QString str;
//打开文件.desktop
GError **error = nullptr;

View File

@ -710,22 +710,32 @@ bool deleteAppRecord(QString desktopfn)
void execApp(QString desktopfp)
{
UkuiMenuInterface interface;
if (interface.checkKreApp(desktopfp)) {
QProcess::startDetached(interface.getAppExec(desktopfp));
} else {
QString appName = interface.getAppExec(desktopfp);
QStringList strList = (appName.replace("\"", "")).split(" ");
QDBusInterface iface("com.kylin.AppManager",
"/com/kylin/AppManager",
"com.kylin.AppManager",
QDBusConnection::sessionBus());
QDBusReply<bool> res = iface.call("LaunchApp", desktopfp);
if (QString(strList.at(0)) == "kmplayer") {
QProcess::startDetached(strList.at(0));
return;
if (!res.isValid() || !res) {
UkuiMenuInterface interface;
if (interface.checkKreApp(desktopfp)) {
QProcess::startDetached(interface.getAppExec(desktopfp));
} else {
QString appName = interface.getAppExec(desktopfp);
QStringList strList = (appName.replace("\"", "")).split(" ");
if (QString(strList.at(0)) == "kmplayer") {
QProcess::startDetached(strList.at(0));
return;
}
GDesktopAppInfo *desktopAppInfo = g_desktop_app_info_new_from_filename(desktopfp.toLocal8Bit().data());
g_app_info_launch(G_APP_INFO(desktopAppInfo), nullptr, nullptr, nullptr);
g_object_unref(desktopAppInfo);
}
GDesktopAppInfo *desktopAppInfo = g_desktop_app_info_new_from_filename(desktopfp.toLocal8Bit().data());
g_app_info_launch(G_APP_INFO(desktopAppInfo), nullptr, nullptr, nullptr);
g_object_unref(desktopAppInfo);
}
QFileInfo fileInfo(desktopfp);