Finished stable implementation (as far as tested), still requires more testing.

This commit is contained in:
BenDol
2014-04-01 16:27:33 +13:00
parent 61059e66ec
commit b295053662
22 changed files with 180 additions and 177 deletions

View File

@@ -0,0 +1,76 @@
-- @docclass
local function convertSettingValue(value)
if type(value) == 'table' then
if value.x and value.width then
return recttostring(value)
elseif value.x then
return pointtostring(value)
elseif value.width then
return sizetostring(value)
elseif value.r then
return colortostring(value)
else
return value
end
elseif value == nil then
return ''
else
return tostring(value)
end
end
function Config:set(key, value)
self:setValue(key, convertSettingValue(value))
end
function Config:setDefault(key, value)
if self:exists(key) then return false end
self:set(key, value)
return true
end
function Config:get(key, default)
if not self:exists(key) and default ~= nil then
self:set(key, default)
end
return self:getValue(key)
end
function Config:getString(key, default)
return self:get(key, default)
end
function Config:getInteger(key, default)
local v = tonumber(self:get(key, default)) or 0
return v
end
function Config:getNumber(key, default)
local v = tonumber(self:get(key, default)) or 0
return v
end
function Config:getBoolean(key, default)
return toboolean(self:get(key, default))
end
function Config:getPoint(key, default)
return topoint(self:get(key, default))
end
function Config:getRect(key, default)
return torect(self:get(key, default))
end
function Config:getSize(key, default)
return tosize(self:get(key, default))
end
function Config:getColor(key, default)
return tocolor(self:get(key, default))
end
function Config:getColor(key, default)
return tocolor(self:get(key, default))
end

View File

@@ -14,6 +14,7 @@ Module
dofile 'const'
dofile 'util'
dofile 'globals'
dofile 'config'
dofile 'settings'
dofile 'keyboard'
dofile 'mouse'

View File

@@ -1,78 +1,4 @@
-- @docclass
g_settings = g_configs.getSettings()
local function convertSettingValue(value)
if type(value) == 'table' then
if value.x and value.width then
return recttostring(value)
elseif value.x then
return pointtostring(value)
elseif value.width then
return sizetostring(value)
elseif value.r then
return colortostring(value)
else
return value
end
elseif value == nil then
return ''
else
return tostring(value)
end
end
function g_settings.set(key, value)
g_settings.set(key, convertSettingValue(value))
end
function g_settings.setDefault(key, value)
if g_settings.exists(key) then return false end
g_settings.set(key, value)
return true
end
function g_settings.get(key, default)
print(g_settings.exists)
if not g_settings.exists(key) and default ~= nil then
g_settings.set(key, default)
end
return g_settings.get(key)
end
function g_settings.getString(key, default)
return g_settings.get(key, default)
end
function g_settings.getInteger(key, default)
local v = tonumber(g_settings.get(key, default)) or 0
return v
end
function g_settings.getNumber(key, default)
local v = tonumber(g_settings.get(key, default)) or 0
return v
end
function g_settings.getBoolean(key, default)
return toboolean(g_settings.get(key, default))
end
function g_settings.getPoint(key, default)
return topoint(g_settings.get(key, default))
end
function g_settings.getRect(key, default)
return torect(g_settings.get(key, default))
end
function g_settings.getSize(key, default)
return tosize(g_settings.get(key, default))
end
function g_settings.getColor(key, default)
return tocolor(g_settings.get(key, default))
end
function g_settings.getColor(key, default)
return tocolor(g_settings.get(key, default))
end
-- Reserved for settings specific functionality

View File

@@ -93,7 +93,7 @@ function UIMiniWindow:setup()
local oldParent = self:getParent()
local settings = g_settings.getNode('MiniWindows')
local settings = g_settings:getNode('MiniWindows')
if settings then
local selfSettings = settings[self:getId()]
if selfSettings then
@@ -245,7 +245,7 @@ end
function UIMiniWindow:getSettings(name)
if not self.save then return nil end
local settings = g_settings.getNode('MiniWindows')
local settings = g_settings:getNode('MiniWindows')
if settings then
local selfSettings = settings[self:getId()]
if selfSettings then
@@ -258,7 +258,7 @@ end
function UIMiniWindow:setSettings(data)
if not self.save then return end
local settings = g_settings.getNode('MiniWindows')
local settings = g_settings:getNode('MiniWindows')
if not settings then
settings = {}
end
@@ -272,13 +272,13 @@ function UIMiniWindow:setSettings(data)
settings[id][key] = value
end
g_settings.setNode('MiniWindows', settings)
g_settings:setNode('MiniWindows', settings)
end
function UIMiniWindow:eraseSettings(data)
if not self.save then return end
local settings = g_settings.getNode('MiniWindows')
local settings = g_settings:getNode('MiniWindows')
if not settings then
settings = {}
end
@@ -292,7 +292,7 @@ function UIMiniWindow:eraseSettings(data)
settings[id][key] = nil
end
g_settings.setNode('MiniWindows', settings)
g_settings:setNode('MiniWindows', settings)
end
function UIMiniWindow:saveParent(parent)