mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
screen orientation won't change when going into filemanager
and filemanager remembers screen orientation at exit This should fix #1338.
This commit is contained in:
@@ -155,6 +155,20 @@ function FileManager:init()
|
||||
self:handleEvent(Event:new("SetDimensions", self.dimen))
|
||||
end
|
||||
|
||||
function FileManager:resetDimen(dimen)
|
||||
self.dimen = dimen
|
||||
-- backup the root path and path items
|
||||
self.root_path = self.file_chooser.path
|
||||
local path_items_backup = {}
|
||||
for k, v in pairs(self.file_chooser.path_items) do
|
||||
path_items_backup[k] = v
|
||||
end
|
||||
-- reinit filemanager
|
||||
self:init()
|
||||
self.file_chooser.path_items = path_items_backup
|
||||
self:onRefresh()
|
||||
end
|
||||
|
||||
function FileManager:toggleHiddenFiles()
|
||||
self.file_chooser:toggleHiddenFiles()
|
||||
G_reader_settings:saveSetting("show_hidden", self.file_chooser.show_hidden)
|
||||
@@ -172,6 +186,7 @@ end
|
||||
|
||||
function FileManager:onClose()
|
||||
DEBUG("close filemanager")
|
||||
G_reader_settings:saveSetting("fm_screen_mode", Screen:getScreenMode())
|
||||
UIManager:close(self)
|
||||
if self.onExit then
|
||||
self:onExit()
|
||||
@@ -206,15 +221,17 @@ function FileManager:showFiles(path)
|
||||
DEBUG("show home page")
|
||||
path = path or G_reader_settings:readSetting("lastdir") or self:getDefaultDir()
|
||||
G_reader_settings:saveSetting("lastdir", path)
|
||||
UIManager:show(FileManager:new{
|
||||
self:restoreScreenMode()
|
||||
local file_manager = FileManager:new{
|
||||
dimen = Screen:getSize(),
|
||||
root_path = path,
|
||||
onExit = function()
|
||||
self.is_running = false
|
||||
self.instance = nil
|
||||
UIManager:quit()
|
||||
end
|
||||
})
|
||||
self.is_running = true
|
||||
}
|
||||
UIManager:show(file_manager)
|
||||
self.instance = file_manager
|
||||
end
|
||||
|
||||
function FileManager:copyFile(file)
|
||||
|
||||
@@ -40,11 +40,10 @@ function ReaderMenu:init()
|
||||
callback = function()
|
||||
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")
|
||||
FileManager:restoreScreenMode()
|
||||
if not FileManager.is_running then
|
||||
if FileManager.instance then
|
||||
FileManager.instance:resetDimen(Screen:getSize())
|
||||
else
|
||||
local lastdir = nil
|
||||
local last_file = G_reader_settings:readSetting("lastfile")
|
||||
if last_file then
|
||||
|
||||
@@ -26,7 +26,7 @@ local FileChooser = Menu:extend{
|
||||
strcoll = strcoll,
|
||||
collate = "strcoll", -- or collate = "access",
|
||||
reverse_collate = false,
|
||||
path_pages = {}, -- store last browsed location(page) for each path
|
||||
path_items = {}, -- store last browsed location(item index) for each path
|
||||
}
|
||||
|
||||
function FileChooser:init()
|
||||
@@ -150,12 +150,11 @@ end
|
||||
|
||||
function FileChooser:updateItems(select_number)
|
||||
Menu.updateItems(self, select_number) -- call parent's updateItems()
|
||||
self.path_pages[self.path] = self.page
|
||||
self.path_items[self.path] = (self.page - 1) * self.perpage + (select_number or 1)
|
||||
end
|
||||
|
||||
function FileChooser:refreshPath()
|
||||
self.page = self.path_pages[self.path] or 1
|
||||
self:swithItemTable(nil, self:genItemTableFromPath(self.path), -1)
|
||||
self:swithItemTable(nil, self:genItemTableFromPath(self.path), self.path_items[self.path])
|
||||
end
|
||||
|
||||
function FileChooser:changeToPath(path)
|
||||
|
||||
Reference in New Issue
Block a user