[virt-tools-list] [virt-manager PATCH 2/2] details: introduce show_remove_button method
Chen Hanxiao
chenhanxiao at cn.fujitsu.com
Mon Apr 21 06:39:10 UTC 2014
Sometimes we need to set remove button as none-sensitive.
This patch introduces show_remove_button method as
the only interface for showing/removing,
also easy to maintain.
Signed-off-by: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>
---
virtManager/details.py | 37 +++++++++++++++++++++++++++++++++----
1 file changed, 33 insertions(+), 4 deletions(-)
diff --git a/virtManager/details.py b/virtManager/details.py
index 86a81eb..4944bce 100644
--- a/virtManager/details.py
+++ b/virtManager/details.py
@@ -433,6 +433,31 @@ def _icon_for_device(dev):
return typemap[devtype]
+def show_remove_button(dev):
+ # type, bus
+ Values = [[virtinst.VirtualController.TYPE_USB, None],
+ [virtinst.VirtualInputDevice.TYPE_MOUSE ,
+ virtinst.VirtualInputDevice.BUS_PS2],
+ [virtinst.VirtualInputDevice.TYPE_MOUSE,
+ virtinst.VirtualInputDevice.BUS_XEN]]
+ try:
+ DEV_TYPE = dev.type
+ except:
+ DEV_TYPE = None
+
+ try:
+ DEV_BUS = dev.bus
+ except:
+ DEV_BUS = None
+
+ DEV = [DEV_TYPE, DEV_BUS]
+
+ if DEV in Values:
+ return False
+ else:
+ return True
+
+
class vmmDetails(vmmGObjectUI):
__gsignals__ = {
"action-save-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
@@ -2754,10 +2779,10 @@ class vmmDetails(vmmGObjectUI):
self.widget("input-dev-mode").set_text(mode)
# Can't remove primary Xen or PS/2 mice
- if inp.type == "mouse" and inp.bus in ("xen", "ps2"):
- self.widget("config-remove").set_sensitive(False)
- else:
+ if show_remove_button(inp):
self.widget("config-remove").set_sensitive(True)
+ else:
+ self.widget("config-remove").set_sensitive(False)
def refresh_graphics_page(self):
gfx = self.get_hw_selection(HW_LIST_COL_DEVICE)
@@ -3036,12 +3061,16 @@ class vmmDetails(vmmGObjectUI):
model.append(["default", "Default"])
model.append(["ich9-ehci1", "USB 2"])
model.append(["nec-xhci", "USB 3"])
- self.widget("config-remove").set_sensitive(False)
elif dev.type == virtinst.VirtualController.TYPE_SCSI:
model.append(["default", "Default"])
model.append(["virtio-scsi", "VirtIO SCSI"])
else:
+ pass
+
+ if show_remove_button(dev):
self.widget("config-remove").set_sensitive(True)
+ else:
+ self.widget("config-remove").set_sensitive(False)
uiutil.set_combo_entry(self.widget("controller-model"),
dev.model or "Default")
--
1.9.0
More information about the virt-tools-list
mailing list