remove extension.lua and implement getReaderByType in readerchooser.lua

chrox 12 years ago
parent e5e99e3d7f
commit 2fd933abc9

@ -70,7 +70,7 @@ function CREReader:open(filename)
return false, "Error unzipping file. "
end
-- if the zip entry is not cre-document
if ext:getReader(file_type) ~= CREReader then
if ReaderChooser:getReaderByType(file_type) ~= CREReader then
return false, "Zip contains improper content. "
end
-- these two format use the same css file

@ -8,7 +8,7 @@ require "fileinfo"
require "inputbox"
require "selectmenu"
require "dialog"
require "extentions"
require "readerchooser"
FileChooser = {
title_H = 40, -- title height
@ -141,7 +141,7 @@ function FileChooser:readDir()
elseif lfs.attributes(self.path.."/"..f, "mode") == "file"
and not string.match(f, "^%.[^.]") then
local file_type = string.lower(string.match(f, ".+%.([^.]+)") or "")
if ext:getReader(file_type) then
if ReaderChooser:getReaderByType(file_type) then
table.insert(self.files, f)
end
end

@ -5,6 +5,7 @@ require "font"
require "inputbox"
require "dialog"
require "settings"
require "readerchooser"
FileInfo = {
title_H = 40, -- title height
@ -74,7 +75,7 @@ function FileInfo:getFolderContent()
if j == "file" then
files = files + 1
ftype = string.match(name, ".+%.([^.]+)")
if ftype and ext:getReader(string.lower(ftype)) then
if ftype and ReaderChooser:getReaderByType(string.lower(ftype)) then
books = books + 1
end
elseif j == "directory" then
@ -146,7 +147,7 @@ function FileInfo:init(path, fname)
table.insert(self.result, {dir = "Last read", name = self:FileCreated(history, "change")})
local file_type = string.lower(string.match(self.pathfile, ".+%.([^.]+)"))
local to_search, add, factor = "[\"last_percent\"]", "%", 100
if ext:getReader(file_type) ~= CREReader then
if ReaderChooser:getReaderByType(file_type) ~= CREReader then
to_search = "[\"last_page\"]"
add = " pages"
factor = 1

@ -4,7 +4,7 @@ require "graphics"
require "font"
require "inputbox"
require "dialog"
require "extentions"
require "readerchooser"
FileSearcher = {
title_H = 40, -- title height
@ -35,7 +35,7 @@ function FileSearcher:readDir()
local file_type = string.lower(string.match(f, ".+%.([^.]+)") or "")
if lfs.attributes(d.."/"..f, "mode") == "directory" and f ~= "." and f~= ".." then
table.insert(new_dirs, d.."/"..f)
elseif ext:getReader(file_type) then
elseif ReaderChooser:getReaderByType(file_type) then
file_entry = {dir=d, name=f,}
table.insert(self.files, file_entry)
--Debug("file:"..d.."/"..f)

@ -41,7 +41,7 @@ function openFile(filename)
local file_type = string.lower(string.match(filename, ".+%.([^.]+)"))
local reader = nil
reader = ReaderChooser:getReader(filename)
reader = ReaderChooser:getReaderByName(filename)
if reader then
InfoMessage:inform("Opening document... ", nil, 0, MSG_AUX)
reader:preLoadSettings(filename)

@ -35,12 +35,12 @@ ReaderChooser = {
readers = {},
n_readers = 0,
final_choice = nil,
last_item = 0,
current_item = 1,
-- state variables
dialogdirty = true,
markerdirty = false,
optiondirty = true,
last_item = 0,
current_item = 1,
remember_reader = false,
}
@ -55,7 +55,17 @@ function GetRegisteredReaders(ftype)
return readers
end
function ReaderChooser:getReader(filename)
-- find the first reader registered with this file type
function ReaderChooser:getReaderByType(ftype)
local readers = GetRegisteredReaders(ftype)
if readers[1] then
return registry[readers[1]][1]
else
return nil
end
end
function ReaderChooser:getReaderByName(filename)
local file_type = string.lower(string.match(filename, ".+%.([^.]+)"))
local readers = GetRegisteredReaders(file_type)
if readers[2] then -- more than 2 readers registered with this file type

@ -1007,7 +1007,7 @@ function UniReader:loadSettings(filename)
-- other parameters are reader-specific --> @TODO: move to proper place, like loadSpecialSettings()
-- since DJVUReader still has no loadSpecialSettings(), just a quick solution is
local ftype = string.lower(string.match(filename, ".+%.([^.]+)") or "")
if ext:getReader(ftype) ~= CREReader then
if ReaderChooser:getReaderByType(ftype) ~= CREReader then
self.globalgamma = self.settings:readSetting("gamma") or self.globalgamma
local bbox = self.settings:readSetting("bbox")
Debug("bbox loaded ", bbox)

Loading…
Cancel
Save