Optimize auction listing visible-row and selection scans
This commit is contained in:
@@ -769,9 +769,12 @@ local methods = {
|
|||||||
row:Hide()
|
row:Hide()
|
||||||
end
|
end
|
||||||
local rowIndex = 1 - FauxScrollFrame_GetOffset(self.scrollFrame)
|
local rowIndex = 1 - FauxScrollFrame_GetOffset(self.scrollFrame)
|
||||||
|
local rowLimit = getn(self.rows)
|
||||||
for _, v in ipairs(self.rowInfo) do
|
for _, v in ipairs(self.rowInfo) do
|
||||||
|
if rowIndex > rowLimit then break end
|
||||||
if self.expanded[v.expandKey] then
|
if self.expanded[v.expandKey] then
|
||||||
for j, childInfo in ipairs(v.children) do
|
for j, childInfo in ipairs(v.children) do
|
||||||
|
if rowIndex > rowLimit then break end
|
||||||
self:SetRowInfo(rowIndex, childInfo.record, childInfo.count, 0, j > 1, false, v.expandKey)
|
self:SetRowInfo(rowIndex, childInfo.record, childInfo.count, 0, j > 1, false, v.expandKey)
|
||||||
rowIndex = rowIndex + 1
|
rowIndex = rowIndex + 1
|
||||||
end
|
end
|
||||||
@@ -896,16 +899,13 @@ local methods = {
|
|||||||
|
|
||||||
GetSelection = function(self)
|
GetSelection = function(self)
|
||||||
if not self.selected then return end
|
if not self.selected then return end
|
||||||
local selectedData
|
|
||||||
for _, v in ipairs(self.rowInfo) do
|
for _, v in ipairs(self.rowInfo) do
|
||||||
for _, childInfo in v.children do
|
for _, childInfo in v.children do
|
||||||
if childInfo.record.search_signature == self.selected.search_signature then
|
if childInfo.record.search_signature == self.selected.search_signature then
|
||||||
selectedData = childInfo
|
return childInfo
|
||||||
break
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return selectedData
|
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user