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 <crobinso@redhat.com>
This commit is contained in:
Lily Nie 2020-01-02 16:03:04 +08:00 committed by Cole Robinson
parent ec50dbd15d
commit 4971e47566
2 changed files with 22 additions and 12 deletions

View File

@ -30,9 +30,7 @@ STORAGE_ROW_ICON_SIZE = 6
STORAGE_ROW_TOOLTIP = 7 STORAGE_ROW_TOOLTIP = 7
class vmmDeleteDialog(vmmGObjectUI): class _vmmDeleteBase(vmmGObjectUI):
disk = None
@classmethod @classmethod
def show_instance(cls, parentobj, vm): def show_instance(cls, parentobj, vm):
try: try:
@ -46,6 +44,7 @@ class vmmDeleteDialog(vmmGObjectUI):
def __init__(self): def __init__(self):
vmmGObjectUI.__init__(self, "delete.ui", "vmm-delete") vmmGObjectUI.__init__(self, "delete.ui", "vmm-delete")
self.vm = None self.vm = None
self.disk = None
self.builder.connect_signals({ self.builder.connect_signals({
"on_vmm_delete_delete_event": self.close, "on_vmm_delete_delete_event": self.close,
@ -58,6 +57,9 @@ class vmmDeleteDialog(vmmGObjectUI):
self._init_state() self._init_state()
def _get_dialog_title(self):
raise NotImplementedError
def _init_state(self): def _init_state(self):
blue = Gdk.Color.parse("#0072A8")[1] blue = Gdk.Color.parse("#0072A8")[1]
self.widget("header").modify_bg(Gtk.StateType.NORMAL, blue) self.widget("header").modify_bg(Gtk.StateType.NORMAL, blue)
@ -77,8 +79,6 @@ class vmmDeleteDialog(vmmGObjectUI):
self._set_vm(None) self._set_vm(None)
return 1 return 1
def set_disk(self, disk):
self.disk = disk
def _cleanup(self): def _cleanup(self):
pass pass
@ -99,10 +99,7 @@ class vmmDeleteDialog(vmmGObjectUI):
def _reset_state(self): def _reset_state(self):
# Set VM name or disk.target in title' # Set VM name or disk.target in title'
if self.disk: text = self._get_dialog_title()
text = self.disk.target
else:
text = self.vm.get_name()
title_str = ("<span size='large' color='white'>%s '%s'</span>" % title_str = ("<span size='large' color='white'>%s '%s'</span>" %
(_("Delete"), xmlutil.xml_escape(text))) (_("Delete"), xmlutil.xml_escape(text)))
@ -282,6 +279,20 @@ class vmmDeleteDialog(vmmGObjectUI):
vm.remove_device(dev) 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 # # UI init helpers #
################### ###################

View File

@ -1115,9 +1115,8 @@ class vmmDetails(vmmGObjectUI):
self.remove_device(devobj) self.remove_device(devobj)
def remove_disk(self, disk): def remove_disk(self, disk):
from ..delete import vmmDeleteDialog from ..delete import vmmDeleteStorage
dialog = vmmDeleteDialog() dialog = vmmDeleteStorage(disk)
dialog.set_disk(disk)
dialog.show(self.topwin, self.vm) dialog.show(self.topwin, self.vm)
def remove_xml_dev(self, src_ignore): def remove_xml_dev(self, src_ignore):