commit:     d05e2833e464fdae89660ebf0cb283f67687582d
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 15 19:32:09 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Apr 15 22:27:20 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d05e2833

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

Tested-by: Michael Mair-Keimberger <m.mairkeimberger <AT> gmail.com>
Tested-by: Nils Freydank <holgersson <AT> posteo.de>
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/konsole-19.12.3-kf5bookmarks-5.69.patch  | 117 +++++++++++++++++++++
 kde-apps/konsole/konsole-19.12.3-r1.ebuild         |  69 ++++++++++++
 2 files changed, 186 insertions(+)

diff --git a/kde-apps/konsole/files/konsole-19.12.3-kf5bookmarks-5.69.patch 
b/kde-apps/konsole/files/konsole-19.12.3-kf5bookmarks-5.69.patch
new file mode 100644
index 00000000000..d70a50ea055
--- /dev/null
+++ b/kde-apps/konsole/files/konsole-19.12.3-kf5bookmarks-5.69.patch
@@ -0,0 +1,117 @@
+From e56c31a961b182663decd44bc57729576446315b Mon Sep 17 00:00:00 2001
+From: Ahmad Samir <a.samir...@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
+

diff --git a/kde-apps/konsole/konsole-19.12.3-r1.ebuild 
b/kde-apps/konsole/konsole-19.12.3-r1.ebuild
new file mode 100644
index 00000000000..d3f4cb95ef1
--- /dev/null
+++ b/kde-apps/konsole/konsole-19.12.3-r1.ebuild
@@ -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
+}

Reply via email to