From 4971e47566483ddb9df29369a1947b8bb8d049ee Mon Sep 17 00:00:00 2001 From: Lily Nie Date: Thu, 2 Jan 2020 16:03:04 +0800 Subject: [PATCH] delete: Add vmmDeleteStorage class We should try to hide all the self.vm vs self.disk differences into individual functions to make the code easier to follow and to avoid touch those values by accident in the future Reviewed-by: Cole Robinson --- virtManager/delete.py | 29 ++++++++++++++++++++--------- virtManager/details/details.py | 5 ++--- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/virtManager/delete.py b/virtManager/delete.py index 2a1f55877..f51a15bc9 100644 --- a/virtManager/delete.py +++ b/virtManager/delete.py @@ -30,9 +30,7 @@ STORAGE_ROW_ICON_SIZE = 6 STORAGE_ROW_TOOLTIP = 7 -class vmmDeleteDialog(vmmGObjectUI): - - disk = None +class _vmmDeleteBase(vmmGObjectUI): @classmethod def show_instance(cls, parentobj, vm): try: @@ -46,6 +44,7 @@ class vmmDeleteDialog(vmmGObjectUI): def __init__(self): vmmGObjectUI.__init__(self, "delete.ui", "vmm-delete") self.vm = None + self.disk = None self.builder.connect_signals({ "on_vmm_delete_delete_event": self.close, @@ -58,6 +57,9 @@ class vmmDeleteDialog(vmmGObjectUI): self._init_state() + def _get_dialog_title(self): + raise NotImplementedError + def _init_state(self): blue = Gdk.Color.parse("#0072A8")[1] self.widget("header").modify_bg(Gtk.StateType.NORMAL, blue) @@ -77,8 +79,6 @@ class vmmDeleteDialog(vmmGObjectUI): self._set_vm(None) return 1 - def set_disk(self, disk): - self.disk = disk def _cleanup(self): pass @@ -99,10 +99,7 @@ class vmmDeleteDialog(vmmGObjectUI): def _reset_state(self): # Set VM name or disk.target in title' - if self.disk: - text = self.disk.target - else: - text = self.vm.get_name() + text = self._get_dialog_title() title_str = ("%s '%s'" % (_("Delete"), xmlutil.xml_escape(text))) @@ -282,6 +279,20 @@ class vmmDeleteDialog(vmmGObjectUI): vm.remove_device(dev) +class vmmDeleteDialog(_vmmDeleteBase): + def _get_dialog_title(self): + return self.vm.get_name() + + +class vmmDeleteStorage(_vmmDeleteBase): + def __init__(self, disk): + _vmmDeleteBase.__init__(self) + self.disk = disk + + def _get_dialog_title(self): + return self.disk.target + + ################### # UI init helpers # ################### diff --git a/virtManager/details/details.py b/virtManager/details/details.py index 339924ff3..01458dd84 100644 --- a/virtManager/details/details.py +++ b/virtManager/details/details.py @@ -1115,9 +1115,8 @@ class vmmDetails(vmmGObjectUI): self.remove_device(devobj) def remove_disk(self, disk): - from ..delete import vmmDeleteDialog - dialog = vmmDeleteDialog() - dialog.set_disk(disk) + from ..delete import vmmDeleteStorage + dialog = vmmDeleteStorage(disk) dialog.show(self.topwin, self.vm) def remove_xml_dev(self, src_ignore):