improvement -> reloading the manage panel in a separate thread after saving the settings

This commit is contained in:
Vinicius Moreira
2021-01-13 15:40:52 -03:00
parent 5fd161888a
commit 80f6b20b9c
3 changed files with 23 additions and 5 deletions

View File

@@ -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()

View File

@@ -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()

View File

@@ -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()