diff --git a/tabs/search/core.lua b/tabs/search/core.lua index cc94a6e..e877caf 100644 --- a/tabs/search/core.lua +++ b/tabs/search/core.lua @@ -836,7 +836,7 @@ function private.import_query_string() if components then m.set_form(components.blizzard) m.post_components = components.post - m.filter_display:SetText(Aux.filter.indented_post_query_string(Aux.util.take(20, m.post_components))) + m.update_filter_display() else Aux.log(error) end @@ -849,7 +849,7 @@ function private.export_query_string() m.clear_form() m.filter_input:ClearFocus() m.post_components = {} - m.filter_display:SetText('') + m.update_filter_display() else Aux.log(error) end @@ -876,7 +876,7 @@ function private.add_post_filter() if components then tinsert(m.post_components, components.post[1]) - m.filter_display:SetText(Aux.filter.indented_post_query_string(Aux.util.take(20, m.post_components))) + m.update_filter_display() m.filter_input:SetText('') m.filter_input:ClearFocus() else @@ -887,6 +887,14 @@ end function private.remove_post_filter() tremove(m.post_components) - m.filter_display:SetText(Aux.filter.indented_post_query_string(Aux.util.take(20, m.post_components))) + m.update_filter_display() +end + +function private.update_filter_display() + local lines = getn(Aux.util.filter(m.post_components, function(component) return component[1] == 'operator' and component[2] ~= 'not' end)) + local width_scale = max(200/m.filter_display:GetStringWidth()) + local height_scale = min((200 / lines) / 18) + m.filter_display_scale:SetScale(min(1, width_scale, height_scale)) + m.filter_display:SetText(Aux.filter.indented_post_query_string(m.post_components)) end diff --git a/tabs/search/frames.lua b/tabs/search/frames.lua index 3cb68f9..46082d6 100644 --- a/tabs/search/frames.lua +++ b/tabs/search/frames.lua @@ -551,13 +551,18 @@ Aux.search_tab.FRAMES(function(m, public, private) private.filter_input = input end do - local display = CreateFrame('SimpleHTML', nil, m.frame.filter) - display:SetPoint('TOPLEFT', 348, -50) - display:SetWidth(395) - display:SetHeight(270) - display:SetFont('p', Aux.gui.config.font, 13) + local frame = CreateFrame('Frame', nil, m.frame.filter) + frame:SetWidth(395) + frame:SetHeight(270) + frame:SetPoint('TOPLEFT', 348, -50) + Aux.gui.set_content_style(frame) + local scale_frame = CreateFrame('Frame', nil, frame) + scale_frame:SetAllPoints() + local display = Aux.gui.label(scale_frame, 18) + display:SetAllPoints() display:SetJustifyH('LEFT') - Aux.gui.set_content_style(display) + display:SetJustifyV('TOP') + private.filter_display_scale = scale_frame private.filter_display = display end diff --git a/util/filter.lua b/util/filter.lua index 972180c..8a3784f 100644 --- a/util/filter.lua +++ b/util/filter.lua @@ -545,7 +545,7 @@ function public.indented_post_query_string(components) if no_line_break then str = str..' ' elseif i > 1 then - str = str..'
' + str = str..'|n' str = str..Aux.gui.inline_color({42, 42, 42, 1}) for _=1,getn(stack) do str = str..'----' @@ -577,7 +577,7 @@ function public.indented_post_query_string(components) end end - return '
'..str..'
' + return str end function private.prettified_query_string(components)