feat: auto open bags on interaction with mail,trade,ah,bank
This commit is contained in:
+21
-8
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user