konsole: add patch to be able to configure bookmark shortcut
Without this konsole is broken for users that might use termux and want to have Ctrl+B to be usable for termux
This commit is contained in:
parent
17c952a778
commit
f56f1ca049
|
@ -0,0 +1,115 @@
|
|||
From 6db7f8d2593ccb0238b2b547ed6eaf7da6a26c4c Mon Sep 17 00:00:00 2001
|
||||
From: Ahmad Samir <a.samirh78@gmail.com>
|
||||
Date: Mon, 13 Apr 2020 11:30:47 +0200
|
||||
Subject: [BookmarkMenu] Adapt the code to KBookmarks 5.69 changes
|
||||
|
||||
Starting from KBookmarks 5.69 the ctor that took a KActionCollection
|
||||
parameter has been deprecated, and we need to manually add the various
|
||||
bookmark actions to the actionCollection so that they show up in the
|
||||
shortcusts editor.
|
||||
|
||||
Move the code that overrides the add bookmark shortcut, Ctrl+B, to the
|
||||
BookmarkMenu class, so that all the relevant code is in one place.
|
||||
|
||||
BUG: 419981
|
||||
---
|
||||
src/BookmarkMenu.cpp | 34 +++++++++++++++++++++++++++++-----
|
||||
src/BookmarkMenu.h | 2 +-
|
||||
src/MainWindow.cpp | 10 ----------
|
||||
3 files changed, 30 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/src/BookmarkMenu.cpp b/src/BookmarkMenu.cpp
|
||||
index 77344ad..5b83ece 100644
|
||||
--- src/BookmarkMenu.cpp
|
||||
+++ src/BookmarkMenu.cpp
|
||||
@@ -21,24 +21,48 @@
|
||||
|
||||
// Own
|
||||
#include "BookmarkMenu.h"
|
||||
+#include "Shortcut_p.h"
|
||||
|
||||
// KDE
|
||||
#include <KActionCollection>
|
||||
+#include <kbookmarks_version.h>
|
||||
+#include <KBookmarkManager>
|
||||
+#include <KBookmark>
|
||||
|
||||
// Qt
|
||||
#include <QAction>
|
||||
-#include <KBookmarkManager>
|
||||
-#include <KBookmark>
|
||||
+#include <QMenu>
|
||||
|
||||
#include <algorithm> // std::any_of
|
||||
|
||||
-BookmarkMenu::BookmarkMenu (KBookmarkManager *mgr, KBookmarkOwner *owner, QMenu *parentMenu, KActionCollection *collec) :
|
||||
- KBookmarkMenu (mgr, owner, parentMenu, collec)
|
||||
+BookmarkMenu::BookmarkMenu (KBookmarkManager *mgr, KBookmarkOwner *owner, QMenu *parentMenu, KActionCollection *collection) :
|
||||
+#if KBOOKMARKS_VERSION < QT_VERSION_CHECK(5, 69, 0)
|
||||
+ KBookmarkMenu (mgr, owner, parentMenu, collection)
|
||||
+#else
|
||||
+ KBookmarkMenu (mgr, owner, parentMenu)
|
||||
+#endif
|
||||
{
|
||||
+ QAction *bookmarkAction;
|
||||
+#if KBOOKMARKS_VERSION < QT_VERSION_CHECK(5, 69, 0)
|
||||
+ bookmarkAction = collection->action(QStringLiteral("add_bookmark"));
|
||||
+#else
|
||||
+ collection->addActions(parentMenu->actions());
|
||||
+
|
||||
+ bookmarkAction = addBookmarkAction();
|
||||
+#endif
|
||||
+
|
||||
+ Q_ASSERT(bookmarkAction);
|
||||
+
|
||||
// We need to hijack the action - note this only hijacks top-level action
|
||||
- QAction *bookmarkAction = collec->action(QStringLiteral("add_bookmark"));
|
||||
disconnect(bookmarkAction, nullptr, this, nullptr);
|
||||
connect(bookmarkAction, &QAction::triggered, this, &BookmarkMenu::maybeAddBookmark);
|
||||
+
|
||||
+ // replace Ctrl+B shortcut for bookmarks only if user hasn't already
|
||||
+ // changed the shortcut; however, if the user changed it to Ctrl+B
|
||||
+ // this will still get changed to Ctrl+Shift+B
|
||||
+ if (bookmarkAction->shortcut() == QKeySequence(Konsole::ACCEL + Qt::Key_B)) {
|
||||
+ collection->setDefaultShortcut(bookmarkAction, Konsole::ACCEL + Qt::SHIFT + Qt::Key_B);
|
||||
+ }
|
||||
}
|
||||
|
||||
void BookmarkMenu::maybeAddBookmark()
|
||||
diff --git a/src/BookmarkMenu.h b/src/BookmarkMenu.h
|
||||
index a42eab2..fde893c 100644
|
||||
--- src/BookmarkMenu.h
|
||||
+++ src/BookmarkMenu.h
|
||||
@@ -39,7 +39,7 @@ class KONSOLEPRIVATE_EXPORT BookmarkMenu : public KBookmarkMenu
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
- BookmarkMenu (KBookmarkManager *mgr, KBookmarkOwner *owner, QMenu *parentMenu, KActionCollection *collec);
|
||||
+ BookmarkMenu (KBookmarkManager *mgr, KBookmarkOwner *owner, QMenu *parentMenu, KActionCollection *collection);
|
||||
|
||||
private Q_SLOTS:
|
||||
void maybeAddBookmark();
|
||||
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
|
||||
index e33eefb..17545f3 100644
|
||||
--- src/MainWindow.cpp
|
||||
+++ src/MainWindow.cpp
|
||||
@@ -193,16 +193,6 @@ void MainWindow::correctStandardShortcuts()
|
||||
if (helpAction != nullptr) {
|
||||
actionCollection()->setDefaultShortcut(helpAction, QKeySequence());
|
||||
}
|
||||
-
|
||||
- // replace Ctrl+B shortcut for bookmarks only if user hasn't already
|
||||
- // changed the shortcut; however, if the user changed it to Ctrl+B
|
||||
- // this will still get changed to Ctrl+Shift+B
|
||||
- QAction *bookmarkAction = actionCollection()->action(QStringLiteral("add_bookmark"));
|
||||
- if ((bookmarkAction != nullptr)
|
||||
- && bookmarkAction->shortcut() == QKeySequence(Konsole::ACCEL + Qt::Key_B)) {
|
||||
- actionCollection()->setDefaultShortcut(bookmarkAction,
|
||||
- Konsole::ACCEL + Qt::SHIFT + Qt::Key_B);
|
||||
- }
|
||||
}
|
||||
|
||||
ViewManager *MainWindow::viewManager() const
|
||||
--
|
||||
cgit v1.1
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'konsole'
|
||||
pkgname=konsole
|
||||
version=19.12.3
|
||||
revision=1
|
||||
revision=2
|
||||
build_style=cmake
|
||||
configure_args="-DBUILD_TESTING=OFF"
|
||||
hostmakedepends="pkg-config extra-cmake-modules kcoreaddons qt5-devel
|
||||
|
|
Loading…
Reference in New Issue