Case insensitive sorting of profiles (#3329)

* Case insensitive sorting of profiles

* Update
This commit is contained in:
Daniel Girtler 2025-04-07 06:37:51 +10:00 committed by GitHub
parent de3416f55b
commit f985da6f9a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 2 deletions

View File

@ -70,7 +70,7 @@ class DesktopProfile(Profile):
) for p in profile_handler.get_desktop_profiles()
]
group = MenuItemGroup(items, sort_items=True)
group = MenuItemGroup(items, sort_items=True, sort_case_sensitive=False)
group.set_selected_by_value(self.current_selection)
result = SelectMenu(

View File

@ -74,13 +74,17 @@ class MenuItemGroup:
focus_item: MenuItem | None = None,
default_item: MenuItem | None = None,
sort_items: bool = False,
sort_case_sensitive: bool = True,
checkmarks: bool = False
) -> None:
if len(menu_items) < 1:
raise ValueError('Menu must have at least one item')
if sort_items:
menu_items = sorted(menu_items, key=lambda x: x.text)
if sort_case_sensitive:
menu_items = sorted(menu_items, key=lambda x: x.text)
else:
menu_items = sorted(menu_items, key=lambda x: x.text.lower())
if not focus_item:
focus_item = menu_items[0]