mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Bugfix. Latest version just allowed you to enter the editor once
This commit is contained in:
@@ -26,6 +26,7 @@ local function settype(b,t)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local function __genOrderedIndex( t )
|
||||
-- this function is taken from http://lua-users.org/wiki/SortedIteration
|
||||
local orderedIndex = {}
|
||||
@@ -73,6 +74,21 @@ local function orderedPairs(t)
|
||||
return orderedNext, t, nil
|
||||
end
|
||||
|
||||
local function getTableValues(t,dtap)
|
||||
local dummy = "{"
|
||||
for n,v in pairs(t) do
|
||||
if dtap:sub(1,4) == "DTAP" or dtap:sub(1,11) == "DDOUBLE_TAP" then
|
||||
dummy = dummy .. tostring(n) .. " = " .. tostring(v) .. ", "
|
||||
elseif tonumber(v) then
|
||||
dummy = dummy .. tostring(v) .. ", "
|
||||
else
|
||||
dummy = dummy .. "\"" .. tostring(v) .. "\", "
|
||||
end
|
||||
end
|
||||
dummy = dummy:sub(1,string.len(dummy) - 2) .. "}"
|
||||
return dummy
|
||||
end
|
||||
|
||||
function SetDefaults:ConfirmEdit()
|
||||
if not SetDefaults.EditConfirmed then
|
||||
UIManager:show(ConfirmBox:new{
|
||||
@@ -88,12 +104,24 @@ function SetDefaults:ConfirmEdit()
|
||||
end
|
||||
|
||||
function SetDefaults:init()
|
||||
|
||||
self.defaults_name = {}
|
||||
self.defaults_value = {}
|
||||
self.results = {}
|
||||
|
||||
self.filldefaults()
|
||||
if not self.already_read then
|
||||
local i = 0
|
||||
for n,v in orderedPairs(_G) do
|
||||
if (not string.find(tostring(v), "<")) and (not string.find(tostring(v), ": ")) and string.sub(n,1,1) ~= "_" and string.upper(n) == n and n ~= "GLOBAL_INPUT_VALUE" and n ~= "LIBRARY_PATH" then
|
||||
i = i + 1
|
||||
self.defaults_name[i] = n
|
||||
self.defaults_value[i] = v
|
||||
end
|
||||
if string.find(tostring(v), "table: ") and string.upper(n) == n and n ~= "ARGV" and n ~= "_G" then
|
||||
i = i + 1
|
||||
self.defaults_name[i] = n
|
||||
self.defaults_value[i] = getTableValues(v,n)
|
||||
end
|
||||
end
|
||||
self.already_read = true
|
||||
end
|
||||
|
||||
local menu_container = CenterContainer:new{
|
||||
dimen = Screen:getSize(),
|
||||
@@ -222,40 +250,6 @@ function SetDefaults:init()
|
||||
UIManager:show(menu_container)
|
||||
end
|
||||
|
||||
local function getTableValues(t,dtap)
|
||||
local dummy = "{"
|
||||
for n,v in pairs(t) do
|
||||
if dtap:sub(1,4) == "DTAP" or dtap:sub(1,11) == "DDOUBLE_TAP" then
|
||||
dummy = dummy .. tostring(n) .. " = " .. tostring(v) .. ", "
|
||||
elseif tonumber(v) then
|
||||
dummy = dummy .. tostring(v) .. ", "
|
||||
else
|
||||
dummy = dummy .. "\"" .. tostring(v) .. "\", "
|
||||
end
|
||||
end
|
||||
dummy = dummy:sub(1,string.len(dummy) - 2) .. "}"
|
||||
return dummy
|
||||
end
|
||||
|
||||
function SetDefaults:filldefaults()
|
||||
if not SetDefaults.already_read then
|
||||
local i = 0
|
||||
for n,v in orderedPairs(_G) do
|
||||
if (not string.find(tostring(v), "<")) and (not string.find(tostring(v), ": ")) and string.sub(n,1,1) ~= "_" and string.upper(n) == n and n ~= "GLOBAL_INPUT_VALUE" and n ~= "LIBRARY_PATH" then
|
||||
i = i + 1
|
||||
SetDefaults.defaults_name[i] = n
|
||||
SetDefaults.defaults_value[i] = v
|
||||
end
|
||||
if string.find(tostring(v), "table: ") and string.upper(n) == n and n ~= "ARGV" and n ~= "_G" then
|
||||
i = i + 1
|
||||
SetDefaults.defaults_name[i] = n
|
||||
SetDefaults.defaults_value[i] = getTableValues(v,n)
|
||||
end
|
||||
end
|
||||
SetDefaults.already_read = true
|
||||
end
|
||||
end
|
||||
|
||||
function SetDefaults:close()
|
||||
self.set_dialog:onClose()
|
||||
UIManager:close(self.set_dialog)
|
||||
@@ -311,7 +305,6 @@ function SetDefaults:SaveSettings()
|
||||
local dl = {}
|
||||
fileread("defaults.lua",dl)
|
||||
self.results = {}
|
||||
self.filldefaults()
|
||||
local done = {}
|
||||
|
||||
for j=1,#SetDefaults.defaults_name do
|
||||
@@ -328,15 +321,6 @@ function SetDefaults:SaveSettings()
|
||||
end
|
||||
end
|
||||
|
||||
-- handle case "exists identical in non-persistent", ignore it
|
||||
for i = 1,#dl do
|
||||
for j=1,#SetDefaults.defaults_name do
|
||||
if not done[j] and dl[i]:gsub("1/4","0.25"):gsub("2/4","0.5"):gsub("3/4","0.75"):gsub("4/4","1"):gsub("1/8","0.125"):gsub("2/8","0.25"):gsub("3/8","0.375"):gsub("4/8","0.5"):gsub("5/8","0.625"):gsub("6/8","0.75"):gsub("7/8","0.875"):gsub("8/8","1"):gsub("1/16","0.0625"):gsub("15/16","0.9375"):gsub("1024[*]1024[*]10","10485760"):gsub("1024[*]1024[*]30","31457280"):gsub("[.]0$",""):gsub("([.][0-9]+)0","%1") == self:build_setting(j) then
|
||||
done[j] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- handle case "not in persistent and different in non-persistent", add to persistent
|
||||
for j=1,#SetDefaults.defaults_name do
|
||||
if not done[j] then
|
||||
@@ -351,6 +335,5 @@ function SetDefaults:SaveSettings()
|
||||
file:close()
|
||||
UIManager:show(InfoMessage:new{text = _("Default settings successfully saved!")})
|
||||
settings_changed = false
|
||||
|
||||
end
|
||||
return SetDefaults
|
||||
|
||||
Reference in New Issue
Block a user