kde-apps/konsole: Adapt the code to >=kde-frameworks/kbookmarks-5.69

Tested-by: Michael Mair-Keimberger <m.mairkeimberger@gmail.com>
Tested-by: Nils Freydank <holgersson@posteo.de>
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
This commit is contained in:
Andreas Sturmlechner
2020-04-15 21:32:09 +02:00
parent 0ce2cd9d92
commit d05e2833e4
2 changed files with 186 additions and 0 deletions

View File

@@ -0,0 +1,117 @@
From e56c31a961b182663decd44bc57729576446315b Mon Sep 17 00:00:00 2001
From: Ahmad Samir <a.samirh78@gmail.com>
Date: Mon, 13 Apr 2020 11:30:47 +0200
Subject: [PATCH] [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
(cherry picked from commit 6db7f8d2593ccb0238b2b547ed6eaf7da6a26c4c)
(cherry picked from commit dcf8cf3f2255293da170648f633873aa7c4afcf1)
---
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 77344ad1..5b83ece9 100644
--- a/src/BookmarkMenu.cpp
+++ b/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 a42eab23..fde893c0 100644
--- a/src/BookmarkMenu.h
+++ b/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 461b9e54..90bbf5ed 100644
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -190,16 +190,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
--
2.26.1

View File

@@ -0,0 +1,69 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
ECM_HANDBOOK="optional"
ECM_TEST="true"
KFMIN=5.63.0
QTMIN=5.12.3
VIRTUALX_REQUIRED="test"
inherit ecm kde.org
DESCRIPTION="KDE's terminal emulator"
HOMEPAGE="https://kde.org/applications/system/org.kde.konsole
https://konsole.kde.org"
LICENSE="GPL-2" # TODO: CHECK
SLOT="5"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
IUSE="X"
# drop kbookmarks subslot operator when KFMIN >= 5.69.0
DEPEND="
>=dev-qt/qtdbus-${QTMIN}:5
>=dev-qt/qtgui-${QTMIN}:5
>=dev-qt/qtnetwork-${QTMIN}:5
>=dev-qt/qtprintsupport-${QTMIN}:5
>=dev-qt/qtwidgets-${QTMIN}:5
>=dev-qt/qtxml-${QTMIN}:5
>=kde-frameworks/kbookmarks-${KFMIN}:5=
>=kde-frameworks/kcompletion-${KFMIN}:5
>=kde-frameworks/kconfig-${KFMIN}:5
>=kde-frameworks/kconfigwidgets-${KFMIN}:5
>=kde-frameworks/kcoreaddons-${KFMIN}:5
>=kde-frameworks/kcrash-${KFMIN}:5
>=kde-frameworks/kdbusaddons-${KFMIN}:5
>=kde-frameworks/kguiaddons-${KFMIN}:5
>=kde-frameworks/kjobwidgets-${KFMIN}:5
>=kde-frameworks/ki18n-${KFMIN}:5
>=kde-frameworks/kinit-${KFMIN}:5
>=kde-frameworks/kiconthemes-${KFMIN}:5
>=kde-frameworks/kio-${KFMIN}:5
>=kde-frameworks/knewstuff-${KFMIN}:5
>=kde-frameworks/knotifications-${KFMIN}:5
>=kde-frameworks/knotifyconfig-${KFMIN}:5
>=kde-frameworks/kparts-${KFMIN}:5
>=kde-frameworks/kpty-${KFMIN}:5
>=kde-frameworks/kservice-${KFMIN}:5
>=kde-frameworks/ktextwidgets-${KFMIN}:5
>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
>=kde-frameworks/kwindowsystem-${KFMIN}:5
>=kde-frameworks/kxmlgui-${KFMIN}:5
X? ( x11-libs/libX11 )
"
RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}/${PN}-19.12.2-darkbackground-detect.patch"
"${FILESDIR}/${P}-no-ccache.patch"
"${FILESDIR}/${P}-kf5bookmarks-5.69.patch" # KDE-Bug 419981
)
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package X X11)
)
ecm_src_configure
}