Merge remote-tracking branch 'origin/pr/236'
* origin/pr/236: Better error handling for opening VM settings in Qube Manager
This commit is contained in:
		
						commit
						2b69bf5599
					
				| @ -1042,15 +1042,21 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtWidgets.QMainWindow): | |||||||
|                         "ERROR: {1}").format(vm.name, ex)) |                         "ERROR: {1}").format(vm.name, ex)) | ||||||
|                 return |                 return | ||||||
| 
 | 
 | ||||||
|     # noinspection PyArgumentList |     def open_settings(self, vm, tab='basic'): | ||||||
|     @QtCore.pyqtSlot(name='on_action_settings_triggered') |         try: | ||||||
|     def action_settings_triggered(self): |  | ||||||
|         vm = self.get_selected_vm() |  | ||||||
|         if vm: |  | ||||||
|             with common_threads.busy_cursor(): |             with common_threads.busy_cursor(): | ||||||
|                 settings_window = settings.VMSettingsWindow( |                 settings_window = settings.VMSettingsWindow( | ||||||
|                     vm, self.qt_app, "basic") |                     vm, self.qt_app, tab) | ||||||
|             settings_window.exec_() |             settings_window.exec_() | ||||||
|  |         except exc.QubesException as ex: | ||||||
|  |             QtWidgets.QMessageBox.warning( | ||||||
|  |                 self, | ||||||
|  |                 self.tr("Qube settings unavailable"), | ||||||
|  |                 self.tr( | ||||||
|  |                     "Qube settings cannot be opened. The qube might have " | ||||||
|  |                     "been removed or unavailable due to policy settings." | ||||||
|  |                     "\nError: {}".format(str(ex)))) | ||||||
|  |             return | ||||||
| 
 | 
 | ||||||
|         vm_deleted = False |         vm_deleted = False | ||||||
| 
 | 
 | ||||||
| @ -1059,8 +1065,6 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtWidgets.QMainWindow): | |||||||
|             # have been cloned or removed |             # have been cloned or removed | ||||||
|             self.vms_in_table[vm.qid].update() |             self.vms_in_table[vm.qid].update() | ||||||
|         except exc.QubesException: |         except exc.QubesException: | ||||||
|                 # TODO: this will be replaced by proper signal handling once |  | ||||||
|                 # settings are migrated to AdminAPI |  | ||||||
|             vm_deleted = True |             vm_deleted = True | ||||||
| 
 | 
 | ||||||
|         if vm_deleted: |         if vm_deleted: | ||||||
| @ -1070,15 +1074,19 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtWidgets.QMainWindow): | |||||||
|                 except exc.QubesException: |                 except exc.QubesException: | ||||||
|                     pass |                     pass | ||||||
| 
 | 
 | ||||||
|  |     # noinspection PyArgumentList | ||||||
|  |     @QtCore.pyqtSlot(name='on_action_settings_triggered') | ||||||
|  |     def action_settings_triggered(self): | ||||||
|  |         vm = self.get_selected_vm() | ||||||
|  |         if vm: | ||||||
|  |             self.open_settings(vm, "basic") | ||||||
|  | 
 | ||||||
|     # noinspection PyArgumentList |     # noinspection PyArgumentList | ||||||
|     @QtCore.pyqtSlot(name='on_action_appmenus_triggered') |     @QtCore.pyqtSlot(name='on_action_appmenus_triggered') | ||||||
|     def action_appmenus_triggered(self): |     def action_appmenus_triggered(self): | ||||||
|         vm = self.get_selected_vm() |         vm = self.get_selected_vm() | ||||||
|         if vm: |         if vm: | ||||||
|             with common_threads.busy_cursor(): |             self.open_settings(vm, "applications") | ||||||
|                 settings_window = settings.VMSettingsWindow( |  | ||||||
|                     vm, self.qt_app, "applications") |  | ||||||
|             settings_window.exec_() |  | ||||||
| 
 | 
 | ||||||
|     # noinspection PyArgumentList |     # noinspection PyArgumentList | ||||||
|     @QtCore.pyqtSlot(name='on_action_updatevm_triggered') |     @QtCore.pyqtSlot(name='on_action_updatevm_triggered') | ||||||
| @ -1136,11 +1144,9 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtWidgets.QMainWindow): | |||||||
|     # noinspection PyArgumentList |     # noinspection PyArgumentList | ||||||
|     @QtCore.pyqtSlot(name='on_action_editfwrules_triggered') |     @QtCore.pyqtSlot(name='on_action_editfwrules_triggered') | ||||||
|     def action_editfwrules_triggered(self): |     def action_editfwrules_triggered(self): | ||||||
|         with common_threads.busy_cursor(): |  | ||||||
|         vm = self.get_selected_vm() |         vm = self.get_selected_vm() | ||||||
|             settings_window = settings.VMSettingsWindow(vm, self.qt_app, |         if vm: | ||||||
|                                                         "firewall") |             self.open_settings(vm, "firewall") | ||||||
|         settings_window.exec_() |  | ||||||
| 
 | 
 | ||||||
|     # noinspection PyArgumentList |     # noinspection PyArgumentList | ||||||
|     @QtCore.pyqtSlot(name='on_action_global_settings_triggered') |     @QtCore.pyqtSlot(name='on_action_global_settings_triggered') | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marek Marczykowski-Górecki
						Marek Marczykowski-Górecki