@ -1,55 +1,54 @@
local InputContainer = require ( " ui/widget/container/inputcontainer " )
local DocumentRegistry = require ( " document/documentregistry " )
local Screenshoter = require ( " ui/widget/screenshoter " )
local InfoMessage = require ( " ui/widget/infomessage " )
local InputDialog = require ( " ui/widget/inputdialog " )
--[[
ReaderUI is an abstraction for a reader interface .
It works using data gathered from a document interface .
] ] --
local Cache = require ( " cache " )
local ConfirmBox = require ( " ui/widget/confirmbox " )
local lfs = require ( " libs/libkoreader-lfs " )
local DocSettings = require ( " docsettings " )
local UIManager = require ( " ui/uimanager " )
local Geom = require ( " ui/geometry " )
local Device = require ( " device " )
local Screen = require ( " device " ) . screen
local DocSettings = require ( " docsettings " )
local DocumentRegistry = require ( " document/documentregistry " )
local Event = require ( " ui/event " )
local Cache = require ( " cache " )
local logger = require ( " logger " )
local T = require ( " ffi/util " ) . template
local _ = require ( " gettext " )
local ReaderView = require ( " apps/reader/modules/readerview " )
local ReaderZooming = require ( " apps/reader/modules/readerzooming " )
local ReaderPanning = require ( " apps/reader/modules/readerpanning " )
local ReaderRotation = require ( " apps/reader/modules/readerrotation " )
local ReaderPaging = require ( " apps/reader/modules/readerpaging " )
local ReaderRolling = require ( " apps/reader/modules/readerrolling " )
local ReaderToc = require ( " apps/reader/modules/readertoc " )
local FileManagerHistory = require ( " apps/filemanager/filemanagerhistory " )
local Geom = require ( " ui/geometry " )
local InfoMessage = require ( " ui/widget/infomessage " )
local InputContainer = require ( " ui/widget/container/inputcontainer " )
local InputDialog = require ( " ui/widget/inputdialog " )
local PluginLoader = require ( " pluginloader " )
local ReaderActivityIndicator = require ( " apps/reader/modules/readeractivityindicator " )
local ReaderBookmark = require ( " apps/reader/modules/readerbookmark " )
local ReaderFont = require ( " apps/reader/modules/readerfont " )
local ReaderTypeset = require ( " apps/reader/modules/readertypeset " )
local ReaderMenu = require ( " apps/reader/modules/readermenu " )
local ReaderGoto = require ( " apps/reader/modules/readergoto " )
local ReaderConfig = require ( " apps/reader/modules/readerconfig " )
local ReaderCropping = require ( " apps/reader/modules/readercropping " )
local ReaderKoptListener = require ( " apps/reader/modules/readerkoptlistener " )
local ReaderCoptListener = require ( " apps/reader/modules/readercoptlistener " )
local ReaderCropping = require ( " apps/reader/modules/readercropping " )
local ReaderDictionary = require ( " apps/reader/modules/readerdictionary " )
local ReaderFont = require ( " apps/reader/modules/readerfont " )
local ReaderFrontLight = require ( " apps/reader/modules/readerfrontlight " )
local ReaderGoto = require ( " apps/reader/modules/readergoto " )
local ReaderHinting = require ( " apps/reader/modules/readerhinting " )
local ReaderHighlight = require ( " apps/reader/modules/readerhighlight " )
local ReaderFrontLight = require ( " apps/reader/modules/readerfrontlight " )
local ReaderDictionary = require ( " apps/reader/modules/readerdictionary " )
local ReaderWikipedia = require ( " apps/reader/modules/readerwikipedia " )
local ReaderHyphenation = require ( " apps/reader/modules/readerhyphenation " )
local ReaderActivityIndicator = require ( " apps/reader/modules/readeractivityindicator " )
local FileManagerHistory = require ( " apps/filemanager/filemanagerhistory " )
local ReaderSearch = require ( " apps/reader/modules/readersearch " )
local ReaderKoptListener = require ( " apps/reader/modules/readerkoptlistener " )
local ReaderLink = require ( " apps/reader/modules/readerlink " )
local ReaderMenu = require ( " apps/reader/modules/readermenu " )
local ReaderPanning = require ( " apps/reader/modules/readerpanning " )
local ReaderRotation = require ( " apps/reader/modules/readerrotation " )
local ReaderPaging = require ( " apps/reader/modules/readerpaging " )
local ReaderRolling = require ( " apps/reader/modules/readerrolling " )
local ReaderSearch = require ( " apps/reader/modules/readersearch " )
local ReaderStatus = require ( " apps/reader/modules/readerstatus " )
local PluginLoader = require ( " pluginloader " )
--[[
This is an abstraction for a reader interface
it works using data gathered from a document interface
] ] --
local ReaderToc = require ( " apps/reader/modules/readertoc " )
local ReaderTypeset = require ( " apps/reader/modules/readertypeset " )
local ReaderView = require ( " apps/reader/modules/readerview " )
local ReaderWikipedia = require ( " apps/reader/modules/readerwikipedia " )
local ReaderZooming = require ( " apps/reader/modules/readerzooming " )
local Screenshoter = require ( " ui/widget/screenshoter " )
local UIManager = require ( " ui/uimanager " )
local lfs = require ( " libs/libkoreader-lfs " )
local logger = require ( " logger " )
local _ = require ( " gettext " )
local Screen = require ( " device " ) . screen
local T = require ( " ffi/util " ) . template
local ReaderUI = InputContainer : new {
name = " ReaderUI " ,
@ -354,6 +353,22 @@ function ReaderUI:init()
self.postReaderCallback = nil
end
function ReaderUI : showFileManager ( )
local FileManager = require ( " apps/filemanager/filemanager " )
local QuickStart = require ( " ui/quickstart " )
local lastdir
local last_file = G_reader_settings : readSetting ( " lastfile " )
-- ignore quickstart guide as last_file so we can go back to home dir
if last_file and last_file ~= QuickStart.quickstart_filename then
lastdir = last_file : match ( " (.*)/ " )
end
if FileManager.instance then
FileManager.instance : reinit ( lastdir )
else
FileManager : showFiles ( lastdir )
end
end
function ReaderUI : showReader ( file )
logger.dbg ( " show reader ui " )
require ( " readhistory " ) : addItem ( file )
@ -393,8 +408,9 @@ function ReaderUI:doShowReader(file)
local document = DocumentRegistry : openDocument ( file )
if not document then
UIManager : show ( InfoMessage : new {
text = _ ( " No reader engine for this file ." )
text = _ ( " No reader engine for this file or invalid file ." )
} )
self : showFileManager ( )
return
end
if document.is_locked then
@ -404,6 +420,7 @@ function ReaderUI:doShowReader(file)
if coroutine.running ( ) then
local unlock_success = coroutine.yield ( )
if not unlock_success then
self : showFileManager ( )
return
end
end