Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kglobalaccel for openSUSE:Factory 
checked in at 2022-06-17 21:19:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kglobalaccel (Old)
 and      /work/SRC/openSUSE:Factory/.kglobalaccel.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kglobalaccel"

Fri Jun 17 21:19:13 2022 rev:108 rq:982264 version:5.95.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kglobalaccel/kglobalaccel.changes        
2022-05-16 18:08:39.365281945 +0200
+++ /work/SRC/openSUSE:Factory/.kglobalaccel.new.1548/kglobalaccel.changes      
2022-06-17 21:21:06.622727739 +0200
@@ -1,0 +2,15 @@
+Fri Jun 10 14:12:28 UTC 2022 - Christophe Giboudeaux <christo...@krop.fr>
+
+- Update to 5.95.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/5/5.95.0
+- Changes since 5.94.0:
+  * Encapsulate duplicate code in a local function
+  * Expose enum to QObject
+  * Remove unused method
+  * Properly create lists of items
+  * Remove weird comments
+  * Use KWindowSystem to request activation tokens if necessary (kde#453748)
+
+-------------------------------------------------------------------

Old:
----
  kglobalaccel-5.94.0.tar.xz
  kglobalaccel-5.94.0.tar.xz.sig

New:
----
  kglobalaccel-5.95.0.tar.xz
  kglobalaccel-5.95.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kglobalaccel.spec ++++++
--- /var/tmp/diff_new_pack.i0llAS/_old  2022-06-17 21:21:07.542728238 +0200
+++ /var/tmp/diff_new_pack.i0llAS/_new  2022-06-17 21:21:07.546728240 +0200
@@ -17,14 +17,14 @@
 
 
 %define lname   libKF5GlobalAccel5
-%define _tar_path 5.94
+%define _tar_path 5.95
 # Full KF5 version (e.g. 5.33.0)
 %{!?_kf5_version: %global _kf5_version %{version}}
 # Last major and minor KF5 version (e.g. 5.33)
 %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | 
awk -F. '{print $1"."$2}')}
 %bcond_without released
 Name:           kglobalaccel
-Version:        5.94.0
+Version:        5.95.0
 Release:        0
 Summary:        Global desktop keyboard shortcuts
 License:        LGPL-2.1-or-later


++++++ kglobalaccel-5.94.0.tar.xz -> kglobalaccel-5.95.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kglobalaccel-5.94.0/CMakeLists.txt 
new/kglobalaccel-5.95.0/CMakeLists.txt
--- old/kglobalaccel-5.94.0/CMakeLists.txt      2022-05-07 23:21:25.000000000 
+0200
+++ new/kglobalaccel-5.95.0/CMakeLists.txt      2022-06-09 23:19:27.000000000 
+0200
@@ -1,12 +1,12 @@
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "5.94.0") # handled by release scripts
-set(KF_DEP_VERSION "5.93.0") # handled by release scripts
+set(KF_VERSION "5.95.0") # handled by release scripts
+set(KF_DEP_VERSION "5.95.0") # handled by release scripts
 project(KGlobalAccel VERSION ${KF_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.93.0  NO_MODULE)
+find_package(ECM 5.95.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://commits.kde.org/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kglobalaccel-5.94.0/po/ca@valencia/kglobalaccel5_qt.po 
new/kglobalaccel-5.95.0/po/ca@valencia/kglobalaccel5_qt.po
--- old/kglobalaccel-5.94.0/po/ca@valencia/kglobalaccel5_qt.po  2022-05-07 
23:21:25.000000000 +0200
+++ new/kglobalaccel-5.95.0/po/ca@valencia/kglobalaccel5_qt.po  2022-06-09 
23:19:27.000000000 +0200
@@ -39,7 +39,7 @@
 "\"%2\" in %3.\n"
 "Do you want to reassign it from that action to the current one?"
 msgstr ""
-"La combinaci?? de tecles ??%1?? ja s'ha assignat a l'acci?? global ??%2?? en 
%3.\n"
+"La combinaci?? de tecles ??%1?? ya s'ha assignat a l'acci?? global ??%2?? en 
%3.\n"
 "Voleu reassignar-la des d'esta acci?? a l'acci?? actual?"
 
 #: kglobalaccel.cpp:615 kglobalaccel.cpp:648
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kglobalaccel-5.94.0/po/ka/kglobalaccel5_qt.po 
new/kglobalaccel-5.95.0/po/ka/kglobalaccel5_qt.po
--- old/kglobalaccel-5.94.0/po/ka/kglobalaccel5_qt.po   2022-05-07 
23:21:25.000000000 +0200
+++ new/kglobalaccel-5.95.0/po/ka/kglobalaccel5_qt.po   2022-06-09 
23:19:27.000000000 +0200
@@ -1,63 +1,52 @@
-# KDE3 - Georgian translation of kdelibs4.po
-# Gia Shervashidze <gias...@telenet.ge>, 2005.
-#
 msgid ""
 msgstr ""
-"Project-Id-Version: kdelibs4\n"
-"Report-Msgid-Bugs-To: http://bugs.kde.org\n";
-"POT-Creation-Date: 2014-03-23 01:50+0000\n"
-"PO-Revision-Date: 2009-12-17 02:11+0400\n"
-"Last-Translator: George Machitidze <gio...@gmail.com>\n"
-"Language-Team: Georgian <http://www.gia.ge>\n"
+"Project-Id-Version: kglobalaccel5_qt\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: Temuri Doghonadze <temuri.doghona...@gmail.com>\n"
+"Language-Team: Georgian <kde-i18n-...@kde.org>\n"
 "Language: ka\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Qt-Contexts: true\n"
+"X-Generator: Poedit 3.0.1\n"
 
 #: kglobalaccel.cpp:606
-#, fuzzy
-#| msgid "Conflict with Global Shortcut"
 msgctxt "KGlobalAccel|"
 msgid "Conflict with Global Shortcut"
-msgstr "??????????????????????????? ???????????????????????? 
?????????????????????????????????"
+msgstr "??????????????????????????? ???????????????????????? 
????????????????????????????????????"
 
 #: kglobalaccel.cpp:607
-#, fuzzy, qt-format
-#| msgid ""
-#| "The '%1' key combination has already been allocated to the global action "
-#| "\"%2\".\n"
-#| "Do you want to reassign it from that action to the current one?"
+#, qt-format
 msgctxt "KGlobalAccel|"
 msgid ""
 "The '%1' key combination has already been allocated to the global action "
 "\"%2\" in %3.\n"
 "Do you want to reassign it from that action to the current one?"
 msgstr ""
-"?????????????????????????????? ??????????????? %1 ???????????? 
????????????????????????????????? \"%2\" ??????????????????????????? 
????????????????????????????????????.\n"
-"???????????????????????????????????????????????? ????????? ???????????? 
????????????????????????????"
+"???%1??? ????????????????????? ?????????????????????????????? ???????????? 
????????????????????????????????? ???????????????????????? 
??????????????????????????? ???%2??? %3-??????.\n"
+"??????????????? ???????????? ?????????9????????? ?????????????????????????"
 
 #: kglobalaccel.cpp:615 kglobalaccel.cpp:648
-#, fuzzy
-#| msgid "Reassign"
 msgctxt "KGlobalAccel|"
 msgid "Reassign"
-msgstr "?????????????????????????????????????????????"
+msgstr "????????????????????????????????? ????????????????????? 
????????????????????????"
 
 #: kglobalaccel.cpp:634
 #, qt-format
 msgctxt "KGlobalAccel|"
 msgid "The '%1' key combination is registered by application %2 for action %3:"
 msgstr ""
+"??????????????????????????? ?????????????????????????????? \"%1\" 
???????????? ????????????????????????????????????????????? 
?????????????????????????????? (%2) "
+"????????????????????????????????????(%3):"
 
 #: kglobalaccel.cpp:638
-#, fuzzy, qt-format
-#| msgid "Shortcuts"
+#, qt-format
 msgctxt "KGlobalAccel|"
 msgid "In context '%1' for action '%2'\n"
-msgstr "?????????????????????????????????"
+msgstr "%1-?????? ??????????????????????????????, %2 
????????????????????????????????????\n"
 
 #: kglobalaccel.cpp:640
 #, qt-format
@@ -66,21 +55,20 @@
 "The '%1' key combination is registered by application %2.\n"
 "%3"
 msgstr ""
+"??????????????????????????? ?????????????????????????????? \"%1\" 
???????????? ????????????????????????????????????????????? 
?????????????????????????????? (%2).\n"
+"%3"
 
 #: kglobalaccel.cpp:643
-#, fuzzy
-#| msgid "Conflict with Global Shortcut"
 msgctxt "KGlobalAccel|"
 msgid "Conflict With Registered Global Shortcut"
-msgstr "??????????????????????????? ???????????????????????? 
?????????????????????????????????"
+msgstr "??????????????????????????? ???????????????????????? 
????????????????????????????????????"
 
 #: runtime/main.cpp:41 runtime/main.cpp:43
 msgctxt "QObject|"
 msgid "KDE Global Shortcuts Service"
-msgstr ""
+msgstr "KDE-?????? ??????????????????????????? 
??????????????????????????????????????? ?????????????????????"
 
 #: runtime/main.cpp:46 runtime/main.cpp:47
-#, fuzzy
 msgctxt "QObject|"
 msgid "Maintainer"
-msgstr "?????????????????????"
+msgstr "???????????????????????? ?????????????????????????????????"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kglobalaccel-5.94.0/po/zh_CN/kglobalaccel5_qt.po 
new/kglobalaccel-5.95.0/po/zh_CN/kglobalaccel5_qt.po
--- old/kglobalaccel-5.94.0/po/zh_CN/kglobalaccel5_qt.po        2022-05-07 
23:21:25.000000000 +0200
+++ new/kglobalaccel-5.95.0/po/zh_CN/kglobalaccel5_qt.po        2022-06-09 
23:19:27.000000000 +0200
@@ -13,7 +13,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: kdeorg\n"
-"PO-Revision-Date: 2022-04-26 15:18\n"
+"PO-Revision-Date: 2022-06-05 04:17\n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kglobalaccel-5.94.0/src/kglobalaccel.h 
new/kglobalaccel-5.95.0/src/kglobalaccel.h
--- old/kglobalaccel-5.94.0/src/kglobalaccel.h  2022-05-07 23:21:25.000000000 
+0200
+++ new/kglobalaccel-5.95.0/src/kglobalaccel.h  2022-06-09 23:19:27.000000000 
+0200
@@ -73,6 +73,7 @@
         Shadows,
         Shadowed,
     };
+    Q_ENUM(MatchType)
 
     /**
      * Returns (and creates if necessary) the singleton instance
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kglobalaccel-5.94.0/src/runtime/component.cpp 
new/kglobalaccel-5.95.0/src/runtime/component.cpp
--- old/kglobalaccel-5.94.0/src/runtime/component.cpp   2022-05-07 
23:21:25.000000000 +0200
+++ new/kglobalaccel-5.95.0/src/runtime/component.cpp   2022-06-09 
23:19:27.000000000 +0200
@@ -207,9 +207,7 @@
     long timestamp = 0;
 #endif
 
-    // Make sure it is one of ours
     if (shortcut.context()->component() != this) {
-        // In production mode do nothing
         return;
     }
 
@@ -232,7 +230,6 @@
     long timestamp = 0;
 #endif
 
-    // Make sure it is one of ours
     if (shortcut.context()->component() != this) {
         return;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kglobalaccel-5.94.0/src/runtime/globalshortcutsregistry.cpp 
new/kglobalaccel-5.95.0/src/runtime/globalshortcutsregistry.cpp
--- old/kglobalaccel-5.94.0/src/runtime/globalshortcutsregistry.cpp     
2022-05-07 23:21:25.000000000 +0200
+++ new/kglobalaccel-5.95.0/src/runtime/globalshortcutsregistry.cpp     
2022-06-09 23:19:27.000000000 +0200
@@ -157,11 +157,6 @@
     }
 }
 
-GlobalShortcut *GlobalShortcutsRegistry::getActiveShortcutByKey(const 
QKeySequence &key) const
-{
-    return _active_keys.value(key);
-}
-
 KdeDGlobalAccel::Component *GlobalShortcutsRegistry::getComponent(const 
QString &uniqueName)
 {
     return _components.value(uniqueName);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kglobalaccel-5.94.0/src/runtime/globalshortcutsregistry.h 
new/kglobalaccel-5.95.0/src/runtime/globalshortcutsregistry.h
--- old/kglobalaccel-5.94.0/src/runtime/globalshortcutsregistry.h       
2022-05-07 23:21:25.000000000 +0200
+++ new/kglobalaccel-5.95.0/src/runtime/globalshortcutsregistry.h       
2022-06-09 23:19:27.000000000 +0200
@@ -75,12 +75,6 @@
     void deactivateShortcuts(bool temporarily = false);
 
     /**
-     * Get the shortcut corresponding to key. Only active shortcut are
-     * considered.
-     */
-    GlobalShortcut *getActiveShortcutByKey(const QKeySequence &key) const;
-
-    /**
      */
     KdeDGlobalAccel::Component *getComponent(const QString &uniqueName);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kglobalaccel-5.94.0/src/runtime/kglobalaccel.desktop 
new/kglobalaccel-5.95.0/src/runtime/kglobalaccel.desktop
--- old/kglobalaccel-5.94.0/src/runtime/kglobalaccel.desktop    2022-05-07 
23:21:25.000000000 +0200
+++ new/kglobalaccel-5.95.0/src/runtime/kglobalaccel.desktop    2022-06-09 
23:19:27.000000000 +0200
@@ -44,6 +44,7 @@
 Name[id]=Server Pintasan Global KDED
 Name[is]=KDED v????t??kur tengla??j??nn
 Name[it]=Server scorciatoie globali di KDED
+Name[ka]=KDE-?????? ??????????????????????????? 
??????????????????????????????????????? ?????????????????????
 Name[kk]=?????????? ?????????????? ?????????? ?????????????????????? KDED 
??????????????:
 
Name[km]=????????????????????????????????????????????????????????????????????????????????????????????????
 KDED
 Name[kn]=KDED ?????????????????????????????? 
?????????????????????????????????????????? (??????????????????-?????????) 
?????????????????????
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kglobalaccel-5.94.0/src/runtime/kglobalacceld.cpp 
new/kglobalaccel-5.95.0/src/runtime/kglobalacceld.cpp
--- old/kglobalaccel-5.94.0/src/runtime/kglobalacceld.cpp       2022-05-07 
23:21:25.000000000 +0200
+++ new/kglobalaccel-5.95.0/src/runtime/kglobalacceld.cpp       2022-06-09 
23:19:27.000000000 +0200
@@ -418,6 +418,7 @@
     const QList<GlobalShortcut *> shortcuts = 
GlobalShortcutsRegistry::self()->getShortcutsByKey(key, type);
 
     QList<KGlobalShortcutInfo> rc;
+    rc.reserve(shortcuts.size());
     for (const GlobalShortcut *sc : shortcuts) {
 #ifdef KDEDGLOBALACCEL_TRACE
         qCDebug(KGLOBALACCELD) << sc->context()->uniqueName() << 
sc->uniqueName();
@@ -490,12 +491,15 @@
 #if KGLOBALACCEL_BUILD_DEPRECATED_SINCE(5, 90)
 QList<int> KGlobalAccelD::setShortcut(const QStringList &actionId, const 
QList<int> &keys, uint flags)
 {
-    QList<int> ret;
     QList<QKeySequence> input;
+    input.reserve(keys.size());
     for (auto i : keys) {
         input << i;
     }
+
     const QList<QKeySequence> list = setShortcutKeys(actionId, input, flags);
+    QList<int> ret;
+    ret.reserve(list.size());
     for (auto i : list) {
         ret << i[0];
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kglobalaccel-5.94.0/src/runtime/kserviceactioncomponent.cpp 
new/kglobalaccel-5.95.0/src/runtime/kserviceactioncomponent.cpp
--- old/kglobalaccel-5.94.0/src/runtime/kserviceactioncomponent.cpp     
2022-05-07 23:21:25.000000000 +0200
+++ new/kglobalaccel-5.95.0/src/runtime/kserviceactioncomponent.cpp     
2022-06-09 23:19:27.000000000 +0200
@@ -14,6 +14,7 @@
 #include <QProcess>
 
 #include <KShell>
+#include <KWindowSystem>
 
 namespace KdeDGlobalAccel
 {
@@ -38,7 +39,7 @@
 {
 }
 
-void runProcess(const KConfigGroup &group, bool klauncherAvailable)
+void runProcess(const KConfigGroup &group, bool klauncherAvailable, const 
QString &token)
 {
     QStringList args = 
KShell::splitArgs(group.readEntry(QStringLiteral("Exec"), QString()));
     if (args.isEmpty()) {
@@ -51,11 +52,25 @@
 
     const QString command = args.takeFirst();
 
+    auto startDetachedWithToken = [token](const QString &program, const 
QStringList &args) {
+        QProcess p;
+        p.setProgram(program);
+        p.setArguments(args);
+        QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
+        if (!token.isEmpty()) {
+            env.insert("XDG_ACTIVATION_TOKEN", token);
+        }
+        p.setProcessEnvironment(env);
+        if (!p.startDetached()) {
+            qCWarning(KGLOBALACCELD) << "Failed to start" << program;
+        }
+    };
+
     const auto kstart = 
QStandardPaths::findExecutable(QStringLiteral("kstart5"));
     if (!kstart.isEmpty()) {
         args.prepend(command);
         args.prepend(QStringLiteral("--"));
-        QProcess::startDetached(kstart, args);
+        startDetachedWithToken(kstart, args);
     } else if (klauncherAvailable) {
         QDBusMessage msg = 
QDBusMessage::createMethodCall(QStringLiteral("org.kde.klauncher5"),
                                                           
QStringLiteral("/KLauncher"),
@@ -70,7 +85,7 @@
             qCWarning(KGLOBALACCELD) << "Could not find executable in PATH" << 
command;
             return;
         }
-        QProcess::startDetached(cmdExec, args);
+        startDetachedWithToken(cmdExec, args);
     }
 }
 
@@ -78,62 +93,73 @@
 {
     // TODO KF6 use ApplicationLauncherJob to start processes when it's 
available in a framework that we depend on
 
-    // DBusActivatatable spec as per 
https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#dbus
-    if (m_desktopFile->desktopGroup().readEntry("DBusActivatable", false)) {
-        QString method;
-        const QString serviceName = 
m_serviceStorageId.chopped(strlen(".desktop"));
-        const QString objectPath = 
QStringLiteral("/%1").arg(serviceName).replace(QLatin1Char('.'), 
QLatin1Char('/'));
-        const QString interface = 
QStringLiteral("org.freedesktop.Application");
-        QDBusMessage message;
-        if (shortcut.uniqueName() == QLatin1String("_launch")) {
-            message = QDBusMessage::createMethodCall(serviceName, objectPath, 
interface, QStringLiteral("Activate"));
-        } else {
-            message = QDBusMessage::createMethodCall(serviceName, objectPath, 
interface, QStringLiteral("ActivateAction"));
-            message << shortcut.uniqueName() << QVariantList();
+    auto launchWithToken = [this, shortcut](const QString &token) {
+        // DBusActivatatable spec as per 
https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#dbus
+        if (m_desktopFile->desktopGroup().readEntry("DBusActivatable", false)) 
{
+            QString method;
+            const QString serviceName = 
m_serviceStorageId.chopped(strlen(".desktop"));
+            const QString objectPath = 
QStringLiteral("/%1").arg(serviceName).replace(QLatin1Char('.'), 
QLatin1Char('/'));
+            const QString interface = 
QStringLiteral("org.freedesktop.Application");
+            QDBusMessage message;
+            if (shortcut.uniqueName() == QLatin1String("_launch")) {
+                message = QDBusMessage::createMethodCall(serviceName, 
objectPath, interface, QStringLiteral("Activate"));
+            } else {
+                message = QDBusMessage::createMethodCall(serviceName, 
objectPath, interface, QStringLiteral("ActivateAction"));
+                message << shortcut.uniqueName() << QVariantList();
+            }
+            if (!token.isEmpty()) {
+                message << QVariantMap{{QStringLiteral("activation-token"), 
token}};
+            } else {
+                message << QVariantMap();
+            }
+
+            QDBusConnection::sessionBus().asyncCall(message);
+            return;
         }
-        message << QVariantMap();
-        QDBusConnection::sessionBus().asyncCall(message);
-        return;
-    }
 
-    QDBusConnectionInterface *dbusDaemon = 
QDBusConnection::sessionBus().interface();
-    const bool klauncherAvailable = 
dbusDaemon->isServiceRegistered(QStringLiteral("org.kde.klauncher5"));
+        QDBusConnectionInterface *dbusDaemon = 
QDBusConnection::sessionBus().interface();
+        const bool klauncherAvailable = 
dbusDaemon->isServiceRegistered(QStringLiteral("org.kde.klauncher5"));
 
-    // we can't use KRun there as it depends from KIO and would create a 
circular dep
-    if (shortcut.uniqueName() == QLatin1String("_launch")) {
-        runProcess(m_desktopFile->desktopGroup(), klauncherAvailable);
-        return;
-    }
-    const auto lstActions = m_desktopFile->readActions();
-    for (const QString &action : lstActions) {
-        if (action == shortcut.uniqueName()) {
-            runProcess(m_desktopFile->actionGroup(action), klauncherAvailable);
+        // we can't use KRun there as it depends from KIO and would create a 
circular dep
+        if (shortcut.uniqueName() == QLatin1String("_launch")) {
+            runProcess(m_desktopFile->desktopGroup(), klauncherAvailable, 
token);
             return;
         }
+        const auto lstActions = m_desktopFile->readActions();
+        for (const QString &action : lstActions) {
+            if (action == shortcut.uniqueName()) {
+                runProcess(m_desktopFile->actionGroup(action), 
klauncherAvailable, token);
+                return;
+            }
+        }
+    };
+    if (KWindowSystem::isPlatformWayland()) {
+        const QString serviceName = 
m_serviceStorageId.chopped(strlen(".desktop"));
+        KWindowSystem::requestXdgActivationToken(nullptr, 0, serviceName);
+        connect(KWindowSystem::self(), 
&KWindowSystem::xdgActivationTokenArrived, this, [this, launchWithToken](int 
tokenSerial, const QString &token) {
+            if (tokenSerial == 0) {
+                launchWithToken(token);
+                bool b = disconnect(KWindowSystem::self(), 
&KWindowSystem::xdgActivationTokenArrived, this, nullptr);
+                Q_ASSERT(b);
+            }
+        });
+    } else {
+        launchWithToken({});
     }
 }
 
 void KServiceActionComponent::loadFromService()
 {
-    QString shortcutString;
-
-    QStringList shortcuts = 
m_desktopFile->desktopGroup().readEntry(QStringLiteral("X-KDE-Shortcuts"), 
QString()).split(QChar(','));
-    if (!shortcuts.isEmpty()) {
-        shortcutString = shortcuts.join(QChar('\t'));
-    }
+    auto registerGroupShortcut = [this](const QString &name, const 
KConfigGroup &group) {
+        const QString shortcutString = 
group.readEntry(QStringLiteral("X-KDE-Shortcuts"), 
QString()).replace(QLatin1Char(','), QLatin1Char('\t'));
+        GlobalShortcut *shortcut = registerShortcut(name, 
group.readEntry(QStringLiteral("Name"), QString()), shortcutString, 
shortcutString);
+        shortcut->setIsPresent(true);
+    };
 
-    GlobalShortcut *shortcut = registerShortcut(QStringLiteral("_launch"), 
m_desktopFile->readName(), shortcutString, shortcutString);
-    shortcut->setIsPresent(true);
+    registerGroupShortcut(QStringLiteral("_launch"), 
m_desktopFile->desktopGroup());
     const auto lstActions = m_desktopFile->readActions();
     for (const QString &action : lstActions) {
-        shortcuts = 
m_desktopFile->actionGroup(action).readEntry(QStringLiteral("X-KDE-Shortcuts"), 
QString()).split(QChar(','));
-        if (!shortcuts.isEmpty()) {
-            shortcutString = shortcuts.join(QChar('\t'));
-        }
-
-        GlobalShortcut *shortcut =
-            registerShortcut(action, 
m_desktopFile->actionGroup(action).readEntry(QStringLiteral("Name")), 
shortcutString, shortcutString);
-        shortcut->setIsPresent(true);
+        registerGroupShortcut(action, m_desktopFile->actionGroup(action));
     }
 }
 

Reply via email to