slight sorting improvement

This commit is contained in:
Manuel Simon Hirsig
2016-02-03 18:14:07 +01:00
parent 6c5292e415
commit 680abe6f5d
4 changed files with 12 additions and 5 deletions
+1 -2
View File
@@ -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
+1 -2
View File
@@ -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
+1 -1
View File
@@ -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)
+9
View File
@@ -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