[view] fix: ancestor reference to 18n

This commit is contained in:
Vinicius Moreira
2022-03-29 17:00:02 -03:00
parent bb9a52f34f
commit 075559a437
2 changed files with 54 additions and 64 deletions

View File

@@ -47,8 +47,9 @@ class AsyncAction(QThread, ProcessWatcher):
signal_root_password = pyqtSignal()
signal_progress_control = pyqtSignal(bool)
def __init__(self, root_password: Optional[Tuple[bool, str]] = None):
def __init__(self, i18n: I18n, root_password: Optional[Tuple[bool, str]] = None):
super(AsyncAction, self).__init__()
self.i18n = i18n
self.wait_confirmation = False
self.confirmation_res = None
self.root_password = root_password
@@ -129,7 +130,7 @@ class AsyncAction(QThread, ProcessWatcher):
return False
def _generate_backup(self, app_config: dict, i18n: I18n, root_password: Optional[str]) -> bool:
def _generate_backup(self, app_config: dict, root_password: Optional[str]) -> bool:
if app_config['backup']['mode'] not in ('only_one', 'incremental'):
self.show_message(title=self.i18n['error'].capitalize(),
body='{}: {}'.format(self.i18n['action.backup.invalid_mode'],bold(app_config['backup']['mode'])),
@@ -139,25 +140,25 @@ class AsyncAction(QThread, ProcessWatcher):
handler = ProcessHandler(self)
if app_config['backup']['mode'] == 'only_one':
self.change_substatus('[{}] {}'.format(i18n['core.config.tab.backup'].lower(), i18n['action.backup.substatus.delete']))
self.change_substatus('[{}] {}'.format(self.i18n['core.config.tab.backup'].lower(), self.i18n['action.backup.substatus.delete']))
deleted, _ = handler.handle_simple(timeshift.delete_all_snapshots(root_password))
if not deleted and not self.request_confirmation(title=i18n['core.config.tab.backup'],
body='{}. {}'.format(i18n['action.backup.error.delete'],
i18n['action.backup.error.proceed']),
confirmation_label=i18n['yes'].capitalize(),
deny_label=i18n['no'].capitalize()):
if not deleted and not self.request_confirmation(title=self.i18n['core.config.tab.backup'],
body='{}. {}'.format(self.i18n['action.backup.error.delete'],
self.i18n['action.backup.error.proceed']),
confirmation_label=self.i18n['yes'].capitalize(),
deny_label=self.i18n['no'].capitalize()):
self.change_substatus('')
return False
self.change_substatus('[{}] {}'.format(i18n['core.config.tab.backup'].lower(), i18n['action.backup.substatus.create']))
self.change_substatus('[{}] {}'.format(self.i18n['core.config.tab.backup'].lower(), self.i18n['action.backup.substatus.create']))
created, _ = handler.handle_simple(timeshift.create_snapshot(root_password, app_config['backup']['type']))
if not created and not self.request_confirmation(title=i18n['core.config.tab.backup'],
body='{}. {}'.format(i18n['action.backup.error.create'],
i18n['action.backup.error.proceed']),
confirmation_label=i18n['yes'].capitalize(),
deny_label=i18n['no'].capitalize()):
if not created and not self.request_confirmation(title=self.i18n['core.config.tab.backup'],
body='{}. {}'.format(self.i18n['action.backup.error.create'],
self.i18n['action.backup.error.proceed']),
confirmation_label=self.i18n['yes'].capitalize(),
deny_label=self.i18n['no'].capitalize()):
self.change_substatus('')
return False
@@ -173,24 +174,24 @@ class AsyncAction(QThread, ProcessWatcher):
return bool(app_config['backup']['enabled']) and timeshift.is_available()
def _should_backup(self, action_key: str, app_config: dict, i18n: I18n) -> bool:
def _should_backup(self, action_key: str, app_config: dict) -> bool:
# backup -> true: do not ask, only execute | false: do not ask or execute | None: ask
backup = app_config['backup'][action_key] if action_key else None
if backup is None:
return self.request_confirmation(title=i18n['core.config.tab.backup'],
body=i18n['action.backup.msg'],
confirmation_label=i18n['yes'].capitalize(),
deny_label=i18n['no'].capitalize())
return self.request_confirmation(title=self.i18n['core.config.tab.backup'],
body=self.i18n['action.backup.msg'],
confirmation_label=self.i18n['yes'].capitalize(),
deny_label=self.i18n['no'].capitalize())
else:
return backup
def request_backup(self, action_key: Optional[str], pkg: Optional[PackageView], i18n: I18n, app_config: dict, root_password: Optional[str], backup_only: bool = False) -> Tuple[bool, Optional[str]]:
def request_backup(self, action_key: Optional[str], pkg: Optional[PackageView], app_config: dict, root_password: Optional[str], backup_only: bool = False) -> Tuple[bool, Optional[str]]:
if not backup_only:
if not self._check_backup_requirements(app_config=app_config, pkg=pkg, action_key=action_key):
return True, root_password
if not self._should_backup(action_key=action_key, app_config=app_config, i18n=i18n):
if not self._should_backup(action_key=action_key, app_config=app_config):
return True, root_password
pwd = root_password
@@ -200,7 +201,7 @@ class AsyncAction(QThread, ProcessWatcher):
if not valid_password:
return False, None
return self._generate_backup(app_config=app_config, i18n=i18n, root_password=pwd), pwd
return self._generate_backup(app_config=app_config, root_password=pwd), pwd
class UpgradeSelected(AsyncAction):
@@ -210,10 +211,9 @@ class UpgradeSelected(AsyncAction):
def __init__(self, manager: SoftwareManager, internet_checker: InternetChecker, i18n: I18n,
screen_width: int, pkgs: List[PackageView] = None):
super(UpgradeSelected, self).__init__()
super(UpgradeSelected, self).__init__(i18n=i18n)
self.pkgs = pkgs
self.manager = manager
self.i18n = i18n
self.internet_checker = internet_checker
self.screen_width = screen_width
@@ -491,7 +491,7 @@ class UpgradeSelected(AsyncAction):
# backup dialog ( if enabled, supported and accepted )
should_backup = bkp_supported
should_backup = should_backup and self._check_backup_requirements(app_config=app_config, pkg=None, action_key='upgrade')
should_backup = should_backup and self._should_backup(action_key='upgrade', app_config=app_config, i18n=self.i18n)
should_backup = should_backup and self._should_backup(action_key='upgrade', app_config=app_config)
# trim dialog ( if enabled and accepted )
if app_config['disk']['trim']['after_upgrade'] is not False:
@@ -511,7 +511,6 @@ class UpgradeSelected(AsyncAction):
if should_backup:
proceed, root_password = self.request_backup(action_key='upgrade',
app_config=app_config,
i18n=self.i18n,
root_password=root_password,
pkg=None,
backup_only=True)
@@ -550,8 +549,8 @@ class UpgradeSelected(AsyncAction):
class RefreshApps(AsyncAction):
def __init__(self, manager: SoftwareManager, pkg_types: Set[Type[SoftwarePackage]] = None):
super(RefreshApps, self).__init__()
def __init__(self, i18n: I18n, manager: SoftwareManager, pkg_types: Set[Type[SoftwarePackage]] = None):
super(RefreshApps, self).__init__(i18n=i18n)
self.manager = manager
self.pkg_types = pkg_types
@@ -580,18 +579,16 @@ class RefreshApps(AsyncAction):
class UninstallPackage(AsyncAction):
def __init__(self, manager: SoftwareManager, icon_cache: MemoryCache, i18n: I18n, pkg: PackageView = None):
super(UninstallPackage, self).__init__()
super(UninstallPackage, self).__init__(i18n=i18n)
self.pkg = pkg
self.manager = manager
self.icon_cache = icon_cache
self.root_pwd = None
self.i18n = i18n
def run(self):
if self.pkg:
proceed, _ = self.request_backup(action_key='uninstall',
pkg=self.pkg,
i18n=self.i18n,
root_password=self.root_pwd,
app_config=CoreConfigManager().get_config())
if not proceed:
@@ -622,10 +619,9 @@ class UninstallPackage(AsyncAction):
class DowngradePackage(AsyncAction):
def __init__(self, manager: SoftwareManager, i18n: I18n, pkg: PackageView = None):
super(DowngradePackage, self).__init__()
super(DowngradePackage, self).__init__(i18n=i18n)
self.manager = manager
self.pkg = pkg
self.i18n = i18n
self.root_pwd = None
def run(self):
@@ -634,7 +630,6 @@ class DowngradePackage(AsyncAction):
proceed, _ = self.request_backup(action_key='downgrade',
pkg=self.pkg,
i18n=self.i18n,
root_password=self.root_pwd,
app_config=CoreConfigManager().get_config())
@@ -657,8 +652,8 @@ class DowngradePackage(AsyncAction):
class ShowPackageInfo(AsyncAction):
def __init__(self, manager: SoftwareManager, pkg: PackageView = None):
super(ShowPackageInfo, self).__init__()
def __init__(self, i18n: I18n, manager: SoftwareManager, pkg: PackageView = None):
super(ShowPackageInfo, self).__init__(i18n=i18n)
self.pkg = pkg
self.manager = manager
@@ -678,10 +673,9 @@ class ShowPackageInfo(AsyncAction):
class ShowPackageHistory(AsyncAction):
def __init__(self, manager: SoftwareManager, i18n: I18n, pkg: PackageView = None):
super(ShowPackageHistory, self).__init__()
super(ShowPackageHistory, self).__init__(i18n=i18n)
self.pkg = pkg
self.manager = manager
self.i18n = i18n
def run(self):
if self.pkg:
@@ -695,8 +689,8 @@ class ShowPackageHistory(AsyncAction):
class SearchPackages(AsyncAction):
def __init__(self, manager: SoftwareManager):
super(SearchPackages, self).__init__()
def __init__(self, i18n: I18n, manager: SoftwareManager):
super(SearchPackages, self).__init__(i18n=i18n)
self.word = None
self.manager = manager
@@ -717,11 +711,10 @@ class SearchPackages(AsyncAction):
class InstallPackage(AsyncAction):
def __init__(self, manager: SoftwareManager, icon_cache: MemoryCache, i18n: I18n, pkg: PackageView = None):
super(InstallPackage, self).__init__()
super(InstallPackage, self).__init__(i18n=i18n)
self.pkg = pkg
self.manager = manager
self.icon_cache = icon_cache
self.i18n = i18n
self.root_pwd = None
def run(self):
@@ -730,7 +723,6 @@ class InstallPackage(AsyncAction):
proceed, _ = self.request_backup(action_key='install',
pkg=self.pkg,
i18n=self.i18n,
root_password=self.root_pwd,
app_config=CoreConfigManager().get_config())
@@ -895,8 +887,8 @@ class NotifyInstalledLoaded(QThread):
class FindSuggestions(AsyncAction):
def __init__(self, man: SoftwareManager):
super(FindSuggestions, self).__init__()
def __init__(self, i18n: I18n, man: SoftwareManager):
super(FindSuggestions, self).__init__(i18n=i18n)
self.man = man
self.filter_installed = False
@@ -922,8 +914,8 @@ class ListWarnings(QThread):
class LaunchPackage(AsyncAction):
def __init__(self, manager: SoftwareManager, pkg: PackageView = None):
super(LaunchPackage, self).__init__()
def __init__(self, i18n: I18n, manager: SoftwareManager, pkg: PackageView = None):
super(LaunchPackage, self).__init__(i18n=i18n)
self.pkg = pkg
self.manager = manager
@@ -943,8 +935,8 @@ class ApplyFilters(AsyncAction):
signal_table = pyqtSignal(object)
def __init__(self, filters: dict = None, pkgs: List[PackageView] = None):
super(ApplyFilters, self).__init__()
def __init__(self, i18n: I18n, filters: dict = None, pkgs: List[PackageView] = None):
super(ApplyFilters, self).__init__(i18n=i18n)
self.pkgs = pkgs
self.filters = filters
self.wait_table_update = False
@@ -979,12 +971,11 @@ class ApplyFilters(AsyncAction):
class CustomAction(AsyncAction):
def __init__(self, manager: SoftwareManager, i18n: I18n, custom_action: CustomSoftwareAction = None, pkg: PackageView = None, root_password: Optional[str] = None):
super(CustomAction, self).__init__()
super(CustomAction, self).__init__(i18n=i18n)
self.manager = manager
self.pkg = pkg
self.custom_action = custom_action
self.root_pwd = root_password
self.i18n = i18n
def run(self):
res = {'success': False, 'pkg': self.pkg, 'action': self.custom_action, 'error': None, 'error_type': MessageType.ERROR}
@@ -992,7 +983,6 @@ class CustomAction(AsyncAction):
if self.custom_action.backup:
proceed, _ = self.request_backup(app_config=CoreConfigManager().get_config(),
action_key=None,
i18n=self.i18n,
root_password=self.root_pwd,
pkg=self.pkg)
if not proceed:
@@ -1021,8 +1011,8 @@ class CustomAction(AsyncAction):
class ShowScreenshots(AsyncAction):
def __init__(self, manager: SoftwareManager, pkg: PackageView = None):
super(ShowScreenshots, self).__init__()
def __init__(self, i18n: I18n, manager: SoftwareManager, pkg: PackageView = None):
super(ShowScreenshots, self).__init__(i18n=i18n)
self.pkg = pkg
self.manager = manager
@@ -1035,8 +1025,8 @@ class ShowScreenshots(AsyncAction):
class IgnorePackageUpdates(AsyncAction):
def __init__(self, manager: SoftwareManager, pkg: PackageView = None):
super(IgnorePackageUpdates, self).__init__()
def __init__(self, i18n: I18n, manager: SoftwareManager, pkg: PackageView = None):
super(IgnorePackageUpdates, self).__init__(i18n=i18n)
self.pkg = pkg
self.manager = manager

View File

@@ -331,18 +331,18 @@ class ManageWindow(QWidget):
internet_checker=context.internet_checker,
screen_width=screen_size.width()),
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_refresh = self._bind_async_action(RefreshApps(i18n, 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)
self.thread_show_info = self._bind_async_action(ShowPackageInfo(i18n, self.manager), finished_call=self._finish_show_info)
self.thread_show_history = self._bind_async_action(ShowPackageHistory(self.manager, self.i18n), finished_call=self._finish_show_history)
self.thread_search = self._bind_async_action(SearchPackages(self.manager), finished_call=self._finish_search, only_finished=True)
self.thread_search = self._bind_async_action(SearchPackages(i18n, self.manager), finished_call=self._finish_search, only_finished=True)
self.thread_downgrade = self._bind_async_action(DowngradePackage(self.manager, self.i18n), finished_call=self._finish_downgrade)
self.thread_suggestions = self._bind_async_action(FindSuggestions(man=self.manager), finished_call=self._finish_load_suggestions, only_finished=True)
self.thread_launch = self._bind_async_action(LaunchPackage(self.manager), finished_call=self._finish_launch_package, only_finished=False)
self.thread_suggestions = self._bind_async_action(FindSuggestions(i18n=i18n, man=self.manager), finished_call=self._finish_load_suggestions, only_finished=True)
self.thread_launch = self._bind_async_action(LaunchPackage(i18n, self.manager), finished_call=self._finish_launch_package, only_finished=False)
self.thread_custom_action = self._bind_async_action(CustomAction(manager=self.manager, i18n=self.i18n), finished_call=self._finish_execute_custom_action)
self.thread_screenshots = self._bind_async_action(ShowScreenshots(self.manager), finished_call=self._finish_show_screenshots)
self.thread_screenshots = self._bind_async_action(ShowScreenshots(i18n, self.manager), finished_call=self._finish_show_screenshots)
self.thread_apply_filters = ApplyFilters()
self.thread_apply_filters = ApplyFilters(i18n)
self.thread_apply_filters.signal_finished.connect(self._finish_apply_filters)
self.thread_apply_filters.signal_table.connect(self._update_table_and_upgrades)
self.signal_table_update.connect(self.thread_apply_filters.stop_waiting)
@@ -358,7 +358,7 @@ class ManageWindow(QWidget):
self.thread_notify_pkgs_ready.signal_finished.connect(self._update_state_when_pkgs_ready)
self.signal_stop_notifying.connect(self.thread_notify_pkgs_ready.stop_working)
self.thread_ignore_updates = IgnorePackageUpdates(manager=self.manager)
self.thread_ignore_updates = IgnorePackageUpdates(i18n=i18n, manager=self.manager)
self._bind_async_action(self.thread_ignore_updates, finished_call=self.finish_ignore_updates)
self.thread_reload = StartAsyncAction(delay_in_milis=5)