From e852224637eea63a5398cfe70c14903e5dcf5928 Mon Sep 17 00:00:00 2001 From: Vinicius Moreira Date: Sun, 21 Jun 2020 15:38:55 -0300 Subject: [PATCH] [improvement][ui] sorting installed packages by their names --- .gitignore | 3 ++- CHANGELOG.md | 1 + bauh/view/core/controller.py | 7 ++++++- 3 files changed, 9 insertions(+), 2 deletions(-) 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