diff --git a/0003-.patch b/0003-.patch new file mode 100644 index 0000000..5ba4785 --- /dev/null +++ b/0003-.patch @@ -0,0 +1,72 @@ +From: cckylin-cibot +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(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 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); diff --git a/ukui-menu.spec b/ukui-menu.spec index 99b9326..577549e 100644 --- a/ukui-menu.spec +++ b/ukui-menu.spec @@ -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 - 3.1.1-7 +- add execapp + * Thu Feb 16 2023 peijiankang - 3.1.1-6 - update platformName