From f56f1ca04995a55bd8b372b6d5e90b84ad76629d Mon Sep 17 00:00:00 2001 From: John Date: Thu, 16 Apr 2020 19:54:03 +0200 Subject: [PATCH] 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 --- srcpkgs/konsole/patches/bookmarks.patch | 115 ++++++++++++++++++++++++ srcpkgs/konsole/template | 2 +- 2 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/konsole/patches/bookmarks.patch diff --git a/srcpkgs/konsole/patches/bookmarks.patch b/srcpkgs/konsole/patches/bookmarks.patch new file mode 100644 index 00000000000..6df2a33849b --- /dev/null +++ b/srcpkgs/konsole/patches/bookmarks.patch @@ -0,0 +1,115 @@ +From 6db7f8d2593ccb0238b2b547ed6eaf7da6a26c4c Mon Sep 17 00:00:00 2001 +From: Ahmad Samir +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 ++#include ++#include ++#include + + // Qt + #include +-#include +-#include ++#include + + #include // 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 + diff --git a/srcpkgs/konsole/template b/srcpkgs/konsole/template index 581c9f03fa7..ce7f43b10fe 100644 --- a/srcpkgs/konsole/template +++ b/srcpkgs/konsole/template @@ -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