diff --git a/newappvmdlg.ui b/newappvmdlg.ui index 5a928cc..c2f071a 100644 --- a/newappvmdlg.ui +++ b/newappvmdlg.ui @@ -6,8 +6,8 @@ 0 0 - 500 - 200 + 496 + 215 @@ -98,18 +98,28 @@ + + + + false + + + HVM template + + + + + + + Allow networking + + + true + + + - - - - Allow networking - - - true - - - @@ -127,7 +137,7 @@ 0 0 482 - 30 + 51 diff --git a/qubesmanager/create_new_vm.py b/qubesmanager/create_new_vm.py index 6c2332b..fd315d5 100644 --- a/qubesmanager/create_new_vm.py +++ b/qubesmanager/create_new_vm.py @@ -59,6 +59,7 @@ class NewVmDlg (QDialog, Ui_NewVMDlg): pass else: self.hvm_radio.setEnabled(True) + self.hvmtpl_radio.setEnabled(True) self.qvm_collection.lock_db_for_reading() self.qvm_collection.load() @@ -86,6 +87,8 @@ class NewVmDlg (QDialog, Ui_NewVMDlg): return False if self.hvm_radio.isChecked(): return QubesHVm.is_template_compatible(vm) + elif self.hvmtpl_radio.isChecked(): + return False else: return QubesVm.is_template_compatible(vm) self.template_vm_list = filter(filter_template, self.qvm_collection.values()) @@ -108,19 +111,28 @@ class NewVmDlg (QDialog, Ui_NewVMDlg): if checked: self.template_name.setEnabled(True) self.allow_networking.setEnabled(False) + def on_proxyvm_radio_toggled(self, checked): if checked: self.template_name.setEnabled(True) self.allow_networking.setEnabled(True) + def on_hvm_radio_toggled(self, checked): - if checked: + if self.hvm_radio.isChecked() or self.hvmtpl_radio.isChecked(): self.standalone.setChecked(True) self.allow_networking.setEnabled(True) + self.standalone.setEnabled(self.hvm_radio.isChecked()) else: self.standalone.setChecked(False) + self.standalone.setEnabled(True) self.fill_template_list() + + def on_hvmtpl_radio_toggled(self, checked): + return self.on_hvm_radio_toggled(checked) + def on_standalone_toggled(self, checked): - if checked and self.hvm_radio.isChecked(): + if checked and (self.hvm_radio.isChecked() or + self.hvmtpl_radio.isChecked()): self.template_name.setEnabled(False) else: self.template_name.setEnabled(True) @@ -157,8 +169,14 @@ class NewVmDlg (QDialog, Ui_NewVMDlg): vmtype = "NetVM" elif self.proxyvm_radio.isChecked(): vmtype = "ProxyVM" - else: #hvm_radio.isChecked() + elif self.hvm_radio.isChecked(): vmtype = "HVM" + elif self.hvmtpl_radio.isChecked(): + vmtype = "TemplateHVM" + else: + QErrorMessage.showMessage(None, "Error creating AppVM!", "Unknown " + "VM type, this is error in Qubes Manager") + self.done(0) vmclass = "Qubes" + vmtype.replace("VM", "Vm")