mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-03-09 08:58:27 +03:00
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:
parent
ec50dbd15d
commit
4971e47566
@ -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 = ("<span size='large' color='white'>%s '%s'</span>" %
|
||||
(_("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 #
|
||||
###################
|
||||
|
@ -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):
|
||||
|
Loading…
x
Reference in New Issue
Block a user