From 680abe6f5d67f08a36a68e965f9e4e396bf5d6d0 Mon Sep 17 00:00:00 2001 From: Manuel Simon Hirsig Date: Wed, 3 Feb 2016 18:14:07 +0100 Subject: [PATCH] slight sorting improvement --- auctions_frame.lua | 3 +-- bids_frame.lua | 3 +-- post_frame.lua | 2 +- sort.lua | 9 +++++++++ 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/auctions_frame.lua b/auctions_frame.lua index c7919f6..98b9e21 100644 --- a/auctions_frame.lua +++ b/auctions_frame.lua @@ -69,7 +69,7 @@ function private.update_listing() record = auction_record, }) end - sort(auction_rows, function(a, b) return a.record.name < b.record.name or (b.record.name == b.record.name and a.record.search_signature < b.record.search_signature) end) + sort(auction_rows, function(a, b) return Aux.sort.multi_lt(a.record.name, b.record.name, a.record.search_signature, b.record.search_signature, tostring(a.record), tostring(b.record)) end) private.listing:SetData(auction_rows) private.listing:SetSelection(function(row) return row.record == selected_auction end) @@ -204,7 +204,6 @@ function private.on_row_click(auction_record) -- else local express_mode = IsAltKeyDown() if express_mode then - selected_auction = nil private.find_auction_and_cancel(auction_record) else selected_auction = auction_record diff --git a/bids_frame.lua b/bids_frame.lua index 153919e..33c7121 100644 --- a/bids_frame.lua +++ b/bids_frame.lua @@ -89,7 +89,7 @@ function private.update_listing() record = auction_record, }) end - sort(auction_rows, function(a, b) return a.record.name < b.record.name or (b.record.name == b.record.name and a.record.search_signature < b.record.search_signature) end) + sort(auction_rows, function(a, b) return Aux.sort.multi_lt(a.record.name, b.record.name, a.record.search_signature, b.record.search_signature, tostring(a.record), tostring(b.record)) end) private.listing:SetData(auction_rows) private.listing:SetSelection(function(row) return row.record == selected_auction end) @@ -236,7 +236,6 @@ function private.on_row_click(auction_record) local express_mode = IsAltKeyDown() local buyout_mode = express_mode and arg1 == 'LeftButton' if express_mode then - selected_auction = nil private.find_auction_and_bid(auction_record, buyout_mode) else selected_auction = auction_record diff --git a/post_frame.lua b/post_frame.lua index c5c1a04..96b59e9 100644 --- a/post_frame.lua +++ b/post_frame.lua @@ -51,7 +51,7 @@ function private.update_auction_listing() record = auction_record, }) end - sort(auction_rows, function(a, b) return a.record.unit_buyout_price < b.record.unit_buyout_price end) + sort(auction_rows, function(a, b) return Aux.sort.multi_lt(a.record.unit_buyout_price, b.record.unit_buyout_price, tostring(a.record), tostring(b.record)) end) end private.auction_listing:SetData(auction_rows) private.auction_listing:SetSelection(function(row) return row.record == private.selected_auction() end) diff --git a/sort.lua b/sort.lua index af8237d..0c047b1 100644 --- a/sort.lua +++ b/sort.lua @@ -81,4 +81,13 @@ function public.compare_from_lt(lt) return public.EQ end end +end + +function public.multi_lt(...) + for i=1,arg.n-1,2 do + if arg[i] ~= arg[i+1] then + return arg[i] < arg[i+1] + end + end + return false end \ No newline at end of file