From e5de29bfbd36ec4ca56df5611a12e8b8a84582dd Mon Sep 17 00:00:00 2001 From: chrox Date: Fri, 27 Dec 2013 21:15:34 +0800 Subject: [PATCH 01/12] remove redundant debug --- frontend/ui/gesturedetector.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/ui/gesturedetector.lua b/frontend/ui/gesturedetector.lua index 007958d08..1a334527a 100644 --- a/frontend/ui/gesturedetector.lua +++ b/frontend/ui/gesturedetector.lua @@ -350,7 +350,7 @@ function GestureDetector:handleNonTap(tev) return self:switchState("holdState", tev, true) end end, deadline) - DEBUG("handle non-tap", tev) + --DEBUG("handle non-tap", tev) return { ges = "touch", pos = Geom:new{ From 32cd7b2a880e8f714cb438e9201b67535ada7c88 Mon Sep 17 00:00:00 2001 From: chrox Date: Fri, 27 Dec 2013 21:47:08 +0800 Subject: [PATCH 02/12] show both reader menu and config menu when tapping top So the bottom tap zone is optional now and will be removed by default in the future. --- frontend/ui/reader/readerconfig.lua | 1 + frontend/ui/reader/readermenu.lua | 5 +++-- frontend/ui/widget/configdialog.lua | 9 --------- frontend/ui/widget/touchmenu.lua | 2 -- 4 files changed, 4 insertions(+), 13 deletions(-) diff --git a/frontend/ui/reader/readerconfig.lua b/frontend/ui/reader/readerconfig.lua index ecc255a72..72a68d57d 100644 --- a/frontend/ui/reader/readerconfig.lua +++ b/frontend/ui/reader/readerconfig.lua @@ -45,6 +45,7 @@ function ReaderConfig:onShowConfigMenu() ui = self.ui, configurable = self.configurable, config_options = self.options, + is_always_active = true, close_callback = function() self:onCloseCallback() end, } self.ui:handleEvent(Event:new("DisableHinting")) diff --git a/frontend/ui/reader/readermenu.lua b/frontend/ui/reader/readermenu.lua index ee789b226..4bbaa257b 100644 --- a/frontend/ui/reader/readermenu.lua +++ b/frontend/ui/reader/readermenu.lua @@ -76,7 +76,7 @@ function ReaderMenu:setUpdateItemTable() }) end -function ReaderMenu:onShowMenu() +function ReaderMenu:onShowReaderMenu() if #self.tab_item_table.main == 0 then self:setUpdateItemTable() end @@ -125,7 +125,8 @@ function ReaderMenu:onShowMenu() end function ReaderMenu:onTapShowMenu() - self:onShowMenu() + self.ui:handleEvent(Event:new("ShowConfigMenu")) + self.ui:handleEvent(Event:new("ShowReaderMenu")) return true end diff --git a/frontend/ui/widget/configdialog.lua b/frontend/ui/widget/configdialog.lua index 6e4ed9a71..836026767 100644 --- a/frontend/ui/widget/configdialog.lua +++ b/frontend/ui/widget/configdialog.lua @@ -491,17 +491,8 @@ end function ConfigDialog:onShowConfigPanel(index) self.panel_index = index - local orig_dimen = self.dialog_frame and self.dialog_frame.dimen or Geom:new{} - self:update() - UIManager.repaint_all = true - UIManager.full_refresh = true - UIManager.update_region_func = function() - local update_region = self.dialog_frame.dimen:combine(orig_dimen) - DEBUG("update region", update_region) - return update_region - end return true end diff --git a/frontend/ui/widget/touchmenu.lua b/frontend/ui/widget/touchmenu.lua index 92e986977..2b045d24f 100644 --- a/frontend/ui/widget/touchmenu.lua +++ b/frontend/ui/widget/touchmenu.lua @@ -65,7 +65,6 @@ function TouchMenuItem:onTapSelect(arg, ges) UIManager:setDirty(self.show_parent, "partial") end) self.menu:onMenuSelect(self.item) - return true end @@ -422,7 +421,6 @@ end function TouchMenu:onTapCloseAllMenus(arg, ges_ev) if ges_ev.pos:notIntersectWith(self.dimen) then self:closeMenu() - return true end end From ee8838960b253a60799828a75d7ae43b16cdece7 Mon Sep 17 00:00:00 2001 From: chrox Date: Fri, 27 Dec 2013 23:18:16 +0800 Subject: [PATCH 03/12] add auto save settings option --- defaults.lua | 3 +++ frontend/ui/reader/readerbookmark.lua | 2 +- frontend/ui/reader/readerconfig.lua | 2 +- frontend/ui/reader/readercropping.lua | 2 +- frontend/ui/reader/readerdictionary.lua | 2 +- frontend/ui/reader/readerfont.lua | 2 +- frontend/ui/reader/readerkoptlistener.lua | 2 +- frontend/ui/reader/readermenu.lua | 2 +- frontend/ui/reader/readerpaging.lua | 2 +- frontend/ui/reader/readerrolling.lua | 2 +- frontend/ui/reader/readertypeset.lua | 2 +- frontend/ui/reader/readerview.lua | 18 +++++++++++++++++- frontend/ui/reader/readerzooming.lua | 2 +- frontend/ui/readerui.lua | 8 ++++++-- 14 files changed, 37 insertions(+), 14 deletions(-) diff --git a/defaults.lua b/defaults.lua index 6fa73ea3a..c422b77ca 100644 --- a/defaults.lua +++ b/defaults.lua @@ -83,6 +83,9 @@ DCREREADER_CONFIG_FONT_SIZES = {16, 20, 22, 24, 28, 32, 38, 44} -- range from 1 -- gesture detector defaults DGESDETECT_DISABLE_DOUBLE_TAP = true +-- change this to any numerical value if you want to antomatically save settings when turning pages +DAUTO_SAVE_PAGING_COUNT = nil + -- #################################################################### -- following features are not supported right now -- #################################################################### diff --git a/frontend/ui/reader/readerbookmark.lua b/frontend/ui/reader/readerbookmark.lua index aa5332ae2..c7602d07e 100644 --- a/frontend/ui/reader/readerbookmark.lua +++ b/frontend/ui/reader/readerbookmark.lua @@ -29,7 +29,7 @@ function ReaderBookmark:onReadSettings(config) self.bookmarks = config:readSetting("bookmarks") or {} end -function ReaderBookmark:onCloseDocument() +function ReaderBookmark:onSaveSettings() self.ui.doc_settings:saveSetting("bookmarks", self.bookmarks) end diff --git a/frontend/ui/reader/readerconfig.lua b/frontend/ui/reader/readerconfig.lua index 72a68d57d..d4f32bbf9 100644 --- a/frontend/ui/reader/readerconfig.lua +++ b/frontend/ui/reader/readerconfig.lua @@ -87,7 +87,7 @@ function ReaderConfig:onReadSettings(config) self.last_panel_index = config:readSetting("config_panel_index") or 1 end -function ReaderConfig:onCloseDocument() +function ReaderConfig:onSaveSettings() self.configurable:saveSettings(self.ui.doc_settings, self.options.prefix.."_") self.ui.doc_settings:saveSetting("config_panel_index", self.last_panel_index) end diff --git a/frontend/ui/reader/readercropping.lua b/frontend/ui/reader/readercropping.lua index e14879fe0..ef7637c40 100644 --- a/frontend/ui/reader/readercropping.lua +++ b/frontend/ui/reader/readercropping.lua @@ -156,7 +156,7 @@ function ReaderCropping:onReadSettings(config) self.document.bbox = config:readSetting("bbox") end -function ReaderCropping:onCloseDocument() +function ReaderCropping:onSaveSettings() self.ui.doc_settings:saveSetting("bbox", self.document.bbox) end diff --git a/frontend/ui/reader/readerdictionary.lua b/frontend/ui/reader/readerdictionary.lua index aebd6b797..734b0acd9 100644 --- a/frontend/ui/reader/readerdictionary.lua +++ b/frontend/ui/reader/readerdictionary.lua @@ -70,7 +70,7 @@ function ReaderDictionary:onReadSettings(config) self.default_dictionary = config:readSetting("default_dictionary") end -function ReaderDictionary:onCloseDocument() +function ReaderDictionary:onSaveSettings() self.ui.doc_settings:saveSetting("default_dictionary", self.default_dictionary) end diff --git a/frontend/ui/reader/readerfont.lua b/frontend/ui/reader/readerfont.lua index 67e002db0..1c5f6ec85 100644 --- a/frontend/ui/reader/readerfont.lua +++ b/frontend/ui/reader/readerfont.lua @@ -213,7 +213,7 @@ function ReaderFont:onChangeFontGamma(direction) return true end -function ReaderFont:onCloseDocument() +function ReaderFont:onSaveSettings() self.ui.doc_settings:saveSetting("font_face", self.font_face) self.ui.doc_settings:saveSetting("header_font_face", self.header_font_face) self.ui.doc_settings:saveSetting("font_size", self.font_size) diff --git a/frontend/ui/reader/readerkoptlistener.lua b/frontend/ui/reader/readerkoptlistener.lua index fd0af15b7..73bc2c677 100644 --- a/frontend/ui/reader/readerkoptlistener.lua +++ b/frontend/ui/reader/readerkoptlistener.lua @@ -18,7 +18,7 @@ function ReaderKoptListener:onReadSettings(config) self:setZoomMode(self.normal_zoom_mode) end -function ReaderKoptListener:onCloseDocument() +function ReaderKoptListener:onSaveSettings() self.ui.doc_settings:saveSetting("normal_zoom_mode", self.normal_zoom_mode) end diff --git a/frontend/ui/reader/readermenu.lua b/frontend/ui/reader/readermenu.lua index 4bbaa257b..c99cc0f83 100644 --- a/frontend/ui/reader/readermenu.lua +++ b/frontend/ui/reader/readermenu.lua @@ -137,7 +137,7 @@ function ReaderMenu:onSetDimensions(dimen) end end -function ReaderMenu:onCloseDocument() +function ReaderMenu:onSaveSettings() end function ReaderMenu:registerToMainMenu(widget) diff --git a/frontend/ui/reader/readerpaging.lua b/frontend/ui/reader/readerpaging.lua index 023d807bb..e1bc51eaf 100644 --- a/frontend/ui/reader/readerpaging.lua +++ b/frontend/ui/reader/readerpaging.lua @@ -133,7 +133,7 @@ function ReaderPaging:onReadSettings(config) end end -function ReaderPaging:onCloseDocument() +function ReaderPaging:onSaveSettings() self.ui.doc_settings:saveSetting("page_positions", self.page_positions) self.ui.doc_settings:saveSetting("last_page", self:getTopPage()) self.ui.doc_settings:saveSetting("percent_finished", self.current_page/self.number_of_pages) diff --git a/frontend/ui/reader/readerrolling.lua b/frontend/ui/reader/readerrolling.lua index 318eedc2e..0d2654440 100644 --- a/frontend/ui/reader/readerrolling.lua +++ b/frontend/ui/reader/readerrolling.lua @@ -155,7 +155,7 @@ function ReaderRolling:onReadSettings(config) end end -function ReaderRolling:onCloseDocument() +function ReaderRolling:onSaveSettings() -- remove last_percent config since its deprecated self.ui.doc_settings:saveSetting("last_percent", nil) self.ui.doc_settings:saveSetting("last_xpointer", self.ui.document:getXPointer()) diff --git a/frontend/ui/reader/readertypeset.lua b/frontend/ui/reader/readertypeset.lua index 05c9dab8e..d05bd60c3 100644 --- a/frontend/ui/reader/readertypeset.lua +++ b/frontend/ui/reader/readertypeset.lua @@ -33,7 +33,7 @@ function ReaderTypeset:onReadSettings(config) end end -function ReaderTypeset:onCloseDocument() +function ReaderTypeset:onSaveSettings() self.ui.doc_settings:saveSetting("css", self.css) self.ui.doc_settings:saveSetting("embedded_css", self.embedded_css) end diff --git a/frontend/ui/reader/readerview.lua b/frontend/ui/reader/readerview.lua index f472d45ea..d71a396a3 100644 --- a/frontend/ui/reader/readerview.lua +++ b/frontend/ui/reader/readerview.lua @@ -59,6 +59,9 @@ local ReaderView = OverlapGroup:new{ dogear_visible = false, -- in flipping state flipping_visible = false, + + -- auto save settings after turning pages + auto_save_paging_count = 0, } function ReaderView:init() @@ -516,11 +519,13 @@ end function ReaderView:onPageUpdate(new_page_no) self.state.page = new_page_no self:recalculate() + self:autoSaveSettings() end function ReaderView:onPosUpdate(new_pos) self.state.pos = new_pos self:recalculate() + self:autoSaveSettings() end function ReaderView:onZoomUpdate(zoom) @@ -577,7 +582,7 @@ function ReaderView:onSetPageMargins(margins) return true end -function ReaderView:onCloseDocument() +function ReaderView:onSaveSettings() self.ui.doc_settings:saveSetting("render_mode", self.render_mode) self.ui.doc_settings:saveSetting("screen_mode", self.screen_mode) self.ui.doc_settings:saveSetting("rotation_mode", self.cur_rotation_mode) @@ -585,4 +590,15 @@ function ReaderView:onCloseDocument() self.ui.doc_settings:saveSetting("highlight", self.highlight.saved) end +function ReaderView:autoSaveSettings() + if DAUTO_SAVE_PAGING_COUNT then + if self.auto_save_paging_count == DAUTO_SAVE_PAGING_COUNT then + self.ui:saveSettings() + self.auto_save_paging_count = 0 + else + self.auto_save_paging_count = self.auto_save_paging_count + 1 + end + end +end + return ReaderView diff --git a/frontend/ui/reader/readerzooming.lua b/frontend/ui/reader/readerzooming.lua index b8d7bfc10..a87643ba9 100644 --- a/frontend/ui/reader/readerzooming.lua +++ b/frontend/ui/reader/readerzooming.lua @@ -100,7 +100,7 @@ function ReaderZooming:onReadSettings(config) self.ui:handleEvent(Event:new("SetZoomMode", zoom_mode)) end -function ReaderZooming:onCloseDocument() +function ReaderZooming:onSaveSettings() self.ui.doc_settings:saveSetting("zoom_mode", self.zoom_mode) end diff --git a/frontend/ui/readerui.lua b/frontend/ui/readerui.lua index 50e97ba04..64cdaf792 100644 --- a/frontend/ui/readerui.lua +++ b/frontend/ui/readerui.lua @@ -274,10 +274,14 @@ function ReaderUI:onSetDimensions(dimen) self.dimen = dimen end +function ReaderUI:saveSettings() + self:handleEvent(Event:new("SaveSettings")) + self.doc_settings:flush() +end + function ReaderUI:onClose() DEBUG("closing reader") - self:handleEvent(Event:new("CloseDocument")) - self.doc_settings:flush() + self:saveSettings() if self.document ~= nil then self.document:close() self.document = nil From fefa0a350700e5e77f05e1c3ef6dca0c0c7a97d8 Mon Sep 17 00:00:00 2001 From: chrox Date: Sat, 28 Dec 2013 12:44:51 +0800 Subject: [PATCH 04/12] add version information in reader menu This should implement #315. --- frontend/apps/filemanager/filemanagermenu.lua | 9 ++ frontend/ui/reader/readermenu.lua | 8 ++ frontend/ui/widget/infomessage.lua | 2 +- l10n/templates/koreader.pot | 96 ++++++++++--------- 4 files changed, 69 insertions(+), 46 deletions(-) diff --git a/frontend/apps/filemanager/filemanagermenu.lua b/frontend/apps/filemanager/filemanagermenu.lua index 5fc56a5dc..6f8bc67f0 100644 --- a/frontend/apps/filemanager/filemanagermenu.lua +++ b/frontend/apps/filemanager/filemanagermenu.lua @@ -2,6 +2,7 @@ local CenterContainer = require("ui/widget/container/centercontainer") local TouchMenu = require("ui/widget/touchmenu") local ReaderFrontLight = require("ui/reader/readerfrontlight") local InputContainer = require("ui/widget/container/inputcontainer") +local InfoMessage = require("ui/widget/infomessage") local UIManager = require("ui/uimanager") local Device = require("ui/device") local GestureRange = require("ui/gesturerange") @@ -76,6 +77,14 @@ function FileManagerMenu:setUpdateItemTable() }) end }) + table.insert(self.tab_item_table.main, { + text = _("Version"), + callback = function() + UIManager:show(InfoMessage:new{ + text = io.open("git-rev", "r"):read(), + }) + end + }) end function FileManagerMenu:onShowMenu() diff --git a/frontend/ui/reader/readermenu.lua b/frontend/ui/reader/readermenu.lua index c99cc0f83..243c26d0d 100644 --- a/frontend/ui/reader/readermenu.lua +++ b/frontend/ui/reader/readermenu.lua @@ -74,6 +74,14 @@ function ReaderMenu:setUpdateItemTable() }) end }) + table.insert(self.tab_item_table.main, { + text = _("Version"), + callback = function() + UIManager:show(InfoMessage:new{ + text = io.open("git-rev", "r"):read(), + }) + end + }) end function ReaderMenu:onShowReaderMenu() diff --git a/frontend/ui/widget/infomessage.lua b/frontend/ui/widget/infomessage.lua index e390e8afc..c65c31e72 100644 --- a/frontend/ui/widget/infomessage.lua +++ b/frontend/ui/widget/infomessage.lua @@ -58,7 +58,7 @@ function InfoMessage:init() HorizontalSpan:new{ width = 10 }, TextBoxWidget:new{ text = self.text, - face = Font:getFace("cfont", 30) + face = self.face } } } diff --git a/l10n/templates/koreader.pot b/l10n/templates/koreader.pot index 1d11482ce..7b06d5845 100644 --- a/l10n/templates/koreader.pot +++ b/l10n/templates/koreader.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://github.com/koreader/koreader-base/issues\n" -"POT-Creation-Date: 2013-12-24 04:51+0000\n" +"POT-Creation-Date: 2013-12-28 04:43+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -42,18 +42,18 @@ msgid "" "5 deg" msgstr "" -#: frontend/ui/widget/dictquicklookup.lua:115 +#: frontend/ui/widget/dictquicklookup.lua:122 msgid "" "<<" msgstr "" -#: frontend/ui/widget/dictquicklookup.lua:122 +#: frontend/ui/widget/dictquicklookup.lua:129 msgid "" ">>" msgstr "" -#: frontend/ui/reader/readerhighlight.lua:266 -#: frontend/ui/widget/dictquicklookup.lua:138 +#: frontend/ui/reader/readerhighlight.lua:268 +#: frontend/ui/widget/dictquicklookup.lua:145 msgid "" "Add Note" msgstr "" @@ -125,7 +125,7 @@ msgid "" "Change Hyphenation to " msgstr "" -#: frontend/ui/reader/readerfont.lua:17 +#: frontend/ui/reader/readerfont.lua:18 msgid "" "Change font" msgstr "" @@ -140,7 +140,7 @@ msgid "" "Contrast" msgstr "" -#: frontend/ui/reader/readerfont.lua:136 +#: frontend/ui/reader/readerfont.lua:137 msgid "" "Decrease font size to " msgstr "" @@ -150,12 +150,12 @@ msgid "" "Decrease front light intensity to " msgstr "" -#: frontend/ui/reader/readerfont.lua:204 +#: frontend/ui/reader/readerfont.lua:205 msgid "" "Decrease gamma to " msgstr "" -#: frontend/ui/reader/readerfont.lua:175 +#: frontend/ui/reader/readerfont.lua:176 msgid "" "Decrease line space to " msgstr "" @@ -180,7 +180,7 @@ msgid "" "Document Language" msgstr "" -#: frontend/ui/reader/readermenu.lua:103 +#: frontend/ui/reader/readermenu.lua:111 msgid "" "Document menu" msgstr "" @@ -195,7 +195,7 @@ msgid "" "Embedded style" msgstr "" -#: frontend/apps/filemanager/filemanagermenu.lua:103 +#: frontend/apps/filemanager/filemanagermenu.lua:112 msgid "" "File manager menu" msgstr "" @@ -250,14 +250,14 @@ msgid "" "Go to Page or Location" msgstr "" -#: frontend/apps/filemanager/filemanagermenu.lua:72 +#: frontend/apps/filemanager/filemanagermenu.lua:73 #: frontend/ui/reader/readermenu.lua:70 msgid "" "Help" msgstr "" -#: frontend/ui/reader/readerhighlight.lua:258 -#: frontend/ui/widget/dictquicklookup.lua:131 +#: frontend/ui/reader/readerhighlight.lua:260 +#: frontend/ui/widget/dictquicklookup.lua:138 msgid "" "Highlight" msgstr "" @@ -283,7 +283,7 @@ msgid "" "If you give the name of a directory instead of a file path, a file" msgstr "" -#: frontend/ui/reader/readerfont.lua:138 +#: frontend/ui/reader/readerfont.lua:139 msgid "" "Increase font size to " msgstr "" @@ -293,12 +293,12 @@ msgid "" "Increase front light intensity to " msgstr "" -#: frontend/ui/reader/readerfont.lua:201 +#: frontend/ui/reader/readerfont.lua:202 msgid "" "Increase gamma to " msgstr "" -#: frontend/ui/reader/readerfont.lua:179 +#: frontend/ui/reader/readerfont.lua:180 msgid "" "Increase line space to " msgstr "" @@ -323,7 +323,7 @@ msgid "" "Location" msgstr "" -#: frontend/ui/reader/readerhighlight.lua:296 +#: frontend/ui/reader/readerhighlight.lua:298 msgid "" "More" msgstr "" @@ -349,7 +349,7 @@ msgid "" "Page" msgstr "" -#: frontend/ui/widget/touchmenu.lua:346 +#: frontend/ui/widget/touchmenu.lua:345 msgid "" "Page " msgstr "" @@ -364,7 +364,7 @@ msgid "" "Page Margin" msgstr "" -#: frontend/apps/filemanager/filemanagermenu.lua:75 +#: frontend/apps/filemanager/filemanagermenu.lua:76 #: frontend/ui/reader/readermenu.lua:73 msgid "" "Please report bugs to https://github.com/koreader/ koreader/issues, Click at the bottom of the page for more options" @@ -380,7 +380,7 @@ msgid "" "Read all the books on your E-Ink reader" msgstr "" -#: frontend/ui/reader/readerfont.lua:227 +#: frontend/ui/reader/readerfont.lua:228 msgid "" "Redrawing with font " msgstr "" @@ -433,7 +433,7 @@ msgid "" "Select Option Item" msgstr "" -#: frontend/ui/reader/readerfont.lua:160 +#: frontend/ui/reader/readerfont.lua:161 msgid "" "Set font size to " msgstr "" @@ -443,7 +443,7 @@ msgid "" "Set render style" msgstr "" -#: frontend/ui/reader/readerhighlight.lua:285 +#: frontend/ui/reader/readerhighlight.lua:287 msgid "" "Share" msgstr "" @@ -498,7 +498,7 @@ msgid "" "Toggle" msgstr "" -#: frontend/apps/filemanager/filemanagermenu.lua:61 +#: frontend/apps/filemanager/filemanagermenu.lua:62 msgid "" "Toggle hidden files" msgstr "" @@ -508,11 +508,17 @@ msgid "" "Toggle switch" msgstr "" -#: frontend/ui/reader/readerhighlight.lua:277 +#: frontend/ui/reader/readerhighlight.lua:279 msgid "" "Translate" msgstr "" +#: frontend/apps/filemanager/filemanagermenu.lua:81 +#: frontend/ui/reader/readermenu.lua:78 +msgid "" +"Version" +msgstr "" + #: frontend/ui/data/strings.lua:17 msgid "" "Vertical Text" @@ -631,12 +637,12 @@ msgid "" "decrease" msgstr "" -#: frontend/ui/reader/readerfont.lua:34 +#: frontend/ui/reader/readerfont.lua:35 msgid "" "decrease font size" msgstr "" -#: frontend/ui/reader/readerfont.lua:42 +#: frontend/ui/reader/readerfont.lua:43 msgid "" "decrease line space" msgstr "" @@ -646,62 +652,62 @@ msgid "" "default" msgstr "" -#: frontend/ui/reader/readerrolling.lua:50 +#: frontend/ui/reader/readerrolling.lua:51 msgid "" "go to 11%" msgstr "" -#: frontend/ui/reader/readerrolling.lua:52 +#: frontend/ui/reader/readerrolling.lua:53 msgid "" "go to 22%" msgstr "" -#: frontend/ui/reader/readerrolling.lua:54 +#: frontend/ui/reader/readerrolling.lua:55 msgid "" "go to 33%" msgstr "" -#: frontend/ui/reader/readerrolling.lua:56 +#: frontend/ui/reader/readerrolling.lua:57 msgid "" "go to 44%" msgstr "" -#: frontend/ui/reader/readerrolling.lua:58 +#: frontend/ui/reader/readerrolling.lua:59 msgid "" "go to 55%" msgstr "" -#: frontend/ui/reader/readerrolling.lua:60 +#: frontend/ui/reader/readerrolling.lua:61 msgid "" "go to 66%" msgstr "" -#: frontend/ui/reader/readerrolling.lua:62 +#: frontend/ui/reader/readerrolling.lua:63 msgid "" "go to 77%" msgstr "" -#: frontend/ui/reader/readerrolling.lua:64 +#: frontend/ui/reader/readerrolling.lua:65 msgid "" "go to 88%" msgstr "" -#: frontend/ui/reader/readerrolling.lua:66 +#: frontend/ui/reader/readerrolling.lua:67 msgid "" "go to end" msgstr "" -#: frontend/ui/reader/readerrolling.lua:29 +#: frontend/ui/reader/readerrolling.lua:30 msgid "" "go to next view" msgstr "" -#: frontend/ui/reader/readerrolling.lua:34 +#: frontend/ui/reader/readerrolling.lua:35 msgid "" "go to previous view" msgstr "" -#: frontend/ui/reader/readerrolling.lua:48 +#: frontend/ui/reader/readerrolling.lua:49 msgid "" "go to start" msgstr "" @@ -731,12 +737,12 @@ msgid "" "increase" msgstr "" -#: frontend/ui/reader/readerfont.lua:30 +#: frontend/ui/reader/readerfont.lua:31 msgid "" "increase font size" msgstr "" -#: frontend/ui/reader/readerfont.lua:38 +#: frontend/ui/reader/readerfont.lua:39 msgid "" "increase line space" msgstr "" @@ -776,12 +782,12 @@ msgid "" "medium" msgstr "" -#: frontend/ui/reader/readerrolling.lua:44 +#: frontend/ui/reader/readerrolling.lua:45 msgid "" "move view down" msgstr "" -#: frontend/ui/reader/readerrolling.lua:39 +#: frontend/ui/reader/readerrolling.lua:40 msgid "" "move view up" msgstr "" @@ -882,12 +888,12 @@ msgid "" "show config dialog" msgstr "" -#: frontend/ui/reader/readerfont.lua:27 +#: frontend/ui/reader/readerfont.lua:28 msgid "" "show font menu" msgstr "" -#: frontend/apps/filemanager/filemanagermenu.lua:34 +#: frontend/apps/filemanager/filemanagermenu.lua:35 #: frontend/ui/reader/readermenu.lua:44 msgid "" "show menu" From 1288be7b95fc4016a23937b0807271e746263e26 Mon Sep 17 00:00:00 2001 From: chrox Date: Sat, 28 Dec 2013 13:45:23 +0800 Subject: [PATCH 05/12] automatically selecting CSS for specific file types when turning off embedded style sheet. This should fix #246. --- frontend/ui/reader/readercoptlistener.lua | 9 ++++----- frontend/ui/reader/readertypeset.lua | 7 +++++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/frontend/ui/reader/readercoptlistener.lua b/frontend/ui/reader/readercoptlistener.lua index 7371b96f6..317c9dfe8 100644 --- a/frontend/ui/reader/readercoptlistener.lua +++ b/frontend/ui/reader/readercoptlistener.lua @@ -5,11 +5,10 @@ local ReaderCoptListener = EventListener:new{} function ReaderCoptListener:onReadSettings(config) local embedded_css = config:readSetting("copt_embedded_css") - if embedded_css == 0 then - table.insert(self.ui.postInitCallback, function() - self.ui:handleEvent(Event:new("ToggleEmbeddedStyleSheet", false)) - end) - end + local toggle_embedded_css = embedded_css == 0 and false or true + table.insert(self.ui.postInitCallback, function() + self.ui:handleEvent(Event:new("ToggleEmbeddedStyleSheet", toggle_embedded_css)) + end) local view_mode = config:readSetting("copt_view_mode") if view_mode == 0 then diff --git a/frontend/ui/reader/readertypeset.lua b/frontend/ui/reader/readertypeset.lua index d05bd60c3..91a2688f5 100644 --- a/frontend/ui/reader/readertypeset.lua +++ b/frontend/ui/reader/readertypeset.lua @@ -27,6 +27,7 @@ function ReaderTypeset:onReadSettings(config) -- default to enable embedded css if self.embedded_css == nil then self.embedded_css = true + self.ui.document:setEmbeddedStyleSheet(1) end if not self.embedded_css then self.ui.document:setEmbeddedStyleSheet(0) @@ -95,11 +96,13 @@ end function ReaderTypeset:toggleEmbeddedStyleSheet(toggle) if not toggle then - self.ui.document:setEmbeddedStyleSheet(0) self.embedded_css = false + self:setStyleSheet(self.ui.document.default_css) + self.ui.document:setEmbeddedStyleSheet(0) else - self.ui.document:setEmbeddedStyleSheet(1) self.embedded_css = true + --self:setStyleSheet(self.ui.document.default_css) + self.ui.document:setEmbeddedStyleSheet(1) end self.ui:handleEvent(Event:new("UpdatePos")) end From 3ee2c758ec1a581e74a7a13a8e29d8f7f58ee7c0 Mon Sep 17 00:00:00 2001 From: chrox Date: Sat, 28 Dec 2013 14:30:23 +0800 Subject: [PATCH 06/12] fix lost of frontlight intensity after exiting kobo This should fix #243. --- frontend/ui/device.lua | 7 +++---- frontend/ui/device/basefrontlight.lua | 8 ++++++++ frontend/ui/device/kindlefrontlight.lua | 4 +--- frontend/ui/device/kobofrontlight.lua | 4 +--- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/frontend/ui/device.lua b/frontend/ui/device.lua index b1b125151..1665cfc7c 100644 --- a/frontend/ui/device.lua +++ b/frontend/ui/device.lua @@ -221,13 +221,12 @@ function Device:getFrontlight() elseif self:hasFrontlight() then local model = self:getModel() if model == "KindlePaperWhite" or model == "KindlePaperWhite2" then - self.frontlight = KindleFrontLight + self.frontlight = KindleFrontLight:new() elseif self:isKobo() then - self.frontlight = KoboFrontLight + self.frontlight = KoboFrontLight:new() else -- emulated FrontLight - self.frontlight = BaseFrontLight + self.frontlight = BaseFrontLight:new() end - self.frontlight:init() end return self.frontlight end diff --git a/frontend/ui/device/basefrontlight.lua b/frontend/ui/device/basefrontlight.lua index b6d889661..444b661a1 100644 --- a/frontend/ui/device/basefrontlight.lua +++ b/frontend/ui/device/basefrontlight.lua @@ -3,6 +3,14 @@ local BaseFrontLight = { intensity = nil, } +function BaseFrontLight:new(o) + local o = o or {} + setmetatable(o, self) + self.__index = self + if o.init then o:init() end + return o +end + function BaseFrontLight:init() end function BaseFrontLight:toggle() end function BaseFrontLight:setIntensityHW() end diff --git a/frontend/ui/device/kindlefrontlight.lua b/frontend/ui/device/kindlefrontlight.lua index 98cd9545a..5315b16f2 100644 --- a/frontend/ui/device/kindlefrontlight.lua +++ b/frontend/ui/device/kindlefrontlight.lua @@ -1,7 +1,7 @@ local BaseFrontLight = require("ui/device/basefrontlight") -- liblipclua, see require below -local KindleFrontLight = { +local KindleFrontLight = BaseFrontLight:new{ min = 0, max = 24, -- FIXME: Check how to handle this on the PW2, initial reports on IRC suggest that this isn't possible anymore kpw_fl = "/sys/devices/system/fl_tps6116x/fl_tps6116x0/fl_intensity", @@ -28,8 +28,6 @@ function KindleFrontLight:toggle() end end -KindleFrontLight.setIntensity = BaseFrontLight.setIntensity - function KindleFrontLight:setIntensityHW() if self.lipc_handle ~= nil then self.lipc_handle:set_int_property("com.lab126.powerd", "flIntensity", self.intensity) diff --git a/frontend/ui/device/kobofrontlight.lua b/frontend/ui/device/kobofrontlight.lua index 6877071b5..436f5cc36 100644 --- a/frontend/ui/device/kobofrontlight.lua +++ b/frontend/ui/device/kobofrontlight.lua @@ -1,6 +1,6 @@ local BaseFrontLight = require("ui/device/basefrontlight") -local KoboFrontLight = { +local KoboFrontLight = BaseFrontLight:new{ min = 1, max = 100, intensity = 20, restore_settings = true, @@ -17,8 +17,6 @@ function KoboFrontLight:toggle() end end -KoboFrontLight.setIntensity = BaseFrontLight.setIntensity - function KoboFrontLight:setIntensityHW() if self.fl ~= nil then self.fl:setBrightness(self.intensity) From 60adab7168dac98f8ff16d678f6cb02dd186706d Mon Sep 17 00:00:00 2001 From: chrox Date: Sat, 28 Dec 2013 17:33:21 +0800 Subject: [PATCH 07/12] add page overlap toggle in reader menu This should implement #278. --- frontend/ui/reader/readerpaging.lua | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/frontend/ui/reader/readerpaging.lua b/frontend/ui/reader/readerpaging.lua index e1bc51eaf..487a2bd6a 100644 --- a/frontend/ui/reader/readerpaging.lua +++ b/frontend/ui/reader/readerpaging.lua @@ -8,6 +8,7 @@ local Event = require("ui/event") local UIManager = require("ui/uimanager") local Math = require("optmath") local DEBUG = require("dbg") +local _ = require("gettext") local ReaderPaging = InputContainer:new{ current_page = 0, @@ -15,7 +16,7 @@ local ReaderPaging = InputContainer:new{ last_pan_relative_y = 0, visible_area = nil, page_area = nil, - show_overlap_enable = DSHOWOVERLAP, + show_overlap_enable = nil, overlap = Screen:scaleByDPI(20), flip_steps = {0,1,2,5,10,20,50,100} } @@ -53,6 +54,7 @@ function ReaderPaging:init() } end self.number_of_pages = self.ui.document.info.number_of_pages + self.ui.menu:registerToMainMenu(self) end -- This method will be called in onSetDimensions handler @@ -127,9 +129,9 @@ end function ReaderPaging:onReadSettings(config) self.page_positions = config:readSetting("page_positions") or {} self:gotoPage(config:readSetting("last_page") or 1) - local soe = config:readSetting("show_overlap_enable") - if not soe then - self.show_overlap_enable = soe + self.show_overlap_enable = config:readSetting("show_overlap_enable") + if self.show_overlap_enable == nil then + self.show_overlap_enable = DSHOWOVERLAP end end @@ -137,6 +139,18 @@ function ReaderPaging:onSaveSettings() self.ui.doc_settings:saveSetting("page_positions", self.page_positions) self.ui.doc_settings:saveSetting("last_page", self:getTopPage()) self.ui.doc_settings:saveSetting("percent_finished", self.current_page/self.number_of_pages) + self.ui.doc_settings:saveSetting("show_overlap_enable", self.show_overlap_enable) +end + +function ReaderPaging:addToMainMenu(tab_item_table) + if self.ui.document.info.has_pages then + table.insert(tab_item_table.typeset, { + text = _("Toggle page overlap"), + callback = function() + self.show_overlap_enable = not self.show_overlap_enable + end + }) + end end --[[ From 3eeba5389d3621e7da30e42d08665507b2ebcd4c Mon Sep 17 00:00:00 2001 From: chrox Date: Sat, 28 Dec 2013 17:49:39 +0800 Subject: [PATCH 08/12] fix show hidden flag not persistent between restart This should fix bug reported in comments of #278. --- frontend/apps/filemanager/filemanager.lua | 6 +++++- frontend/ui/widget/filechooser.lua | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/apps/filemanager/filemanager.lua b/frontend/apps/filemanager/filemanager.lua index acd10f38a..d91853664 100644 --- a/frontend/apps/filemanager/filemanager.lua +++ b/frontend/apps/filemanager/filemanager.lua @@ -36,11 +36,14 @@ function FileManager:init() }, VerticalSpan:new{ width = Screen:scaleByDPI(10) } } - + + local g_show_hidden = G_reader_settings:readSetting("show_hidden") + local show_hidden = g_show_hidden == nil and DSHOWHIDDENFILES or g_show_hidden local file_chooser = FileChooser:new{ -- remeber to adjust the height when new item is added to the group path = self.root_path, show_parent = self.show_parent, + show_hidden = show_hidden, height = Screen:getHeight() - self.banner:getSize().h, is_popout = false, is_borderless = true, @@ -92,6 +95,7 @@ end function FileManager:toggleHiddenFiles() self.file_chooser:toggleHiddenFiles() + G_reader_settings:saveSetting("show_hidden", self.file_chooser.show_hidden) end function FileManager:onClose() diff --git a/frontend/ui/widget/filechooser.lua b/frontend/ui/widget/filechooser.lua index 46ba16bae..12dfa681f 100644 --- a/frontend/ui/widget/filechooser.lua +++ b/frontend/ui/widget/filechooser.lua @@ -9,7 +9,7 @@ local FileChooser = Menu:extend{ no_title = true, path = lfs.currentdir(), parent = nil, - show_hidden = DSHOWHIDDENFILES, + show_hidden = nil, show_filesize = DSHOWFILESIZE, filter = function(filename) return true end, } From 1fb4dfab954fc465f9afb8e0a498b4aef6f0a1cc Mon Sep 17 00:00:00 2001 From: chrox Date: Sat, 28 Dec 2013 18:21:30 +0800 Subject: [PATCH 09/12] add visual indication on document loading This should implement #265. --- reader.lua | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/reader.lua b/reader.lua index 2e065afee..e8bff0787 100755 --- a/reader.lua +++ b/reader.lua @@ -9,7 +9,7 @@ local InfoMessage = require("ui/widget/infomessage") local ReaderUI = require("ui/readerui") local DocumentRegistry = require("document/documentregistry") local DocSettings = require("docsettings") -local Dbg = require("dbg") +local DEBUG = require("dbg") local FileManager = require("apps/filemanager/filemanager") local Device = require("ui/device") local Screen = require("ui/screen") @@ -49,6 +49,15 @@ function exitReader() end function showReaderUI(file, pass) + DEBUG("opening file", file) + UIManager:show(InfoMessage:new{ + text = _("opening file") .. file, + timeout = 1, + }) + UIManager:scheduleIn(0.1, function() doShowReaderUI(file, pass) end) +end + +function doShowReaderUI(file, pass) local document = DocumentRegistry:openDocument(file) if not document then UIManager:show(InfoMessage:new{ @@ -117,7 +126,7 @@ while argidx <= #ARGV do if arg == "-h" then return showusage() elseif arg == "-d" then - Dbg:turnOn() + DEBUG:turnOn() elseif arg == "-p" then local lulip = require("ffi/lulip") Profiler = lulip:new() From 1cbc6b9669e816ae91fcd9c546b7c2a3492204c2 Mon Sep 17 00:00:00 2001 From: chrox Date: Sat, 28 Dec 2013 18:39:42 +0800 Subject: [PATCH 10/12] move crereader margin options into defaults.lua --- defaults.lua | 6 ++++++ frontend/ui/data/creoptions.lua | 14 +++++++------- frontend/ui/reader/readerview.lua | 8 ++++---- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/defaults.lua b/defaults.lua index c422b77ca..35b798f8f 100644 --- a/defaults.lua +++ b/defaults.lua @@ -80,6 +80,12 @@ DKOPTREADER_CONFIG_DOC_DEFAULT_LANG_CODE = "eng" -- that have filenames start -- feel free to add more entries in this list DCREREADER_CONFIG_FONT_SIZES = {16, 20, 22, 24, 28, 32, 38, 44} -- range from 16 to 44 +-- crereader margin sizes +-- margin {left, top, right, bottom} in pixels +DCREREADER_CONFIG_MARGIN_SIZES_SMALL = {6, 5, 2, 5} +DCREREADER_CONFIG_MARGIN_SIZES_MEDIUM = {15, 10, 10, 10} +DCREREADER_CONFIG_MARGIN_SIZES_LARGE = {25, 10, 20, 10} + -- gesture detector defaults DGESDETECT_DISABLE_DOUBLE_TAP = true diff --git a/frontend/ui/data/creoptions.lua b/frontend/ui/data/creoptions.lua index 86dda4483..a2a96d7e2 100644 --- a/frontend/ui/data/creoptions.lua +++ b/frontend/ui/data/creoptions.lua @@ -46,15 +46,15 @@ local CreOptions = { name_text = S.PAGE_MARGIN, toggle = {S.SMALL, S.MEDIUM, S.LARGE}, values = { - {6, 5, 2, 5}, - {15, 10, 10, 10}, - {25, 10, 20, 10}, + DCREREADER_CONFIG_MARGIN_SIZES_SMALL, + DCREREADER_CONFIG_MARGIN_SIZES_MEDIUM, + DCREREADER_CONFIG_MARGIN_SIZES_LARGE, }, - default_value = {15, 10, 10, 10}, + default_value = DCREREADER_CONFIG_MARGIN_SIZES_MEDIUM, args = { - {6, 5, 2, 5}, - {15, 10, 10, 10}, - {25, 10, 20, 10}, + DCREREADER_CONFIG_MARGIN_SIZES_SMALL, + DCREREADER_CONFIG_MARGIN_SIZES_MEDIUM, + DCREREADER_CONFIG_MARGIN_SIZES_LARGE, }, event = "SetPageMargins", }, diff --git a/frontend/ui/reader/readerview.lua b/frontend/ui/reader/readerview.lua index d71a396a3..1648171eb 100644 --- a/frontend/ui/reader/readerview.lua +++ b/frontend/ui/reader/readerview.lua @@ -573,10 +573,10 @@ function ReaderView:onSetViewMode(new_mode) end function ReaderView:onSetPageMargins(margins) - local left = margins[1] - local top = margins[2] - local right = margins[3] - local bottom = margins[4] + local left = Screen:scaleByDPI(margins[1]) + local top = Screen:scaleByDPI(margins[2]) + local right = Screen:scaleByDPI(margins[3]) + local bottom = Screen:scaleByDPI(margins[4]) self.ui.document:setPageMargins(left, top, right, bottom) self.ui:handleEvent(Event:new("UpdatePos")) return true From f38133e9b464d7d00cec10df7904f98296e033ec Mon Sep 17 00:00:00 2001 From: chrox Date: Sat, 28 Dec 2013 19:05:02 +0800 Subject: [PATCH 11/12] update pot file --- l10n/templates/koreader.pot | 38 +++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/l10n/templates/koreader.pot b/l10n/templates/koreader.pot index 7b06d5845..288ec3454 100644 --- a/l10n/templates/koreader.pot +++ b/l10n/templates/koreader.pot @@ -6,23 +6,23 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://github.com/koreader/koreader-base/issues\n" -"POT-Creation-Date: 2013-12-28 04:43+0000\n" +"POT-Creation-Date: 2013-12-28 11:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: reader.lua:92 +#: reader.lua:101 msgid "" "-d start in debug mode" msgstr "" -#: reader.lua:94 +#: reader.lua:103 msgid "" "-h show this usage help" msgstr "" -#: reader.lua:93 +#: reader.lua:102 msgid "" "-p [rows] enable Lua code profiling" msgstr "" @@ -63,7 +63,7 @@ msgid "" "Apply" msgstr "" -#: frontend/ui/reader/readertypeset.lua:55 +#: frontend/ui/reader/readertypeset.lua:56 msgid "" "Auto" msgstr "" @@ -273,12 +273,12 @@ msgid "" "Hyphenation" msgstr "" -#: reader.lua:99 +#: reader.lua:108 msgid "" "If you don't pass any path, the last viewed document will be opened" msgstr "" -#: reader.lua:96 +#: reader.lua:105 msgid "" "If you give the name of a directory instead of a file path, a file" msgstr "" @@ -328,7 +328,7 @@ msgid "" "More" msgstr "" -#: reader.lua:55 +#: reader.lua:64 msgid "" "No reader engine for this file" msgstr "" @@ -375,7 +375,7 @@ msgid "" "RTL" msgstr "" -#: reader.lua:90 +#: reader.lua:99 msgid "" "Read all the books on your E-Ink reader" msgstr "" @@ -416,7 +416,7 @@ msgid "" "Scroll Mode" msgstr "" -#: reader.lua:102 +#: reader.lua:111 msgid "" "See http://github.com/koreader/kindlepdfviewer for more info." msgstr "" @@ -488,7 +488,7 @@ msgid "" "Text Align" msgstr "" -#: reader.lua:101 +#: reader.lua:110 msgid "" "This software is licensed under the GPLv3." msgstr "" @@ -503,6 +503,11 @@ msgid "" "Toggle hidden files" msgstr "" +#: frontend/ui/reader/readerpaging.lua:148 +msgid "" +"Toggle page overlap" +msgstr "" + #: frontend/ui/widget/toggleswitch.lua:74 msgid "" "Toggle switch" @@ -579,7 +584,7 @@ msgid "" "cancel" msgstr "" -#: reader.lua:97 +#: reader.lua:106 msgid "" "chooser will show up and let you select a file" msgstr "" @@ -595,7 +600,7 @@ msgid "" "chose selected option" msgstr "" -#: frontend/ui/reader/readertypeset.lua:49 +#: frontend/ui/reader/readertypeset.lua:50 msgid "" "clear all external styles" msgstr "" @@ -832,6 +837,11 @@ msgid "" "on" msgstr "" +#: reader.lua:54 +msgid "" +"opening file" +msgstr "" + #: frontend/ui/data/strings.lua:53 msgid "" "page" @@ -909,7 +919,7 @@ msgid "" "toggle bold" msgstr "" -#: reader.lua:89 +#: reader.lua:98 msgid "" "usage: ./reader.lua [OPTION] ... path" msgstr "" From b2cc4b5b732af07bf2d50c84f919241bc5f629d1 Mon Sep 17 00:00:00 2001 From: chrox Date: Sat, 28 Dec 2013 19:40:45 +0800 Subject: [PATCH 12/12] tweaks on default margin sizes --- defaults.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/defaults.lua b/defaults.lua index 35b798f8f..40ecb1085 100644 --- a/defaults.lua +++ b/defaults.lua @@ -82,9 +82,9 @@ DCREREADER_CONFIG_FONT_SIZES = {16, 20, 22, 24, 28, 32, 38, 44} -- range from 1 -- crereader margin sizes -- margin {left, top, right, bottom} in pixels -DCREREADER_CONFIG_MARGIN_SIZES_SMALL = {6, 5, 2, 5} -DCREREADER_CONFIG_MARGIN_SIZES_MEDIUM = {15, 10, 10, 10} -DCREREADER_CONFIG_MARGIN_SIZES_LARGE = {25, 10, 20, 10} +DCREREADER_CONFIG_MARGIN_SIZES_SMALL = {3, 5, 0, 5} +DCREREADER_CONFIG_MARGIN_SIZES_MEDIUM = {6, 10, 2, 10} +DCREREADER_CONFIG_MARGIN_SIZES_LARGE = {15, 10, 10, 10} -- gesture detector defaults DGESDETECT_DISABLE_DOUBLE_TAP = true