diff --git a/.gitignore b/.gitignore index 9ef8421a..755921a6 100755 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ env +venv *.pyc .idea __pycache__ @@ -6,4 +7,4 @@ __pycache__ dist *.egg-info build -*.db \ No newline at end of file +*.db diff --git a/CHANGELOG.md b/CHANGELOG.md index e063e9b2..ebf77aa7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - not performing a full table refresh after installing and uninstalling packages - filters algorithm speed and sorting - displaying wait cursor over some components + - sorting installed packages by their names ### Fixes - AppImage diff --git a/bauh/view/core/controller.py b/bauh/view/core/controller.py index 2bd8b2a7..221194b7 100755 --- a/bauh/view/core/controller.py +++ b/bauh/view/core/controller.py @@ -1,4 +1,4 @@ -import re +import operator import re import time import traceback @@ -200,6 +200,9 @@ class GenericSoftwareManager(SoftwareManager): def can_work(self) -> bool: return True + def _get_package_lower_name(self, pkg: SoftwarePackage): + return pkg.name.lower() + def read_installed(self, disk_loader: DiskCacheLoader = None, limit: int = -1, only_apps: bool = False, pkg_types: Set[Type[SoftwarePackage]] = None, internet_available: bool = None) -> SearchResult: ti = time.time() self._wait_to_be_ready() @@ -254,6 +257,8 @@ class GenericSoftwareManager(SoftwareManager): elif 'updates_ignored' not in p.categories: p.categories.append('updates_ignored') + res.installed.sort(key=self._get_package_lower_name) + tf = time.time() self.logger.info('Took {0:.2f} seconds'.format(tf - ti)) return res