diff --git a/qubesmanager/common_threads.py b/qubesmanager/common_threads.py index 9f622a46..597711f5 100644 --- a/qubesmanager/common_threads.py +++ b/qubesmanager/common_threads.py @@ -75,9 +75,9 @@ def run(self): class ChangeTemplatesThread(QtCore.QThread): - def __init__(self, progress_dialog, items_to_change, qubes_app): + def __init__(self, main_dialog, items_to_change, qubes_app): super().__init__() - self.dialog = progress_dialog + self.main_dialog = main_dialog self.items = items_to_change self.qubes_app = qubes_app self.errors = {} @@ -91,4 +91,4 @@ def run(self): 'template', row.new_item.currentText()) except Exception as ex: # pylint: disable=broad-except self.errors[vm] = str(ex) - self.dialog.setValue(i) + self.main_dialog.progress_signal.emit(i) diff --git a/qubesmanager/template_manager.py b/qubesmanager/template_manager.py index bb8935bf..b5f89cf5 100644 --- a/qubesmanager/template_manager.py +++ b/qubesmanager/template_manager.py @@ -39,6 +39,8 @@ class TemplateManagerWindow( ui_templatemanager.Ui_MainWindow, QtWidgets.QMainWindow): + progress_signal = QtCore.pyqtSignal(int) + def __init__(self, qt_app, qubes_app, dispatcher, parent=None): # pylint: disable=unused-argument super().__init__(parent) @@ -247,13 +249,16 @@ def apply(self): self.dialog.setCancelButton(None) self.dialog.setModal(True) self.dialog.show() - - self.thread = common_threads.ChangeTemplatesThread(self.dialog, + self.progress_signal.connect(self.on_progress_changed) + self.thread = common_threads.ChangeTemplatesThread(self, items_to_change, self.qubes_app) self.thread.finished.connect(self.finish_changes) self.thread.start() + def on_progress_changed(self, value): + self.dialog.setValue(value) + def finish_changes(self): self.dialog.hide()