add execapp

This commit is contained in:
peijiankang 2023-02-17 00:37:57 +08:00
parent f305b29676
commit 3225905b24
2 changed files with 77 additions and 1 deletions

72
0003-.patch Normal file
View File

@ -0,0 +1,72 @@
From: cckylin-cibot <cckylin-cibot@kylinos.cn>
Date: Thu, 23 Jun 2022 09:23:21 +0000
Subject: =?utf-8?b?5re75Yqg5bqU55So566h55CG5Zmo5o6l5Y+j?=
---
src/UserInterface/tabletwindow.cpp | 2 +-
src/UtilityFunction/utility.cpp | 36 +++++++++++++++++++++++-------------
2 files changed, 24 insertions(+), 14 deletions(-)
diff --git a/src/UserInterface/tabletwindow.cpp b/src/UserInterface/tabletwindow.cpp
index 4f26924..378ad1f 100755
--- a/src/UserInterface/tabletwindow.cpp
+++ b/src/UserInterface/tabletwindow.cpp
@@ -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;
diff --git a/src/UtilityFunction/utility.cpp b/src/UtilityFunction/utility.cpp
index 3eee325..40c6f08 100755
--- a/src/UtilityFunction/utility.cpp
+++ b/src/UtilityFunction/utility.cpp
@@ -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) {
- 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);
+ 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);
+ }
}
QFileInfo fileInfo(desktopfp);

View File

@ -1,6 +1,6 @@
Name: ukui-menu
Version: 3.1.1
Release: 6
Release: 7
Summary: Advanced ukui menu
License: GPL-3.0-or-later
URL: http://www.ukui.org
@ -10,6 +10,7 @@ Patch02: 0002-fix-coredump-of-ukui-menu.patch
patch03: 0003-add-ukui-log4qt.patch
patch04: 0001-4-wayland.patch
patch05: 0002-5-platformName-update-debian-changelog.-platformName.patch
patch06: 0003-.patch
BuildRequires: qt5-qtbase-devel
BuildRequires: libqtxdg-devel
@ -62,6 +63,9 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/ukui-menu/translations/
%changelog
* Fri Feb 17 2023 peijiankang <peijiankang@kylinos.cn> - 3.1.1-7
- add execapp
* Thu Feb 16 2023 peijiankang <peijiankang@kylinos.cn> - 3.1.1-6
- update platformName