From 01557c16c4e5e66036cc1602d85dfb24ed68ebd5 Mon Sep 17 00:00:00 2001 From: Nate Graham Date: Fri, 27 Aug 2021 09:42:02 -0600 Subject: [PATCH] Put an "Add Bookmark" button on the Bookmarks sidebar Previously, the only ways to add a bookmark were with the menu item or keyboard shortcut. This commit adds a button at the bottom of the bookmarks sidebar to do the same thing, which seems like a logical place for such functionality. setupViewerActions() was moved to earlier in the setup process to ensure that m_addBookmark is assigned by the time the bookmarks sidebar is created, since it gets passed that action in its constructor. BUG: 357625 FIXED-IN: 21.12 --- part/bookmarklist.cpp | 4 +++- part/bookmarklist.h | 2 +- part/part.cpp | 6 +++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/part/bookmarklist.cpp b/part/bookmarklist.cpp index eafe8a415..a106c6f0f 100644 --- a/part/bookmarklist.cpp +++ b/part/bookmarklist.cpp @@ -115,7 +115,7 @@ public: } }; -BookmarkList::BookmarkList(Okular::Document *document, QWidget *parent) +BookmarkList::BookmarkList(Okular::Document *document, QAction *addBookmarkAction, QWidget *parent) : QWidget(parent) , m_document(document) , m_currentDocumentItem(nullptr) @@ -162,6 +162,8 @@ BookmarkList::BookmarkList(Okular::Document *document, QWidget *parent) m_showBoomarkOnlyAction = bookmarkController->addAction(QIcon::fromTheme(QStringLiteral("bookmarks")), i18n("Current document only")); m_showBoomarkOnlyAction->setCheckable(true); connect(m_showBoomarkOnlyAction, &QAction::toggled, this, &BookmarkList::slotFilterBookmarks); + // insert a button to bookmark/un-bookmark the current page + bookmarkController->addAction(addBookmarkAction); connect(m_document->bookmarkManager(), &Okular::BookmarkManager::bookmarksChanged, this, &BookmarkList::slotBookmarksChanged); diff --git a/part/bookmarklist.h b/part/bookmarklist.h index 3759c2cbd..027cb7f64 100644 --- a/part/bookmarklist.h +++ b/part/bookmarklist.h @@ -29,7 +29,7 @@ class BookmarkList : public QWidget, public Okular::DocumentObserver Q_OBJECT public: - explicit BookmarkList(Okular::Document *document, QWidget *parent = nullptr); + explicit BookmarkList(Okular::Document *document, QAction *addBookmarkAction, QWidget *parent = nullptr); ~BookmarkList() override; // inherited from DocumentObserver diff --git a/part/part.cpp b/part/part.cpp index 57882ef04..f3d3bf46f 100644 --- a/part/part.cpp +++ b/part/part.cpp @@ -377,6 +377,8 @@ Part::Part(QWidget *parentWidget, QObject *parent, const QVariantList &args) // sLabel->setBuddy( m_searchWidget ); // m_searchToolBar->setStretchableWidget( m_searchWidget ); + setupViewerActions(); + // [left toolbox optional item: Table of Contents] | [] m_toc = new TOC(nullptr, m_document); connect(m_toc.data(), &TOC::hasTOC, this, &Part::enableTOC); @@ -404,7 +406,7 @@ Part::Part(QWidget *parentWidget, QObject *parent, const QVariantList &args) m_sidebar->addItem(m_reviewsWidget, QIcon::fromTheme(QStringLiteral("draw-freehand")), i18n("Annotations")); // [left toolbox: Bookmarks] | [] - m_bookmarkList = new BookmarkList(m_document, nullptr); + m_bookmarkList = new BookmarkList(m_document, m_addBookmark, nullptr); m_sidebar->addItem(m_bookmarkList, QIcon::fromTheme(QStringLiteral("bookmarks")), i18n("Bookmarks")); // [left toolbox optional item: Signature Panel] | [] @@ -536,8 +538,6 @@ Part::Part(QWidget *parentWidget, QObject *parent, const QVariantList &args) connect(m_document->bookmarkManager(), &BookmarkManager::saved, this, &Part::slotRebuildBookmarkMenu); - setupViewerActions(); - if (m_embedMode != ViewerWidgetMode) { setupActions(); } else {