From d30709edb0adde123b05a3a560555cfa2f7f26af Mon Sep 17 00:00:00 2001 From: chrox Date: Wed, 15 Oct 2014 20:31:24 +0800 Subject: [PATCH] add djvu render mode options in readermenu --- frontend/apps/reader/modules/readermenu.lua | 3 +++ frontend/apps/reader/modules/readerview.lua | 29 ++++++++++++++++++--- frontend/document/djvudocument.lua | 1 + 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/frontend/apps/reader/modules/readermenu.lua b/frontend/apps/reader/modules/readermenu.lua index 526968891..182daaa23 100644 --- a/frontend/apps/reader/modules/readermenu.lua +++ b/frontend/apps/reader/modules/readermenu.lua @@ -112,6 +112,9 @@ function ReaderMenu:setUpdateItemTable() end }) table.insert(self.tab_item_table.setting, Language:getLangMenuTable()) + if self.ui.document.is_djvu then + table.insert(self.tab_item_table.setting, self.view:getRenderModeMenuTable()) + end table.insert(self.tab_item_table.setting, { text = _("Show advanced options"), checked_func = function() return G_reader_settings:readSetting("show_advanced") end, diff --git a/frontend/apps/reader/modules/readerview.lua b/frontend/apps/reader/modules/readerview.lua index 7faa9f6a0..d475bb5b2 100644 --- a/frontend/apps/reader/modules/readerview.lua +++ b/frontend/apps/reader/modules/readerview.lua @@ -1,12 +1,13 @@ +local ReaderFlipping = require("apps/reader/modules/readerflipping") +local ReaderFooter = require("apps/reader/modules/readerfooter") +local ReaderDogear = require("apps/reader/modules/readerdogear") local OverlapGroup = require("ui/widget/overlapgroup") local UIManager = require("ui/uimanager") local Screen = require("ui/screen") local Geom = require("ui/geometry") local Event = require("ui/event") local DEBUG = require("dbg") -local ReaderFlipping = require("apps/reader/modules/readerflipping") -local ReaderFooter = require("apps/reader/modules/readerfooter") -local ReaderDogear = require("apps/reader/modules/readerdogear") +local _ = require("gettext") local ReaderView = OverlapGroup:new{ document = nil, @@ -671,4 +672,26 @@ function ReaderView:autoSaveSettings() end end +function ReaderView:getRenderModeMenuTable() + local view = self + local function make_mode(text, mode) + return { + text = text, + checked_func = function() return view.render_mode == mode end, + callback = function() view.render_mode = mode end, + } + end + return { + text = _("DjVu render mode"), + sub_item_table = { + make_mode(_("COLOUR (works for both colour and b&w pages)"), 0), + make_mode(_("BLACK & WHITE (for b&w pages only, much faster)"), 1), + make_mode(_("COLOUR ONLY (slightly faster than COLOUR)"), 2), + make_mode(_("MASK ONLY (for b&w pages only)"), 3), + make_mode(_("COLOUR BACKGROUND (show only background)"), 4), + make_mode(_("COLOUR FOREGROUND (show only foreground)"), 5), + } + } +end + return ReaderView diff --git a/frontend/document/djvudocument.lua b/frontend/document/djvudocument.lua index d4bf5dc7b..d91e38f2e 100644 --- a/frontend/document/djvudocument.lua +++ b/frontend/document/djvudocument.lua @@ -9,6 +9,7 @@ local Configurable = require("configurable") local DjvuDocument = Document:new{ _document = false, -- libdjvulibre manages its own additional cache, default value is hard written in c module. + is_djvu = true, djvulibre_cache_size = nil, dc_null = DrawContext.new(), options = KoptOptions,