From 60d213279ab9553210925b81eca77d98d267c6ca Mon Sep 17 00:00:00 2001 From: Michael Tindal Date: Wed, 29 Jun 2016 20:29:35 -0700 Subject: [PATCH] Add the option to delete a character from the currency datatext. I change names alot. --- ElvUI_SLE/options/datatexts_c.lua | 60 +++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/ElvUI_SLE/options/datatexts_c.lua b/ElvUI_SLE/options/datatexts_c.lua index 01aacba..815629b 100644 --- a/ElvUI_SLE/options/datatexts_c.lua +++ b/ElvUI_SLE/options/datatexts_c.lua @@ -3,6 +3,44 @@ local DTP = E:GetModule('SLE_DTPanels') local DT = E:GetModule('DataTexts') local datatexts = {} +local function OrderedPairs(t, f) + local function orderednext(t, n) + local key = t[t.__next] + if not key then return end + t.__next = t.__next + 1 + return key, t.__source[key] + end + + local keys, kn = {__source = t, __next = 1}, 1 + for k in pairs(t) do + keys[kn], kn = k, kn + 1 + end + sort(keys, f) + return orderednext, keys +end + +E.PopupDialogs['CONFIRM_DELETE_CURRENCY_CHARACTER'] = { + text = "Are you sure you want to delete this character", + button1 = YES, + button2 = NO, + OnAccept = function(self, data) + if ElvDB['class'][data.realm][data.name] then + ElvDB['class'][data.realm][data.name] = nil; + end + if ElvDB['gold'][data.realm][data.name] then + ElvDB['gold'][data.realm][data.name] = nil; + end + if ElvDB['faction'][data.realm][FACTION_ALLIANCE][data.name] then + ElvDB['faction'][data.realm][FACTION_ALLIANCE][data.name] = nil; + end + if ElvDB['faction'][data.realm][FACTION_HORDE][data.name] then + ElvDB['faction'][data.realm][FACTION_HORDE][data.name] = nil; + end + ReloadUI(); + end, + OnCancel = E.noop; +} + local function configTable() local drop = { --Group name = {short name, order, slot} @@ -373,6 +411,28 @@ local function configTable() get = function(info) return E.private['ElvUI_Currency']['Unused'] end, set = function(info, value) E.private['ElvUI_Currency']['Unused'] = value; end, }, + delete = { + order = 12, + type = "select", + name = "Delete a character", + desc = "Remove a character from the stored gold values", + values = function() + local names = {}; + for rk,_ in OrderedPairs(ElvDB['gold']) do + for k,_ in OrderedPairs(ElvDB['gold'][rk]) do + if ElvDB['gold'][rk][k] then + local name = ("%s-%s"):format(k, rk); + names[name] = name; + end + end + end + return names; + end, + set = function(info, value) + local name, realm = strsplit("-", value); + E:StaticPopup_Show('CONFIRM_DELETE_CURRENCY_CHARACTER', nil, nil, { ["name"] = name, ["realm"] = realm }); + end, + } }, }, slfriends = { -- 1.7.9.5