mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Merge pull request #1041 from houqp/dxg
more fixes for none touch kindles
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
local CenterContainer = require("ui/widget/container/centercontainer")
|
||||
local InputContainer = require("ui/widget/container/inputcontainer")
|
||||
local ConfirmBox = require("ui/widget/confirmbox")
|
||||
local TouchMenu = require("ui/widget/touchmenu")
|
||||
local InfoMessage = require("ui/widget/infomessage")
|
||||
local OTAManager = require("ui/otamanager")
|
||||
local UIManager = require("ui/uimanager")
|
||||
@@ -190,6 +189,7 @@ function FileManagerMenu:onShowMenu()
|
||||
|
||||
local main_menu = nil
|
||||
if Device:isTouchDevice() then
|
||||
local TouchMenu = require("ui/widget/touchmenu")
|
||||
main_menu = TouchMenu:new{
|
||||
width = Screen:getWidth(),
|
||||
tab_item_table = {
|
||||
@@ -202,17 +202,13 @@ function FileManagerMenu:onShowMenu()
|
||||
show_parent = menu_container,
|
||||
}
|
||||
else
|
||||
local Menu = require("ui/widget/menu")
|
||||
main_menu = Menu:new{
|
||||
title = _("File manager menu"),
|
||||
item_table = {},
|
||||
width = Screen:getWidth() - 100,
|
||||
item_table = Menu.itemTableFromTouchMenu(self.tab_item_table),
|
||||
width = Screen:getWidth()-10,
|
||||
show_parent = menu_container,
|
||||
}
|
||||
|
||||
for _,item_table in pairs(self.tab_item_table) do
|
||||
for k,v in ipairs(item_table) do
|
||||
table.insert(main_menu.item_table, v)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
main_menu.close_callback = function ()
|
||||
|
||||
@@ -79,7 +79,9 @@ end
|
||||
|
||||
-- event handler for readercropping
|
||||
function ReaderConfig:onCloseConfigMenu()
|
||||
self.config_dialog:closeDialog()
|
||||
if self.config_dialog then
|
||||
self.config_dialog:closeDialog()
|
||||
end
|
||||
end
|
||||
|
||||
function ReaderConfig:onReadSettings(config)
|
||||
|
||||
@@ -3,7 +3,6 @@ local CenterContainer = require("ui/widget/container/centercontainer")
|
||||
local InfoMessage = require("ui/widget/infomessage")
|
||||
local InputDialog = require("ui/widget/inputdialog")
|
||||
local ConfirmBox = require("ui/widget/confirmbox")
|
||||
local TouchMenu = require("ui/widget/touchmenu")
|
||||
local GestureRange = require("ui/gesturerange")
|
||||
local OTAManager = require("ui/otamanager")
|
||||
local UIManager = require("ui/uimanager")
|
||||
@@ -11,7 +10,6 @@ local Device = require("ui/device")
|
||||
local Geom = require("ui/geometry")
|
||||
local Event = require("ui/event")
|
||||
local Screen = require("ui/screen")
|
||||
local Menu = require("ui/widget/menu")
|
||||
local Language = require("ui/language")
|
||||
local DEBUG = require("dbg")
|
||||
local _ = require("gettext")
|
||||
@@ -172,6 +170,7 @@ function ReaderMenu:onShowReaderMenu()
|
||||
|
||||
local main_menu = nil
|
||||
if Device:isTouchDevice() then
|
||||
local TouchMenu = require("ui/widget/touchmenu")
|
||||
main_menu = TouchMenu:new{
|
||||
width = Screen:getWidth(),
|
||||
tab_item_table = {
|
||||
@@ -186,17 +185,13 @@ function ReaderMenu:onShowReaderMenu()
|
||||
show_parent = menu_container,
|
||||
}
|
||||
else
|
||||
local Menu = require("ui/widget/menu")
|
||||
main_menu = Menu:new{
|
||||
title = _("Document menu"),
|
||||
item_table = {},
|
||||
item_table = Menu.itemTableFromTouchMenu(self.tab_item_table),
|
||||
width = Screen:getWidth() - 100,
|
||||
show_parent = menu_container,
|
||||
}
|
||||
|
||||
for _,item_table in pairs(self.tab_item_table) do
|
||||
for k,v in ipairs(item_table) do
|
||||
table.insert(main_menu.item_table, v)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
main_menu.close_callback = function ()
|
||||
|
||||
@@ -356,15 +356,15 @@ local Menu = FocusManager:new{
|
||||
|
||||
function Menu:_recalculateDimen()
|
||||
self.dimen.w = self.width
|
||||
-- if height not given, dynamically calculate it
|
||||
self.dimen.h = self.height or (#self.item_table + 2) * Screen:scaleByDPI(36)
|
||||
if self.dimen.h > Screen:getHeight() then
|
||||
self.dimen.h = Screen:getHeight()
|
||||
end
|
||||
self.item_dimen = Geom:new{
|
||||
w = self.dimen.w,
|
||||
h = Screen:scaleByDPI(46), -- hardcoded for now
|
||||
}
|
||||
-- if height not given, dynamically calculate it
|
||||
self.dimen.h = self.height or (#self.item_table + 2) * self.item_dimen.h
|
||||
if self.dimen.h > Screen:getHeight() then
|
||||
self.dimen.h = Screen:getHeight()
|
||||
end
|
||||
-- header and footer should approximately take up space of 2 items
|
||||
self.perpage = math.floor(self.dimen.h / self.item_dimen.h) - (self.no_title and 1 or 2)
|
||||
self.page_num = math.ceil(#self.item_table / self.perpage)
|
||||
@@ -648,9 +648,8 @@ function Menu:updateItems(select_number)
|
||||
end
|
||||
|
||||
-- nicolua
|
||||
-- FIXMED: dirty hack to clear previous menus
|
||||
-- FIXME: dirty hack to clear previous menus
|
||||
UIManager:setDirty(self.show_parent or self)
|
||||
|
||||
end
|
||||
|
||||
--[[
|
||||
@@ -834,4 +833,18 @@ function Menu:onSwipe(arg, ges_ev)
|
||||
end
|
||||
end
|
||||
|
||||
function Menu.itemTableFromTouchMenu(t)
|
||||
local item_t = {}
|
||||
for k,v in pairs(t) do
|
||||
local item = { text = k }
|
||||
if v.callback then
|
||||
item.callback = v.callback
|
||||
else
|
||||
item.sub_item_table = v
|
||||
end
|
||||
table.insert(item_t, item)
|
||||
end
|
||||
return item_t
|
||||
end
|
||||
|
||||
return Menu
|
||||
|
||||
Reference in New Issue
Block a user