Another sort function for hotkeys
This commit is contained in:
parent
42b05df717
commit
839495fa9b
|
@ -49,21 +49,3 @@ function string:explode(sep, limit)
|
|||
table.insert(t, tmp)
|
||||
return t
|
||||
end
|
||||
|
||||
function string:operatorLess(other)
|
||||
local selfLower = self:lower()
|
||||
local otherLower = other:lower()
|
||||
local selfLen = self:len()
|
||||
local otherLen = other:len()
|
||||
local minLen = math.min(selfLen, otherLen)
|
||||
for i=1,minLen do
|
||||
local selfByteI = string.byte(selfLower, i)
|
||||
local otherByteI = string.byte(otherLower, i)
|
||||
if selfByteI < otherByteI then
|
||||
return true
|
||||
elseif selfByteI > otherByteI then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return selfLen < otherLen
|
||||
end
|
||||
|
|
|
@ -253,27 +253,28 @@ function addKeyCombo(messageBox, keyCombo, keySettings)
|
|||
local label = nil
|
||||
if currentHotkeysList:getChildById(keyCombo) == nil then
|
||||
local label = g_ui.createWidget('HotkeyListLabel')
|
||||
|
||||
local children = currentHotkeysList:getChildren()
|
||||
if #children == 0 then
|
||||
currentHotkeysList:addChild(label)
|
||||
else
|
||||
local add = false
|
||||
for i=1,#children do
|
||||
if keyCombo:operatorLess(children[i]:getId()) then
|
||||
currentHotkeysList:insertChild(i, label)
|
||||
add = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if not add then
|
||||
currentHotkeysList:addChild(label)
|
||||
end
|
||||
end
|
||||
|
||||
label:setId(keyCombo)
|
||||
label:setColor(HotkeyColors.text)
|
||||
label:setText(keyCombo .. ': ')
|
||||
|
||||
local children = currentHotkeysList:getChildren()
|
||||
children[#children+1] = label
|
||||
table.sort(children, function(a,b)
|
||||
if a:getId():len() < b:getId():len() then
|
||||
return true
|
||||
elseif a:getId():len() == b:getId():len() then
|
||||
return a:getId() < b:getId()
|
||||
else
|
||||
return false
|
||||
end
|
||||
end)
|
||||
for i=1,#children do
|
||||
if children[i] == label then
|
||||
currentHotkeysList:insertChild(i, label)
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if keySettings then
|
||||
hotkeyLabelSelectedOnList = label
|
||||
label.keyCombo = keyCombo
|
||||
|
|
Loading…
Reference in New Issue