Quantcast

A LOT of cache in armory

Darthpred [07-31-16 - 13:47]
A LOT of cache in armory
Filename
ElvUI_SLE/defaults/private.lua
ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua
ElvUI_SLE/modules/Armory/CharacterArmory/Stats.lua
ElvUI_SLE/modules/Armory/Config.lua
ElvUI_SLE/modules/Armory/InspectArmory/InspectArmory.lua
ElvUI_SLE/modules/Armory/KnightFrame.lua
diff --git a/ElvUI_SLE/defaults/private.lua b/ElvUI_SLE/defaults/private.lua
index 8ab7991..a432443 100644
--- a/ElvUI_SLE/defaults/private.lua
+++ b/ElvUI_SLE/defaults/private.lua
@@ -38,7 +38,13 @@ V["sle"] = {
 		["setoverlay"] = false,
 		["lockbutton"] = false,
 	},
-
+	["Armory"] = {
+		["ItemLevel"] = {
+			["font"] = "PT Sans Narrow",
+			["size"] = 12,
+			["outline"] = "NONE",
+		},
+	},
 	--Minimap Module
 	["minimap"] = {
 		["buttons"] = {
diff --git a/ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua b/ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua
index 9cd2329..dc7ac51 100644
--- a/ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua
+++ b/ElvUI_SLE/modules/Armory/CharacterArmory/CharacterArmory.lua
@@ -2,7 +2,7 @@ if select(2, GetAddOnInfo('ElvUI_KnightFrame')) and IsAddOnLoaded('ElvUI_KnightF

 local SLE, T, E, L, V, P, G = unpack(select(2, ...))
 local KF, Info, Timer = unpack(ElvUI_KnightFrame)
---GLOBALS: CreateFrame, UIParent, SLE_ArmoryDB, hooksecurefunc
+--GLOBALS: CreateFrame, UIParent, SLE_ArmoryDB, hooksecurefunc, GetInventoryItemGems
 local _G = _G
 local _
 local IsShiftKeyDown = IsShiftKeyDown
@@ -421,8 +421,8 @@ function CA:Setup_CharacterArmory()
 end

 local function DCS_Check()
-	if DCS_ExpandCheck then
-		DCS_ExpandCheck:SetFrameLevel(CharacterModelFrame:GetFrameLevel() + 2)
+	if _G["DCS_ExpandCheck"] then
+		_G["DCS_ExpandCheck"]:SetFrameLevel(_G["CharacterModelFrame"]:GetFrameLevel() + 2)
 		DCS_Check = nil
 	end
 end
@@ -843,6 +843,67 @@ function CA:Update_Display(Force)
 	end
 end

+function CA:UpdateSettings(part)
+	local db = E.db.sle.Armory.Character
+	if part == "ilvl" or part == "all" then
+		for _, SlotName in T.pairs(Info.Armory_Constants.GearList) do
+			if _G["CharacterArmory"][SlotName] and _G["CharacterArmory"][SlotName].ItemLevel then
+				_G["CharacterArmory"][SlotName].ItemLevel:FontTemplate(E.LSM:Fetch('font', db.Level.Font),db.Level.FontSize,db.Level.FontStyle)
+			end
+		end
+	end
+	if part == "ench" or part == "all" then
+		for _, SlotName in T.pairs(Info.Armory_Constants.GearList) do
+			if _G["CharacterArmory"][SlotName] then
+				if _G["CharacterArmory"][SlotName].ItemEnchant then
+					_G["CharacterArmory"][SlotName].ItemEnchant:FontTemplate(E.LSM:Fetch('font', db.Enchant.Font),db.Enchant.FontSize,db.Enchant.FontStyle)
+				end
+				if _G["CharacterArmory"][SlotName].EnchantWarning then
+					_G["CharacterArmory"][SlotName].EnchantWarning:Size(db.Enchant.WarningSize)
+				end
+			end
+		end
+	end
+	if part == "gem" or part == "all" then
+		for _, SlotName in T.pairs(Info.Armory_Constants.GearList) do
+			for i = 1, MAX_NUM_SOCKETS do
+				if _G["CharacterArmory"][SlotName] and _G["CharacterArmory"][SlotName]["Socket"..i] then
+					_G["CharacterArmory"][SlotName]["Socket"..i]:Size(db.Gem.SocketSize)
+				else
+					break
+				end
+			end
+			if _G["CharacterArmory"][SlotName] and _G["CharacterArmory"][SlotName].SocketWarning then
+				_G["CharacterArmory"][SlotName].SocketWarning:Size(db.Gem.WarningSize)
+			end
+		end
+	end
+	if part == "dur" or part == "all" then
+		for _, SlotName in T.pairs(Info.Armory_Constants.GearList) do
+			if _G["CharacterArmory"][SlotName] and _G["CharacterArmory"][SlotName].Durability then
+				_G["CharacterArmory"][SlotName].Durability:FontTemplate(E.LSM:Fetch('font', db.Durability.Font),db.Durability.FontSize,db.Durability.FontStyle)
+			end
+		end
+	end
+	if part == "bg" or part == "all" then
+		_G["CharacterArmory"]:Update_BG()
+	end
+	if part == "gear" or part == "all" then
+		_G["CharacterArmory"]:Update_Gear()
+		_G["CharacterArmory"]:Update_Display(true)
+	end
+end
+
+function CA:UpdateIlvlFont()
+	local db = E.private.sle.Armory.ItemLevel
+	_G["CharacterStatsPane"].ItemLevelFrame.Value:FontTemplate(E.LSM:Fetch('font', db.font), db.size, db.outline)
+	_G["CharacterStatsPane"].ItemLevelFrame:SetHeight(db.size + 4)
+	_G["CharacterStatsPane"].ItemLevelFrame.Background:SetHeight(db.size + 4)
+	_G["CharacterStatsPane"].ItemLevelFrame.leftGrad:SetHeight(db.size + 4)
+	_G["CharacterStatsPane"].ItemLevelFrame.rightGrad:SetHeight(db.size + 4)
+
+end
+
 KF.Modules[#KF.Modules + 1] = 'CharacterArmory'
 KF.Modules.CharacterArmory = function()
 	if E.db.sle.Armory.Character.Enable ~= false then
@@ -932,12 +993,9 @@ KF.Modules.CharacterArmory = function()
 	end
 	if SLE._Compatibility["DejaCharacterStats"] then return end
 	--Resize and reposition god damned ilevel text
-	CharacterStatsPane.ItemLevelFrame:SetPoint("TOP", CharacterStatsPane.ItemLevelCategory, "BOTTOM", 0, 6)
-	CharacterStatsPane.ItemLevelFrame:SetHeight(15)
-	CharacterStatsPane.ItemLevelFrame.Background:SetHeight(15)
-	CharacterStatsPane.ItemLevelFrame.leftGrad:SetHeight(15)
-	CharacterStatsPane.ItemLevelFrame.rightGrad:SetHeight(15)
-	CharacterStatsPane.ItemLevelFrame.Value:FontTemplate()
+	_G["CharacterStatsPane"].ItemLevelFrame:SetPoint("TOP", _G["CharacterStatsPane"].ItemLevelCategory, "BOTTOM", 0, 6)
+	CA:UpdateIlvlFont()
 	hooksecurefunc("PaperDollFrame_UpdateStats", CA.PaperDollFrame_UpdateStats)
+	-- PaperDollFrame_UpdateStats = CA.PaperDollFrame_UpdateStats()
 	CA:ToggleStats()
 end
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/Armory/CharacterArmory/Stats.lua b/ElvUI_SLE/modules/Armory/CharacterArmory/Stats.lua
index cf50260..d4be0bd 100644
--- a/ElvUI_SLE/modules/Armory/CharacterArmory/Stats.lua
+++ b/ElvUI_SLE/modules/Armory/CharacterArmory/Stats.lua
@@ -2,7 +2,26 @@ local SLE, T, E, L, V, P, G = unpack(select(2, ...))
 if SLE._Compatibility["DejaCharacterStats"] then return end
 --Credits: Dejablue

---GLOBALS: PAPERDOLL_STATCATEGORIES
+--GLOBALS: PAPERDOLL_STATCATEGORIES, PAPERDOLL_STATINFO, PaperDollFrame_SetAttackSpeed, PaperDollFrame_SetMovementSpeed
+local _G = _G
+local math_min, math_max= math.min, math.max
+
+local GetMeleeHaste, UnitAttackSpeed = GetMeleeHaste, UnitAttackSpeed
+local BreakUpLargeNumbers = BreakUpLargeNumbers
+local PaperDollFrame_SetLabelAndText = PaperDollFrame_SetLabelAndText
+local UnitSex = UnitSex
+-- local PaperDollFrame_UpdateStats = PaperDollFrame_UpdateStats
+local PaperDollFrame_SetItemLevel = PaperDollFrame_SetItemLevel
+local GetItemLevelColor = GetItemLevelColor
+local MovementSpeed_OnEnter, MovementSpeed_OnUpdate = MovementSpeed_OnEnter, MovementSpeed_OnUpdate
+
+local LE_UNIT_STAT_STRENGTH, LE_UNIT_STAT_AGILITY, LE_UNIT_STAT_INTELLECT = LE_UNIT_STAT_STRENGTH, LE_UNIT_STAT_AGILITY, LE_UNIT_STAT_INTELLECT
+local STAT_ATTACK_SPEED_BASE_TOOLTIP = STAT_ATTACK_SPEED_BASE_TOOLTIP
+local FONT_COLOR_CODE_CLOSE, HIGHLIGHT_FONT_COLOR_CODE = FONT_COLOR_CODE_CLOSE, HIGHLIGHT_FONT_COLOR_CODE
+local ATTACK_SPEED = ATTACK_SPEED
+local PAPERDOLLFRAME_TOOLTIP_FORMAT = PAPERDOLLFRAME_TOOLTIP_FORMAT
+local WEAPON_SPEED = WEAPON_SPEED
+
 local CA = CharacterArmory
 local totalShown = 0

@@ -10,10 +29,11 @@ local totalShown = 0
 function PaperDollFrame_SetAttackSpeed(statFrame, unit)
 	local meleeHaste = GetMeleeHaste();
 	local speed, offhandSpeed = UnitAttackSpeed(unit);
+	local displaySpeedxt

-	local displaySpeed = format("%.2f", speed);
+	local displaySpeed = T.format("%.2f", speed);
 	if ( offhandSpeed ) then
-		offhandSpeed = format("%.2f", offhandSpeed);
+		offhandSpeed = T.format("%.2f", offhandSpeed);
 	end
 	if ( offhandSpeed ) then
 		displaySpeedxt =  BreakUpLargeNumbers(displaySpeed).." / ".. offhandSpeed;
@@ -22,9 +42,9 @@ function PaperDollFrame_SetAttackSpeed(statFrame, unit)
 	end
 	PaperDollFrame_SetLabelAndText(statFrame, WEAPON_SPEED, displaySpeed, false, speed);

-	statFrame.tooltip = HIGHLIGHT_FONT_COLOR_CODE..format(PAPERDOLLFRAME_TOOLTIP_FORMAT, ATTACK_SPEED).." "..displaySpeed..FONT_COLOR_CODE_CLOSE;
-	statFrame.tooltip2 = format(STAT_ATTACK_SPEED_BASE_TOOLTIP, BreakUpLargeNumbers(meleeHaste));
-
+	statFrame.tooltip = HIGHLIGHT_FONT_COLOR_CODE..T.format(PAPERDOLLFRAME_TOOLTIP_FORMAT, ATTACK_SPEED).." "..displaySpeed..FONT_COLOR_CODE_CLOSE;
+	statFrame.tooltip2 = T.format(STAT_ATTACK_SPEED_BASE_TOOLTIP, BreakUpLargeNumbers(meleeHaste));
+
 	statFrame:Show();
 end

@@ -32,7 +52,7 @@ function PaperDollFrame_SetMovementSpeed(statFrame, unit)
 	statFrame.wasSwimming = nil;
 	statFrame.unit = unit;
 	MovementSpeed_OnUpdate(statFrame);
-
+
 	statFrame.onEnterFunc = MovementSpeed_OnEnter;
 	-- TODO: Fix if we decide to show movement speed
 	-- statFrame:SetScript("OnUpdate", MovementSpeed_OnUpdate);
@@ -102,50 +122,49 @@ function CA:PaperDollFrame_UpdateStats()
 		if E.db.sle.Armory.Character.Stats.IlvlColor then
 			local R, G, B = E:ColorGradient((equipped / total), 1, 0, 0, 1, 1, 0, 0, 1, 0)
 			local avColor = E.db.sle.Armory.Character.Stats.AverageColor
-			CharacterStatsPane.ItemLevelFrame.Value:SetFormattedText("%s%.2f|r / %s%.2f|r", E:RGBToHex(R, G, B), equipped, E:RGBToHex(avColor.r, avColor.g, avColor.b), total)
+			_G["CharacterStatsPane"].ItemLevelFrame.Value:SetFormattedText("%s%.2f|r / %s%.2f|r", E:RGBToHex(R, G, B), equipped, E:RGBToHex(avColor.r, avColor.g, avColor.b), total)
 		else
-			CharacterStatsPane.ItemLevelFrame.Value:SetFormattedText("%.2f / %.2f", equipped, total)
+			_G["CharacterStatsPane"].ItemLevelFrame.Value:SetFormattedText("%.2f / %.2f", equipped, total)
 		end
 	else
-		CharacterStatsPane.ItemLevelFrame.Value:SetTextColor(GetItemLevelColor())
-		PaperDollFrame_SetItemLevel(CharacterStatsPane.ItemLevelFrame, "player");
+		_G["CharacterStatsPane"].ItemLevelFrame.Value:SetTextColor(GetItemLevelColor())
+		PaperDollFrame_SetItemLevel(_G["CharacterStatsPane"].ItemLevelFrame, "player");
 	end

-	CharacterStatsPane.AttributesCategory:SetPoint("TOP", CharacterStatsPane.ItemLevelFrame, "BOTTOM", 0, 6)
+	_G["CharacterStatsPane"].AttributesCategory:SetPoint("TOP", _G["CharacterStatsPane"].ItemLevelFrame, "BOTTOM", 0, 6)

-	local level = UnitLevel("player");
+	local level = T.UnitLevel("player");
 	local categoryYOffset = 6;
 	local statYOffset = 0;

-	CharacterStatsPane.ItemLevelCategory:Show();
-	CharacterStatsPane.ItemLevelFrame:Show();
+	_G["CharacterStatsPane"].ItemLevelCategory:Show();
+	_G["CharacterStatsPane"].ItemLevelFrame:Show();

-	local spec = GetSpecialization();
-	local role = GetSpecializationRole(spec);
+	local spec = T.GetSpecialization();
+	local role = T.GetSpecializationRole(spec);

-	CharacterStatsPane.statsFramePool:ReleaseAll();
+	_G["CharacterStatsPane"].statsFramePool:ReleaseAll();
 	-- we need a stat frame to first do the math to know if we need to show the stat frame
 	-- so effectively we'll always pre-allocate
-	local statFrame = CharacterStatsPane.statsFramePool:Acquire();
+	local statFrame = _G["CharacterStatsPane"].statsFramePool:Acquire();

 	local lastAnchor;

 	for catIndex = 1, #PAPERDOLL_STATCATEGORIES do
-		local catFrame = CharacterStatsPane[PAPERDOLL_STATCATEGORIES[catIndex].categoryFrame];
+		local catFrame = _G["CharacterStatsPane"][PAPERDOLL_STATCATEGORIES[catIndex].categoryFrame];
 		local numStatInCat = 0;
 		for statIndex = 1, #PAPERDOLL_STATCATEGORIES[catIndex].stats do
 			local stat = PAPERDOLL_STATCATEGORIES[catIndex].stats[statIndex];
 			local showStat = true;
 			if ( showStat and stat.primary ) then
-				local primaryStat = select(7, GetSpecializationInfo(spec, nil, nil, nil, UnitSex("player")));
+				local primaryStat = T.select(7, T.GetSpecializationInfo(spec, nil, nil, nil, UnitSex("player")));
 				if ( stat.primary ~= primaryStat ) and E.db.sle.Armory.Character.Stats.OnlyPrimary then
 					showStat = false;
 				end
 			end
 			if ( showStat and stat.roles ) then
 				local foundRole = false;
-				-- local foundRole = true;
-				for _, statRole in pairs(stat.roles) do
+				for _, statRole in T.pairs(stat.roles) do
 					if ( role == statRole ) then
 						foundRole = true;
 						break;
@@ -173,14 +192,14 @@ function CA:PaperDollFrame_UpdateStats()
 						lastAnchor = statFrame;
 					end
 					-- done with this stat frame, get the next one
-					statFrame = CharacterStatsPane.statsFramePool:Acquire();
+					statFrame = _G["CharacterStatsPane"].statsFramePool:Acquire();
 				end
 			end
 		end
 		catFrame:SetShown(numStatInCat > 0);
 	end
 	-- release the current stat frame
-	CharacterStatsPane.statsFramePool:Release(statFrame);
+	_G["CharacterStatsPane"].statsFramePool:Release(statFrame);
 	if totalShown > 16 then
 		CA.Scrollbar:Show()
 	else
@@ -241,10 +260,10 @@ CA.ScrollFrame:SetScript("OnMouseWheel", function(self, delta)
 	local min_val, max_val = CA.Scrollbar:GetMinMaxValues()

 	if delta < 0 and cur_val < max_val then
-		cur_val = math.min(max_val, cur_val + 22)
+		cur_val = math_min(max_val, cur_val + 22)
 		CA.Scrollbar:SetValue(cur_val)
 	elseif delta > 0 and cur_val > min_val then
-		cur_val = math.max(min_val, cur_val - 22)
+		cur_val = math_max(min_val, cur_val - 22)
 		CA.Scrollbar:SetValue(cur_val)
 	end
 end)
\ No newline at end of file
diff --git a/ElvUI_SLE/modules/Armory/Config.lua b/ElvUI_SLE/modules/Armory/Config.lua
index 956b5cd..bb2bec0 100644
--- a/ElvUI_SLE/modules/Armory/Config.lua
+++ b/ElvUI_SLE/modules/Armory/Config.lua
@@ -2,6 +2,15 @@

 local SLE, T, E, L, V, P, G = unpack(select(2, ...))
 local KF, Info, Timer = unpack(ElvUI_KnightFrame)
+--GLOBALS: SLE_ArmoryDB, AceGUIWidgetLSMlists, PaperDollFrame_UpdateStats
+local _G = _G
+-- local PaperDollFrame_UpdateStats = PaperDollFrame_UpdateStats
+local UnitPowerType = UnitPowerType
+
+local MAX_NUM_SOCKETS = MAX_NUM_SOCKETS
+local ALTERNATE_RESOURCE_TEXT, DAMAGE, ATTACK_POWER, ATTACK_SPEED, STAT_SPELLPOWER, STAT_ENERGY_REGEN, STAT_RUNE_REGEN, STAT_FOCUS_REGEN, STAT_SPEED, DURABILITY, HIDE = ALTERNATE_RESOURCE_TEXT, DAMAGE, ATTACK_POWER, ATTACK_SPEED, STAT_SPELLPOWER, STAT_ENERGY_REGEN, STAT_RUNE_REGEN, STAT_FOCUS_REGEN, STAT_SPEED, DURABILITY, HIDE
+local FACTION_ALLIANCE, FACTION_HORDE, ARENA, NONE, STAT_CATEGORY_ATTRIBUTES, STAT_CATEGORY_ATTRIBUTES = FACTION_ALLIANCE, FACTION_HORDE, ARENA, NONE, STAT_CATEGORY_ATTRIBUTES, STAT_CATEGORY_ATTRIBUTES
+local ADD, DELETE, HEALTH = ADD, DELETE, HEALTH

 if not (KF and KF.Modules and (KF.Modules.CharacterArmory or KF.Modules.InspectArmory)) then return end

@@ -22,7 +31,7 @@ local function LoadArmoryConfigTable()
 			EnchantString = {
 				type = 'group',
 				name = L["Enchant String"],
-				order = 300,
+				order = 700,
 				args = {
 					Space = {
 						type = 'description',
@@ -74,7 +83,7 @@ local function LoadArmoryConfigTable()
 								values = function()
 									local List = {}
 									List[""] = NONE
-									for Name, _ in pairs(SLE_ArmoryDB.EnchantString) do
+									for Name, _ in T.pairs(SLE_ArmoryDB.EnchantString) do
 										List[Name] = Name
 									end
 									if not SelectedEnchantString then
@@ -109,12 +118,12 @@ local function LoadArmoryConfigTable()
 										set = function(_, value)
 											SLE_ArmoryDB.EnchantString[SelectedEnchantString]["original"] = value

-											if CharacterArmory then
-												CharacterArmory:Update_Gear()
+											if _G["CharacterArmory"] then
+												_G["CharacterArmory"]:Update_Gear()
 											end

-											if InspectArmory and InspectArmory.LastDataSetting then
-												InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData)
+											if _G["InspectArmory"] and _G["InspectArmory"].LastDataSetting then
+												_G["InspectArmory"]:InspectFrame_DataSetting(_G["InspectArmory"].CurrentInspectData)
 											end
 										end,
 										disabled = function() return E.db.sle.Armory.Character.Enable == false and E.db.sle.Armory.Inspect.Enable == false end
@@ -129,12 +138,12 @@ local function LoadArmoryConfigTable()
 										set = function(_, value)
 											SLE_ArmoryDB.EnchantString[SelectedEnchantString]["new"] = value

-											if CharacterArmory then
-												CharacterArmory:Update_Gear()
+											if _G["CharacterArmory"] then
+												_G["CharacterArmory"]:Update_Gear()
 											end

-											if InspectArmory and InspectArmory.LastDataSetting then
-												InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData)
+											if _G["InspectArmory"] and _G["InspectArmory"].LastDataSetting then
+												_G["InspectArmory"]:InspectFrame_DataSetting(_G["InspectArmory"].CurrentInspectData)
 											end
 										end,
 										disabled = function() return E.db.sle.Armory.Character.Enable == false and E.db.sle.Armory.Inspect.Enable == false end
@@ -149,12 +158,12 @@ local function LoadArmoryConfigTable()
 												SLE_ArmoryDB.EnchantString[SelectedEnchantString] = nil
 												SelectedEnchantString = ''

-												if CharacterArmory then
-													CharacterArmory:Update_Gear()
+												if _G["CharacterArmory"] then
+													_G["CharacterArmory"]:Update_Gear()
 												end

-												if InspectArmory and InspectArmory.LastDataSetting then
-													InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData)
+												if _G["InspectArmory"] and _G["InspectArmory"].LastDataSetting then
+													_G["InspectArmory"]:InspectFrame_DataSetting(_G["InspectArmory"].CurrentInspectData)
 												end
 											end
 										end,
@@ -236,11 +245,7 @@ local function LoadArmoryConfigTable()
 			order = 1,
 			desc = '',
 			get = function() return E.db.sle.Armory.Character.Enable end,
-			set = function(_, value)
-				E.db.sle.Armory.Character.Enable = value
-
-				KF.Modules.CharacterArmory()
-			end
+			set = function(_, value) E.db.sle.Armory.Character.Enable = value; KF.Modules.CharacterArmory() end
 		}

 		local SelectedCABG
@@ -253,28 +258,16 @@ local function LoadArmoryConfigTable()
 					type = 'toggle',
 					name = L["Show Missing Enchants or Gems"],
 					order = 1,
-					desc = '',
 					get = function() return E.db.sle.Armory.Character.NoticeMissing end,
-					set = function(_, value)
-						E.db.sle.Armory.Character.NoticeMissing = value
-
-						CharacterArmory:Update_Gear()
-						CharacterArmory:Update_Display(true)
-					end,
+					set = function(_, value) E.db.sle.Armory.Character.NoticeMissing = value; _G["CharacterArmory"]:UpdateSettings("gear") end,
 					disabled = function() return not E.db.sle.Armory.Character.Enable end,
 				},
 				MissingIcon = {
 					type = 'toggle',
 					name = L["Show Warning Icon"],
 					order = 2,
-					desc = '',
 					get = function() return E.db.sle.Armory.Character.MissingIcon end,
-					set = function(_, value)
-						E.db.sle.Armory.Character.MissingIcon = value
-
-						CharacterArmory:Update_Gear()
-						CharacterArmory:Update_Display(true)
-					end,
+					set = function(_, value) E.db.sle.Armory.Character.MissingIcon = value; _G["CharacterArmory"]:UpdateSettings("gear") end,
 					disabled = function() return not E.db.sle.Armory.Character.Enable or not E.db.sle.Armory.Character.NoticeMissing end,
 				},
 				Stats = {
@@ -324,16 +317,46 @@ local function LoadArmoryConfigTable()
 							name = L["Only Relevant Stats"],
 							desc = L["Show only those primary stats relevant to your spec."],
 						},
+						IlvlFont = {
+							type = 'group',
+							name = L["Font"],
+							order = 5,
+							guiInline = true,
+							get = function(info) return E.private.sle.Armory.ItemLevel[ info[#info] ] end,
+							set = function(info, value) E.private.sle.Armory.ItemLevel[ info[#info] ] = value; _G["CharacterArmory"]:UpdateIlvlFont() end,
+							args = {
+								font = {
+									type = 'select', dialogControl = 'LSM30_Font',
+									name = L["Font"],
+									order = 1,
+									values = function()
+										return AceGUIWidgetLSMlists and AceGUIWidgetLSMlists.font or {}
+									end,
+								},
+								size = {
+									type = 'range',
+									name = L["Font Size"],
+									order = 2,
+									min = 6,max = 22,step = 1,
+								},
+								outline = {
+									type = 'select',
+									name = L["Font Outline"],
+									order = 3,
+									values = FontStyleList,
+								}
+							},
+						},
 						Stats = {
 							type = 'group',
 							name = STAT_CATEGORY_ATTRIBUTES,
 							order = 6,
 							guiInline = true,
 							get = function(info) return E.db.sle.Armory.Character.Stats.List[ info[#info] ] end,
-							set = function(info, value) E.db.sle.Armory.Character.Stats.List[ info[#info] ] = value; CharacterArmory:ToggleStats() end,
+							set = function(info, value) E.db.sle.Armory.Character.Stats.List[ info[#info] ] = value; _G["CharacterArmory"]:ToggleStats() end,
 							args = {
 								HEALTH = { order = 1,type = "toggle",name = HEALTH,},
-								POWER = { order = 2,type = "toggle",name = _G[select(2, UnitPowerType("player"))],},
+								POWER = { order = 2,type = "toggle",name = _G[T.select(2, UnitPowerType("player"))],},
 								ALTERNATEMANA = { order = 3,type = "toggle",name = ALTERNATE_RESOURCE_TEXT,},
 								ATTACK_DAMAGE = { order = 4,type = "toggle",name = DAMAGE,},
 								ATTACK_AP = { order = 5,type = "toggle",name = ATTACK_POWER,},
@@ -358,19 +381,14 @@ local function LoadArmoryConfigTable()
 							name = L["Select Image"],
 							order = 1,
 							get = function()
-								for Index, Key in pairs(BackdropKeyTable) do
+								for Index, Key in T.pairs(BackdropKeyTable) do
 									if Key == E.db.sle.Armory.Character.Backdrop.SelectedBG then
 										return Index
 									end
 								end
-
 								return '1'
 							end,
-							set = function(_, value)
-								E.db.sle.Armory.Character.Backdrop.SelectedBG = BackdropKeyTable[value]
-
-								CharacterArmory:Update_BG()
-							end,
+							set = function(_, value) E.db.sle.Armory.Character.Backdrop.SelectedBG = BackdropKeyTable[value]; _G["CharacterArmory"]:UpdateSettings("bg") end,
 							values = function() return BackgroundList end,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
@@ -378,13 +396,8 @@ local function LoadArmoryConfigTable()
 							type = 'input',
 							name = L["Custom Image Path"],
 							order = 2,
-							desc = '',
 							get = function() return E.db.sle.Armory.Character.Backdrop.CustomAddress end,
-							set = function(_, value)
-								E.db.sle.Armory.Character.Backdrop.CustomAddress = value
-
-								CharacterArmory:Update_BG()
-							end,
+							set = function(_, value) E.db.sle.Armory.Character.Backdrop.CustomAddress = value; _G["CharacterArmory"]:UpdateSettings("bg") end,
 							width = 'double',
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end,
 							hidden = function() return E.db.sle.Armory.Character.Backdrop.SelectedBG ~= 'CUSTOM' end
@@ -407,11 +420,7 @@ local function LoadArmoryConfigTable()
 							name = L["Enable"],
 							order = 1,
 							get = function() return E.db.sle.Armory.Character.Gradation.Display end,
-							set = function(_, value)
-								E.db.sle.Armory.Character.Gradation.Display = value
-
-								CharacterArmory:Update_Gear()
-							end,
+							set = function(_, value) E.db.sle.Armory.Character.Gradation.Display = value; _G["CharacterArmory"]:Update_Gear() end,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
 						Color = {
@@ -424,11 +433,7 @@ local function LoadArmoryConfigTable()
 									   E.db.sle.Armory.Character.Gradation.Color[3],
 									   E.db.sle.Armory.Character.Gradation.Color[4]
 							end,
-							set = function(Info, r, g, b, a)
-								E.db.sle.Armory.Character.Gradation.Color = { r, g, b, a }
-
-								CharacterArmory:Update_Gear()
-							end,
+							set = function(Info, r, g, b, a) E.db.sle.Armory.Character.Gradation.Color = { r, g, b, a }; _G["CharacterArmory"]:Update_Gear() end,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false or E.db.sle.Armory.Character.Gradation.Display == false end
 						},
 					}
@@ -444,32 +449,13 @@ local function LoadArmoryConfigTable()
 					order = 7,
 					guiInline = true,
 					get = function(info) return E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] end,
-					set = function(info, value)
-						E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] = value
-
-						for _, SlotName in pairs(Info.Armory_Constants.GearList) do
-							if CharacterArmory[SlotName] and CharacterArmory[SlotName].ItemLevel then
-								CharacterArmory[SlotName].ItemLevel:FontTemplate(
-									E.LSM:Fetch('font', E.db.sle.Armory.Character.Level.Font)
-									,
-									E.db.sle.Armory.Character.Level.FontSize
-									,
-									E.db.sle.Armory.Character.Level.FontStyle
-								)
-							end
-						end
-					end,
+					set = function(info, value) E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] = value; _G["CharacterArmory"]:UpdateSettings("ilvl") end,
 					args = {
 						Display = {
 							type = 'select',
 							name = L["Visibility"],
 							order = 1,
-							set = function(info, value)
-								E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] = value
-
-								CharacterArmory:Update_Gear()
-								CharacterArmory:Update_Display(true)
-							end,
+							set = function(info, value) E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] = value;  _G["CharacterArmory"]:UpdateSettings("gear") end,
 							values = DisplayMethodList,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
@@ -477,42 +463,32 @@ local function LoadArmoryConfigTable()
 							type = 'toggle',
 							name = L["Upgrade Level"],
 							order = 2,
-							set = function(_, value)
-								E.db.sle.Armory.Character.Level.ShowUpgradeLevel = value
-
-								CharacterArmory:Update_Gear()
-							end,
+							set = function(_, value) E.db.sle.Armory.Character.Level.ShowUpgradeLevel = value; _G["CharacterArmory"]:Update_Gear() end,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
 						Space = {
 							type = 'description',
-							name = ' ',
+							name = '',
 							order = 3
 						},
 						Font = {
 							type = 'select', dialogControl = 'LSM30_Font',
 							name = L["Font"],
 							order = 4,
-							values = function()
-								return AceGUIWidgetLSMlists and AceGUIWidgetLSMlists.font or {}
-							end,
+							values = function() return AceGUIWidgetLSMlists and AceGUIWidgetLSMlists.font or {} end,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
 						FontSize = {
 							type = 'range',
 							name = L["Font Size"],
 							order = 5,
-							desc = '',
-							min = 6,
-							max = 22,
-							step = 1,
+							min = 6, max = 22, step = 1,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
 						FontStyle = {
 							type = 'select',
 							name = L["Font Outline"],
 							order = 6,
-							desc = '',
 							values = FontStyleList,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						}
@@ -520,7 +496,7 @@ local function LoadArmoryConfigTable()
 				},
 				Space4 = {
 					type = 'description',
-					name = ' ',
+					name = '',
 					order = 8
 				},
 				Enchant = {
@@ -529,32 +505,12 @@ local function LoadArmoryConfigTable()
 					order = 9,
 					guiInline = true,
 					get = function(info) return E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] end,
-					set = function(info, value)
-						E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] = value
-
-						for _, SlotName in pairs(Info.Armory_Constants.GearList) do
-							if CharacterArmory[SlotName] and CharacterArmory[SlotName].ItemEnchant then
-								CharacterArmory[SlotName].ItemEnchant:FontTemplate(
-									E.LSM:Fetch('font', E.db.sle.Armory.Character.Enchant.Font)
-									,
-									E.db.sle.Armory.Character.Enchant.FontSize
-									,
-									E.db.sle.Armory.Character.Enchant.FontStyle
-								)
-							end
-						end
-					end,
+					set = function(info, value) E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] = value;  _G["CharacterArmory"]:UpdateSettings("ench") end,
 					args = {
 						Display = {
 							type = 'select',
 							name = L["Visibility"],
 							order = 1,
-							set = function(info, value)
-								E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] = value
-
-								CharacterArmory:Update_Gear()
-								CharacterArmory:Update_Display(true)
-							end,
 							values = DisplayMethodList,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
@@ -562,60 +518,39 @@ local function LoadArmoryConfigTable()
 							type = 'range',
 							name = L["Warning Size"],
 							order = 2,
-							set = function(_, value)
-								E.db.sle.Armory.Character.Enchant.WarningSize = value
-
-								for _, SlotName in pairs(Info.Armory_Constants.GearList) do
-									if CharacterArmory[SlotName] and CharacterArmory[SlotName].EnchantWarning then
-										CharacterArmory[SlotName].EnchantWarning:Size(value)
-									end
-								end
-							end,
-							min = 6,
-							max = 50,
-							step = 1,
+							min = 6, max = 50, step = 1,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
 						WarningIconOnly = {
 							type = 'toggle',
 							name = L["Warning Only As Icons"],
 							order = 3,
-							set = function(_, value)
-								E.db.sle.Armory.Character.Enchant.WarningIconOnly = value
-
-								CharacterArmory:Update_Gear()
-							end,
+							set = function(_, value) E.db.sle.Armory.Character.Enchant.WarningIconOnly = value; _G["CharacterArmory"]:Update_Gear() end,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end,
 						},
 						Space = {
 							type = 'description',
-							name = ' ',
+							name = '',
 							order = 4
 						},
 						Font = {
 							type = 'select', dialogControl = 'LSM30_Font',
 							name = L["Font"],
 							order = 5,
-							values = function()
-								return AceGUIWidgetLSMlists and AceGUIWidgetLSMlists.font or {}
-							end,
+							values = function() return AceGUIWidgetLSMlists and AceGUIWidgetLSMlists.font or {} end,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
 						FontSize = {
 							type = 'range',
 							name = L["Font Size"],
 							order = 6,
-							desc = '',
-							min = 6,
-							max = 22,
-							step = 1,
+							min = 6, max = 22, step = 1,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
 						FontStyle = {
 							type = 'select',
 							name = L["Font Outline"],
 							order = 7,
-							desc = '',
 							values = FontStyleList,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						}
@@ -623,7 +558,7 @@ local function LoadArmoryConfigTable()
 				},
 				Space5 = {
 					type = 'description',
-					name = ' ',
+					name = '',
 					order = 10
 				},
 				Durability = {
@@ -632,32 +567,13 @@ local function LoadArmoryConfigTable()
 					order = 11,
 					guiInline = true,
 					get = function(info) return E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] end,
-					set = function(info, value)
-						E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] = value
-
-						for _, SlotName in pairs(Info.Armory_Constants.GearList) do
-							if CharacterArmory[SlotName] and CharacterArmory[SlotName].Durability then
-								CharacterArmory[SlotName].Durability:FontTemplate(
-									E.LSM:Fetch('font', E.db.sle.Armory.Character.Durability.Font)
-									,
-									E.db.sle.Armory.Character.Durability.FontSize
-									,
-									E.db.sle.Armory.Character.Durability.FontStyle
-								)
-							end
-						end
-					end,
+					set = function(info, value) E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] = value; _G["CharacterArmory"]:UpdateSettings("dur") end,
 					args = {
 						Display = {
 							type = 'select',
 							name = L["Visibility"],
 							order = 1,
-							set = function(info, value)
-								E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] = value
-
-								CharacterArmory:Update_Durability()
-								CharacterArmory:Update_Display(true)
-							end,
+							set = function(info, value) E.db.sle.Armory.Character[(info[#info - 1])][(info[#info])] = value; _G["CharacterArmory"]:UpdateSettings("gear") end,
 							values = {
 								Always = L["Always Display"],
 								DamagedOnly = L["Only Damaged"],
@@ -668,33 +584,27 @@ local function LoadArmoryConfigTable()
 						},
 						Space = {
 							type = 'description',
-							name = ' ',
+							name = '',
 							order = 2
 						},
 						Font = {
 							type = 'select', dialogControl = 'LSM30_Font',
 							name = L["Font"],
 							order = 3,
-							values = function()
-								return AceGUIWidgetLSMlists and AceGUIWidgetLSMlists.font or {}
-							end,
+							values = function() return AceGUIWidgetLSMlists and AceGUIWidgetLSMlists.font or {} end,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
 						FontSize = {
 							type = 'range',
 							name = L["Font Size"],
 							order = 4,
-							desc = '',
-							min = 6,
-							max = 22,
-							step = 1,
+							min = 6, max = 22, step = 1,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
 						FontStyle = {
 							type = 'select',
 							name = L["Font Outline"],
 							order = 5,
-							desc = '',
 							values = FontStyleList,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						}
@@ -702,7 +612,7 @@ local function LoadArmoryConfigTable()
 				},
 				Space6 = {
 					type = 'description',
-					name = ' ',
+					name = '',
 					order = 12
 				},
 				Gem = {
@@ -716,12 +626,7 @@ local function LoadArmoryConfigTable()
 							type = 'select',
 							name = L["Visibility"],
 							order = 1,
-							set = function(Info, value)
-								E.db.sle.Armory.Character[(Info[#Info - 1])][(Info[#Info])] = value
-
-								CharacterArmory:Update_Gear()
-								CharacterArmory:Update_Display(true)
-							end,
+							set = function(Info, value) E.db.sle.Armory.Character[(Info[#Info - 1])][(Info[#Info])] = value; _G["CharacterArmory"]:UpdateSettings("gem") end,
 							values = DisplayMethodList,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
@@ -729,40 +634,15 @@ local function LoadArmoryConfigTable()
 							type = 'range',
 							name = L["Socket Size"],
 							order = 2,
-							set = function(_, value)
-								E.db.sle.Armory.Character.Gem.SocketSize = value
-
-								for _, SlotName in pairs(Info.Armory_Constants.GearList) do
-									for i = 1, MAX_NUM_SOCKETS do
-										if CharacterArmory[SlotName] and CharacterArmory[SlotName]["Socket"..i] then
-											CharacterArmory[SlotName]["Socket"..i]:Size(value)
-										else
-											break
-										end
-									end
-								end
-							end,
-							min = 6,
-							max = 50,
-							step = 1,
+							set = function(_, value) E.db.sle.Armory.Character.Gem.SocketSize = value; _G["CharacterArmory"]:UpdateSettings("gem") end,
+							min = 6, max = 50, step = 1,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
 						WarningSize = {
 							type = 'range',
 							name = L["Warning Size"],
 							order = 3,
-							set = function(_, value)
-								E.db.sle.Armory.Character.Gem.WarningSize = value
-
-								for _, SlotName in pairs(Info.Armory_Constants.GearList) do
-									if CharacterArmory[SlotName] and CharacterArmory[SlotName].SocketWarning then
-										CharacterArmory[SlotName].SocketWarning:Size(value)
-									end
-								end
-							end,
-							min = 6,
-							max = 50,
-							step = 1,
+							min = 6,max = 50,step = 1,
 							disabled = function() return E.db.sle.Armory.Character.Enable == false end
 						},
 					}
@@ -791,13 +671,8 @@ local function LoadArmoryConfigTable()
 			type = 'toggle',
 			name = L["Inspect Armory"],
 			order = 2,
-			desc = '',
 			get = function() return E.db.sle.Armory.Inspect.Enable end,
-			set = function(_, value)
-				E.db.sle.Armory.Inspect.Enable = value
-
-				KF.Modules.InspectArmory()
-			end
+			set = function(_, value) E.db.sle.Armory.Inspect.Enable = value; KF.Modules.InspectArmory() end
 		}

 		E.Options.args.sle.args.modules.args.Armory.args.Inspect = {
@@ -809,15 +684,14 @@ local function LoadArmoryConfigTable()
 					type = 'toggle',
 					name = L["Show Missing Enchants or Gems"],
 					order = 1,
-					desc = '',
 					get = function() return E.db.sle.Armory.Inspect.NoticeMissing end,
 					set = function(_, value)
 						E.db.sle.Armory.Inspect.NoticeMissing = value

-						if InspectArmory.LastDataSetting then
-							InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData)
+						if _G["InspectArmory"].LastDataSetting then
+							_G["InspectArmory"]:InspectFrame_DataSetting(_G["InspectArmory"].CurrentInspectData)
 						end
-						InspectArmory:Update_Display(true)
+						_G["InspectArmory"]:Update_Display(true)
 					end,
 					disabled = function() return not E.db.sle.Armory.Inspect.Enable end,
 				},
@@ -825,15 +699,14 @@ local function LoadArmoryConfigTable()
 					type = 'toggle',
 					name = L["Show Warning Icon"],
 					order = 2,
-					desc = '',
 					get = function() return E.db.sle.Armory.Inspect.MissingIcon end,
 					set = function(_, value)
 						E.db.sle.Armory.Inspect.MissingIcon = value

-						if InspectArmory.LastDataSetting then
-							InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData)
+						if _G["InspectArmory"].LastDataSetting then
+							_G["InspectArmory"]:InspectFrame_DataSetting(_G["InspectArmory"].CurrentInspectData)
 						end
-						InspectArmory:Update_Display(true)
+						_G["InspectArmory"]:Update_Display(true)
 					end,
 					disabled = function() return not E.db.sle.Armory.Inspect.Enable or not E.db.sle.Armory.Inspect.NoticeMissing end,
 				},
@@ -848,18 +721,17 @@ local function LoadArmoryConfigTable()
 							name = L["Select Image"],
 							order = 1,
 							get = function()
-								for Index, Key in pairs(BackdropKeyTable) do
+								for Index, Key in T.pairs(BackdropKeyTable) do
 									if Key == E.db.sle.Armory.Inspect.Backdrop.SelectedBG then
 										return Index
 									end
 								end
-
 								return '1'
 							end,
 							set = function(_, value)
 								E.db.sle.Armory.Inspect.Backdrop.SelectedBG = BackdropKeyTable[value]

-								InspectArmory:Update_BG()
+								_G["InspectArmory"]:Update_BG()
 							end,
 							values = function() return BackgroundList end,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
@@ -868,12 +740,11 @@ local function LoadArmoryConfigTable()
 							type = 'input',
 							name = L["Custom Image Path"],
 							order = 2,
-							desc = '',
 							get = function() return E.db.sle.Armory.Inspect.Backdrop.CustomAddress end,
 							set = function(_, value)
 								E.db.sle.Armory.Inspect.Backdrop.CustomAddress = value

-								InspectArmory:Update_BG()
+								_G["InspectArmory"]:Update_BG()
 							end,
 							width = 'double',
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end,
@@ -883,7 +754,7 @@ local function LoadArmoryConfigTable()
 				},
 				Space2 = {
 					type = 'description',
-					name = ' ',
+					name = '',
 					order = 4
 				},
 				Gradation = {
@@ -900,8 +771,8 @@ local function LoadArmoryConfigTable()
 							set = function(_, value)
 								E.db.sle.Armory.Inspect.Gradation.Display = value

-								if InspectArmory and InspectArmory.LastDataSetting then
-									InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData)
+								if _G["InspectArmory"] and _G["InspectArmory"].LastDataSetting then
+									_G["InspectArmory"]:InspectFrame_DataSetting(_G["InspectArmory"].CurrentInspectData)
 								end
 							end,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
@@ -919,8 +790,8 @@ local function LoadArmoryConfigTable()
 							set = function(Info, r, g, b, a)
 								E.db.sle.Armory.Inspect.Gradation.Color = { r, g, b, a }

-								if InspectArmory.LastDataSetting then
-									InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData)
+								if _G["InspectArmory"].LastDataSetting then
+									_G["InspectArmory"]:InspectFrame_DataSetting(_G["InspectArmory"].CurrentInspectData)
 								end
 							end,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false or E.db.sle.Armory.Inspect.Gradation.Display == false end
@@ -929,7 +800,7 @@ local function LoadArmoryConfigTable()
 				},
 				Space3 = {
 					type = 'description',
-					name = ' ',
+					name = '',
 					order = 6
 				},
 				Level = {
@@ -938,21 +809,7 @@ local function LoadArmoryConfigTable()
 					order = 7,
 					guiInline = true,
 					get = function(info) return E.db.sle.Armory.Inspect[(info[#info - 1])][(info[#info])] end,
-					set = function(info, value)
-						E.db.sle.Armory.Inspect[(info[#info - 1])][(info[#info])] = value
-
-						for _, SlotName in pairs(Info.Armory_Constants.GearList) do
-							if InspectArmory[SlotName] and InspectArmory[SlotName].Gradation and InspectArmory[SlotName].Gradation.ItemLevel then
-								InspectArmory[SlotName].Gradation.ItemLevel:FontTemplate(
-									E.LSM:Fetch('font', E.db.sle.Armory.Inspect.Level.Font)
-									,
-									E.db.sle.Armory.Inspect.Level.FontSize
-									,
-									E.db.sle.Armory.Inspect.Level.FontStyle
-								)
-							end
-						end
-					end,
+					set = function(info, value) E.db.sle.Armory.Inspect[(info[#info - 1])][(info[#info])] = value; _G["InspectArmory"]:UpdateSettings("ilvl") end,
 					args = {
 						Display = {
 							type = 'select',
@@ -961,10 +818,10 @@ local function LoadArmoryConfigTable()
 							set = function(info, value)
 								E.db.sle.Armory.Inspect[(info[#info - 1])][(info[#info])] = value

-								if InspectArmory.LastDataSetting then
-									InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData)
+								if _G["InspectArmory"].LastDataSetting then
+									_G["InspectArmory"]:InspectFrame_DataSetting(_G["InspectArmory"].CurrentInspectData)
 								end
-								InspectArmory:Update_Display(true)
+								_G["InspectArmory"]:Update_Display(true)
 							end,
 							values = DisplayMethodList,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
@@ -976,15 +833,15 @@ local function LoadArmoryConfigTable()
 							set = function(_, value)
 								E.db.sle.Armory.Inspect.Level.ShowUpgradeLevel = value

-								if InspectArmory.LastDataSetting then
-									InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData)
+								if _G["InspectArmory"].LastDataSetting then
+									_G["InspectArmory"]:InspectFrame_DataSetting(_G["InspectArmory"].CurrentInspectData)
 								end
 							end,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
 						},
 						Space = {
 							type = 'description',
-							name = ' ',
+							name = '',
 							order = 3
 						},
 						Font = {
@@ -1000,17 +857,13 @@ local function LoadArmoryConfigTable()
 							type = 'range',
 							name = L["Font Size"],
 							order = 5,
-							desc = '',
-							min = 6,
-							max = 22,
-							step = 1,
+							min = 6,max = 22,step = 1,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
 						},
 						FontStyle = {
 							type = 'select',
 							name = L["Font Outline"],
 							order = 6,
-							desc = '',
 							values = FontStyleList,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
 						}
@@ -1018,7 +871,7 @@ local function LoadArmoryConfigTable()
 				},
 				Space4 = {
 					type = 'description',
-					name = ' ',
+					name = '',
 					order = 8
 				},
 				Enchant = {
@@ -1027,21 +880,7 @@ local function LoadArmoryConfigTable()
 					order = 9,
 					guiInline = true,
 					get = function(info) return E.db.sle.Armory.Inspect[(info[#info - 1])][(info[#info])] end,
-					set = function(info, value)
-						E.db.sle.Armory.Inspect[(info[#info - 1])][(info[#info])] = value
-
-						for _, SlotName in pairs(Info.Armory_Constants.GearList) do
-							if InspectArmory[SlotName] and InspectArmory[SlotName].Gradation and InspectArmory[SlotName].Gradation.ItemEnchant then
-								InspectArmory[SlotName].Gradation.ItemEnchant:FontTemplate(
-									E.LSM:Fetch('font', E.db.sle.Armory.Inspect.Enchant.Font)
-									,
-									E.db.sle.Armory.Inspect.Enchant.FontSize
-									,
-									E.db.sle.Armory.Inspect.Enchant.FontStyle
-								)
-							end
-						end
-					end,
+					set = function(info, value) E.db.sle.Armory.Inspect[(info[#info - 1])][(info[#info])] = value; _G["InspectArmory"]:UpdateSettings("ench") end,
 					args = {
 						Display = {
 							type = 'select',
@@ -1050,10 +889,10 @@ local function LoadArmoryConfigTable()
 							set = function(info, value)
 								E.db.sle.Armory.Inspect[(info[#info - 1])][(info[#info])] = value

-								if InspectArmory.LastDataSetting then
-									InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData)
+								if _G["InspectArmory"].LastDataSetting then
+									_G["InspectArmory"]:InspectFrame_DataSetting(_G["InspectArmory"].CurrentInspectData)
 								end
-								InspectArmory:Update_Display(true)
+								_G["InspectArmory"]:Update_Display(true)
 							end,
 							values = DisplayMethodList,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
@@ -1062,18 +901,7 @@ local function LoadArmoryConfigTable()
 							type = 'range',
 							name = L["Warning Size"],
 							order = 2,
-							set = function(_, value)
-								E.db.sle.Armory.Inspect.Enchant.WarningSize = value
-
-								for _, SlotName in pairs(Info.Armory_Constants.GearList) do
-									if InspectArmory[SlotName] and InspectArmory[SlotName].EnchantWarning then
-										InspectArmory[SlotName].EnchantWarning:Size(value)
-									end
-								end
-							end,
-							min = 6,
-							max = 50,
-							step = 1,
+							min = 6, max = 50, step = 1,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
 						},
 						WarningIconOnly = {
@@ -1082,16 +910,15 @@ local function LoadArmoryConfigTable()
 							order = 3,
 							set = function(_, value)
 								E.db.sle.Armory.Inspect.Enchant.WarningIconOnly = value
-
-								if InspectArmory.LastDataSetting then
-									InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData)
+								if _G["InspectArmory"].LastDataSetting then
+									_G["InspectArmory"]:InspectFrame_DataSetting(_G["InspectArmory"].CurrentInspectData)
 								end
 							end,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end,
 						},
 						Space = {
 							type = 'description',
-							name = ' ',
+							name = '',
 							order = 4
 						},
 						Font = {
@@ -1107,17 +934,13 @@ local function LoadArmoryConfigTable()
 							type = 'range',
 							name = L["Font Size"],
 							order = 6,
-							desc = '',
-							min = 6,
-							max = 22,
-							step = 1,
+							min = 6, max = 22, step = 1,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
 						},
 						FontStyle = {
 							type = 'select',
 							name = L["Font Outline"],
 							order = 7,
-							desc = '',
 							values = FontStyleList,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
 						}
@@ -1125,7 +948,7 @@ local function LoadArmoryConfigTable()
 				},
 				Space5 = {
 					type = 'description',
-					name = ' ',
+					name = '',
 					order = 10
 				},
 				Gem = {
@@ -1141,11 +964,10 @@ local function LoadArmoryConfigTable()
 							order = 1,
 							set = function(Info, value)
 								E.db.sle.Armory.Inspect[(Info[#Info - 1])][(Info[#Info])] = value
-
-								if InspectArmory.LastDataSetting then
-									InspectArmory:InspectFrame_DataSetting(InspectArmory.CurrentInspectData)
+								if _G["InspectArmory"].LastDataSetting then
+									_G["InspectArmory"]:InspectFrame_DataSetting(_G["InspectArmory"].CurrentInspectData)
 								end
-								InspectArmory:Update_Display(true)
+								_G["InspectArmory"]:Update_Display(true)
 							end,
 							values = DisplayMethodList,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
@@ -1154,47 +976,21 @@ local function LoadArmoryConfigTable()
 							type = 'range',
 							name = L["Socket Size"],
 							order = 2,
-							set = function(_, value)
-								E.db.sle.Armory.Inspect.Gem.SocketSize = value
-
-								for _, SlotName in pairs(Info.Armory_Constants.GearList) do
-									for i = 1, MAX_NUM_SOCKETS do
-										if InspectArmory[SlotName] and InspectArmory[SlotName]["Socket"..i] then
-											InspectArmory[SlotName]["Socket"..i]:Size(value)
-										else
-											break
-										end
-									end
-								end
-							end,
-							min = 6,
-							max = 50,
-							step = 1,
+							min = 6,max = 50,step = 1,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
 						},
 						WarningSize = {
 							type = 'range',
 							name = L["Warning Size"],
 							order = 3,
-							set = function(_, value)
-								E.db.sle.Armory.Inspect.Gem.WarningSize = value
-
-								for _, SlotName in pairs(Info.Armory_Constants.GearList) do
-									if InspectArmory[SlotName] and InspectArmory[SlotName].SocketWarning then
-										InspectArmory[SlotName].SocketWarning:Size(value)
-									end
-								end
-							end,
-							min = 6,
-							max = 50,
-							step = 1,
+							min = 6,max = 50,step = 1,
 							disabled = function() return E.db.sle.Armory.Inspect.Enable == false end
 						},
 					}
 				},
 				CreditSpace = {
 					type = 'description',
-					name = ' ',
+					name = '',
 					order = 998
 				},
 				Credit = {
diff --git a/ElvUI_SLE/modules/Armory/InspectArmory/InspectArmory.lua b/ElvUI_SLE/modules/Armory/InspectArmory/InspectArmory.lua
index c9edbb8..d86b185 100644
--- a/ElvUI_SLE/modules/Armory/InspectArmory/InspectArmory.lua
+++ b/ElvUI_SLE/modules/Armory/InspectArmory/InspectArmory.lua
@@ -2445,6 +2445,43 @@ function IA:Update_Display(Force)
 	end
 end

+function IA:UpdateSettings(part)
+	local db = E.db.sle.Armory.Inspect
+	if part == "ilvl" or part == "all" then
+		for _, SlotName in T.pairs(Info.Armory_Constants.GearList) do
+			if _G["InspectArmory"][SlotName] and _G["InspectArmory"][SlotName].Gradation and _G["InspectArmory"][SlotName].Gradation.ItemLevel then
+				_G["InspectArmory"][SlotName].Gradation.ItemLevel:FontTemplate(E.LSM:Fetch('font', db.Level.Font),db.Level.FontSize,db.Level.FontStyle)
+			end
+		end
+	end
+	if part == "ench" or part == "all" then
+		for _, SlotName in T.pairs(Info.Armory_Constants.GearList) do
+			if _G["InspectArmory"][SlotName] and _G["InspectArmory"][SlotName].Gradation and _G["InspectArmory"][SlotName].Gradation.ItemEnchant then
+				_G["InspectArmory"][SlotName].Gradation.ItemEnchant:FontTemplate(E.LSM:Fetch('font', db.Enchant.Font),db.Enchant.FontSize,db.Enchant.FontStyle)
+			end
+			if _G["InspectArmory"][SlotName] and _G["InspectArmory"][SlotName].EnchantWarning then
+				_G["InspectArmory"][SlotName].EnchantWarning:Size(db.Enchant.WarningSize)
+			end
+		end
+	end
+	if part == "gem" or part == "all" then
+		for _, SlotName in T.pairs(Info.Armory_Constants.GearList) do
+			for i = 1, MAX_NUM_SOCKETS do
+				if _G["InspectArmory"][SlotName] and _G["InspectArmory"][SlotName]["Socket"..i] then
+					_G["InspectArmory"][SlotName]["Socket"..i]:Size(db.Gem.SocketSize)
+				else
+					break
+				end
+			end
+			for _, SlotName in T.pairs(Info.Armory_Constants.GearList) do
+				if _G["InspectArmory"][SlotName] and _G["InspectArmory"][SlotName].SocketWarning then
+					_G["InspectArmory"][SlotName].SocketWarning:Size(db.Gem.WarningSize)
+				end
+			end
+		end
+	end
+end
+

 KF.Modules[#KF.Modules + 1] = 'InspectArmory'
 KF.Modules.InspectArmory = function()
diff --git a/ElvUI_SLE/modules/Armory/KnightFrame.lua b/ElvUI_SLE/modules/Armory/KnightFrame.lua
index 18825cb..3e3edac 100644
--- a/ElvUI_SLE/modules/Armory/KnightFrame.lua
+++ b/ElvUI_SLE/modules/Armory/KnightFrame.lua
@@ -1,4 +1,4 @@
-local E, L, V, P, G = unpack(ElvUI)
+local SLE, T, E, L, V, P, G = unpack(select(2, ...))
 --GLOBALS: SLE_ArmoryDB
 local _
 local _G = _G
@@ -11,7 +11,7 @@ if not (select(2, GetAddOnInfo('ElvUI_KnightFrame')) and IsAddOnLoaded('ElvUI_Kn
 		Name = 'KnightFrame',
 		MyRealm = gsub(E.myrealm,'[%s%-]','')
 	}
-	local KF = E:NewModule(Info.Name, 'AceEvent-3.0', 'AceConsole-3.0', 'AceHook-3.0')
+	local KF = SLE:NewModule(Info.Name, 'AceEvent-3.0', 'AceConsole-3.0', 'AceHook-3.0')
 	KF.Modules = {}


@@ -297,6 +297,12 @@ if not (select(2, GetAddOnInfo('ElvUI_KnightFrame')) and IsAddOnLoaded('ElvUI_Kn
 		for i = 1, #KF.Modules do
 			KF.Modules[(KF.Modules[i])]()
 		end
+
+		function KF:ForUpdateAll()
+			_G["CharacterArmory"]:UpdateSettings("all")
+			_G["CharacterArmory"]:ToggleStats()
+			_G["InspectArmory"]:UpdateSettings("all")
+		end
 	end
-	E:RegisterModule(KF:GetName())
+	SLE:RegisterModule(KF:GetName())
 end
\ No newline at end of file