From 5f7113e11ea9170dc59f2abdece3e8482c3415ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Sun, 12 Jan 2014 05:20:48 +0100 Subject: [PATCH] backups: allow only one of "block device" and "VM" Block device can be pointed only when source VM is "dom0". --- qubesmanager/backup.py | 7 +++++++ qubesmanager/backup_utils.py | 4 ++++ qubesmanager/restore.py | 7 +++++++ 3 files changed, 18 insertions(+) diff --git a/qubesmanager/backup.py b/qubesmanager/backup.py index f44e36e..88eab79 100644 --- a/qubesmanager/backup.py +++ b/qubesmanager/backup.py @@ -91,6 +91,10 @@ class BackupVMsWindow(Ui_Backup, QWizard): self.connect(self.dev_combobox, SIGNAL("activated(int)"), self.dev_combobox_activated) self.connect(self, SIGNAL("backup_progress(int)"), self.progress_bar.setValue) self.dir_line_edit.connect(self.dir_line_edit, SIGNAL("textChanged(QString)"), self.backup_location_changed) + self.connect(self.dev_combobox, SIGNAL("activated(int)"), + self.update_device_appvm_enabled) + self.connect(self.appvm_combobox, SIGNAL("activated(int)"), + self.update_device_appvm_enabled) self.select_vms_page.isComplete = self.has_selected_vms self.select_dir_page.isComplete = self.has_selected_dir_and_pass @@ -235,6 +239,9 @@ class BackupVMsWindow(Ui_Backup, QWizard): def dev_combobox_activated(self, idx): dev_combobox_activated(self, idx) + def update_device_appvm_enabled(self, idx): + update_device_appvm_enabled(self, idx) + @pyqtSlot(name='on_select_path_button_clicked') def select_path_button_clicked(self): select_path_button_clicked(self) diff --git a/qubesmanager/backup_utils.py b/qubesmanager/backup_utils.py index 1cd017b..a4b718a 100644 --- a/qubesmanager/backup_utils.py +++ b/qubesmanager/backup_utils.py @@ -114,6 +114,10 @@ def enable_dir_line_edit(dialog, boolean): dialog.dir_line_edit.setEnabled(boolean) dialog.select_path_button.setEnabled(boolean) +def update_device_appvm_enabled(dialog, idx): + # Only one of those can be used + dialog.dev_combobox.setEnabled(dialog.appvm_combobox.currentIndex() == 0) + dialog.appvm_combobox.setEnabled(dialog.dev_combobox.currentIndex() == 0) def dev_combobox_activated(dialog, idx): if idx == dialog.prev_dev_idx: #nothing has changed diff --git a/qubesmanager/restore.py b/qubesmanager/restore.py index 2c1f3c7..cc0b8e9 100644 --- a/qubesmanager/restore.py +++ b/qubesmanager/restore.py @@ -84,6 +84,10 @@ class RestoreVMsWindow(Ui_Restore, QWizard): self.connect(self, SIGNAL("restore_progress(QString)"), self.commit_text_edit.append) self.connect(self, SIGNAL("backup_progress(int)"), self.progress_bar.setValue) self.dir_line_edit.connect(self.dir_line_edit, SIGNAL("textChanged(QString)"), self.backup_location_changed) + self.connect(self.dev_combobox, SIGNAL("activated(int)"), + self.update_device_appvm_enabled) + self.connect(self.appvm_combobox, SIGNAL("activated(int)"), + self.update_device_appvm_enabled) self.select_dir_page.isComplete = self.has_selected_dir self.select_vms_page.isComplete = self.has_selected_vms @@ -100,6 +104,9 @@ class RestoreVMsWindow(Ui_Restore, QWizard): def dev_combobox_activated(self, idx): dev_combobox_activated(self, idx) + def update_device_appvm_enabled(self, idx): + update_device_appvm_enabled(self, idx) + @pyqtSlot(name='on_select_path_button_clicked') def select_path_button_clicked(self): select_path_button_clicked(self, True)