From c533f8dae8d2edb2aa2f0f78260e7e407ddf3c63 Mon Sep 17 00:00:00 2001 From: Manuel Simon Hirsig Date: Mon, 25 Jul 2016 17:48:07 +0200 Subject: [PATCH] search config redesign, removed naming of searches --- core.lua | 8 ++- tables/auction_listing.lua | 4 +- tabs/post/frames.lua | 4 +- tabs/search/core.lua | 110 +++++++++++++++-------------------- tabs/search/frames.lua | 116 +++++++++++++++---------------------- 5 files changed, 107 insertions(+), 135 deletions(-) diff --git a/core.lua b/core.lua index 721e719..6e58cd5 100644 --- a/core.lua +++ b/core.lua @@ -359,7 +359,9 @@ function private.SetItemRef(...) local item_info = m.info.item(tonumber(({strfind(itemstring, '^item:(%d+)')})[3])) if item_info then m.search_tab.set_filter(strlower(item_info.name)..'/exact') - m.search_tab.real_time_checkbox:SetChecked(nil) + if m.real_time_button.on then + m.real_time_button:Click() + end m.search_tab.execute() return end @@ -378,7 +380,9 @@ function private.UseContainerItem(...) item_info = item_info and m.info.item(item_info.item_id) if item_info then m.search_tab.set_filter(strlower(item_info.name)..'/exact') - m.search_tab.real_time_checkbox:SetChecked(nil) + if m.real_time_button.on then + m.real_time_button:Click() + end m.search_tab.execute() end return diff --git a/tables/auction_listing.lua b/tables/auction_listing.lua index d201404..10ce800 100644 --- a/tables/auction_listing.lua +++ b/tables/auction_listing.lua @@ -655,7 +655,9 @@ local methods = { elseif Aux.unmodified() and button == 'RightButton' then -- TODO not when alt (how?) Aux.tab_group:set_tab(1) Aux.search_tab.set_filter(strlower(Aux.info.item(this.row.data.record.item_id).name)..'/exact') - Aux.search_tab.real_time_checkbox:SetChecked(nil) + if m.real_time_button.on then + m.real_time_button:Click() + end Aux.search_tab.execute() else local selection = this.rt:GetSelection() diff --git a/tabs/post/frames.lua b/tabs/post/frames.lua index 172442c..41d3b6d 100644 --- a/tabs/post/frames.lua +++ b/tabs/post/frames.lua @@ -82,7 +82,9 @@ Aux.post_tab.FRAMES(function(m, public, private) elseif arg1 == 'RightButton' then Aux.tab_group:set_tab(1) Aux.search_tab.set_filter(strlower(Aux.info.item(this.item_record.item_id).name)..'/exact') - Aux.search_tab.real_time_checkbox:SetChecked(nil) + if m.real_time_button.on then + m.real_time_button:Click() + end Aux.search_tab.execute() end end, diff --git a/tabs/search/core.lua b/tabs/search/core.lua index 450f988..d7390c9 100644 --- a/tabs/search/core.lua +++ b/tabs/search/core.lua @@ -7,25 +7,55 @@ aux_auto_buy_filter = '' private.search_scan_id = 0 private.auto_buy_validator = nil -private.popup_info = { - rename = {} +StaticPopupDialogs['AUX_SEARCH_TABLE_FULL'] = { + text = 'Table full!\nFurther results from this search will not be displayed.', + button1 = 'Ok', + showAlert = 1, + timeout = 0, + hideOnEscape = 1, +} +StaticPopupDialogs['AUX_SEARCH_AUTO_BUY'] = { + text = 'Are you sure you want to activate automatic buyout?', + button1 = 'Yes', + button2 = 'No', + OnAccept = function() + m.auto_buy_button.on = true + m.auto_buy_button:SetBackdropColor(0.3, 0.7, 0.3) + end, + timeout = 0, + hideOnEscape = 1, } - do local function action() - m.popup_info.rename.name = getglobal(this:GetParent():GetName()..'EditBox'):GetText() - m.update_search_listings() + local queries = Aux.scan_util.parse_filter_string(getglobal(this:GetParent():GetName()..'EditBox'):GetText()) + if queries then + + if getn(queries) > 1 then + Aux.log('Error: The automatic buyout filter may contain only one query') + return + end + + if Aux.util.size(queries[1].blizzard_query) > 0 then + Aux.log('Error: The automatic buyout filter does not support Blizzard filters') + return + end + + aux_auto_buy_filter = m.auto_buy_filter_editbox:GetText() + m.auto_buy_validator = queries[1].validator + m.auto_buy_filter_button.on = true + m.auto_buy_button:SetBackdropColor(0.3, 0.7, 0.3) + m.auto_buy_filter_editbox:ClearFocus() + end end - StaticPopupDialogs['AUX_SEARCH_SAVED_RENAME'] = { - text = 'Enter a new name for this search.', + StaticPopupDialogs['AUX_SEARCH_AUTO_BUY_FILTER'] = { + text = 'Enter a filter for automatic buyout.', button1 = 'Accept', button2 = 'Cancel', hasEditBox = 1, OnShow = function() - local rename_info = m.popup_info.rename local edit_box = getglobal(this:GetName()..'EditBox') - edit_box:SetText(rename_info.name or '') + edit_box:SetMaxLetters(nil) edit_box:SetFocus() edit_box:HighlightText() end, @@ -41,50 +71,6 @@ do hideOnEscape = 1, } end -StaticPopupDialogs['AUX_SEARCH_TABLE_FULL'] = { - text = 'Table full!\nFurther results from this search will be discarded.', - button1 = 'Ok', - showAlert = 1, - timeout = 0, - hideOnEscape = 1, -} -StaticPopupDialogs['AUX_SEARCH_AUTO_BUY'] = { - text = 'Are you sure you want to activate automatic buyout?', - button1 = 'Yes', - button2 = 'No', - OnAccept = function() - m.auto_buy_checkbox:SetChecked(1) - end, - timeout = 0, - hideOnEscape = 1, -} -StaticPopupDialogs['AUX_SEARCH_AUTO_BUY_FILTER'] = { - text = 'Are you sure you want to set this filter for automatic buyout?', - button1 = 'Yes', - button2 = 'No', - OnAccept = function() - local queries = Aux.scan_util.parse_filter_string(m.auto_buy_filter_editbox:GetText()) - if queries then - - if getn(queries) > 1 then - Aux.log('Error: The auto buy filter supports only one query') - return - end - - if Aux.util.size(queries[1].blizzard_query) > 0 then - Aux.log('Error: The real time mode does not support blizzard filters') - return - end - - aux_auto_buy_filter = m.auto_buy_filter_editbox:GetText() - m.auto_buy_validator = queries[1].validator - m.auto_buy_filter_checkbox:SetChecked(1) - m.auto_buy_filter_editbox:ClearFocus() - end - end, - timeout = 0, - hideOnEscape = 1, -} private.RESULTS, private.SAVED, private.FILTER = 1, 2, 3 @@ -118,7 +104,7 @@ end function private.update_search_listings() local favorite_search_rows = {} for i, favorite_search in ipairs(aux_favorite_searches) do - local name = favorite_search.name and LIGHTYELLOW_FONT_COLOR_CODE..favorite_search.name..FONT_COLOR_CODE_CLOSE or strsub(favorite_search.prettified, 1, 250) + local name = strsub(favorite_search.prettified, 1, 250) tinsert(favorite_search_rows, { cols = {{value=name}}, search = favorite_search, @@ -130,7 +116,7 @@ function private.update_search_listings() local recent_search_rows = {} for i, recent_search in ipairs(aux_recent_searches) do - local name = recent_search.name and LIGHTYELLOW_FONT_COLOR_CODE..recent_search.name..FONT_COLOR_CODE_CLOSE or strsub(recent_search.prettified, 1, 250) + local name = strsub(recent_search.prettified, 1, 250) tinsert(recent_search_rows, { cols = {{value=name}}, search = recent_search, @@ -294,7 +280,7 @@ function private.start_real_time_scan(query, search, continuation) end, on_auction = function(auction_record, ctrl) if not ignore_page then - if m.auto_buy_checkbox:GetChecked() then + if m.auto_buy_button.on then ctrl.suspend() Aux.place_bid('list', auction_record.index, auction_record.buyout_price, function() ctrl.resume(true) end) else @@ -386,7 +372,7 @@ function private.start_search(queries, continuation) current_page = current_page and 0 or start_page - 1 end, on_auction = function(auction_record, ctrl) - if m.auto_buy_checkbox:GetChecked() then + if m.auto_buy_button.on then ctrl.suspend() Aux.place_bid('list', auction_record.index, auction_record.buyout_price, function() ctrl.resume(true) end) elseif getn(search.records) < 1000 then @@ -433,7 +419,7 @@ function public.execute(resume) local queries = Aux.scan_util.parse_filter_string(filter_string) if not queries then return - elseif m.real_time_checkbox:GetChecked() then + elseif m.real_time_button.on then if getn(queries) > 1 then Aux.log('Invalid filter: The sniping mode does not support multiple queries') return @@ -450,7 +436,7 @@ function public.execute(resume) if resume then m.results_listing:SetSelectedRecord() else - if m.current_search().real_time ~= m.real_time_checkbox:GetChecked() then + if m.current_search().real_time ~= m.real_time_button.on then m.results_listing:Reset() end m.current_search().records = {} @@ -464,8 +450,8 @@ function public.execute(resume) m.close_settings() m.update_tab(m.RESULTS) - m.current_search().real_time = m.real_time_checkbox:GetChecked() - if m.real_time_checkbox:GetChecked() then + m.current_search().real_time = m.real_time_button.on + if m.real_time_button.on then m.start_real_time_scan(queries[1], nil, continuation) else for _, query in queries do @@ -574,7 +560,7 @@ do end function private.update_continuation() - if m.current_search().continuation and m.current_search().real_time == m.real_time_checkbox:GetChecked() then + if m.current_search().continuation and m.current_search().real_time == m.real_time_button.on then m.resume_button:Show() m.search_box:SetPoint('RIGHT', m.resume_button, 'LEFT', -4, 0) else diff --git a/tabs/search/frames.lua b/tabs/search/frames.lua index 7ad5464..bba2dfe 100644 --- a/tabs/search/frames.lua +++ b/tabs/search/frames.lua @@ -73,7 +73,7 @@ Aux.search_tab.FRAMES(function(m, public, private) do local editbox = Aux.gui.editbox(m.settings) editbox:SetBackdropColor(unpack(Aux.gui.config.frame_color)) - editbox:SetPoint('LEFT', 48, 0) + editbox:SetPoint('LEFT', 80, 0) editbox:SetWidth(30) editbox:SetNumeric(true) editbox:SetMaxLetters(nil) @@ -85,7 +85,7 @@ Aux.search_tab.FRAMES(function(m, public, private) m.execute() end) local label = Aux.gui.label(editbox, 15) - label:SetPoint('RIGHT', editbox, 'LEFT', -4, 0) + label:SetPoint('RIGHT', editbox, 'LEFT', -5, 0) label:SetText('Pages') private.first_page_input = editbox end @@ -103,91 +103,72 @@ Aux.search_tab.FRAMES(function(m, public, private) this:ClearFocus() m.execute() end) - local label = Aux.gui.label(editbox, 15) + local label = Aux.gui.label(editbox, 16) label:SetPoint('RIGHT', editbox, 'LEFT', -3, 0) label:SetText('-') private.last_page_input = editbox end do - local checkbox = CreateFrame('CheckButton', nil, m.settings, 'UICheckButtonTemplate') - checkbox:SetWidth(22) - checkbox:SetHeight(22) - checkbox:SetPoint('LEFT', 192, 0) - checkbox:SetScript('OnClick', function() - m.update_continuation() - if this:GetChecked() then + local btn = Aux.gui.button(m.settings, 16) + btn:SetBackdropColor(unpack(Aux.gui.config.frame_color)) + btn:SetPoint('LEFT', 240, 0) + btn:SetWidth(120) + btn:SetHeight(25) + btn:SetText('Real Time Mode') + btn:SetBackdropColor(0.7, 0.3, 0.3) + btn:SetScript('OnClick', function() + this.on = not this.on + if this.on then + this:SetBackdropColor(0.3, 0.7, 0.3) m.first_page_input:EnableMouse(nil) m.last_page_input:EnableMouse(nil) m.first_page_input:ClearFocus() m.last_page_input:ClearFocus() else + this:SetBackdropColor(0.7, 0.3, 0.3) m.first_page_input:EnableMouse(true) m.last_page_input:EnableMouse(true) end + m.update_continuation() end) - local label = Aux.gui.label(checkbox, 15) - label:SetPoint('RIGHT', checkbox, 'LEFT', -1, 0) - label:SetText('Real Time') - public.real_time_checkbox = checkbox + public.real_time_button = btn end do - local checkbox = CreateFrame('CheckButton', nil, m.settings, 'UICheckButtonTemplate') - checkbox:SetWidth(22) - checkbox:SetHeight(22) - checkbox:SetPoint('LEFT', 278, 0) - checkbox:SetScript('OnClick', function() - if this:GetChecked() then - this:SetChecked(nil) + local btn = Aux.gui.button(m.settings, 16) + btn:SetBackdropColor(unpack(Aux.gui.config.frame_color)) + btn:SetPoint('LEFT', m.real_time_button, 'RIGHT', 30, 0) + btn:SetWidth(120) + btn:SetHeight(25) + btn:SetText('Auto Buy Mode') + btn:SetBackdropColor(0.7, 0.3, 0.3) + btn:SetScript('OnClick', function() + if this.on then + this.on = false + this:SetBackdropColor(0.7, 0.3, 0.3) + else StaticPopup_Show('AUX_SEARCH_AUTO_BUY') end end) - local label = Aux.gui.label(checkbox, 15) - label:SetPoint('RIGHT', checkbox, 'LEFT', -1, 0) - label:SetText('Auto Buy') - private.auto_buy_checkbox = checkbox + private.auto_buy_button = btn end do - local checkbox = CreateFrame('CheckButton', nil, m.settings, 'UICheckButtonTemplate') - checkbox:SetWidth(22) - checkbox:SetHeight(22) - checkbox:SetPoint('LEFT', 398, 0) - checkbox:SetScript('OnClick', function() - if this:GetChecked() then - this:SetChecked(nil) - StaticPopup_Show('AUX_SEARCH_AUTO_BUY_FILTER') - else + local btn = Aux.gui.button(m.settings, 16) + btn:SetBackdropColor(unpack(Aux.gui.config.frame_color)) + btn:SetPoint('LEFT', m.auto_buy_button, 'RIGHT', 30, 0) + btn:SetWidth(120) + btn:SetHeight(25) + btn:SetText('Auto Buy Filter') + btn:SetBackdropColor(0.7, 0.3, 0.3) + btn:SetScript('OnClick', function() + if this.on then + this.on = false m.auto_buy_validator = nil + this:SetBackdropColor(0.7, 0.3, 0.3) + else + StaticPopup_Show('AUX_SEARCH_AUTO_BUY_FILTER') end end) - local label = Aux.gui.label(checkbox, 15) - label:SetPoint('RIGHT', checkbox, 'LEFT', -1, 0) - label:SetText('Auto Buy Filter') - private.auto_buy_filter_checkbox = checkbox - end - do - local editbox = Aux.gui.editbox(m.settings) - editbox:SetBackdropColor(unpack(Aux.gui.config.frame_color)) - editbox:SetMaxLetters(nil) - editbox:EnableMouse(1) - editbox.complete = Aux.completion.complete_filter - editbox:SetPoint('RIGHT', -11, 0) - editbox:SetWidth(295) - editbox:SetHeight(25) - editbox:SetScript('OnChar', function() - this:complete() - end) - editbox:SetScript('OnTabPressed', function() - this:HighlightText(0, 0) - end) - editbox:SetScript('OnEnterPressed', function() - this:HighlightText(0, 0) - this:ClearFocus() - end) - editbox:SetScript('OnTextChanged', function() - m.auto_buy_filter_checkbox:SetChecked(nil) - end) - editbox:SetText(aux_auto_buy_filter) - private.auto_buy_filter_editbox = editbox + private.auto_buy_filter_button = btn end do local btn = Aux.gui.button(m.controls, 26) @@ -267,7 +248,9 @@ Aux.search_tab.FRAMES(function(m, public, private) local item_info = Aux.cursor_item() and Aux.info.item(Aux.cursor_item().item_id) if item_info then m.set_filter(strlower(item_info.name)..'/exact') - m.real_time_checkbox:SetChecked(nil) + if m.real_time_button.on then + m.real_time_button:Click() + end m.execute() end ClearCursor() @@ -745,11 +728,6 @@ Aux.search_tab.FRAMES(function(m, public, private) m.search_box:SetText(data.search.filter_string) elseif button == 'RightButton' and IsShiftKeyDown() then m.add_filter(data.search.filter_string) - elseif button == 'LeftButton' and IsAltKeyDown() then - m.popup_info.rename = data.search - StaticPopup_Show('AUX_SEARCH_SAVED_RENAME') - elseif button == 'RightButton' and IsAltKeyDown() then - -- unused elseif button == 'LeftButton' and IsControlKeyDown() then if st == m.favorite_searches_listing and data.index > 1 then local temp = aux_favorite_searches[data.index - 1]