summaryrefslogtreecommitdiff
blob: 63bda683122fb67a9c79225e6ac7918cc22ffece (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
From ca6f4b963e83ed91cc7314e1b60fe6607b61b53e Mon Sep 17 00:00:00 2001
From: Igor Poboiko <igor.poboiko@gmail.com>
Date: Sun, 12 Apr 2020 17:55:24 +0300
Subject: [KJots] Fix bookmarks actions

Summary:
This patch ports KJots from deprecated `KBookmarksMenu` API (see {D25660}).

On my machine, it also fixes a crash (`bm_action` was null for some reason,
I did not investigate it though).

It also fixes the shortcuts collision (`action->setShortcut` was not enough,
one also needs to run `actionCollection->setDefaultShortcut`).

BUG: 384000

Test Plan:
1) Start KJots
2) It don't crash, and `Ambiguous shortcuts` dialog does not appear)
3) Open `Bookmarks` menu, the shortcut is `Ctrl+Shift+B`.

Reviewers: dvratil

Reviewed By: dvratil

Subscribers: winterz, kde-pim

Tags: #kde_pim

Differential Revision: https://phabricator.kde.org/D28775
---
 src/kjotswidget.cpp | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/kjotswidget.cpp b/src/kjotswidget.cpp
index 865129b..e343bbd 100644
--- a/src/kjotswidget.cpp
+++ b/src/kjotswidget.cpp
@@ -353,17 +353,20 @@ KJotsWidget::KJotsWidget(QWidget *parent, KXMLGUIClient *xmlGuiClient, Qt::Windo
     bookmarkMenu = actionCollection->add<KActionMenu>(QLatin1String("bookmarks"));
     bookmarkMenu->setText(i18n("&Bookmarks"));
     KJotsBookmarks *bookmarks = new KJotsBookmarks(treeview);
-    /*KBookmarkMenu *bmm =*/ new KBookmarkMenu(
+    KBookmarkMenu *bmm = new KBookmarkMenu(
         KBookmarkManager::managerForFile(
             QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).first() + QStringLiteral("/kjots/bookmarks.xml"),
             QStringLiteral("kjots")),
-        bookmarks, bookmarkMenu->menu(), actionCollection);
+        bookmarks, bookmarkMenu->menu());
 
     // "Add bookmark" and "make text bold" actions have conflicting shortcuts (ctrl + b)
     // Make add_bookmark use ctrl+shift+b to resolve that.
-    QAction *bm_action = qobject_cast<QAction *>(actionCollection->action(QLatin1String("add_bookmark")));
-    Q_ASSERT(bm_action);
-    bm_action->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_B);
+    QAction *bm_action = bmm->addBookmarkAction();
+    actionCollection->addAction(QStringLiteral("add_bookmark"), bm_action);
+    actionCollection->setDefaultShortcut(bm_action, Qt::CTRL | Qt::SHIFT | Qt::Key_B);
+    actionCollection->addAction(QStringLiteral("edit_bookmark"), bmm->editBookmarksAction());
+    actionCollection->addAction(QStringLiteral("add_bookmarks_list"), bmm->bookmarkTabsAsFolderAction());
+
 
     KStandardAction::find(this, SLOT(onShowSearch()), actionCollection);
     action = KStandardAction::findNext(this, SLOT(onRepeatSearch()), actionCollection);
-- 
cgit v1.1