Sort profile models case-insensitively

Cast every sorting key to uppercase before doing this. Don't cast to lowercase or there will be problems with characters that don't have lowercase and with Turkish dotted i vs. undotted i.

Fixes #3460.
This commit is contained in:
Ghostkeeper 2018-03-09 11:39:40 +01:00
parent 3550ef80e0
commit d8853b8a98
No known key found for this signature in database
GPG key ID: 5252B696FB5E7C7A
6 changed files with 9 additions and 9 deletions

View file

@ -122,17 +122,17 @@ class BrandMaterialsModel(ListModel):
material_type_item["colors"].clear() material_type_item["colors"].clear()
# Sort materials by name # Sort materials by name
material_list = sorted(material_list, key = lambda x: x["name"]) material_list = sorted(material_list, key = lambda x: x["name"].upper())
material_type_item["colors"].setItems(material_list) material_type_item["colors"].setItems(material_list)
material_type_item_list.append(material_type_item) material_type_item_list.append(material_type_item)
# Sort material type by name # Sort material type by name
material_type_item_list = sorted(material_type_item_list, key = lambda x: x["name"]) material_type_item_list = sorted(material_type_item_list, key = lambda x: x["name"].upper())
brand_item["materials"].setItems(material_type_item_list) brand_item["materials"].setItems(material_type_item_list)
brand_item_list.append(brand_item) brand_item_list.append(brand_item)
# Sort brand by name # Sort brand by name
brand_item_list = sorted(brand_item_list, key = lambda x: x["name"]) brand_item_list = sorted(brand_item_list, key = lambda x: x["name"].upper())
self.setItems(brand_item_list) self.setItems(brand_item_list)

View file

@ -23,7 +23,7 @@ class CustomQualityProfilesDropDownMenuModel(QualityProfilesDropDownMenuModel):
quality_changes_group_dict = self._quality_manager.getQualityChangesGroups(active_global_stack) quality_changes_group_dict = self._quality_manager.getQualityChangesGroups(active_global_stack)
item_list = [] item_list = []
for key in sorted(quality_changes_group_dict): for key in sorted(quality_changes_group_dict, key = lambda name: name.upper()):
quality_changes_group = quality_changes_group_dict[key] quality_changes_group = quality_changes_group_dict[key]
item = {"name": quality_changes_group.name, item = {"name": quality_changes_group.name,

View file

@ -55,6 +55,6 @@ class GenericMaterialsModel(BaseMaterialsModel):
item_list.append(item) item_list.append(item)
# Sort the item list by material name alphabetically # Sort the item list by material name alphabetically
item_list = sorted(item_list, key = lambda d: d["name"]) item_list = sorted(item_list, key = lambda d: d["name"].upper())
self.setItems(item_list) self.setItems(item_list)

View file

@ -97,5 +97,5 @@ class MaterialManagementModel(ListModel):
material_list.append(item) material_list.append(item)
material_list = sorted(material_list, key = lambda k: (k["brand"].lower(), k["name"])) material_list = sorted(material_list, key = lambda k: (k["brand"].upper(), k["name"].upper()))
self.setItems(material_list) self.setItems(material_list)

View file

@ -45,7 +45,7 @@ class NozzleModel(ListModel):
return return
item_list = [] item_list = []
for hotend_name, container_node in sorted(variant_node_dict.items(), key = lambda i: i[0]): for hotend_name, container_node in sorted(variant_node_dict.items(), key = lambda i: i[0].upper()):
item = {"id": hotend_name, item = {"id": hotend_name,
"hotend_name": hotend_name, "hotend_name": hotend_name,
"container_node": container_node "container_node": container_node

View file

@ -59,7 +59,7 @@ class QualityManagementModel(ListModel):
"quality_changes_group": None} "quality_changes_group": None}
item_list.append(item) item_list.append(item)
# Sort by quality names # Sort by quality names
item_list = sorted(item_list, key = lambda x: x["name"]) item_list = sorted(item_list, key = lambda x: x["name"].upper())
# Create quality_changes group items # Create quality_changes group items
quality_changes_item_list = [] quality_changes_item_list = []
@ -74,7 +74,7 @@ class QualityManagementModel(ListModel):
quality_changes_item_list.append(item) quality_changes_item_list.append(item)
# Sort quality_changes items by names and append to the item list # Sort quality_changes items by names and append to the item list
quality_changes_item_list = sorted(quality_changes_item_list, key = lambda x: x["name"]) quality_changes_item_list = sorted(quality_changes_item_list, key = lambda x: x["name"].upper())
item_list += quality_changes_item_list item_list += quality_changes_item_list
self.setItems(item_list) self.setItems(item_list)