mirror of
https://github.com/chev2/gmod-addons.git
synced 2025-10-30 06:31:35 +00:00
SprayMesh Extended: Fix layout issue when first spray is added to saved sprays
This commit is contained in:
parent
df6717b0f1
commit
183e05fd92
1 changed files with 32 additions and 17 deletions
|
|
@ -127,22 +127,7 @@ function PANEL:Init()
|
|||
end
|
||||
|
||||
self.SavedSpraySearch.OnValueChange = function(panel, text)
|
||||
for url, sprayPanel in pairs(self.Sprays) do
|
||||
-- Since spray panels are wrapped inside a parent, we want to target visibility for the parent instead
|
||||
local panelParent = sprayPanel:GetParent()
|
||||
|
||||
local queryIsEmpty = string.Trim(text, " ") == ""
|
||||
local textInURL = string.find(url:lower(), text:lower(), 0, true) ~= nil
|
||||
local textInName = string.find(sprayPanel.Name:lower(), text:lower(), 0, true) ~= nil
|
||||
|
||||
if queryIsEmpty or textInURL or textInName then
|
||||
panelParent:SetVisible(true)
|
||||
else
|
||||
panelParent:SetVisible(false)
|
||||
end
|
||||
end
|
||||
|
||||
self.IconLayout:Layout()
|
||||
self:FilterSearch(text)
|
||||
end
|
||||
|
||||
self.Scroll = self.SavedSpraysPanel:Add("DScrollPanel")
|
||||
|
|
@ -436,7 +421,7 @@ function PANEL:AddSpray(url, name)
|
|||
"Confirmation:",
|
||||
"Delete",
|
||||
function()
|
||||
self.Sprays[panel.URL] = nil
|
||||
self.Sprays["https://" .. panel.URL] = nil
|
||||
|
||||
spraylist.RemoveSpray("https://" .. panel.URL)
|
||||
|
||||
|
|
@ -495,6 +480,36 @@ function PANEL:AddSpray(url, name)
|
|||
end
|
||||
|
||||
self.IconLayout:Layout()
|
||||
|
||||
-- Gotta give time to let the newly-added entry and the IconLayout adjust their sizes, then
|
||||
-- we adjust the DScrollPanel canvas size. From my tests, this is only necessary
|
||||
-- when the player adds their FIRST spray to the list
|
||||
timer.Simple(0, function()
|
||||
if IsValid(self.Scroll) then
|
||||
self.Scroll:InvalidateLayout()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function PANEL:FilterSearch(text)
|
||||
for url, sprayPanel in pairs(self.Sprays) do
|
||||
if not IsValid(sprayPanel) then continue end
|
||||
|
||||
-- Since spray panels are wrapped inside a parent, we want to target visibility for the parent instead
|
||||
local panelParent = sprayPanel:GetParent()
|
||||
|
||||
local queryIsEmpty = string.Trim(text, " ") == ""
|
||||
local textInURL = string.find(url:lower(), text:lower(), 0, true) ~= nil
|
||||
local textInName = string.find(sprayPanel.Name:lower(), text:lower(), 0, true) ~= nil
|
||||
|
||||
if queryIsEmpty or textInURL or textInName then
|
||||
panelParent:SetVisible(true)
|
||||
else
|
||||
panelParent:SetVisible(false)
|
||||
end
|
||||
end
|
||||
|
||||
self.IconLayout:Layout()
|
||||
end
|
||||
|
||||
-- Register control
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue