From 00a09391e5445d753a8d214f8ec6333e4f8d11da Mon Sep 17 00:00:00 2001 From: Vinicius Moreira Date: Fri, 30 Aug 2019 12:24:52 -0300 Subject: [PATCH] new read_installed and downgrade definitions --- bauh/core/controller.py | 19 ++++++++++--------- bauh/view/qt/thread.py | 14 +++++++------- bauh/view/qt/window.py | 4 ++-- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/bauh/core/controller.py b/bauh/core/controller.py index 0b22da4c..1729007d 100755 --- a/bauh/core/controller.py +++ b/bauh/core/controller.py @@ -97,10 +97,10 @@ class GenericSoftwareManager(SoftwareManager): self.thread_prepare.join() self.thread_prepare = None - def read_installed(self, disk_loader: DiskCacheLoader = None, limit: int = -1, only_apps: bool = False, pkg_types: Set[Type[SoftwarePackage]] = None) -> List[SoftwarePackage]: + def read_installed(self, disk_loader: DiskCacheLoader = None, limit: int = -1, only_apps: bool = False, pkg_types: Set[Type[SoftwarePackage]] = None) -> SearchResult: self._wait_to_be_ready() - installed = [] + res = SearchResult([], None, 0) disk_loader = None @@ -111,8 +111,9 @@ class GenericSoftwareManager(SoftwareManager): disk_loader = self.disk_loader_factory.new() disk_loader.start() - installed.extend(man.read_installed(disk_loader=disk_loader, pkg_types=None)) - + man_res = man.read_installed(disk_loader=disk_loader, pkg_types=None) + res.installed.extend(man_res.installed) + res.total += man_res.total else: man_already_used = [] @@ -124,17 +125,17 @@ class GenericSoftwareManager(SoftwareManager): disk_loader = self.disk_loader_factory.new() disk_loader.start() - installed.extend(man.read_installed(disk_loader=disk_loader, pkg_types=None)) + man_res = man.read_installed(disk_loader=disk_loader, pkg_types=None) + res.installed.extend(man_res.installed) + res.total += man_res.total if disk_loader: disk_loader.stop = True disk_loader.join() - installed.sort(key=lambda a: a.base_data.name.lower()) + return res - return installed - - def downgrade_app(self, app: SoftwarePackage, root_password: str, handler: ProcessWatcher) -> bool: + def downgrade(self, app: SoftwarePackage, root_password: str, handler: ProcessWatcher) -> bool: man = self._get_manager_for(app) if man and app.can_be_downgraded(): diff --git a/bauh/view/qt/thread.py b/bauh/view/qt/thread.py index cb1a35ff..8519144a 100644 --- a/bauh/view/qt/thread.py +++ b/bauh/view/qt/thread.py @@ -100,12 +100,12 @@ class RefreshApps(AsyncAction): self.pkg_types = pkg_types def run(self): - installed = self.manager.read_installed(pkg_types=self.pkg_types) + res = self.manager.read_installed(pkg_types=self.pkg_types) refreshed_types = set() - if installed: + if res: idx_found, app_found = None, None - for idx, ins in enumerate(installed): + for idx, ins in enumerate(res.installed): if self.pkg_types: refreshed_types.add(ins.__class__) @@ -115,12 +115,12 @@ class RefreshApps(AsyncAction): break if app_found: - del installed[idx_found] - installed.insert(0, app_found) + del res.installed[idx_found] + res.installed.insert(0, app_found) elif self.pkg_types: refreshed_types = self.pkg_types - self.notify_finished({'installed': installed, 'types': refreshed_types}) + self.notify_finished({'installed': res.installed, 'total': res.total, 'types': refreshed_types}) self.app = None self.pkg_types = None @@ -160,7 +160,7 @@ class DowngradeApp(AsyncAction): if self.app: success = False try: - success = self.manager.downgrade_app(self.app.model, self.root_password, self) + success = self.manager.downgrade(self.app.model, self.root_password, self) except (requests.exceptions.ConnectionError, NoInternetException): success = False self.print(self.locale_keys['internet.required']) diff --git a/bauh/view/qt/window.py b/bauh/view/qt/window.py index dc9bf243..1126f63f 100755 --- a/bauh/view/qt/window.py +++ b/bauh/view/qt/window.py @@ -539,8 +539,8 @@ class ManageWindow(QWidget): old_installed = self.pkgs_installed self.pkgs_installed = [] - for app in new_pkgs: - app_model = PackageView(model=app, visible=app.is_application() or not self.checkbox_only_apps.isChecked()) + for pkg in new_pkgs: + app_model = PackageView(model=pkg, visible=pkg.is_application() or not self.checkbox_only_apps.isChecked()) self._update_pkgs_info(app_model, pkgs_info) self.pkgs.append(app_model)