feat: hide footer option

This commit is contained in:
Salikh Gurgenidze
2025-12-21 20:48:55 +04:00
parent 35b02931a9
commit 0afaec6dfa
5 changed files with 165 additions and 10 deletions
+4 -1
View File
@@ -42,13 +42,16 @@ function DB:Initialize()
showQualityBorderEquipment = true, showQualityBorderEquipment = true,
showQualityBorderOther = true, showQualityBorderOther = true,
showSearchBar = true, showSearchBar = true,
showQuestBar = true,
hoverBagline = false, hoverBagline = false,
hideFooter = false,
}, },
} }
end end
-- Ensure new settings exist for existing installations -- Ensure new settings exist for existing installations
if Guda_CharDB.settings.hideFooter == nil then
Guda_CharDB.settings.hideFooter = false
end
if Guda_CharDB.settings.hoverBagline == nil then if Guda_CharDB.settings.hoverBagline == nil then
Guda_CharDB.settings.hoverBagline = false Guda_CharDB.settings.hoverBagline = false
end end
+45 -2
View File
@@ -91,6 +91,11 @@ function Guda_BagFrame_OnShow(self)
BagFrame:UpdateSearchBarVisibility() BagFrame:UpdateSearchBarVisibility()
end end
-- Apply footer visibility setting
if BagFrame.UpdateFooterVisibility then
BagFrame:UpdateFooterVisibility()
end
BagFrame:Update() BagFrame:Update()
end end
@@ -152,10 +157,17 @@ end
-- Update bagline layout (hover option) -- Update bagline layout (hover option)
function BagFrame:UpdateBaglineLayout() function BagFrame:UpdateBaglineLayout()
local hoverBagline = addon.Modules.DB:GetSetting("hoverBagline") local hideFooter = addon.Modules.DB:GetSetting("hideFooter")
local toolbar = getglobal("Guda_BagFrame_Toolbar") local toolbar = getglobal("Guda_BagFrame_Toolbar")
if not toolbar then return end if not toolbar then return end
if hideFooter then
toolbar:Hide()
return
end
local hoverBagline = addon.Modules.DB:GetSetting("hoverBagline")
local bag0 = getglobal("Guda_BagFrame_Toolbar_BagSlot0") local bag0 = getglobal("Guda_BagFrame_Toolbar_BagSlot0")
local bag1 = getglobal("Guda_BagFrame_Toolbar_BagSlot1") local bag1 = getglobal("Guda_BagFrame_Toolbar_BagSlot1")
local bag2 = getglobal("Guda_BagFrame_Toolbar_BagSlot2") local bag2 = getglobal("Guda_BagFrame_Toolbar_BagSlot2")
@@ -528,7 +540,13 @@ function BagFrame:ResizeFrame(currentRow, currentCol, columns)
local searchBarHeight = 30 local searchBarHeight = 30
local footerHeight local footerHeight
local frameHeight local frameHeight
if showSearchBar then
local hideFooter = addon.Modules.DB:GetSetting("hideFooter")
if hideFooter then
footerHeight = 10 -- Small padding at bottom
frameHeight = containerHeight + titleHeight + (showSearchBar and searchBarHeight or 0) + footerHeight
elseif showSearchBar then
footerHeight = 55 -- Increased footer height when search bar is visible (toolbar 40px + spacing 15px) footerHeight = 55 -- Increased footer height when search bar is visible (toolbar 40px + spacing 15px)
frameHeight = containerHeight + titleHeight + searchBarHeight + footerHeight -- 125 total frameHeight = containerHeight + titleHeight + searchBarHeight + footerHeight -- 125 total
else else
@@ -681,8 +699,14 @@ function BagFrame:PassesSearchFilter(itemData)
end end
function BagFrame:UpdateMoney() function BagFrame:UpdateMoney()
local hideFooter = addon.Modules.DB:GetSetting("hideFooter")
local moneyFrame = getglobal("Guda_BagFrame_MoneyFrame") local moneyFrame = getglobal("Guda_BagFrame_MoneyFrame")
if hideFooter then
if moneyFrame then moneyFrame:Hide() end
return
end
if not moneyFrame then if not moneyFrame then
addon:Debug("Guda_BagFrame exists: " .. tostring(getglobal("Guda_BagFrame") ~= nil)) addon:Debug("Guda_BagFrame exists: " .. tostring(getglobal("Guda_BagFrame") ~= nil))
@@ -1676,6 +1700,25 @@ function BagFrame:UpdateSearchBarVisibility()
end end
end end
-- Update footer visibility based on settings
function BagFrame:UpdateFooterVisibility()
local hideFooter = addon.Modules.DB:GetSetting("hideFooter")
local toolbar = getglobal("Guda_BagFrame_Toolbar")
local moneyFrame = getglobal("Guda_BagFrame_MoneyFrame")
if hideFooter then
if toolbar then toolbar:Hide() end
if moneyFrame then moneyFrame:Hide() end
else
if toolbar then toolbar:Show() end
if moneyFrame then moneyFrame:Show() end
-- Trigger layout updates to ensure they are correctly positioned
self:UpdateBaglineLayout()
self:UpdateMoney()
end
end
-- Bag Slot Button Handlers -- Bag Slot Button Handlers
-- OnLoad handler for bag slot buttons -- OnLoad handler for bag slot buttons
+42 -7
View File
@@ -57,13 +57,18 @@ function Guda_BankFrame_OnShow(self)
BankFrame:UpdateBorderVisibility() BankFrame:UpdateBorderVisibility()
end end
-- Apply search bar visibility setting -- Apply search bar visibility setting
if BankFrame.UpdateSearchBarVisibility then if BankFrame.UpdateSearchBarVisibility then
BankFrame:UpdateSearchBarVisibility() BankFrame:UpdateSearchBarVisibility()
end end
BankFrame:Update() -- Apply footer visibility setting
end if BankFrame.UpdateFooterVisibility then
BankFrame:UpdateFooterVisibility()
end
BankFrame:Update()
end
-- Toggle visibility -- Toggle visibility
function BankFrame:Toggle() function BankFrame:Toggle()
@@ -360,7 +365,13 @@ function BankFrame:ResizeFrame(currentRow, currentCol, columns)
local searchBarHeight = 30 local searchBarHeight = 30
local footerHeight = 40 local footerHeight = 40
local frameHeight local frameHeight
if showSearchBar then
local hideFooter = addon.Modules.DB:GetSetting("hideFooter")
if hideFooter then
footerHeight = 10 -- Small padding at bottom
frameHeight = containerHeight + titleHeight + (showSearchBar and searchBarHeight or 0) + footerHeight
elseif showSearchBar then
frameHeight = containerHeight + titleHeight + searchBarHeight + footerHeight -- 125 total frameHeight = containerHeight + titleHeight + searchBarHeight + footerHeight -- 125 total
else else
frameHeight = containerHeight + titleHeight + footerHeight -- 80 total frameHeight = containerHeight + titleHeight + footerHeight -- 80 total
@@ -451,8 +462,14 @@ end
-- Update money display -- Update money display
function BankFrame:UpdateMoney() function BankFrame:UpdateMoney()
local hideFooter = addon.Modules.DB:GetSetting("hideFooter")
local moneyFrame = getglobal("Guda_BankFrame_MoneyFrame") local moneyFrame = getglobal("Guda_BankFrame_MoneyFrame")
if hideFooter then
if moneyFrame then moneyFrame:Hide() end
return
end
if not moneyFrame then if not moneyFrame then
addon:Debug("Bank MoneyFrame not found! Checking parent...") addon:Debug("Bank MoneyFrame not found! Checking parent...")
addon:Debug("Guda_BankFrame exists: " .. tostring(getglobal("Guda_BankFrame") ~= nil)) addon:Debug("Guda_BankFrame exists: " .. tostring(getglobal("Guda_BankFrame") ~= nil))
@@ -945,6 +962,24 @@ function BankFrame:UpdateSearchBarVisibility()
end end
end end
-- Update footer visibility based on settings
function BankFrame:UpdateFooterVisibility()
local hideFooter = addon.Modules.DB:GetSetting("hideFooter")
local toolbar = getglobal("Guda_BankFrame_Toolbar")
local moneyFrame = getglobal("Guda_BankFrame_MoneyFrame")
if hideFooter then
if toolbar then toolbar:Hide() end
if moneyFrame then moneyFrame:Hide() end
else
if toolbar then toolbar:Show() end
if moneyFrame then moneyFrame:Show() end
-- Trigger layout updates to ensure they are correctly positioned
self:UpdateMoney()
end
end
-- Initialize -- Initialize
function BankFrame:Initialize() function BankFrame:Initialize()
-- Hide Blizzard bank frame on load (pfUI style) -- Hide Blizzard bank frame on load (pfUI style)
+55
View File
@@ -339,6 +339,9 @@ function Guda_SettingsPopup_IconSpacingSlider_OnValueChanged(self)
-- Update bank frame -- Update bank frame
local bankFrame = getglobal("Guda_BankFrame") local bankFrame = getglobal("Guda_BankFrame")
if bankFrame and bankFrame:IsShown() then if bankFrame and bankFrame:IsShown() then
if Guda.Modules.BankFrame.UpdateFooterVisibility then
Guda.Modules.BankFrame:UpdateFooterVisibility()
end
Guda.Modules.BankFrame:Update() Guda.Modules.BankFrame:Update()
end end
end end
@@ -658,6 +661,58 @@ function Guda_SettingsPopup_HoverBaglineCheckbox_OnClick(self)
end end
end end
-- Hide Footer Checkbox OnLoad
function Guda_SettingsPopup_HideFooterCheckbox_OnLoad(self)
local text = getglobal(self:GetName().."Text")
if text then
text:SetText("Hide Footer")
-- Increase font size
local font, _, flags = text:GetFont()
if font then
text:SetFont(font, 13, flags)
end
end
local hideFooter = false
if Guda and Guda.Modules and Guda.Modules.DB then
hideFooter = Guda.Modules.DB:GetSetting("hideFooter")
if hideFooter == nil then
hideFooter = false
end
end
self:SetChecked(hideFooter and 1 or 0)
end
-- Hide Footer Checkbox OnClick
function Guda_SettingsPopup_HideFooterCheckbox_OnClick(self)
local isChecked = self:GetChecked() == 1
-- Save setting
if Guda and Guda.Modules and Guda.Modules.DB then
Guda.Modules.DB:SetSetting("hideFooter", isChecked)
end
-- Update bag frame
local bagFrame = getglobal("Guda_BagFrame")
if bagFrame and bagFrame:IsShown() then
if Guda.Modules.BagFrame.UpdateFooterVisibility then
Guda.Modules.BagFrame:UpdateFooterVisibility()
end
Guda.Modules.BagFrame:Update()
end
-- Update bank frame
local bankFrame = getglobal("Guda_BankFrame")
if bankFrame and bankFrame:IsShown() then
if Guda.Modules.BankFrame.UpdateFooterVisibility then
Guda.Modules.BankFrame:UpdateFooterVisibility()
end
Guda.Modules.BankFrame:Update()
end
end
-- Initialize -- Initialize
function SettingsPopup:Initialize() function SettingsPopup:Initialize()
Guda:Debug("Settings popup initialized") Guda:Debug("Settings popup initialized")
+19
View File
@@ -302,6 +302,25 @@
</OnClick> </OnClick>
</Scripts> </Scripts>
</CheckButton> </CheckButton>
<!-- Hide Footer Checkbox -->
<CheckButton name="$parent_HideFooterCheckbox" inherits="OptionsCheckButtonTemplate">
<Anchors>
<Anchor point="LEFT" relativePoint="RIGHT" relativeTo="$parent_HoverBaglineCheckbox">
<Offset>
<AbsDimension x="150" y="0"/>
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>
Guda_SettingsPopup_HideFooterCheckbox_OnLoad(this)
</OnLoad>
<OnClick>
Guda_SettingsPopup_HideFooterCheckbox_OnClick(this)
</OnClick>
</Scripts>
</CheckButton>
</Frames> </Frames>
<Scripts> <Scripts>