diff --git a/UI/BagFrame.lua b/UI/BagFrame.lua index 6842fcf..53ae001 100644 --- a/UI/BagFrame.lua +++ b/UI/BagFrame.lua @@ -3417,18 +3417,31 @@ function BagFrame:Initialize() ScheduleBagFrameUpdate(0.15) end, "BagFrame") - -- Auto-open bag frame when mail is opened - addon.Modules.Events:Register("MAIL_SHOW", function() - Guda_BagFrame:Show() - end, "BagFrame") + -- Auto-open bag frame when interacting with mail, bank, auction, trade + local function AutoOpenBags() + local autoOpen = addon.Modules.DB:GetSetting("autoOpenBags") + if autoOpen == nil then autoOpen = true end + if autoOpen then + Guda_BagFrame:Show() + end + end + + addon.Modules.Events:Register("MAIL_SHOW", AutoOpenBags, "BagFrame") + addon.Modules.Events:Register("BANKFRAME_OPENED", AutoOpenBags, "BagFrame") + addon.Modules.Events:Register("AUCTION_HOUSE_SHOW", AutoOpenBags, "BagFrame") + addon.Modules.Events:Register("TRADE_SHOW", AutoOpenBags, "BagFrame") -- Track vendor interactions to avoid closing bags when a vendor is opened addon.Modules.Events:Register("MERCHANT_SHOW", function() isMerchantOpen = true - -- Optional: ensure bags are visible when a vendor is opened - local frameRef = getglobal("Guda_BagFrame") - if frameRef and not frameRef:IsShown() then - frameRef:Show() + -- Auto-open bags when visiting a vendor (respects setting) + local autoOpen = addon.Modules.DB:GetSetting("autoOpenBags") + if autoOpen == nil then autoOpen = true end + if autoOpen then + local frameRef = getglobal("Guda_BagFrame") + if frameRef and not frameRef:IsShown() then + frameRef:Show() + end end -- Auto-sell junk items (spread across frames to avoid item locking) diff --git a/UI/SettingsPopup.lua b/UI/SettingsPopup.lua index 0659c2e..c2f94c6 100644 --- a/UI/SettingsPopup.lua +++ b/UI/SettingsPopup.lua @@ -1392,6 +1392,38 @@ function Guda_SettingsPopup_AutoVendorJunkCheckbox_OnClick(self) end end +-- Auto Open Bags Checkbox OnLoad +function Guda_SettingsPopup_AutoOpenBagsCheckbox_OnLoad(self) + local text = getglobal(self:GetName().."Text") + if text then + text:SetText("Auto Open Bags") + + local font, _, flags = text:GetFont() + if font then + text:SetFont(font, 13, flags) + end + end + + self.tooltipText = "Automatically open bags when interacting with bank, auction house, mail, or trade." + + local enabled = true + if Guda and Guda.Modules and Guda.Modules.DB then + enabled = Guda.Modules.DB:GetSetting("autoOpenBags") + if enabled == nil then enabled = true end + end + + self:SetChecked(enabled and 1 or 0) +end + +-- Auto Open Bags Checkbox OnClick +function Guda_SettingsPopup_AutoOpenBagsCheckbox_OnClick(self) + local isChecked = self:GetChecked() == 1 + + if Guda and Guda.Modules and Guda.Modules.DB then + Guda.Modules.DB:SetSetting("autoOpenBags", 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 de3c606..edc03fd 100644 --- a/UI/SettingsPopup.xml +++ b/UI/SettingsPopup.xml @@ -303,6 +303,19 @@ Guda_SettingsPopup_AutoVendorJunkCheckbox_OnClick(this) + + + + + + + + + + Guda_SettingsPopup_AutoOpenBagsCheckbox_OnLoad(this) + Guda_SettingsPopup_AutoOpenBagsCheckbox_OnClick(this) + +