Fix global use of some variables

This commit is contained in:
rilgamon 2021-03-12 11:10:06 +01:00
parent 7fe8447326
commit b677f7bb38
3 changed files with 29 additions and 25 deletions

View File

@ -80,7 +80,7 @@ lib['events']:SetScript("OnEvent", function(self, event, ...)
if(specs and specs['sv'] and not addon['db']) then
-- print('dbname',type(specs['sv']),type(specs['sv']) == 'boolean' and addonName or specs['sv'])
local dbname = format('%sDB', type(specs['sv']) == 'boolean' and addonName or specs['sv'])
addon['db'] = LibStub("AceDB-3.0"):New(dbname, type(specs['defaults']) == 'table' and specs['defaults'] or {}, true)
addon['db'] = LibStub("AceDB-3.0"):New(dbname, type(specs['defaults']) == 'table' and specs['defaults'] or {}, 'Default')
if(specs['ldb']) then
local ldbobj = LibStub:GetLibrary("zzLDB"):AddLDB(specs['name'], specs['ldb'], addon['db'])
end
@ -88,14 +88,10 @@ lib['events']:SetScript("OnEvent", function(self, event, ...)
local config = LibStub:GetLibrary("zzConfig")
addon['options'] = config:InitConfig(addon, addonName)
addon['options']['args']['profile'] = LibStub("AceDBOptions-3.0"):GetOptionsTable(addon['db'])
function addon:RefreshConfig()
self['db']['profile'][specs['name']] = {}
if(specs['cfgRefresh']) then
self['specs']['cfgRefresh'](addon['db'])
if(type(specs['cfgReset']) == 'function') then
addon['db'].RegisterCallback(specs, "OnProfileReset", 'cfgReset')
end
end
addon['db'].RegisterCallback(addon, "OnProfileReset", "RefreshConfig")
end
end
end
end

View File

@ -31,6 +31,11 @@ local function minimapSet(pref,value)
db[pref[#pref]] = value
ldbiconUpdate(objname)
end
local function notify(pref, value, oldvalue)
if(type(pref['handler'].PrefChanged) == 'function') then
pref['handler']:PrefChanged(pref, value, oldvalue)
end
end
local function getPref(pref)
if(type(pref['handler']['GetPref']) == 'function') then
-- print("use handler getpref", pref[#pref])
@ -46,7 +51,11 @@ local function setPref(pref,value)
if(type(pref['handler']['SetPref']) == 'function') then
pref['handler']:SetPref(pref,value)
else
local oldvalue = pref['handler']['db']['profile'][pref[#pref-1]][pref[#pref]]
pref['handler']['db']['profile'][pref[#pref-1]][pref[#pref]] = value
if(value ~= oldvalue) then
notify(pref, value, oldvalue)
end
end
end
function lib:AddLDBIconOptions(options, conf)
@ -105,9 +114,9 @@ function lib:AddConfigEntry(options, ...)
}
end
options['args'][input[1]] = menu
end
return menu
end
end
function lib:AddConfigMenu(options, parentName, handler, order, more)
local menu = {
['name'] = parentName,

View File

@ -28,13 +28,12 @@ function lib:AddLDB(objname, obj, db)
db['global']['ldbicons'] = db['global']['ldbicons'] or {}
local sb = db['global']['ldbicons']
sb[objname] = sb[objname] or CopyTable(defaults)
-- print('reg', objname)
ldbicon:Register(objname, ldbobj, sb[objname])
end
end
end
return ldbobj
end
end
end
function lib:Embed(target)
for _,name in pairs(mixins) do
target[name] = lib[name]