From c74c258fc743b318314df98b97a9f4758676b6f8 Mon Sep 17 00:00:00 2001 From: chrox Date: Wed, 3 Sep 2014 11:13:46 +0800 Subject: [PATCH] add filemanager icon in reader menu now we can access the filemanager in all launcher configurations --- frontend/apps/filemanager/filemanager.lua | 2 -- frontend/apps/reader/modules/readermenu.lua | 12 +++++++++++- frontend/ui/uimanager.lua | 7 +++++++ frontend/ui/widget/menu.lua | 2 +- reader.lua | 14 ++++++-------- resources/icons/appbar.cabinet.files.png | Bin 0 -> 700 bytes 6 files changed, 25 insertions(+), 12 deletions(-) create mode 100644 resources/icons/appbar.cabinet.files.png diff --git a/frontend/apps/filemanager/filemanager.lua b/frontend/apps/filemanager/filemanager.lua index 21554c366..857ff8575 100644 --- a/frontend/apps/filemanager/filemanager.lua +++ b/frontend/apps/filemanager/filemanager.lua @@ -20,8 +20,6 @@ local util = require("ffi/util") local FileManager = InputContainer:extend{ title = _("FileManager"), - width = Screen:getWidth(), - height = Screen:getHeight(), root_path = lfs.currentdir(), -- our own size dimen = Geom:new{ w = 400, h = 600 }, diff --git a/frontend/apps/reader/modules/readermenu.lua b/frontend/apps/reader/modules/readermenu.lua index 439f8effa..0ab1da09b 100644 --- a/frontend/apps/reader/modules/readermenu.lua +++ b/frontend/apps/reader/modules/readermenu.lua @@ -38,13 +38,22 @@ function ReaderMenu:init() plugins = { icon = "resources/icons/appbar.tools.png", }, + filemanager = { + icon = "resources/icons/appbar.cabinet.files.png", + callback = function() + self.ui:onClose() + UIManager:quit() + local lastdir = G_reader_settings:readSetting("lastdir") + showHomePage(lastdir) + end, + }, home = { icon = "resources/icons/appbar.home.png", callback = function() self.ui:handleEvent(Event:new("RestoreScreenMode", G_reader_settings:readSetting("screen_mode") or "portrait")) - UIManager:close(self.menu_container) self.ui:onClose() + UIManager:quit() end, }, } @@ -150,6 +159,7 @@ function ReaderMenu:onShowReaderMenu() self.tab_item_table.setting, self.tab_item_table.info, self.tab_item_table.plugins, + self.tab_item_table.filemanager, self.tab_item_table.home, }, show_parent = menu_container, diff --git a/frontend/ui/uimanager.lua b/frontend/ui/uimanager.lua index db164d96e..e9a1de150 100644 --- a/frontend/ui/uimanager.lua +++ b/frontend/ui/uimanager.lua @@ -133,6 +133,7 @@ end -- register & show a widget function UIManager:show(widget, x, y) + self._running = true -- put widget on top of stack table.insert(self._window_stack, {x = x or 0, y = y or 0, widget = widget}) -- and schedule it to be painted @@ -226,6 +227,12 @@ end -- signal to quit function UIManager:quit() self._running = false + for i = #self._window_stack, 1, -1 do + table.remove(self._window_stack, i) + end + for i = #self._execution_stack, 1, -1 do + table.remove(self._execution_stack, i) + end for i = #self._zeromqs, 1, -1 do self._zeromqs[i]:stop() table.remove(self._zeromqs, i) diff --git a/frontend/ui/widget/menu.lua b/frontend/ui/widget/menu.lua index de1f9bc51..a76ba47a6 100644 --- a/frontend/ui/widget/menu.lua +++ b/frontend/ui/widget/menu.lua @@ -591,7 +591,7 @@ function Menu:swithItemTable(new_title, new_item_table, itemnumber) if itemnumber then self.page = math.ceil(itemnumber / self.perpage) else - self.page = 1 + self.page = 1 end self.item_table = new_item_table diff --git a/reader.lua b/reader.lua index b36fb1974..bbe69f351 100755 --- a/reader.lua +++ b/reader.lua @@ -69,8 +69,8 @@ function exitReader() os.exit(0) end -function showReaderUI(file, pass) - DEBUG("opening file", file) +function showReaderUI(file) + DEBUG("show reader ui") if lfs.attributes(file, "mode") ~= "file" then UIManager:show(InfoMessage:new{ text = _("File ") .. file .. _(" does not exist") @@ -81,10 +81,11 @@ function showReaderUI(file, pass) text = _("Opening file ") .. file, timeout = 1, }) - UIManager:scheduleIn(0.1, function() doShowReaderUI(file, pass) end) + UIManager:scheduleIn(0.1, function() doShowReaderUI(file) end) end -function doShowReaderUI(file, pass) +function doShowReaderUI(file) + DEBUG("opening file", file) local document = DocumentRegistry:openDocument(file) if not document then UIManager:show(InfoMessage:new{ @@ -95,15 +96,14 @@ function doShowReaderUI(file, pass) G_reader_settings:saveSetting("lastfile", file) local reader = ReaderUI:new{ - dialog = readerwindow, dimen = Screen:getSize(), document = document, - password = pass } UIManager:show(reader) end function showHomePage(path) + DEBUG("show home page") G_reader_settings:saveSetting("lastdir", path) UIManager:show(FileManager:new{ dimen = Screen:getSize(), @@ -199,8 +199,6 @@ if ARGV[argidx] and ARGV[argidx] ~= "" then showReaderUI(ARGV[argidx]) elseif open_last and last_file then showReaderUI(last_file) - UIManager:run() - showHomePage(ARGV[argidx]) else showHomePage(ARGV[argidx]) end diff --git a/resources/icons/appbar.cabinet.files.png b/resources/icons/appbar.cabinet.files.png new file mode 100644 index 0000000000000000000000000000000000000000..abca8bd15e5830c44093e4bc78e5a015a5b2cf3e GIT binary patch literal 700 zcmV;t0z>_YP)00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY4c7nw4c7reD4Tcy000McNliru-UuHEDmayp{`mj^0!c|k zK~!ko?V7*O>0lJc-`?B?>C%YkApQZ17)T5fv9uF2skscM#$d5X7#gcIK}S<1-OAF% z;14k9YLS;TMJzht4wA-w6Thn0)i~d&=gIN(d_3noeNI7+$K#ii_3O*w0ssI2003|{ zz+f;yo=~&dd@_LFkA5JTOrD#%u0M18a=GmH`}6s{^(l@I%Jv*UQB;=Yqg5f-V^URh zy#N+Wx&f##_?RH-eceB~3s`_IP!!SirVzHS0D?pOu{Zmb+)0&*!h(g*+Y)j^kzo78H#}`~5zO zq9=1Un^6??BV%m?2nK@;!!QhEZv~SiDF_0BASZJ&nWWR{-EL<;KqwUAd7kHa+jk+F zra6u?&CzI-&1U!ey_25AEX%SiYnqZI6^liO9VIx9qiOoQzN^)$lK>C|5d?vvD08G% ztF>A!CmrTc6ct7B{Bc$)m2Pg+{}VvdwC}&Q-EOH2?q~0D!>% iMgaf-0000!8sHDO-J>9%e|WM00000