diff --git a/qubesmanager/qube_manager.py b/qubesmanager/qube_manager.py index 09b3d1b..bee3760 100644 --- a/qubesmanager/qube_manager.py +++ b/qubesmanager/qube_manager.py @@ -336,6 +336,8 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow): self.sort_by_column = "Type" self.sort_order = QtCore.Qt.AscendingOrder + self.backup_window = None + self.vms_list = [] self.vms_in_table = {} @@ -1047,9 +1049,17 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow): # noinspection PyArgumentList @QtCore.pyqtSlot(name='on_action_backup_triggered') def action_backup_triggered(self): - backup_window = backup.BackupVMsWindow(self.qt_app, self.qubes_app, - self.dispatcher) - backup_window.show() + if not self.backup_window: + self.backup_window = backup.BackupVMsWindow(self.qt_app, self.qubes_app, + self.dispatcher, self) + self.backup_window.finished.connect(self._backup_finished) + + self.backup_window.show() + self.backup_window.activateWindow() + + def _backup_finished(self): + self.backup_window.deleteLater() + self.backup_window = None # noinspection PyArgumentList @QtCore.pyqtSlot(name='on_action_exit_triggered')