diff --git a/bauh/view/qt/settings.py b/bauh/view/qt/settings.py index fdf1f9c7..e3504512 100644 --- a/bauh/view/qt/settings.py +++ b/bauh/view/qt/settings.py @@ -104,10 +104,8 @@ class SettingsWindow(QWidget): self.manager.prepare(task_manager=None, root_password=None, internet_available=None) if self.window and self.window.isVisible(): - self.window.update_custom_actions() - self.window.verify_warnings() - self.window.types_changed = True - self.window.begin_refresh_packages() + self.window.reload() + self.close() else: msg = StringIO() diff --git a/bauh/view/qt/thread.py b/bauh/view/qt/thread.py index 126b6415..ed430340 100644 --- a/bauh/view/qt/thread.py +++ b/bauh/view/qt/thread.py @@ -1094,3 +1094,11 @@ class SaveTheme(QThread): configman.save_config(core_config) except: traceback.print_exc() + + +class StartAsyncAction(QThread): + + signal_start = pyqtSignal() + + def run(self): + self.signal_start.emit() diff --git a/bauh/view/qt/window.py b/bauh/view/qt/window.py index 428f6f40..da30cc52 100755 --- a/bauh/view/qt/window.py +++ b/bauh/view/qt/window.py @@ -41,7 +41,7 @@ from bauh.view.qt.thread import UpgradeSelected, RefreshApps, UninstallPackage, ListWarnings, \ AsyncAction, LaunchPackage, ApplyFilters, CustomSoftwareAction, ShowScreenshots, CustomAction, \ NotifyInstalledLoaded, \ - IgnorePackageUpdates, SaveTheme + IgnorePackageUpdates, SaveTheme, StartAsyncAction from bauh.view.qt.view_model import PackageView, PackageViewStatus from bauh.view.util import util, resource from bauh.view.util.translation import I18n @@ -347,6 +347,9 @@ class ManageWindow(QWidget): self.thread_ignore_updates = IgnorePackageUpdates(manager=self.manager) self._bind_async_action(self.thread_ignore_updates, finished_call=self.finish_ignore_updates) + self.thread_reload = StartAsyncAction() + self.thread_reload.signal_start.connect(self._reload) + self.container_bottom = QWidget() self.container_bottom.setObjectName('container_bottom') self.container_bottom.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) @@ -1617,3 +1620,12 @@ class ManageWindow(QWidget): actions.sort(key=lambda a: a.get_label()) actions.insert(0, current_action) return actions + + def reload(self): + self.thread_reload.start() + + def _reload(self): + self.update_custom_actions() + self.verify_warnings() + self.types_changed = True + self.begin_refresh_packages()