Bugfix. Latest version just allowed you to enter the editor once

pull/820/head
WS64 10 years ago
parent 1eea694190
commit 9b6d273c66

@ -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

Loading…
Cancel
Save