remember menu tab index when showing reader menu

pull/1124/head
chrox 10 years ago
parent 6ae62f15fe
commit 95ac27df5c

@ -38,9 +38,10 @@ function ReaderMenu:init()
},
filemanager = {
icon = "resources/icons/appbar.cabinet.files.png",
remember = false,
callback = function()
self.ui:onClose()
self:onTapCloseMenu()
self.ui:onClose()
-- screen orientation is independent for docview and filemanager
-- so we need to restore the screen mode for the filemanager
local FileManager = require("apps/filemanager/filemanager")
@ -52,7 +53,9 @@ function ReaderMenu:init()
},
home = {
icon = "resources/icons/appbar.home.png",
remember = false,
callback = function()
self:onTapCloseMenu()
self.ui:onClose()
UIManager:quit()
end,
@ -187,6 +190,7 @@ function ReaderMenu:onShowReaderMenu()
local TouchMenu = require("ui/widget/touchmenu")
main_menu = TouchMenu:new{
width = Screen:getWidth(),
last_index = self.last_tab_index,
tab_item_table = {
self.tab_item_table.navi,
self.tab_item_table.typeset,
@ -225,6 +229,9 @@ function ReaderMenu:onShowReaderMenu()
end
function ReaderMenu:onCloseReaderMenu()
self.last_tab_index = self.menu_container[1].last_index
DEBUG("remember menu tab index", self.last_tab_index)
self:onSaveSettings()
UIManager:close(self.menu_container)
return true
end
@ -247,7 +254,12 @@ function ReaderMenu:onSetDimensions(dimen)
end
end
function ReaderMenu:onReadSettings(config)
self.last_tab_index = config:readSetting("menu_tab_index") or 1
end
function ReaderMenu:onSaveSettings()
self.ui.doc_settings:saveSetting("menu_tab_index", self.last_tab_index)
end
function ReaderMenu:registerToMainMenu(widget)

@ -151,6 +151,8 @@ function TouchMenuBar:init()
self.icon_widgets = {}
-- hold icon seperators
self.icon_seps = {}
-- hold all icon buttons
self.icon_buttons = {}
-- the start_seg for first icon_widget should be 0
-- we asign negative here to offset it in the loop
local start_seg = -icon_sep_width
@ -166,6 +168,8 @@ function TouchMenuBar:init()
spacing, ib, spacing,
})
table.insert(self.icon_buttons, ib)
-- we have to use local variable here for closure callback
local _start_seg = end_seg + icon_sep_width
local _end_seg = _start_seg + self.icon_widgets[k]:getSize().w
@ -228,6 +232,9 @@ function TouchMenuBar:init()
self.dimen = Geom:new{ w = self.width, h = self.height }
end
function TouchMenuBar:switchToTab(index)
self.icon_buttons[index].callback()
end
--[[
TouchMenu widget for hierarchical menus
@ -371,7 +378,7 @@ function TouchMenu:init()
self.item_group,
}
self:switchMenuTab(1)
self.bar:switchToTab(self.last_index or 1)
self:updateItems()
end
@ -465,6 +472,9 @@ function TouchMenu:netToggle()
end
function TouchMenu:switchMenuTab(tab_num)
if self.tab_item_table[tab_num].remember ~= false then
self.last_index = tab_num
end
if self.touch_menu_callback then
self.touch_menu_callback()
end

Loading…
Cancel
Save