54 lines
2.8 KiB
Diff
54 lines
2.8 KiB
Diff
|
From c00d380ebe58d6c4c1765e33264d787f8ccef126 Mon Sep 17 00:00:00 2001
|
||
|
From: David Redondo <kde@david-redondo.de>
|
||
|
Date: Fri, 11 Jun 2021 09:40:21 +0200
|
||
|
Subject: [PATCH] krunerglobalshortcuts: Fix migration from old component
|
||
|
|
||
|
When calling cleanUpComponent KGlobalAccel checks if there are no
|
||
|
shortcuts active, otherwise it will refuse to clean the component.
|
||
|
For a desktop file component (aka KServiceActionComponent) all
|
||
|
shortcuts are deactivated inside cleanUpComponent. For a regular
|
||
|
Component we have to do this manually.
|
||
|
---
|
||
|
krunner/update/krunnerglobalshortcuts.cpp | 22 +++++++++++++++-------
|
||
|
1 file changed, 15 insertions(+), 7 deletions(-)
|
||
|
|
||
|
diff --git a/krunner/update/krunnerglobalshortcuts.cpp b/krunner/update/krunnerglobalshortcuts.cpp
|
||
|
index af9ffbe1f..618502e34 100644
|
||
|
--- a/krunner/update/krunnerglobalshortcuts.cpp
|
||
|
+++ b/krunner/update/krunnerglobalshortcuts.cpp
|
||
|
@@ -58,16 +58,24 @@ int main(int argc, char **argv)
|
||
|
|
||
|
QList<QKeySequence> oldRunCommand;
|
||
|
QList<QKeySequence> oldRunClipboard;
|
||
|
- if (KGlobalAccel::isComponentActive(oldCompomentName)) {
|
||
|
- oldRunCommand = KGlobalAccel::self()->globalShortcut(oldCompomentName, QStringLiteral("run command"));
|
||
|
- oldRunClipboard = KGlobalAccel::self()->globalShortcut(oldCompomentName, QStringLiteral("run command on clipboard contents"));
|
||
|
- KGlobalAccel::self()->cleanComponent(oldCompomentName);
|
||
|
- } else if (KGlobalAccel::isComponentActive(oldDesktopFile)) {
|
||
|
+
|
||
|
+ // It can happen that the old component is not active so we do it unconditionally
|
||
|
+ KActionCollection oldActions(nullptr, oldCompomentName);
|
||
|
+ QAction oldRunCommandAction, oldRunClipboardAction;
|
||
|
+ oldActions.addAction(QStringLiteral("run command"), &oldRunCommandAction);
|
||
|
+ oldActions.addAction(QStringLiteral("run command on clipboard contents"), &oldRunClipboardAction);
|
||
|
+ oldRunCommand = KGlobalAccel::self()->globalShortcut(oldCompomentName, oldRunCommandAction.objectName());
|
||
|
+ oldRunClipboard = KGlobalAccel::self()->globalShortcut(oldCompomentName, oldRunClipboardAction.objectName());
|
||
|
+ KGlobalAccel::self()->setShortcut(&oldRunCommandAction, {});
|
||
|
+ KGlobalAccel::self()->setShortcut(&oldRunClipboardAction, {});
|
||
|
+ KGlobalAccel::self()->removeAllShortcuts(&oldRunCommandAction);
|
||
|
+ KGlobalAccel::self()->removeAllShortcuts(&oldRunClipboardAction);
|
||
|
+ KGlobalAccel::self()->cleanComponent(oldCompomentName);
|
||
|
+
|
||
|
+ if (KGlobalAccel::isComponentActive(oldDesktopFile)) {
|
||
|
oldRunCommand = KGlobalAccel::self()->globalShortcut(oldDesktopFile, runCommandAction->objectName());
|
||
|
oldRunClipboard = KGlobalAccel::self()->globalShortcut(oldDesktopFile, runClipboardAction->objectName());
|
||
|
KGlobalAccel::self()->cleanComponent(oldDesktopFile);
|
||
|
- } else {
|
||
|
- return 0;
|
||
|
}
|
||
|
|
||
|
shortCutActions.takeAction(runCommandAction);
|
||
|
--
|
||
|
2.25.1
|
||
|
|