diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 530a8a91c..37d1b073e 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -66,40 +66,44 @@ end function ReaderHighlight:addToMainMenu(tab_item_table) -- insert table to main reader menu table.insert(tab_item_table.typeset, { - text = _("Set highlight drawer "), + text = _("Highlight"), sub_item_table = self:genHighlightDrawerMenu(), }) end +local highlight_style = { + lighten = _("Lighten"), + underscore = _("Underscore"), + invert = _("Invert"), +} + function ReaderHighlight:genHighlightDrawerMenu() - return { - { - text = _("Lighten"), + local get_highlight_style = function(style) + return { + text = highlight_style[style], checked_func = function() - return self.view.highlight.saved_drawer == "lighten" + return self.view.highlight.saved_drawer == style end, - callback = function() - self.view.highlight.saved_drawer = "lighten" - end - }, - { - text = _("Underscore"), - checked_func = function() - return self.view.highlight.saved_drawer == "underscore" + enabled_func = function() + return not self.view.highlight.disabled end, callback = function() - self.view.highlight.saved_drawer = "underscore" + self.view.highlight.saved_drawer = style end - }, + } + end + return { { - text = _("Invert"), - checked_func = function() - return self.view.highlight.saved_drawer == "invert" + text_func = function() + return self.view.highlight.disabled and _("Enable") or _("Disable") end, callback = function() - self.view.highlight.saved_drawer = "invert" + self.view.highlight.disabled = not self.view.highlight.disabled end }, + get_highlight_style("lighten"), + get_highlight_style("underscore"), + get_highlight_style("invert"), } end @@ -218,6 +222,8 @@ function ReaderHighlight:onShowHighlightDialog(page, index) end function ReaderHighlight:onHold(arg, ges) + -- disable hold gesture if highlighting is disabled + if self.view.highlight.disabled then return true end self.hold_pos = self.view:screenToPageTransform(ges.pos) DEBUG("hold position in page", self.hold_pos) if not self.hold_pos then @@ -462,10 +468,12 @@ end function ReaderHighlight:onReadSettings(config) self.view.highlight.saved_drawer = config:readSetting("highlight_drawer") or self.view.highlight.saved_drawer + self.view.highlight.disabled = config:readSetting("highlight_disabled") or false end function ReaderHighlight:onSaveSettings() self.ui.doc_settings:saveSetting("highlight_drawer", self.view.highlight.saved_drawer) + self.ui.doc_settings:saveSetting("highlight_disabled", self.view.highlight.disabled) end function ReaderHighlight:onClose()