From 2e087b18c6f8aa38b15983cfa79ea684401d1929 Mon Sep 17 00:00:00 2001 From: Darthpred Date: Mon, 4 May 2015 22:39:34 +0400 Subject: [PATCH] Created an abomination from ench string replacement :D --- .../Armory/CharacterArmory/CharacterArmory.lua | 8 +- ElvUI_SLE/modules/Armory/Config.lua | 150 +++++++++----------- .../modules/Armory/InspectArmory/InspectArmory.lua | 8 +- 3 files changed, 74 insertions(+), 92 deletions(-) diff --git a/ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua b/ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua index 77a4884..d15329c 100644 --- a/ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua +++ b/ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua @@ -591,9 +591,11 @@ function CA:Update_Gear() CurrentLineText = gsub(CurrentLineText, Old, New) end end - - for Old, New in pairs(SLE_ArmoryDB.EnchantString) do - CurrentLineText = gsub(CurrentLineText, Old, New) + + for Name, _ in pairs(SLE_ArmoryDB.EnchantString) do + if SLE_ArmoryDB.EnchantString[Name].original and SLE_ArmoryDB.EnchantString[Name].new then + CurrentLineText = gsub(CurrentLineText, SLE_ArmoryDB.EnchantString[Name].original, SLE_ArmoryDB.EnchantString[Name].new) + end end Slot.ItemEnchant:SetText('|cffceff00'..CurrentLineText) diff --git a/ElvUI_SLE/modules/Armory/Config.lua b/ElvUI_SLE/modules/Armory/Config.lua index 5c74fd1..f52595f 100644 --- a/ElvUI_SLE/modules/Armory/Config.lua +++ b/ElvUI_SLE/modules/Armory/Config.lua @@ -9,7 +9,7 @@ local function Color(TrueColor, FalseColor) return (E.db.sle.Armory.Character.Enable ~= false or E.db.sle.Armory.Inspect.Enable ~= false) and (TrueColor == '' and '' or TrueColor and '|c'..TrueColor or KF:Color_Value()) or FalseColor and '|c'..FalseColor or '' end -local EnchantString_Old, EnchantString_New = '', '' +local EnchantStringName, EnchantString_Old, EnchantString_New = '', '', '' local SelectedEnchantString local function LoadArmoryConfigTable() @@ -35,33 +35,32 @@ local function LoadArmoryConfigTable() order = 2, guiInline = true, args = { - TargetString = { - type = 'input', - name = function() return ' '..Color()..L['Original String'] end, + CreateString = { order = 1, - desc = '', - get = function() return EnchantString_Old end, - set = function(_, value) - EnchantString_Old = value - end, - disabled = function() return E.db.sle.Armory.Character.Enable == false and E.db.sle.Armory.Inspect.Enable == false end - }, - NewString = { + name = L["Create Filter"], type = 'input', - name = function() return ' '..Color()..L['New String'] end, - order = 2, - desc = '', - get = function() return EnchantString_New end, + width = "full", + get = function() return EnchantStringName end, set = function(_, value) - EnchantString_New = value + EnchantStringName = value end, disabled = function() return E.db.sle.Armory.Character.Enable == false and E.db.sle.Armory.Inspect.Enable == false end }, - Space = { - type = 'description', - name = ' ', + AddButton = { + type = 'execute', + name = function() return (((E.db.sle.Armory.Character.Enable == false and E.db.sle.Armory.Inspect.Enable == false) or EnchantStringName == '') and '|cff787878' or KF:Color_Value())..ADD end, --L['Create Replacement'] end, order = 3, - width = 'half' + desc = '', + func = function() + if EnchantStringName ~= '' and not SLE_ArmoryDB.EnchantString[EnchantStringName] then + SLE_ArmoryDB.EnchantString[EnchantStringName] = {} + SelectedEnchantString = EnchantStringName + EnchantStringName = "" + end + end, + disabled = function() + return (E.db.sle.Armory.Character.Enable == false and E.db.sle.Armory.Inspect.Enable == false) or EnchantStringName == '' + end }, List = { type = 'select', @@ -70,13 +69,13 @@ local function LoadArmoryConfigTable() get = function() return SelectedEnchantString end, set = function(_, value) SelectedEnchantString = value - E.Options.args.sle.args.Armory.args.EnchantString.args.ConfigSpace.args.StringGroup.name = value + E.Options.args.sle.args.Armory.args.EnchantString.args.ConfigSpace.args.StringGroup.name = L['List of Strings']..": "..value end, values = function() local List = {} List[''] = NONE - for Old, New in pairs(SLE_ArmoryDB.EnchantString) do - List[Old] = Old + for Name, _ in pairs(SLE_ArmoryDB.EnchantString) do + List[Name] = Name end if not SelectedEnchantString then SelectedEnchantString = '' @@ -91,48 +90,55 @@ local function LoadArmoryConfigTable() order = 5, width = 'half' }, - AddButton = { - type = 'execute', - name = function() return (((E.db.sle.Armory.Character.Enable == false and E.db.sle.Armory.Inspect.Enable == false) or EnchantString_Old == '' or EnchantString_New == '') and '|cff787878' or KF:Color_Value())..L['Create Replacement'] end, - order = 6, - desc = '', - func = function() - if EnchantString_Old ~= '' and EnchantString_New ~= '' then - SLE_ArmoryDB.EnchantString[EnchantString_Old] = EnchantString_New - - EnchantString_Old = '' - EnchantString_New = '' - - if CharacterArmory then - CharacterArmory:Update_Gear() - end - - if InspectArmory and InspectArmory.LastDataSetting then - InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData) - end - elseif SLE_ArmoryDB.EnchantString[EnchantString_Old] and EnchantString_New == '' then - SLE_ArmoryDB.EnchantString[EnchantString_Old] = nil - end - end, - disabled = function() - return (E.db.sle.Armory.Character.Enable == false and E.db.sle.Armory.Inspect.Enable == false) or EnchantString_Old == '' or EnchantString_New == '' - end - }, - Space3 = { - type = 'description', - name = ' ', - order = 7, - width = 'normal' - }, StringGroup = { type = 'group', - name = "", --function() return Color('ffffffff', 'ff787878')..L['String Replacement'] end, + name = "", order = 8, guiInline = true, hidden = function() return SelectedEnchantString == '' end, args = { + TargetString = { + type = 'input', + name = function() return ' '..Color()..L['Original String'] end, + order = 1, + desc = '', + width = "full", + get = function() return SLE_ArmoryDB.EnchantString[SelectedEnchantString]["original"] end, + set = function(_, value) + SLE_ArmoryDB.EnchantString[SelectedEnchantString]["original"] = value + + if CharacterArmory then + CharacterArmory:Update_Gear() + end + + if InspectArmory and InspectArmory.LastDataSetting then + InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData) + end + end, + disabled = function() return E.db.sle.Armory.Character.Enable == false and E.db.sle.Armory.Inspect.Enable == false end + }, + NewString = { + type = 'input', + name = function() return ' '..Color()..L['New String'] end, + order = 2, + desc = '', + width = "full", + get = function() return SLE_ArmoryDB.EnchantString[SelectedEnchantString]["new"] end, + set = function(_, value) + SLE_ArmoryDB.EnchantString[SelectedEnchantString]["new"] = value + + if CharacterArmory then + CharacterArmory:Update_Gear() + end + + if InspectArmory and InspectArmory.LastDataSetting then + InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData) + end + end, + disabled = function() return E.db.sle.Armory.Character.Enable == false and E.db.sle.Armory.Inspect.Enable == false end + }, DeleteButton = { type = 'execute', name = function() return Color(nil, 'ff787878')..DELETE end, @@ -163,34 +169,6 @@ local function LoadArmoryConfigTable() name = ' ', order = 3 }, - List = { - type = 'group', - name = function() return Color('ffffffff', 'ff787878')..L['List of Strings'] end, - order = 4, - guiInline = true, - args = { - List = { - type = 'description', - name = function() - local List = '' - local Order = 1 - - if SLE_ArmoryDB.EnchantString and next(SLE_ArmoryDB.EnchantString) then - for Old, New in pairs(SLE_ArmoryDB.EnchantString) do - List = List..' '..Color('ffffffff', 'ff787878')..Order..'. '..Color('ffFF7E7E', 'ff787878')..Old..'|r '..Color('ffceff00', 'ff787878')..'->|r '..Color(nil, 'ff787878')..New..'|r|n' - Order = Order + 1 - end - else - List = ' |cffFF7E7E'..L['There is no replacing order.'] - end - - return List - end, - order = 1, - disabled = function() return E.db.sle.Armory.Character.Enable == false and E.db.sle.Armory.Inspect.Enable == false end, - } - } - }, CreditSpace = { type = 'description', name = ' ', diff --git a/ElvUI_SLE/modules/Armory/InspectArmory/InspectArmory.lua b/ElvUI_SLE/modules/Armory/InspectArmory/InspectArmory.lua index 23e058f..f46ff1e 100644 --- a/ElvUI_SLE/modules/Armory/InspectArmory/InspectArmory.lua +++ b/ElvUI_SLE/modules/Armory/InspectArmory/InspectArmory.lua @@ -9,7 +9,7 @@ local KF, Info, Timer = unpack(ElvUI_KnightFrame) local IA = InspectArmory or CreateFrame('Frame', 'InspectArmory', E.UIParent) local ENI = _G['EnhancedNotifyInspect'] or { CancelInspect = function() end } local AISM = _G['Armory_InspectSupportModule'] -local ButtonName = L['Knight Inspect'] +local ButtonName = INSPECT --L['Knight Inspect'] local CORE_FRAME_LEVEL = 10 local SLOT_SIZE = 37 @@ -1902,8 +1902,10 @@ function IA:InspectFrame_DataSetting(DataTable) end end - for Old, New in pairs(SLE_ArmoryDB.EnchantString) do - CurrentLineText = gsub(CurrentLineText, Old, New) + for Name, _ in pairs(SLE_ArmoryDB.EnchantString) do + if SLE_ArmoryDB.EnchantString[Name].original and SLE_ArmoryDB.EnchantString[Name].new then + CurrentLineText = gsub(CurrentLineText, SLE_ArmoryDB.EnchantString[Name].original, SLE_ArmoryDB.EnchantString[Name].new) + end end Slot.Gradation.ItemEnchant:SetText('|cffceff00'..CurrentLineText) -- 1.7.9.5