diff --git a/frontend/apps/filemanager/filemanagerhistory.lua b/frontend/apps/filemanager/filemanagerhistory.lua index ef8ae144e..a9dae76e8 100644 --- a/frontend/apps/filemanager/filemanagerhistory.lua +++ b/frontend/apps/filemanager/filemanagerhistory.lua @@ -67,8 +67,8 @@ function FileManagerHistory:onShowHist() end function FileManagerHistory:addToMainMenu(tab_item_table) - -- insert table to main reader menu - table.insert(tab_item_table.main, { + -- insert table to info tab of filemanager menu + table.insert(tab_item_table.info, { text = self.hist_menu_title, callback = function() self:onShowHist() diff --git a/frontend/apps/filemanager/filemanagermenu.lua b/frontend/apps/filemanager/filemanagermenu.lua index b412efa4f..aab575645 100644 --- a/frontend/apps/filemanager/filemanagermenu.lua +++ b/frontend/apps/filemanager/filemanagermenu.lua @@ -18,7 +18,10 @@ local FileManagerMenu = InputContainer:extend{ function FileManagerMenu:init() self.tab_item_table = { - main = { + setting = { + icon = "resources/icons/appbar.settings.png", + }, + info = { icon = "resources/icons/appbar.pokeball.png", }, home = { @@ -59,7 +62,8 @@ function FileManagerMenu:setUpdateItemTable() widget:addToMainMenu(self.tab_item_table) end - table.insert(self.tab_item_table.main, { + -- setting tab + table.insert(self.tab_item_table.setting, { text = _("Show hidden files"), checked_func = function() return self.ui.file_chooser.show_hidden end, callback = function() @@ -67,7 +71,7 @@ function FileManagerMenu:setUpdateItemTable() end }) - table.insert(self.tab_item_table.main, { + table.insert(self.tab_item_table.setting, { text = _("Start with last opened file"), checked_func = function() return G_reader_settings:readSetting("open_last") end, enabled_func = function() return G_reader_settings:readSetting("lastfile") ~= nil end, @@ -81,7 +85,7 @@ function FileManagerMenu:setUpdateItemTable() ReaderFrontLight:addToMainMenu(self.tab_item_table) end - table.insert(self.tab_item_table.main, { + table.insert(self.tab_item_table.setting, { text = _("Night mode"), checked_func = function() return G_reader_settings:readSetting("night_mode") end, callback = function() @@ -90,8 +94,49 @@ function FileManagerMenu:setUpdateItemTable() G_reader_settings:saveSetting("night_mode", not night_mode) end }) - table.insert(self.tab_item_table.main, Language:getLangMenuTable()) - table.insert(self.tab_item_table.main, { + + -- TODO: refactor out redundant code between reader menu and filemanager menu + table.insert(self.tab_item_table.setting, { + text = _("Font size"), + sub_item_table = { + { + text = _("Auto"), + checked_func = function() + local dpi = G_reader_settings:readSetting("screen_dpi") + return dpi == nil + end, + callback = function() Screen:setDPI() end + }, + { + text = _("Small"), + checked_func = function() + local dpi = G_reader_settings:readSetting("screen_dpi") + return dpi and dpi <= 140 + end, + callback = function() Screen:setDPI(120) end + }, + { + text = _("Medium"), + checked_func = function() + local dpi = G_reader_settings:readSetting("screen_dpi") + return dpi and dpi > 140 and dpi <= 200 + end, + callback = function() Screen:setDPI(160) end + }, + { + text = _("Large"), + checked_func = function() + local dpi = G_reader_settings:readSetting("screen_dpi") + return dpi and dpi > 200 + end, + callback = function() Screen:setDPI(240) end + }, + } + }) + table.insert(self.tab_item_table.setting, Language:getLangMenuTable()) + + -- info tab + table.insert(self.tab_item_table.info, { text = _("Version"), callback = function() UIManager:show(InfoMessage:new{ @@ -99,7 +144,7 @@ function FileManagerMenu:setUpdateItemTable() }) end }) - table.insert(self.tab_item_table.main, { + table.insert(self.tab_item_table.info, { text = _("Help"), callback = function() UIManager:show(InfoMessage:new{ @@ -110,7 +155,7 @@ function FileManagerMenu:setUpdateItemTable() end function FileManagerMenu:onShowMenu() - if #self.tab_item_table.main == 0 then + if #self.tab_item_table.setting == 0 then self:setUpdateItemTable() end @@ -124,7 +169,8 @@ function FileManagerMenu:onShowMenu() main_menu = TouchMenu:new{ width = Screen:getWidth(), tab_item_table = { - self.tab_item_table.main, + self.tab_item_table.setting, + self.tab_item_table.info, self.tab_item_table.home, }, show_parent = menu_container, diff --git a/frontend/apps/reader/modules/readerfrontlight.lua b/frontend/apps/reader/modules/readerfrontlight.lua index 675838967..0ac5fc6e2 100644 --- a/frontend/apps/reader/modules/readerfrontlight.lua +++ b/frontend/apps/reader/modules/readerfrontlight.lua @@ -80,8 +80,8 @@ function ReaderFrontLight:onPanRelease(arg, ges) end function ReaderFrontLight:addToMainMenu(tab_item_table) - -- insert fldial command to main reader menu - table.insert(tab_item_table.main, { + -- insert fldial command to setting tab of reader menu + table.insert(tab_item_table.setting, { text = _("Frontlight settings"), callback = function() self:onShowFlDialog() diff --git a/frontend/apps/reader/modules/readermenu.lua b/frontend/apps/reader/modules/readermenu.lua index 8dd3d4f7b..ef4233b66 100644 --- a/frontend/apps/reader/modules/readermenu.lua +++ b/frontend/apps/reader/modules/readermenu.lua @@ -21,12 +21,15 @@ local ReaderMenu = InputContainer:new{ function ReaderMenu:init() self.tab_item_table = { - main = { - icon = "resources/icons/appbar.pokeball.png", + setting = { + icon = "resources/icons/appbar.settings.png", }, navi = { icon = "resources/icons/appbar.page.corner.bookmark.png", }, + info = { + icon = "resources/icons/appbar.pokeball.png", + }, typeset = { icon = "resources/icons/appbar.page.text.png", }, @@ -74,7 +77,8 @@ function ReaderMenu:setUpdateItemTable() widget:addToMainMenu(self.tab_item_table) end - table.insert(self.tab_item_table.main, { + -- setting tab + table.insert(self.tab_item_table.setting, { text = _("Night mode"), checked_func = function() return G_reader_settings:readSetting("night_mode") end, callback = function() @@ -83,8 +87,45 @@ function ReaderMenu:setUpdateItemTable() G_reader_settings:saveSetting("night_mode", not night_mode) end }) - table.insert(self.tab_item_table.main, self:genRefreshRateMenu()) - table.insert(self.tab_item_table.main, { + table.insert(self.tab_item_table.setting, { + text = _("Font size"), + sub_item_table = { + { + text = _("Auto"), + checked_func = function() + local dpi = G_reader_settings:readSetting("screen_dpi") + return dpi == nil + end, + callback = function() Screen:setDPI() end + }, + { + text = _("Small"), + checked_func = function() + local dpi = G_reader_settings:readSetting("screen_dpi") + return dpi and dpi <= 140 + end, + callback = function() Screen:setDPI(120) end + }, + { + text = _("Medium"), + checked_func = function() + local dpi = G_reader_settings:readSetting("screen_dpi") + return dpi and dpi > 140 and dpi <= 200 + end, + callback = function() Screen:setDPI(160) end + }, + { + text = _("Large"), + checked_func = function() + local dpi = G_reader_settings:readSetting("screen_dpi") + return dpi and dpi > 200 + end, + callback = function() Screen:setDPI(240) end + }, + } + }) + table.insert(self.tab_item_table.setting, self:genRefreshRateMenu()) + table.insert(self.tab_item_table.setting, { text = _("Show advanced options"), checked_func = function() return G_reader_settings:readSetting("show_advanced") end, callback = function() @@ -92,8 +133,10 @@ function ReaderMenu:setUpdateItemTable() G_reader_settings:saveSetting("show_advanced", not show_advanced) end }) - table.insert(self.tab_item_table.main, Language:getLangMenuTable()) - table.insert(self.tab_item_table.main, { + table.insert(self.tab_item_table.setting, Language:getLangMenuTable()) + + -- info tab + table.insert(self.tab_item_table.info, { text = _("Version"), callback = function() UIManager:show(InfoMessage:new{ @@ -101,7 +144,7 @@ function ReaderMenu:setUpdateItemTable() }) end }) - table.insert(self.tab_item_table.main, { + table.insert(self.tab_item_table.info, { text = _("Help"), callback = function() UIManager:show(InfoMessage:new{ @@ -194,7 +237,7 @@ function ReaderMenu:closeMakeCustomDialog() end function ReaderMenu:onShowReaderMenu() - if #self.tab_item_table.main == 0 then + if #self.tab_item_table.setting == 0 then self:setUpdateItemTable() end @@ -210,7 +253,8 @@ function ReaderMenu:onShowReaderMenu() tab_item_table = { self.tab_item_table.navi, self.tab_item_table.typeset, - self.tab_item_table.main, + self.tab_item_table.setting, + self.tab_item_table.info, self.tab_item_table.plugins, self.tab_item_table.home, }, diff --git a/frontend/ui/device/screen.lua b/frontend/ui/device/screen.lua index 00c43b096..b3f3ae4c2 100644 --- a/frontend/ui/device/screen.lua +++ b/frontend/ui/device/screen.lua @@ -137,6 +137,7 @@ function Screen:getHeightPhoenix() end function Screen:getDPI() + self.dpi = G_reader_settings:readSetting("screen_dpi") if self.dpi ~= nil then return self.dpi end local model = self.device:getModel() if model == "KindlePaperWhite" or model == "KindlePaperWhite2" @@ -153,11 +154,16 @@ function Screen:getDPI() local ffi = require("ffi") self.dpi = ffi.C.AConfiguration_getDensity(android.app.config) else - self.dpi = 167 + self.dpi = 160 end return self.dpi end +function Screen:setDPI(dpi) + G_reader_settings:saveSetting("screen_dpi", dpi) + self.dpi = dpi +end + function Screen:scaleByDPI(px) return math.floor(px * self:getDPI()/167) end diff --git a/frontend/ui/widget/touchmenu.lua b/frontend/ui/widget/touchmenu.lua index bd6a52ce2..2a563bba5 100644 --- a/frontend/ui/widget/touchmenu.lua +++ b/frontend/ui/widget/touchmenu.lua @@ -237,7 +237,7 @@ local TouchMenu = InputContainer:new{ item_height = Screen:scaleByDPI(50), bordersize = Screen:scaleByDPI(2), padding = Screen:scaleByDPI(5), - footer_height = Screen:scaleByDPI(50), + footer_height = 48 + Screen:scaleByDPI(5), fface = Font:getFace("ffont", 20), width = nil, height = nil, diff --git a/l10n/templates/koreader.pot b/l10n/templates/koreader.pot index 067f0398b..ee89c9fb6 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: 2014-07-26 14:24+0000\n" +"POT-Creation-Date: 2014-07-27 13:41+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" @@ -17,9 +17,9 @@ msgid "" " others." msgstr "" -#: frontend/apps/reader/modules/readermenu.lua:132 -#: frontend/apps/reader/modules/readermenu.lua:138 -#: frontend/apps/reader/modules/readermenu.lua:144 +#: frontend/apps/reader/modules/readermenu.lua:175 +#: frontend/apps/reader/modules/readermenu.lua:181 +#: frontend/apps/reader/modules/readermenu.lua:187 msgid "" " pages" msgstr "" @@ -65,6 +65,8 @@ msgid "" "Apply" msgstr "" +#: frontend/apps/filemanager/filemanagermenu.lua:103 +#: frontend/apps/reader/modules/readermenu.lua:94 #: frontend/apps/reader/modules/readertypeset.lua:66 msgid "" "Auto" @@ -81,7 +83,7 @@ msgid "" msgstr "" #: frontend/apps/reader/modules/readergoto.lua:36 -#: frontend/apps/reader/modules/readermenu.lua:165 +#: frontend/apps/reader/modules/readermenu.lua:208 #: frontend/ui/widget/confirmbox.lua:29 #: plugins/evernote.koplugin/main.lua:124 #: plugins/zsync.koplugin/main.lua:279 @@ -125,9 +127,9 @@ msgid "" "Copy" msgstr "" -#: frontend/apps/reader/modules/readermenu.lua:132 -#: frontend/apps/reader/modules/readermenu.lua:138 -#: frontend/apps/reader/modules/readermenu.lua:144 +#: frontend/apps/reader/modules/readermenu.lua:175 +#: frontend/apps/reader/modules/readermenu.lua:181 +#: frontend/apps/reader/modules/readermenu.lua:187 msgid "" "Custom " msgstr "" @@ -179,12 +181,12 @@ msgid "" "Document Language" msgstr "" -#: frontend/apps/reader/modules/readermenu.lua:221 +#: frontend/apps/reader/modules/readermenu.lua:265 msgid "" "Document menu" msgstr "" -#: frontend/apps/reader/modules/readermenu.lua:119 +#: frontend/apps/reader/modules/readermenu.lua:162 msgid "" "E-ink full refresh rate" msgstr "" @@ -221,12 +223,12 @@ msgid "" "Evernote" msgstr "" -#: frontend/apps/reader/modules/readermenu.lua:127 +#: frontend/apps/reader/modules/readermenu.lua:170 msgid "" "Every 6 pages" msgstr "" -#: frontend/apps/reader/modules/readermenu.lua:122 +#: frontend/apps/reader/modules/readermenu.lua:165 msgid "" "Every page" msgstr "" @@ -252,7 +254,7 @@ msgid "" "File does not exist" msgstr "" -#: frontend/apps/filemanager/filemanagermenu.lua:134 +#: frontend/apps/filemanager/filemanagermenu.lua:180 msgid "" "File manager menu" msgstr "" @@ -277,6 +279,12 @@ msgid "" "Font Weight" msgstr "" +#: frontend/apps/filemanager/filemanagermenu.lua:100 +#: frontend/apps/reader/modules/readermenu.lua:91 +msgid "" +"Font size" +msgstr "" + #: frontend/ui/data/strings.lua:30 msgid "" "Forced OCR" @@ -317,8 +325,8 @@ msgid "" "Go to Page or Location" msgstr "" -#: frontend/apps/filemanager/filemanagermenu.lua:103 -#: frontend/apps/reader/modules/readermenu.lua:105 +#: frontend/apps/filemanager/filemanagermenu.lua:148 +#: frontend/apps/reader/modules/readermenu.lua:148 msgid "" "Help" msgstr "" @@ -354,7 +362,7 @@ msgid "" "Indentation" msgstr "" -#: frontend/apps/reader/modules/readermenu.lua:160 +#: frontend/apps/reader/modules/readermenu.lua:203 msgid "" "Input page number for a full refresh" msgstr "" @@ -379,6 +387,12 @@ msgid "" "Language" msgstr "" +#: frontend/apps/filemanager/filemanagermenu.lua:127 +#: frontend/apps/reader/modules/readermenu.lua:118 +msgid "" +"Large" +msgstr "" + #: frontend/apps/reader/modules/readerhighlight.lua:75 msgid "" "Lighten" @@ -420,13 +434,19 @@ msgid "" "Logout" msgstr "" +#: frontend/apps/filemanager/filemanagermenu.lua:119 +#: frontend/apps/reader/modules/readermenu.lua:110 +msgid "" +"Medium" +msgstr "" + #: frontend/apps/reader/modules/readerhighlight.lua:333 msgid "" "More" msgstr "" -#: frontend/apps/filemanager/filemanagermenu.lua:85 -#: frontend/apps/reader/modules/readermenu.lua:78 +#: frontend/apps/filemanager/filemanagermenu.lua:89 +#: frontend/apps/reader/modules/readermenu.lua:82 msgid "" "Night mode" msgstr "" @@ -447,7 +467,7 @@ msgid "" msgstr "" #: frontend/apps/reader/modules/readerfrontlight.lua:115 -#: frontend/apps/reader/modules/readermenu.lua:171 +#: frontend/apps/reader/modules/readermenu.lua:214 #: frontend/ui/widget/confirmbox.lua:28 msgid "" "OK" @@ -493,8 +513,8 @@ msgid "" "Paste" msgstr "" -#: frontend/apps/filemanager/filemanagermenu.lua:106 -#: frontend/apps/reader/modules/readermenu.lua:108 +#: frontend/apps/filemanager/filemanagermenu.lua:151 +#: frontend/apps/reader/modules/readermenu.lua:151 msgid "" "Please report bugs to \n" "https://github.com/koreader/koreader/issues" @@ -595,12 +615,12 @@ msgid "" "Share" msgstr "" -#: frontend/apps/reader/modules/readermenu.lua:88 +#: frontend/apps/reader/modules/readermenu.lua:129 msgid "" "Show advanced options" msgstr "" -#: frontend/apps/filemanager/filemanagermenu.lua:63 +#: frontend/apps/filemanager/filemanagermenu.lua:67 msgid "" "Show hidden files" msgstr "" @@ -610,7 +630,13 @@ msgid "" "Show page overlap" msgstr "" -#: frontend/apps/filemanager/filemanagermenu.lua:71 +#: frontend/apps/filemanager/filemanagermenu.lua:111 +#: frontend/apps/reader/modules/readermenu.lua:102 +msgid "" +"Small" +msgstr "" + +#: frontend/apps/filemanager/filemanagermenu.lua:75 msgid "" "Start with last opened file" msgstr "" @@ -690,8 +716,8 @@ msgid "" "Underscore" msgstr "" -#: frontend/apps/filemanager/filemanagermenu.lua:95 -#: frontend/apps/reader/modules/readermenu.lua:97 +#: frontend/apps/filemanager/filemanagermenu.lua:140 +#: frontend/apps/reader/modules/readermenu.lua:140 msgid "" "Version" msgstr "" diff --git a/resources/icons/appbar.settings.png b/resources/icons/appbar.settings.png new file mode 100644 index 000000000..5f75791df Binary files /dev/null and b/resources/icons/appbar.settings.png differ diff --git a/resources/icons/src/appbar.settings.svg b/resources/icons/src/appbar.settings.svg new file mode 100644 index 000000000..c1737092c --- /dev/null +++ b/resources/icons/src/appbar.settings.svg @@ -0,0 +1,5 @@ + + + + +