patches/virt-manager-11-disable-remove-hardware.diff
author yippi
Mon, 27 Sep 2010 21:07:51 +0000
changeset 20108 51df67ca9307
parent 15942 40ffef79e81f
permissions -rw-r--r--
I had these modules listed as being owned by me, but they are really owned by wangke, correcting.

/jds/bin/diff -uprN virt-manager-0.6.1.old/src/virtManager/details.py virt-manager-0.6.1/src/virtManager/details.py
--- virt-manager-0.6.1.old/src/virtManager/details.py	2009-04-17 16:15:28.494732362 +0100
+++ virt-manager-0.6.1/src/virtManager/details.py	2009-04-17 16:17:36.385176287 +0100
@@ -955,6 +955,11 @@ class vmmDetails(gobject.GObject):
         else:
             button.hide()
 
+        if self.vm.is_active() and self.vm.is_hvm():
+            self.window.get_widget("config-disk-remove").set_sensitive(False)
+        else:
+            self.window.get_widget("config-disk-remove").set_sensitive(True)
+
     def refresh_network_page(self):
         netinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
         if not netinfo:
@@ -970,6 +975,11 @@ class vmmDetails(gobject.GObject):
         model = netinfo[6] or _("Hypervisor Default")
         self.window.get_widget("network-source-model").set_text(model)
 
+        if self.vm.is_active() and self.vm.is_hvm():
+            self.window.get_widget("config-network-remove").set_sensitive(False)
+        else:
+            self.window.get_widget("config-network-remove").set_sensitive(True)
+
     def refresh_input_page(self):
         inputinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
         if not inputinfo:
@@ -993,11 +1003,14 @@ class vmmDetails(gobject.GObject):
         else:
             self.window.get_widget("input-dev-mode").set_text(_("Relative Movement"))
 
-        # Can't remove primary Xen or PS/2 mice
-        if inputinfo[4] == "mouse" and inputinfo[3] in ("xen", "ps2"):
+        if self.vm.is_active() and self.vm.is_hvm():
             self.window.get_widget("config-input-remove").set_sensitive(False)
         else:
-            self.window.get_widget("config-input-remove").set_sensitive(True)
+            # Can't remove primary Xen or PS/2 mice
+            if inputinfo[4] == "mouse" and inputinfo[3] in ("xen", "ps2"):
+                self.window.get_widget("config-input-remove").set_sensitive(False)
+            else:
+                self.window.get_widget("config-input-remove").set_sensitive(True)
 
     def refresh_graphics_page(self):
         gfxinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
@@ -1028,12 +1041,21 @@ class vmmDetails(gobject.GObject):
             self.window.get_widget("graphics-password").set_text("N/A")
             self.window.get_widget("graphics-keymap").set_text("N/A")
 
+        if self.vm.is_active() and self.vm.is_hvm():
+            self.window.get_widget("config-graphics-remove").set_sensitive(False)
+        else:
+            self.window.get_widget("config-graphics-remove").set_sensitive(True)
+
     def refresh_sound_page(self):
         soundinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
         if not soundinfo:
             return
 
         self.window.get_widget("sound-model").set_text(soundinfo[2])
+        if self.vm.is_active() and self.vm.is_hvm():
+            self.window.get_widget("config-sound-remove").set_sensitive(False)
+        else:
+            self.window.get_widget("config-sound-remove").set_sensitive(True)
 
     def refresh_char_page(self):
         charinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
@@ -1048,6 +1070,11 @@ class vmmDetails(gobject.GObject):
         self.window.get_widget("char-target-port").set_text(charinfo[3])
         self.window.get_widget("char-source-path").set_text(charinfo[5] or "-")
 
+        if self.vm.is_active() and self.vm.is_hvm():
+            self.window.get_widget("config-char-remove").set_sensitive(False)
+        else:
+            self.window.get_widget("config-char-remove").set_sensitive(True)
+
     def refresh_hostdev_page(self):
         hostdevinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
         if not hostdevinfo:
@@ -1060,6 +1087,10 @@ class vmmDetails(gobject.GObject):
         self.window.get_widget("hostdev-mode").set_text(hostdevinfo[3])
         self.window.get_widget("hostdev-source").set_text(hostdevinfo[5])
 
+        if self.vm.is_active() and self.vm.is_hvm():
+            self.window.get_widget("config-hostdev-remove").set_sensitive(False)
+        else:
+            self.window.get_widget("config-hostdev-remove").set_sensitive(True)
 
     def refresh_boot_page(self):
         # Refresh autostart