From 2ec07a312bed7e9c161a79fecf07f8e9216e7c50 Mon Sep 17 00:00:00 2001 From: urnati Date: Fri, 13 Mar 2026 21:56:25 -0400 Subject: [PATCH] - Config: fix Addon Compartment - Gold: Update button on show/hide and add server to name --- Titan/TitanConfig.lua | 2 +- TitanGold/TitanGold.lua | 46 +++++++++++++++++++++++++++++++--------------- 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/Titan/TitanConfig.lua b/Titan/TitanConfig.lua index 0746d08..370a5e2 100644 --- a/Titan/TitanConfig.lua +++ b/Titan/TitanConfig.lua @@ -3750,5 +3750,5 @@ function Titan_Config.OpenConfig(reason) Titan_Debug.Out('titan', 'config_flow', "Open : " .. reason) TitanUpdateConfig("init") - AceConfigDialog:Open("Titan") + AceConfigDialog:Open(config_parent) end diff --git a/TitanGold/TitanGold.lua b/TitanGold/TitanGold.lua index 62a8049..16b1a7a 100644 --- a/TitanGold/TitanGold.lua +++ b/TitanGold/TitanGold.lua @@ -790,26 +790,42 @@ end ---@param faction string ---@param level table Menu description to attach to local function ShowMenuButtons(faction, level) + -- create the list and sort by alpha with server + local list_alpha = {} for index, money in pairs(TitanSettings.Players) do local char = EvalIndexInfo(index) if char.valid and char.faction == faction then - Titan_Menu.AddSelectorGeneric(level, char.char_name, - function(data) - local toon_info = TitanSettings.Players[data.c_name].Info ---@class CharInfo - local toon_gold = toon_info[TITAN_GOLD_ID] ---@class GoldData - return toon_gold.show - end, - function(data) - local toon_info = TitanSettings.Players[index].Info ---@class CharInfo - local toon_gold = toon_info[TITAN_GOLD_ID] ---@class GoldData - toon_gold.show = not toon_gold.show - end, - { c_name = index } - ) + table.insert(list_alpha, index); else -- ignore custom profiles or toons not logged into yet end end + table.sort(list_alpha, function(key1, key2) +-- return key1.char_name < key2.char_name + return key1 < key2 + end) + + for i = 1, #list_alpha do + local toon = list_alpha[i] + --character = toon.char_name + --charserver = toon.server + --char_faction = toon.faction + + Titan_Menu.AddSelectorGeneric(level, toon, + function(data) + local toon_info = TitanSettings.Players[data.c_name].Info ---@class CharInfo + local toon_gold = toon_info[TITAN_GOLD_ID] ---@class GoldData + return toon_gold.show + end, + function(data) + local toon_info = TitanSettings.Players[data.c_name].Info ---@class CharInfo + local toon_gold = toon_info[TITAN_GOLD_ID] ---@class GoldData + toon_gold.show = not toon_gold.show + TitanPanelButton_UpdateButton(TITAN_GOLD_ID); + end, + { c_name = toon } + ) + end end local function GeneratorFunction(owner, rootDescription) @@ -879,8 +895,8 @@ local function GeneratorFunction(owner, rootDescription) end Titan_Menu.AddDivider(root) - local opts_show = Titan_Menu.AddButton(root, L["TITAN_GOLD_SHOW_PLAYER"] - .." : "..L["TITAN_GOLD_FACTION_PLAYER_ALLY"]) + local opts_show = Titan_Menu.AddButton(root, L["TITAN_GOLD_SHOW_PLAYER"]) +-- .." : "..L["TITAN_GOLD_FACTION_PLAYER_ALLY"]) do local opts_alliance = Titan_Menu.AddButton(opts_show, L["TITAN_GOLD_FACTION_PLAYER_ALLY"]) ShowMenuButtons(TITAN_ALLIANCE, opts_alliance) -- 1.7.9.5