Mercurial > wow > inventory
changeset 68:710f03653aaf
When the track at option of a group is overridden, the default is no longer passed by reference but copied whenever it is a table.
author | Zerotorescue |
---|---|
date | Thu, 23 Dec 2010 13:57:48 +0100 |
parents | 67181b118bed |
children | 6329ee822172 |
files | Config.lua |
diffstat | 1 files changed, 12 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/Config.lua Thu Dec 23 13:38:27 2010 +0100 +++ b/Config.lua Thu Dec 23 13:57:48 2010 +0100 @@ -22,7 +22,9 @@ elseif value and info.arg then -- If this override is now enabled, we need to copy the default into this field (unless it is not nil (which is supposed to be impossible), in which case we'll use the already selected value) - addon.db.profile.groups[groupName][info.arg] = addon:GetOptionByKey(groupName, info.arg); + local inheritedValue = addon:GetOptionByKey(groupName, info.arg); + + addon.db.profile.groups[groupName][info.arg] = (type(inheritedValue) ~= "table" and inheritedValue) or CopyTable(inheritedValue); -- copying defaults by reference would let one (unintendedly) change the defaults end end @@ -55,13 +57,9 @@ local groupName = groupIdToName[info[2]]; local optionName = info[#info]; - if addon.db.profile.groups[groupName][optionName] ~= nil then - return addon.db.profile.groups[groupName][optionName][value]; - elseif addon.db.profile.defaults[optionName] then - return addon.db.profile.defaults[optionName][value]; - else - return nil; - end + local multiSelectValue = addon:GetOptionByKey(groupName, optionName); + + return multiSelectValue and multiSelectValue[value]; end local function GetDisabled(info) @@ -1462,8 +1460,12 @@ return temp; end, - get = function(i, v) return addon.db.profile.defaults.trackAtCharacters[v]; end, - set = function(i, v, e) addon.db.profile.defaults.trackAtCharacters[v] = e or nil; end, + get = function(i, v) + return addon.db.profile.defaults.trackAtCharacters[v]; + end, + set = function(i, v, e) + addon.db.profile.defaults.trackAtCharacters[v] = e or nil; + end, dialogControl = "Dropdown", -- this is not standard, normal multiselect control gives us a list of all chars with toggle-boxes. UGLY! We want a multiselect-box instead. }, },