From 53e7a0b6c978ecab6271db22efac42c0b5abbdc5 Mon Sep 17 00:00:00 2001 From: onde2rock Date: Tue, 16 Oct 2018 21:05:58 +0200 Subject: [PATCH] [Non-touch] Add a menu item to toggle a bookmark on the current page (#4262) --- .../apps/reader/modules/readerbookmark.lua | 18 ++++++++++++++++++ frontend/ui/elements/reader_menu_order.lua | 1 + 2 files changed, 19 insertions(+) diff --git a/frontend/apps/reader/modules/readerbookmark.lua b/frontend/apps/reader/modules/readerbookmark.lua index 74223155d..4b3ff2b2f 100644 --- a/frontend/apps/reader/modules/readerbookmark.lua +++ b/frontend/apps/reader/modules/readerbookmark.lua @@ -55,6 +55,14 @@ function ReaderBookmark:addToMainMenu(menu_items) self:onShowBookmark() end, } + if not Device:isTouchDevice() then + menu_items.toggle_bookmark = { + text_func = function() return self:isCurrentPageBookmarked() and _("Remove bookmark for current page") or _("Bookmark current page") end, + callback = function() + self:onToggleBookmark() + end, + } + end if self.ui.document.info.has_pages then menu_items.bookmark_browsing_mode = { text = self.bbm_menu_title, @@ -158,6 +166,16 @@ function ReaderBookmark:onSaveSettings() self.ui.doc_settings:saveSetting("highlights_imported", true) end +function ReaderBookmark:isCurrentPageBookmarked() + local pn_or_xp + if self.ui.document.info.has_pages then + pn_or_xp = self.view.state.page + else + pn_or_xp = self.ui.document:getXPointer() + end + return self:getDogearBookmarkIndex(pn_or_xp) and true or false +end + function ReaderBookmark:onToggleBookmark() local pn_or_xp if self.ui.document.info.has_pages then diff --git a/frontend/ui/elements/reader_menu_order.lua b/frontend/ui/elements/reader_menu_order.lua index 0a8652a31..363ac5084 100644 --- a/frontend/ui/elements/reader_menu_order.lua +++ b/frontend/ui/elements/reader_menu_order.lua @@ -11,6 +11,7 @@ local order = { navi = { "table_of_contents", "bookmarks", + "toggle_bookmark", "bookmark_browsing_mode", "----------------------------", "go_to",