From 2d552316db134fba28a5b264573ac33262392d57 Mon Sep 17 00:00:00 2001 From: Vinicius Moreira Date: Fri, 12 Feb 2021 14:57:48 -0300 Subject: [PATCH] [ui] improvement -> checking if internet connection is available before trying to upgrade the selected packages --- CHANGELOG.md | 4 ++++ bauh/view/qt/thread.py | 10 +++++++++- bauh/view/qt/window.py | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a09e650f..5540b618 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [0.9.15] 2021 +### Improvements +- UI + - checking if internet connection is available before trying to upgrade the selected packages + ### Fixes - AppImage - crashing when trying to upgrade and the internet connection is off diff --git a/bauh/view/qt/thread.py b/bauh/view/qt/thread.py index b0046a57..01d66580 100644 --- a/bauh/view/qt/thread.py +++ b/bauh/view/qt/thread.py @@ -22,6 +22,7 @@ from bauh.api.abstract.view import MessageType, MultipleSelectComponent, InputOp from bauh.api.exception import NoInternetException from bauh.commons import user from bauh.commons.html import bold +from bauh.commons.internet import InternetChecker from bauh.commons.system import get_human_size_str, ProcessHandler, SimpleProcess from bauh.view.core import timeshift from bauh.view.core.config import CoreConfigManager @@ -202,11 +203,12 @@ class UpgradeSelected(AsyncAction): LOGS_DIR = '{}/upgrade'.format(LOGS_PATH) SUMMARY_FILE = LOGS_DIR + '/{}_summary.txt' - def __init__(self, manager: SoftwareManager, i18n: I18n, pkgs: List[PackageView] = None): + def __init__(self, manager: SoftwareManager, internet_checker: InternetChecker, i18n: I18n, pkgs: List[PackageView] = None): super(UpgradeSelected, self).__init__() self.pkgs = pkgs self.manager = manager self.i18n = i18n + self.internet_checker = internet_checker def _req_as_option(self, req: UpgradeRequirement, tooltip: bool = True, custom_tooltip: str = None, required_size: bool = True, display_sizes: bool = True) -> InputOption: if req.pkg.installed: @@ -387,6 +389,12 @@ class UpgradeSelected(AsyncAction): traceback.print_exc() def run(self): + if not self.internet_checker.is_available(): + self.pkgs = None + self.print(self.i18n['internet.required']) + self.notify_finished({'success': False, 'updated': 0, 'types': set(), 'id': None}) + return + root_user = user.is_root() to_update, upgrade_requires_root, bkp_supported = [], False, False diff --git a/bauh/view/qt/window.py b/bauh/view/qt/window.py index 9c3faca2..0204a516 100755 --- a/bauh/view/qt/window.py +++ b/bauh/view/qt/window.py @@ -316,7 +316,7 @@ class ManageWindow(QWidget): self.layout.addWidget(self.toolbar_substatus) self._change_label_substatus('') - self.thread_update = self._bind_async_action(UpgradeSelected(self.manager, self.i18n), finished_call=self._finish_upgrade_selected) + self.thread_update = self._bind_async_action(UpgradeSelected(self.manager, context.internet_checker, self.i18n), finished_call=self._finish_upgrade_selected) self.thread_refresh = self._bind_async_action(RefreshApps(self.manager), finished_call=self._finish_refresh_packages, only_finished=True) self.thread_uninstall = self._bind_async_action(UninstallPackage(self.manager, self.icon_cache, self.i18n), finished_call=self._finish_uninstall) self.thread_show_info = self._bind_async_action(ShowPackageInfo(self.manager), finished_call=self._finish_show_info)