From 50930c06d4d20ed456bf89cc0cdc6ebe0966b623 Mon Sep 17 00:00:00 2001 From: Vati Date: Tue, 10 Mar 2026 20:51:42 +0400 Subject: [PATCH] auto close bags --- Guda.toc | 2 +- UI/BagFrame.lua | 19 +++++++++++++++++++ UI/SettingsPopup.lua | 32 ++++++++++++++++++++++++++++++++ UI/SettingsPopup.xml | 23 ++++++++++++++++++----- 4 files changed, 70 insertions(+), 6 deletions(-) diff --git a/Guda.toc b/Guda.toc index 145b49d..9a86acc 100644 --- a/Guda.toc +++ b/Guda.toc @@ -2,7 +2,7 @@ ## Title: Guda ## Notes: All-in-one bag and bank addon for World of Warcraft 1.12.1 (Turtle WoW) ## Author: Vati -## Version: 2.0.8 +## Version: 2.0.9 ## SavedVariables: Guda_DB ## SavedVariablesPerCharacter: Guda_CharDB diff --git a/UI/BagFrame.lua b/UI/BagFrame.lua index 53ae001..1ea042b 100644 --- a/UI/BagFrame.lua +++ b/UI/BagFrame.lua @@ -3491,8 +3491,27 @@ function BagFrame:Initialize() addon.Modules.Events:Register("MERCHANT_CLOSED", function() isMerchantOpen = false + local autoClose = addon.Modules.DB:GetSetting("autoCloseBags") + if autoClose == nil then autoClose = true end + if autoClose then + Guda_BagFrame:Hide() + end end, "BagFrame") + -- Auto-close bag frame when closing mail, bank, auction, trade + local function AutoCloseBags() + local autoClose = addon.Modules.DB:GetSetting("autoCloseBags") + if autoClose == nil then autoClose = true end + if autoClose then + Guda_BagFrame:Hide() + end + end + + addon.Modules.Events:Register("MAIL_CLOSED", AutoCloseBags, "BagFrame") + addon.Modules.Events:Register("BANKFRAME_CLOSED", AutoCloseBags, "BagFrame") + addon.Modules.Events:Register("AUCTION_HOUSE_CLOSED", AutoCloseBags, "BagFrame") + addon.Modules.Events:Register("TRADE_CLOSED", AutoCloseBags, "BagFrame") + -- Hide character dropdown when clicking on bag frame local bagFrame = getglobal("Guda_BagFrame") if bagFrame then diff --git a/UI/SettingsPopup.lua b/UI/SettingsPopup.lua index c2f94c6..969512a 100644 --- a/UI/SettingsPopup.lua +++ b/UI/SettingsPopup.lua @@ -1424,6 +1424,38 @@ function Guda_SettingsPopup_AutoOpenBagsCheckbox_OnClick(self) end end +-- Auto Close Bags Checkbox OnLoad +function Guda_SettingsPopup_AutoCloseBagsCheckbox_OnLoad(self) + local text = getglobal(self:GetName().."Text") + if text then + text:SetText("Auto Close Bags") + + local font, _, flags = text:GetFont() + if font then + text:SetFont(font, 13, flags) + end + end + + self.tooltipText = "Automatically close bags when closing bank, auction house, mail, trade, or vendor." + + local enabled = false + if Guda and Guda.Modules and Guda.Modules.DB then + enabled = Guda.Modules.DB:GetSetting("autoCloseBags") + if enabled == nil then enabled = true end + end + + self:SetChecked(enabled and 1 or 0) +end + +-- Auto Close Bags Checkbox OnClick +function Guda_SettingsPopup_AutoCloseBagsCheckbox_OnClick(self) + local isChecked = self:GetChecked() == 1 + + if Guda and Guda.Modules and Guda.Modules.DB then + Guda.Modules.DB:SetSetting("autoCloseBags", isChecked) + end +end + -- White Items as Junk Checkbox OnLoad function Guda_SettingsPopup_WhiteItemsJunkCheckbox_OnLoad(self) local text = getglobal(self:GetName().."Text") diff --git a/UI/SettingsPopup.xml b/UI/SettingsPopup.xml index edc03fd..96efb3c 100644 --- a/UI/SettingsPopup.xml +++ b/UI/SettingsPopup.xml @@ -291,23 +291,23 @@ - - + + - Guda_SettingsPopup_AutoVendorJunkCheckbox_OnLoad(this) - Guda_SettingsPopup_AutoVendorJunkCheckbox_OnClick(this) + Guda_SettingsPopup_AutoCloseBagsCheckbox_OnLoad(this) + Guda_SettingsPopup_AutoCloseBagsCheckbox_OnClick(this) - + @@ -316,6 +316,19 @@ Guda_SettingsPopup_AutoOpenBagsCheckbox_OnClick(this) + + + + + + + + + + Guda_SettingsPopup_AutoVendorJunkCheckbox_OnLoad(this) + Guda_SettingsPopup_AutoVendorJunkCheckbox_OnClick(this) + +