diff --git a/LibItemSearch-1.0.lua b/LibItemSearch-1.0.lua index d611df3..f0428e3 100644 --- a/LibItemSearch-1.0.lua +++ b/LibItemSearch-1.0.lua @@ -29,7 +29,7 @@ local ItemSearch = ns.LibItemSearch --[[ general search ]]-- function ItemSearch:Find(itemLink, search) - if not search then + if not search or search == "" then return true end diff --git a/frames/MainFrame.lua b/frames/MainFrame.lua index 7ee7c7c..f648143 100644 --- a/frames/MainFrame.lua +++ b/frames/MainFrame.lua @@ -12,6 +12,8 @@ local NUMROWS = 14 function ns.NewMainFrame() local GVS = CreateFrame("frame", nil, MerchantFrame) + local search = ns.MakeSearchField(GVS, scrollbar.Refresh) + local rows = {} for i=1,NUMROWS do local row = ns.NewMerchantItemFrame(GVS) @@ -27,15 +29,15 @@ function ns.NewMainFrame() rows[i] = row end - local scrollbar = ns.NewScrollBar(GVS, 0, 5) function scrollbar:Refresh() local offset = scrollbar:GetValue() + local searchstring = search:GetText() local n = GetMerchantNumItems() local row, n_searchmatch = 1, 0 for i=1,n do local link = GetMerchantItemLink(i) - if ItemSearch:Find(link, GVS.searchstring) then + if ItemSearch:Find(link, searchstring) then if n_searchmatch >= offset and n_searchmatch < offset + NUMROWS then rows[row]:SetValue(i) row = row + 1 @@ -47,9 +49,7 @@ function ns.NewMainFrame() for i=row,NUMROWS do rows[i]:Hide() end end - - ns.MakeSearchField(GVS, scrollbar.Refresh) - + search:SetScript("OnTextChanged", Refresh) GVS:EnableMouseWheel(true) GVS:SetScript("OnMouseWheel", function(self, value) diff --git a/frames/SearchField.lua b/frames/SearchField.lua index e65753c..872cf2f 100644 --- a/frames/SearchField.lua +++ b/frames/SearchField.lua @@ -2,15 +2,9 @@ local myname, ns = ... -function ns.MakeSearchField(GVS, Refresh) - local editbox = ns.NewTextInput(GVS) - editbox:SetPoint("BOTTOMLEFT", GVS, "TOPLEFT", 55, 9) - - editbox:SetScript("OnTextChanged", function(self) - local t = self:GetText() - GVS.searchstring = t ~= "" and t ~= "Search..." and t:lower() or nil - Refresh() - end) +function ns.MakeSearchField(parent) + local editbox = ns.NewTextInput(parent) + editbox:SetPoint("BOTTOMLEFT", parent, "TOPLEFT", 55, 9) editbox.placeholder:SetText("Search...")