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