feat: auto open bags on interaction with mail,trade,ah,bank

This commit is contained in:
Vati
2026-03-10 20:45:34 +04:00
parent 1eebc25307
commit 10e264aedf
3 changed files with 66 additions and 8 deletions
+21 -8
View File
@@ -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)
+32
View File
@@ -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")
+13
View File
@@ -303,6 +303,19 @@
<OnClick>Guda_SettingsPopup_AutoVendorJunkCheckbox_OnClick(this)</OnClick>
</Scripts>
</CheckButton>
<!-- Auto Open Bags Checkbox -->
<CheckButton name="Guda_SettingsPopup_AutoOpenBagsCheckbox" inherits="OptionsCheckButtonTemplate">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="Guda_SettingsPopup_AutoVendorJunkCheckbox">
<Offset><AbsDimension x="200" y="0"/></Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>Guda_SettingsPopup_AutoOpenBagsCheckbox_OnLoad(this)</OnLoad>
<OnClick>Guda_SettingsPopup_AutoOpenBagsCheckbox_OnClick(this)</OnClick>
</Scripts>
</CheckButton>
</Frames>
</Frame>