From 7e22e33013c6a68bf433cab4eb126920b3c140ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marta=20Marczykowska-G=C3=B3recka?= Date: Fri, 12 May 2023 16:51:22 +0200 Subject: [PATCH] Improve experience when changing netvm in vm settings If user tries to change netvm of a running vm to a halted netvm, asks if they want to start that halted netvm. related to QubesOS/qubes-issues#8165 --- qubesmanager/settings.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/qubesmanager/settings.py b/qubesmanager/settings.py index 58261a0e..0df240a2 100644 --- a/qubesmanager/settings.py +++ b/qubesmanager/settings.py @@ -562,7 +562,26 @@ def __apply_basic_tab__(self): # vm netvm changed try: if utils.did_widget_selection_change(self.netVM): - self.vm.netvm = self.netVM.currentData() + if self.netVM.currentData() == qubesadmin.DEFAULT: + netvm = self.vm.property_get_default('netvm') + else: + netvm = self.netVM.currentData() + if self.vm.get_power_state() == 'Running' and netvm and \ + netvm.get_power_state() != 'Running': + reply = QtWidgets.QMessageBox.question( + self, self.tr("Qube Start Confirmation"), + self.tr("
Can not change netvm of a running qube" + "to a halted Qube.
" + "Do you want to start the Qube" + " '{0}'?").format(netvm.name), + QtWidgets.QMessageBox.Yes | + QtWidgets.QMessageBox.Cancel) + + if reply == QtWidgets.QMessageBox.Yes: + netvm.start() + self.vm.netvm = self.netVM.currentData() + else: + self.vm.netvm = self.netVM.currentData() except qubesadmin.exc.QubesException as ex: msg.append(str(ex))