zz_Money/prefs.lua

74 lines
3.1 KiB
Lua

local addonName, addonTable = ...
local db, dbr, faction
addonTable['bankHandler'] = {
SetDB = function(self, db) self.db = db end,
GetPref = function(self, pref)
return self['db'][pref[#pref]]
end,
SetPref = function (self, pref, value)
self['db'][pref[#pref]] = value
addonTable['events']['MAIL_SHOW'](addonTable)
end,
}
local function buildSelect()
local sel = {}
local n,m,_
if(addonTable['db']['sv']['profileKeys']) then
for k,v in pairs(addonTable['db']['sv']['profileKeys']) do
n,_,m = strsplit(' ',k,3)
if(addonTable:IsTwink(n)) then
if(dbr[n] and faction == dbr[n]['faction']) then
sel[n] = n
end
end
end
end
return sel
end
local function buildSelectAll()
local sel = {}
local n,m,_
if(addonTable['db']['sv']['profileKeys']) then
for k,v in pairs(addonTable['db']['sv']['profileKeys']) do
n,_,m = strsplit(' ',k,3)
sel[format("%s-%s",n,m)] = format("%s-%s",n,m)
end
end
return sel
end
local function deleteChar()
if(db['deleteCharOk']) then
local charName, charRealm = strsplit('-', db['deleteChar'],2)
if(db[charRealm] and db[charRealm][charName]) then
db[charRealm][charName] = nil
addonTable['db']['sv']['profileKeys'][format("%s - %s", charName, charRealm)] = nil
end
end
db['deleteCharOk'] = nil
end
function addonTable:SetupPrefs(childName)
local L = addonTable['storage']['L']
dbr = addonTable['storage']['dbr']
db = addonTable['storage']['db']
faction = addonTable['storage']['faction']
local config = LibStub:GetLibrary("zzConfig")
local main = addonTable['options']['args'][childName]
local menu = config:AddConfigMenu(addonTable['options'], L['Bankier'], addonTable['bankHandler'] , 2, { disabled = function() return db['disableBanker']
end})
config:AddConfigEntry(menu, "minLimit", "range", L['Minimum Limit'],L['Desc MinL'],1,10,150000,5, false)
config:AddConfigEntry(menu, "maxLimit", "range", L['Maximum Limit'],L['Desc MaxL'],2,10,150000,5,false)
config:AddConfigEntry(menu, "banker","select",L['Bankier'],nil,3,buildSelect)
config:AddConfigEntry(main, "disableBanker", "toggle", L['nobanker'], nil, 3)
config:AddConfigEntry(main, "deleteCharHeader", "header", L['DeleteChar'], nil, 9)
config:AddConfigEntry(main, "deleteChar", "select", L['DeleteChar'], L['DeleteCharDesc'], 10, buildSelectAll)
config:AddConfigEntry(main, "deleteCharOk", "toggle", L['DeleteCharOk'], nil , 11)
config:AddConfigEntry(main, "deleteCharExec", "execute", L['DeleteChar'], L['DeleteCharDesc'], 12, deleteChar)
config:AddConfigEntry(main, "sortDir", "toggle", L['sortDir'], nil, 2)
config:AddConfigEntry(main, "connectedRealms", "toggle", L['connectedRealms'], nil, 2)
config:AddConfigEntry(main, "accountMoney", "toggle", L['accountMoney'], L['accountMoneyDesc'], 4)
config:AddConfigEntry(main, "shortMoney", "toggle", L['shortMoney'], nil, 5)
config:AddConfigEntry(main, "shortMoneyTip", "toggle", L['shortMoneyTip'], nil, 5)
config:AddConfigEntry(main, "abrevK", "toggle", L['abrevK'], nil, 6)
config:AddConfigEntry(main, "abrevM", "toggle", L['abrevM'], nil, 6)
config:AddConfigEntry(main, "showLog", "toggle", L['showLog'], nil, 7)
end