From 84717a0b7fd87e73192820d25de600849fc4d9e0 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Thu, 9 Jul 2009 14:35:36 -0400 Subject: [PATCH] Some 'Details' UI cleanup. The main change is removing the duplication of the 'Apply' and 'Remove' buttons in the UI. This has no functional change, but from a dev perspective this saves annoying duplication when new device support is added. Also fix up some minor layout and spacing issues. --- src/virtManager/details.py | 95 +- src/vmm-details.glade | 5238 +++++++++++++++++------------------- 2 files changed, 2539 insertions(+), 2794 deletions(-) diff --git a/src/virtManager/details.py b/src/virtManager/details.py index d223d4684..b228b594b 100644 --- a/src/virtManager/details.py +++ b/src/virtManager/details.py @@ -62,6 +62,12 @@ HW_LIST_TYPE_SOUND = 9 HW_LIST_TYPE_CHAR = 10 HW_LIST_TYPE_HOSTDEV = 11 +apply_pages = [ HW_LIST_TYPE_GENERAL, HW_LIST_TYPE_CPU, HW_LIST_TYPE_MEMORY, + HW_LIST_TYPE_BOOT] +remove_pages = [ HW_LIST_TYPE_DISK, HW_LIST_TYPE_NIC, HW_LIST_TYPE_INPUT, + HW_LIST_TYPE_GRAPHICS, HW_LIST_TYPE_SOUND, HW_LIST_TYPE_CHAR, + HW_LIST_TYPE_HOSTDEV ] + # Console pages PAGE_UNAVAILABLE = 0 PAGE_SCREENSHOT = 1 @@ -282,25 +288,18 @@ class vmmDetails(gobject.GObject): "on_details_pages_switch_page": self.switch_page, - "on_config_security_apply_clicked": self.config_security_apply, - "on_config_vcpus_apply_clicked": self.config_vcpus_apply, "on_config_vcpus_changed": self.config_vcpus_changed, "on_config_memory_changed": self.config_memory_changed, "on_config_maxmem_changed": self.config_maxmem_changed, - "on_config_memory_apply_clicked": self.config_memory_apply, "on_config_boot_device_changed": self.config_boot_options_changed, "on_config_autostart_changed": self.config_boot_options_changed, - "on_config_boot_apply_clicked": self.config_boot_options_apply, + + "on_config_apply_clicked": self.config_apply, + "on_details_help_activate": self.show_help, "on_config_cdrom_connect_clicked": self.toggle_cdrom, - "on_config_disk_remove_clicked": self.remove_xml_dev, - "on_config_network_remove_clicked": self.remove_xml_dev, - "on_config_input_remove_clicked": self.remove_xml_dev, - "on_config_graphics_remove_clicked": self.remove_xml_dev, - "on_config_sound_remove_clicked": self.remove_xml_dev, - "on_config_char_remove_clicked": self.remove_xml_dev, - "on_config_hostdev_remove_clicked": self.remove_xml_dev, + "on_config_remove_clicked": self.remove_xml_dev, "on_add_hardware_button_clicked": self.add_hardware, "on_details_menu_view_fullscreen_activate": self.toggle_fullscreen, @@ -661,10 +660,9 @@ class vmmDetails(gobject.GObject): def hw_selected(self, src=None): pagetype = self.get_hw_selection(HW_LIST_COL_TYPE) if pagetype is None: - self.window.get_widget("hw-panel").set_sensitive(True) self.window.get_widget("hw-list").get_selection().select_path(0) self.window.get_widget("hw-panel").set_current_page(0) - return + pagetype = 0 self.window.get_widget("hw-panel").set_sensitive(True) self.window.get_widget("hw-panel").show_all() @@ -674,14 +672,14 @@ class vmmDetails(gobject.GObject): elif pagetype == HW_LIST_TYPE_STATS: self.refresh_stats_page() elif pagetype == HW_LIST_TYPE_CPU: - self.window.get_widget("config-vcpus-apply").set_sensitive(False) + self.window.get_widget("config-apply").set_sensitive(False) self.refresh_config_cpu() elif pagetype == HW_LIST_TYPE_MEMORY: - self.window.get_widget("config-memory-apply").set_sensitive(False) + self.window.get_widget("config-apply").set_sensitive(False) self.refresh_config_memory() elif pagetype == HW_LIST_TYPE_BOOT: self.refresh_boot_page() - self.window.get_widget("config-boot-options-apply").set_sensitive(False) + self.window.get_widget("config-apply").set_sensitive(False) elif pagetype == HW_LIST_TYPE_DISK: self.refresh_disk_page() elif pagetype == HW_LIST_TYPE_NIC: @@ -699,6 +697,10 @@ class vmmDetails(gobject.GObject): else: pagetype = -1 + + self.window.get_widget("config-apply").set_property("visible", pagetype in apply_pages) + self.window.get_widget("config-remove").set_property("visible", pagetype in remove_pages) + self.window.get_widget("hw-panel").set_current_page(pagetype) def control_vm_pause(self, src): @@ -936,7 +938,7 @@ class vmmDetails(gobject.GObject): self.window.get_widget("security-label").set_text(vmlabel) semodel_combo.emit("changed") - self.window.get_widget("config-security-apply").set_sensitive(False) + self.window.get_widget("config-apply").set_sensitive(False) def refresh_stats_page(self): def _rx_tx_text(rx, tx, unit): @@ -988,12 +990,12 @@ class vmmDetails(gobject.GObject): self.window.get_widget("config-vcpus").get_adjustment().upper = self.vm.vcpu_max_count() self.window.get_widget("state-vm-maxvcpus").set_text("%d" % (self.vm.vcpu_max_count())) - if not(self.window.get_widget("config-vcpus-apply").get_property("sensitive")): + if not(self.window.get_widget("config-apply").get_property("sensitive")): self.window.get_widget("config-vcpus").get_adjustment().value = self.vm.vcpu_count() # XXX hack - changing the value above will have just re-triggered # the callback making apply button sensitive again. So we have to # turn it off again.... - self.window.get_widget("config-vcpus-apply").set_sensitive(False) + self.window.get_widget("config-apply").set_sensitive(False) self.window.get_widget("state-vm-vcpus").set_text("%d" % (self.vm.vcpu_count())) def refresh_config_memory(self): @@ -1002,7 +1004,7 @@ class vmmDetails(gobject.GObject): curmem = self.window.get_widget("config-memory").get_adjustment() maxmem = self.window.get_widget("config-maxmem").get_adjustment() - if self.window.get_widget("config-memory-apply").get_property("sensitive"): + if self.window.get_widget("config-apply").get_property("sensitive"): memval = self.config_get_memory() maxval = self.config_get_maxmem() if maxval < memval: @@ -1014,7 +1016,7 @@ class vmmDetails(gobject.GObject): # XXX hack - changing the value above will have just re-triggered # the callback making apply button sensitive again. So we have to # turn it off again.... - self.window.get_widget("config-memory-apply").set_sensitive(False) + self.window.get_widget("config-apply").set_sensitive(False) if not self.window.get_widget("config-memory").get_property("sensitive"): maxmem.lower = curmem.value @@ -1099,9 +1101,9 @@ class vmmDetails(gobject.GObject): # 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) + self.window.get_widget("config-remove").set_sensitive(False) else: - self.window.get_widget("config-input-remove").set_sensitive(True) + self.window.get_widget("config-remove").set_sensitive(True) def refresh_graphics_page(self): gfxinfo = self.get_hw_selection(HW_LIST_COL_DEVICE) @@ -1550,19 +1552,19 @@ class vmmDetails(gobject.GObject): if idx < 0: return - self.window.get_widget("config-security-apply").set_sensitive(True) + self.window.get_widget("config-apply").set_sensitive(True) val = model[idx][0] show_type = (val == "selinux") self.window.get_widget("security-type-box").set_sensitive(show_type) def security_label_changed(self, label): - self.window.get_widget("config-security-apply").set_sensitive(True) + self.window.get_widget("config-apply").set_sensitive(True) def security_type_changed(self, button, sensitive = True): - self.window.get_widget("config-security-apply").set_sensitive(True) + self.window.get_widget("config-apply").set_sensitive(True) self.window.get_widget("security-label").set_sensitive(not button.get_active()) - def config_security_apply(self, src): + def config_security_apply(self): combo = self.window.get_widget("security-model") model = combo.get_model() semodel = model[combo.get_active()][0] @@ -1583,20 +1585,32 @@ class vmmDetails(gobject.GObject): "".join(traceback.format_exc())) return - self.window.get_widget("config-security-apply").set_sensitive(False) + self.window.get_widget("config-apply").set_sensitive(False) # ----------------------- # Hardware Section Pieces # ----------------------- - def config_vcpus_changed(self, src): - self.window.get_widget("config-vcpus-apply").set_sensitive(True) + def config_apply(self, ignore): + pagetype = self.get_hw_selection(HW_LIST_COL_TYPE) - def config_vcpus_apply(self, src): + if pagetype is HW_LIST_TYPE_GENERAL: + self.config_security_apply() + elif pagetype is HW_LIST_TYPE_CPU: + self.config_vcpus_apply() + elif pagetype is HW_LIST_TYPE_MEMORY: + self.config_memory_apply() + elif pagetype is HW_LIST_TYPE_BOOT: + self.config_boot_options_apply() + + def config_vcpus_changed(self, src): + self.window.get_widget("config-apply").set_sensitive(True) + + def config_vcpus_apply(self): vcpus = self.window.get_widget("config-vcpus").get_adjustment().value logging.info("Setting vcpus for " + self.vm.get_uuid() + " to " + str(vcpus)) self.vm.set_vcpu_count(vcpus) - self.window.get_widget("config-vcpus-apply").set_sensitive(False) + self.window.get_widget("config-apply").set_sensitive(False) def config_get_maxmem(self): maxadj = self.window.get_widget("config-maxmem").get_adjustment() @@ -1617,10 +1631,10 @@ class vmmDetails(gobject.GObject): return mem def config_maxmem_changed(self, src): - self.window.get_widget("config-memory-apply").set_sensitive(True) + self.window.get_widget("config-apply").set_sensitive(True) def config_memory_changed(self, src): - self.window.get_widget("config-memory-apply").set_sensitive(True) + self.window.get_widget("config-apply").set_sensitive(True) maxadj = self.window.get_widget("config-maxmem").get_adjustment() @@ -1629,7 +1643,7 @@ class vmmDetails(gobject.GObject): maxadj.value = mem maxadj.lower = mem - def config_memory_apply(self, src): + def config_memory_apply(self): self.refresh_config_memory() hotplug_err = False @@ -1662,12 +1676,12 @@ class vmmDetails(gobject.GObject): self.err.show_info(_("These changes will take effect after the " "next guest reboot. ")) - self.window.get_widget("config-memory-apply").set_sensitive(False) + self.window.get_widget("config-apply").set_sensitive(False) def config_boot_options_changed(self, src): - self.window.get_widget("config-boot-options-apply").set_sensitive(True) + self.window.get_widget("config-apply").set_sensitive(True) - def config_boot_options_apply(self, src): + def config_boot_options_apply(self): boot = self.window.get_widget("config-boot-device") auto = self.window.get_widget("config-autostart") if auto.get_property("sensitive"): @@ -1680,7 +1694,7 @@ class vmmDetails(gobject.GObject): if boot.get_property("sensitive"): try: self.vm.set_boot_device(boot.get_model()[boot.get_active()][2]) - self.window.get_widget("config-boot-options-apply").set_sensitive(False) + self.window.get_widget("config-apply").set_sensitive(False) except Exception, e: self.err.show_err(_("Error changing boot device: %s" % str(e)), "".join(traceback.format_exc())) @@ -1699,8 +1713,11 @@ class vmmDetails(gobject.GObject): self.window.get_widget("hw-list").set_model(hw_list_model) hwCol = gtk.TreeViewColumn("Hardware") + hwCol.set_spacing(24) hw_txt = gtk.CellRendererText() + hw_txt.set_property("xpad", 2) hw_img = gtk.CellRendererPixbuf() + hw_img.set_property("xpad", 4) hwCol.pack_start(hw_txt, True) hwCol.pack_start(hw_img, False) hwCol.add_attribute(hw_txt, 'text', HW_LIST_COL_LABEL) diff --git a/src/vmm-details.glade b/src/vmm-details.glade index 194d1a8d1..dcb4a93fd 100644 --- a/src/vmm-details.glade +++ b/src/vmm-details.glade @@ -1,6 +1,6 @@ - + Virtual Machine @@ -430,7 +430,7 @@ - False + True @@ -443,7 +443,7 @@ - False + True @@ -454,19 +454,11 @@ True - - False - False - True - - False - False - @@ -475,7 +467,7 @@ - False + True @@ -757,60 +749,785 @@ - + True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + 6 + 12 - + True - GTK_SHADOW_NONE + 6 - + True True - 230 + GTK_POLICY_NEVER + GTK_POLICY_AUTOMATIC + GTK_SHADOW_IN - + True - 6 - 6 + True + False + + + + + + + True + True + 0 + + + + True + 0 + 0 - + True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN + 2 - + True - True - False + gtk-add + + False + False + + + + + True + _Add Hardware + True + + + False + False + 1 + + + + + + False + False + 1 + + + + + False + + + + + True + 6 + + + True + True + False + 0 + 0 + 0 + + + True + 3 + 12 - + + True + 12 + + + True + 3 + 0 + GTK_SHADOW_NONE + + + True + 12 + + + True + 3 + 3 + 2 + 6 + 6 + + + True + 0 + test-vm + True + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 0 + 8ffc926e-b4da-b3b6-552f-e37b92f918d5 + True + + + 1 + 2 + 1 + 2 + + + + + + True + 3 + + + True + gtk-stop + + + False + + + + + True + 0 + Shut down + + + False + 1 + + + + + 1 + 2 + 2 + 3 + GTK_FILL + GTK_FILL + + + + + True + 1 + Name: + + + GTK_FILL + + + + + + True + 1 + UUID: + + + 1 + 2 + GTK_FILL + + + + + + True + 1 + Status: + + + 2 + 3 + GTK_FILL + + + + + + + + + + True + <b>Basic details</b> + True + + + label_item + + + + + + + False + + + + + True + 3 + 0 + GTK_SHADOW_NONE + + + True + 12 + + + True + 3 + 3 + 2 + 6 + 6 + + + True + 1 + Emulator: + + + 2 + 3 + GTK_FILL + GTK_FILL + + + + + True + 0 + foo + + + 1 + 2 + 2 + 3 + GTK_FILL + GTK_FILL + + + + + True + 0 + foo + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 0 + foo + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + Architecture: + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 1 + Hypervisor: + + + GTK_FILL + GTK_FILL + + + + + + + + + True + <b>Machine Details</b> + True + + + label_item + + + + + False + 1 + + + + True True - 0 - + 3 - + True - 0 - 0 + 12 - + True - 2 + 2 + 2 + 6 + 6 - + True - gtk-add + 1 + 0 + Type: + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 1 + Model: + + + GTK_FILL + GTK_FILL + + + + + True + 3 + 2 + 6 + 6 + + + True + True + 0 + gtk-info + + + 1 + 2 + + + + + + True + True + 0 + gtk-info + + + 1 + 2 + 1 + 2 + + + + + + True + True + Static + True + 0 + True + security-dynamic + + + 1 + 2 + GTK_FILL + + + + + True + True + Dynamic + True + 0 + True + + + + + + + + + + True + 6 + + + True + 20 + + + True + 0 + Label: + + + + + False + + + + + True + True + + + + + 1 + + + + + 2 + 2 + 3 + GTK_FILL + GTK_EXPAND + + + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + True + 6 + + + True + + + + + False + False + + + + + + + + 1 + 2 + GTK_FILL + + + + + + + + + + True + <b>Security</b> + True + + + label_item + + + + + 2 + + + + + + + True + Overview + + + tab + False + + + + + True + + + True + 3 + 0 + GTK_SHADOW_NONE + + + True + 12 + + + True + 3 + 4 + 3 + 6 + 8 + + + + + + + + + + + + + + + True + 0 + 0 KBytes/s +0KBytes/s + True + + + 2 + 3 + 3 + 4 + GTK_FILL + + + + + + True + 0 + 0 KBytes/s +0KBytes/s + True + + + 2 + 3 + 2 + 3 + GTK_FILL + + + + + + True + 0 + 30 MB of +128 MB + + + 2 + 3 + 1 + 2 + GTK_FILL + + + + + + True + 0 + 18% + + + 2 + 3 + GTK_FILL + + + + + + True + 1 + Network +I/O: + GTK_JUSTIFY_RIGHT + + + 3 + 4 + GTK_FILL + + + + + + True + 1 + Disk +I/O: + GTK_JUSTIFY_RIGHT + + + 2 + 3 + GTK_FILL + + + + + + True + 1 + Memory +usage: + GTK_JUSTIFY_RIGHT + + + 1 + 2 + GTK_FILL + + + + + + True + 1 + CPU +usage: + GTK_JUSTIFY_RIGHT + + + GTK_FILL + + + + + + + + + + True + <b>Performance</b> + True + + + label_item + + + + + 15 + + + + + 1 + + + + + True + Stats + + + tab + 1 + False + + + + + True + + + True + 0 + GTK_SHADOW_NONE + + + True + 5 + 3 + 12 + + + True + + + True + 0 + How many virtual CPUs should be allocated for this machine? + True False @@ -818,10 +1535,128 @@ - + True - _Add Hardware - True + 3 + 4 + 2 + 3 + 3 + + + True + True + 2 1 32 1 2 0 + 1 + True + GTK_UPDATE_IF_VALID + + Virtual CPU Select + + + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + + True + 0 + 2 + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + 8 + + + 1 + 2 + 3 + 4 + GTK_FILL + + + + + + True + 0 + 8 + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + True + 1 + Total CPUs on host machine: + + + 3 + 4 + GTK_FILL + + + + + + True + 1 + Maximum allocation: + + + 2 + 3 + GTK_FILL + + + + + + True + 1 + Change allocation: + + + 1 + 2 + GTK_FILL + + + + + + True + 1 + Current allocation: + + + GTK_FILL + + + False @@ -833,6 +1668,61 @@ + + + True + <b>CPUs</b> + True + + + label_item + + + + + False + False + 15 + + + + + True + + + True + 13 + + + True + gtk-info + + + + + False + False + + + + + True + 3 + + + True + <b>Tip:</b> For best performance, the number of virtual CPUs should be less than (or equal to) the number of physical CPUs on the host system. + True + True + + + + + False + False + 1 + + False @@ -842,577 +1732,89 @@ - False - True + 2 - + + True + Proc + + + tab + 2 + False + + + + True - True - + True - 3 - 12 + 0 + GTK_SHADOW_NONE - + True - 12 + 5 + 3 + 12 - + True - 3 - 0 - GTK_SHADOW_NONE - + True - 12 - - - True - 3 - 3 - 2 - 6 - 6 - - - True - 0 - test-vm - True - - - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - 0 - 8ffc926e-b4da-b3b6-552f-e37b92f918d5 - True - - - 1 - 2 - 1 - 2 - - - - - - True - 3 - - - True - gtk-stop - - - False - - - - - True - 0 - Shut down - - - False - 1 - - - - - 1 - 2 - 2 - 3 - GTK_FILL - GTK_FILL - - - - - True - 1 - Name: - - - GTK_FILL - - - - - - True - 1 - UUID: - - - 1 - 2 - GTK_FILL - - - - - - True - 1 - Status: - - - 2 - 3 - GTK_FILL - - - - - - - - - - True - <b>Basic details</b> - True + 0 + How much memory should be allocated for this machine? + True - label_item + False + False - - - - - False - - - - - True - 3 - 0 - GTK_SHADOW_NONE - - - True - 12 - + True 3 - 3 + 4 2 - 6 - 6 + 3 + 3 - + True - 1 - Emulator: - - - 2 - 3 - GTK_FILL - GTK_FILL - - - - - True - 0 - foo - - - 1 - 2 - 2 - 3 - GTK_FILL - GTK_FILL - - - - - True - 0 - foo - - - 1 - 2 - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - 0 - foo - - - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - Architecture: - - - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - 1 - Hypervisor: - - - GTK_FILL - GTK_FILL - - - - - - - - - True - <b>Machine Details</b> - True - - - label_item - - - - - False - 1 - - - - - True - True - 3 - - - True - 12 - - - True - 2 - 2 - 6 - 6 - - - True - 1 - 0 - Type: - - - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - 1 - Model: - - - GTK_FILL - GTK_FILL - - - - - True - 3 - 2 - 6 - 6 - - True - True - 0 - gtk-info - - - 1 - 2 - - - - - - True - True - 0 - gtk-info - - - 1 - 2 - 1 - 2 - - - - - + True True - Static - True - 0 - True - security-dynamic + 50 50 32000 1 25 0 + 2 + True + GTK_UPDATE_IF_VALID + + Max Memory Select + + - - 1 - 2 - GTK_FILL - - + True - True - Dynamic - True - 0 - True - - - - - - - - - - True - 6 - - - True - 20 - - - True - 0 - Label: - - - - - False - - - - - True - True - - - - - 1 - - - - - 2 - 2 - 3 - GTK_FILL - GTK_EXPAND - - - - - 1 - 2 - 1 - 2 - GTK_FILL - - - - - True - 6 - - - True - - + MB False False + 1 - - - 1 2 - GTK_FILL - - - - - - - - - - True - <b>Security</b> - True - - - label_item - - - - - 2 - - - - - True - 6 - 5 - GTK_BUTTONBOX_END - - - True - False - True - True - gtk-apply - True - 0 - - - - - - False - 3 - - - - - - - True - Overview - - - tab - False - - - - - True - - - True - 3 - 0 - GTK_SHADOW_NONE - - - True - 12 - - - True - 3 - 4 - 3 - 6 - 8 - - - - - - - - - - - - - - - True - 0 - 0 KBytes/s -0KBytes/s - True - - - 2 - 3 - 3 - 4 - GTK_FILL - - - - - - True - 0 - 0 KBytes/s -0KBytes/s - True - - - 2 - 3 2 3 GTK_FILL @@ -1420,2247 +1822,1573 @@ - + True - 0 - 30 MB of -128 MB - - - 2 - 3 - 1 - 2 - GTK_FILL - - - - - - True - 0 - 18% - - - 2 - 3 - GTK_FILL - - - - - - True - 1 - Network -I/O: - GTK_JUSTIFY_RIGHT - - - 3 - 4 - GTK_FILL - - - - - - True - 1 - Disk -I/O: - GTK_JUSTIFY_RIGHT - - - 2 - 3 - GTK_FILL - - - - - - True - 1 - Memory -usage: - GTK_JUSTIFY_RIGHT - - - 1 - 2 - GTK_FILL - - - - - - True - 1 - CPU -usage: - GTK_JUSTIFY_RIGHT - - - GTK_FILL - - - - - - - - - - True - <b>Performance</b> - True - - - label_item - - - - - 15 - - - - - 1 - - - - - True - Stats - - - tab - 1 - False - - - - - True - - - True - 0 - GTK_SHADOW_NONE - - - True - 5 - 3 - 12 - - - True - - - True - 0 - How many virtual CPUs should be allocated for this machine? - True - - - False - False - - - - - True - 3 - 4 - 2 - 3 - 3 - + True True - 2 1 32 1 2 0 - 1 + 50 50 32000 1 25 0 + 2 True GTK_UPDATE_IF_VALID - Virtual CPU Select + Memory Select - + - - 1 - 2 - 1 - 2 - GTK_FILL - - - + True - 0 - 2 + MB - 1 - 2 - GTK_FILL - - - - - - True - 0 - 8 - - - 1 - 2 - 3 - 4 - GTK_FILL - - - - - - True - 0 - 8 - - - 1 - 2 - 2 - 3 - GTK_FILL - - - - - - True - 1 - Total CPUs on host machine: - - - 3 - 4 - GTK_FILL - - - - - - True - 1 - Maximum allocation: - - - 2 - 3 - GTK_FILL - - - - - - True - 1 - Change allocation: - - - 1 - 2 - GTK_FILL - - - - - - True - 1 - Current allocation: - - - GTK_FILL - + False + False + 1 - False - False - 1 + 1 + 2 + 1 + 2 + GTK_FILL + - - - - - - - True - <b>CPUs</b> - True - - - label_item - - - - - False - False - 15 - - - - - True - - - True - 13 - - - True - gtk-info - - - - - False - False - - - - - True - 3 - - - True - <b>Tip:</b> For best performance, the number of virtual CPUs should be less than (or equal to) the number of physical CPUs on the host system. - True - True - - - - - False - False - 1 - - - - - False - False - 1 - - - - - True - 6 - 5 - GTK_BUTTONBOX_END - - - True - False - True - True - gtk-apply - True - 0 - - - - False - False - - - - - False - False - GTK_PACK_END - 2 - - - - - 2 - - - - - True - Proc - - - tab - 2 - False - - - - - True - - - True - 0 - GTK_SHADOW_NONE - - - True - 5 - 3 - 12 - - - True - + True 0 - How much memory should be allocated for this machine? - True + 200 MB - False - False + 1 + 2 + GTK_FILL + - + True - 3 - 4 - 2 - 3 - 3 - - - True - - - True - True - 50 50 32000 1 25 0 - 2 - True - GTK_UPDATE_IF_VALID - - Max Memory Select - - - - - - - True - MB - - - False - False - 1 - - - - - 1 - 2 - 2 - 3 - GTK_FILL - - - - - - True - - - True - True - 50 50 32000 1 25 0 - 2 - True - GTK_UPDATE_IF_VALID - - Memory Select - - - - - - - True - MB - - - False - False - 1 - - - - - 1 - 2 - 1 - 2 - GTK_FILL - - - - - - True - 0 - 200 MB - - - 1 - 2 - GTK_FILL - - - - - - True - 0 - 2 GB - - - 1 - 2 - 3 - 4 - GTK_FILL - - - - - - True - 1 - Total memory on host machine: - - - 3 - 4 - GTK_FILL - - - - - - True - 1 - Maximum allocation: - - - 2 - 3 - GTK_FILL - - - - - - True - 1 - Change allocation: - - - 1 - 2 - GTK_FILL - - - - - - True - 1 - Current allocation: - - - GTK_FILL - - - + 0 + 2 GB - False - False - 1 + 1 + 2 + 3 + 4 + GTK_FILL + - - - - - - - True - <b>Memory</b> - True - - - label_item - - - - - 15 - - - - - True - 6 - 5 - GTK_BUTTONBOX_END - - - True - False - True - True - gtk-apply - True - 0 - - - - False - False - - - - - False - False - 1 - - - - - 3 - - - - - True - Mem - - - tab - 3 - False - - - - - True - - - True - - - True - 0 - GTK_SHADOW_NONE - - - True - 12 - + True - True - Start virtual machine on host boot up - True - 0 - True - + 1 + Total memory on host machine: + + 3 + 4 + GTK_FILL + + + + + + True + 1 + Maximum allocation: + + + 2 + 3 + GTK_FILL + + + + + + True + 1 + Change allocation: + + + 1 + 2 + GTK_FILL + + + + + + True + 1 + Current allocation: + + + GTK_FILL + + - - - - - True - <b>Autostart</b> - True - label_item + False + False + 1 - - False - False - 15 - - - - - True - 0 - GTK_SHADOW_NONE - - - True - 12 - - - True - 2 - - - True - - - - 1 - 2 - GTK_FILL - - - - - True - 0 - Device virtual machine will boot from: - - - - - - - - - - - - - True - <b>Boot Device</b> - True - - - label_item - - - - - False - 15 - 1 - - + True - 6 - 5 - GTK_BUTTONBOX_END - - - True - False - True - True - gtk-apply - True - 0 - - - - False - False - - + <b>Memory</b> + True - False - False - 1 + label_item - 4 - - - - - True - Boot - - - tab - 4 - False - - - - - True - - - True - 0 - GTK_SHADOW_NONE - - - True - 5 - 3 - 12 - - - True - 3 - 6 - 3 - 8 - 4 - - - - - - - - - - - - True - True - True - gtk-connect - True - 0 - - - - 2 - 3 - 3 - - - - - - - True - 0 - True - - - 1 - 2 - 4 - 5 - GTK_FILL - - - - - - True - 1 - Target bus: - - - 4 - 5 - GTK_FILL - - - - - - True - 0 - label423 - True - - - 1 - 2 - 5 - 6 - GTK_FILL - - - - - - True - 1 - Permissions: - - - 5 - 6 - GTK_FILL - - - - - - True - 0 - Block - True - - - 1 - 2 - GTK_FILL - - - - - - True - 0 - disk - True - - - 1 - 2 - 2 - 3 - GTK_FILL - - - - - - True - 0 - label393 - True - - - 1 - 2 - 3 - 4 - GTK_FILL - - - - - - True - 1 - Target device: - True - - - 3 - 4 - GTK_FILL - - - - - - True - 1 - Target type: - True - - - 2 - 3 - GTK_FILL - - - - - - True - 1 - Source path: - True - - - 1 - 2 - GTK_FILL - - - - - - True - 1 - Source type: - True - GTK_JUSTIFY_RIGHT - - - GTK_FILL - - - - - - True - 0 - label402 - True - PANGO_ELLIPSIZE_START - - - 1 - 2 - 1 - 2 - - - - - - - - - - True - <b>Virtual Disk</b> - True - - - label_item - - - - - False - False - 15 - - - - - True - - - True - 13 - - - True - 0 - gtk-info - - - - - False - False - - - - - True - 3 - - - True - 0 - <b>Tip:</b> 'source' refers to information seen from the host OS, while 'target' refers to information seen from the guest OS - True - True - - - - - False - False - 1 - - - - - 1 - - - - - True - 6 - GTK_BUTTONBOX_END - - - True - True - True - gtk-remove - True - 0 - - - - False - False - - - - - False - 3 - - - - - True - 5 - GTK_BUTTONBOX_END - - - False - False - GTK_PACK_END - 2 - - - - - 5 - - - - - True - Disk - - - tab - 5 - False - - - - - True - - - True - 0 - GTK_SHADOW_NONE - - - True - 5 - 3 - 12 - - - True - 3 - 4 - 2 - 8 - 4 - - - True - 0 - True - - - 1 - 2 - 2 - 3 - GTK_FILL - - - - - - True - 1 - Source model: - - - 2 - 3 - GTK_FILL - - - - - - True - 1 - MAC address: - True - network-mac-address - - - 3 - 4 - GTK_FILL - - - - - - True - True - False - - MAC Address Field - - - - 1 - 2 - 3 - 4 - - - - - - True - 0 - label401 - True - - - 1 - 2 - 1 - 2 - GTK_FILL - - - - - - True - 0 - label395 - True - - - 1 - 2 - GTK_FILL - - - - - - True - 1 - Source device: - - - 1 - 2 - GTK_FILL - - - - - - True - 1 - Source type: - True - - - GTK_FILL - - - - - - - - - - True - <b>Virtual Network Interface</b> - True - - - label_item - - - - - False - False - 15 - - - - - True - - - True - 13 - - - True - 0 - gtk-info - - - - - False - False - - - - - True - 3 - - - True - 0 - <b>Tip:</b> 'Source device' refers to the name of the device as seen from the host OS. - True - True - - - - - False - False - 1 - - - - - 1 - - - - - True - 6 - GTK_BUTTONBOX_END - - - True - True - True - gtk-remove - True - 0 - - - - False - False - - - - - False - False - 2 - - - - - 6 - - - - - True - Net - - - tab - 6 - False - - - - - True - - - True - 0 - GTK_SHADOW_NONE - - - True - 5 - 3 - 12 - - - True - 3 - 2 - 2 - 8 - 4 - - - True - 0 - label403 - True - - - 1 - 2 - - - - - - True - 0 - label401 - True - - - 1 - 2 - 1 - 2 - GTK_FILL - - - - - - True - 1 - Mode: - - - 1 - 2 - GTK_FILL - - - - - - True - 1 - Type: - True - - - GTK_FILL - - - - - - - - - - True - <b>Virtual Pointer</b> - True - - - label_item - - - - - False - False - 15 - - - - - True - - - True - 13 - - - True - 0 - gtk-info - - - - - False - False - - - - - True - 3 - - - True - 0 - <b>Tip:</b> A graphics tablet configured as the default pointer in the guest OS will ensure that the virtual cursor moves in sync with the local desktop cursor. - True - True - - - - - False - False - 1 - - - - - 1 - - - - - True - 6 - GTK_BUTTONBOX_END - - - True - True - True - gtk-remove - True - 0 - - - - False - False - - - - - False - False - 2 - - - - - 7 - - - - - True - Input - - - tab - 7 - False - - - - - True - - - True - 0 - GTK_SHADOW_NONE - - - True - 5 - 3 - 12 - - - True - 3 - 5 - 2 - 8 - 4 - - - True - 1 - Keymap: - - - 4 - 5 - GTK_FILL - - - - - - True - 1 - Password: - - - 3 - 4 - GTK_FILL - - - - - - True - 1 - Type: - True - - - GTK_FILL - - - - - - True - 1 - Address: - - - 1 - 2 - GTK_FILL - - - - - - True - 1 - Port: - - - 2 - 3 - GTK_FILL - - - - - - True - 0 - label401 - True - - - 1 - 2 - 1 - 2 - GTK_FILL - - - - - - True - 0 - label401 - True - - - 1 - 2 - 2 - 3 - GTK_FILL - - - - - - True - 0 - label401 - True - - - 1 - 2 - 3 - 4 - GTK_FILL - - - - - - True - 0 - keylabel - True - - - 1 - 2 - 4 - 5 - GTK_FILL - - - - - - True - 0 - label403 - True - - - 1 - 2 - - 1 - - - - - - - - - True - <b>Virtual Display</b> - True - - - label_item - - - - - 15 - - - - - True - 6 - GTK_BUTTONBOX_END - - - True - True - True - gtk-remove - True - 0 - - - - False - False - - - - - False - 1 - - - - - 8 - - - - - True - Graphics - - - tab - 8 - False - - - - - True - - - True - 0 - GTK_SHADOW_NONE - - - True - 5 - 3 - 12 - - - True - 3 - 2 - 8 - 4 - - - True - 0 - insert sound model - True - - - 1 - 2 - GTK_FILL - - 1 - - - - - True - 0 - Device Model: - - - GTK_FILL - - - - - - - - - - True - <b>Sound Device</b> - True - - - label_item - - - - - 15 - - - - - True - 6 - GTK_BUTTONBOX_END - - - True - True - True - gtk-remove - True - 0 - - - - False - False - - - - - False - 1 - - - - - 9 - - - - - True - Sound - - - tab - 9 - False - - - - - True - - - True - 0 - GTK_SHADOW_NONE - - - True - 12 - - - True - 3 - 3 - 2 - 8 - 4 - - - True - 0 - label508 - True - - - 1 - 2 - 2 - 3 - GTK_FILL - - - - - - True - 0 - label507 - True - - - 1 - 2 - 1 - 2 - GTK_FILL - - - - - - True - 0 - label506 - True - - - 1 - 2 - GTK_FILL - - - - - - True - 1 - Source Path: - - - 2 - 3 - GTK_FILL - - - - - - True - 1 - Target Port: - - - 1 - 2 - GTK_FILL - - - - - - True - 1 - Device Type: - - - GTK_FILL - - - - - - - - - - True - <b>insert type</b> - True - - - label_item - - - - - 15 - - - - - True - 6 - GTK_BUTTONBOX_END - - - True - True - True - gtk-remove - True - 0 - - - - False - False - - - - - False - 1 - - - - - 10 - - - - - True - Char - - - tab - 10 - False - - - - - True - - - True - 0 - GTK_SHADOW_NONE - - - True - 5 - 12 - - - True - 3 - 2 - 8 - 4 - - - True - 1 - Source Device: - - - 2 - 3 - GTK_FILL - GTK_FILL - - - - - True - 1 - Device Type: - - - GTK_FILL - - - - - - True - 1 - Device Mode: - - - 1 - 2 - GTK_FILL - - - - - - True - 0 - label - - - 1 - 2 - - - - - - True - 0 - label - - - 1 - 2 - 1 - 2 - - - - - - True - 0 - label - - - 1 - 2 - 2 - 3 - - - - - - - - - - True - <b>Physical Host Device</b> - True - - - label_item - - - - - 15 - - - - - True - 6 - GTK_BUTTONBOX_END - - - True - True - True - gtk-remove - True - 0 - - - - False - False - - - - - False - 1 - - - - - 11 - - - - - True - Hostdev - - - tab - 11 - False + 15 - True - True + 3 + + + + + True + Mem + + + tab + 3 + False + + + + + True + + + True + + + True + 0 + GTK_SHADOW_NONE + + + True + 12 + + + True + True + Start virtual machine on host boot up + True + 0 + True + + + + + + + + True + <b>Autostart</b> + True + + + label_item + + + + + False + False + 15 + + + + + True + 0 + GTK_SHADOW_NONE + + + True + 12 + + + True + 2 + + + True + + + + 1 + 2 + GTK_FILL + + + + + True + 0 + Device virtual machine will boot from: + + + + + + + + + + + + + True + <b>Boot Device</b> + True + + + label_item + + + + + False + 15 + 1 + + + + + + + 4 + + + + + True + Boot + + + tab + 4 + False + + + + + True + + + True + 0 + GTK_SHADOW_NONE + + + True + 5 + 3 + 12 + + + True + 3 + 6 + 3 + 8 + 4 + + + + + + + + + + + + True + True + True + gtk-connect + True + 0 + + + + 2 + 3 + 3 + + + + + + + True + 0 + True + + + 1 + 2 + 4 + 5 + GTK_FILL + + + + + + True + 1 + Target bus: + + + 4 + 5 + GTK_FILL + + + + + + True + 0 + label423 + True + + + 1 + 2 + 5 + 6 + GTK_FILL + + + + + + True + 1 + Permissions: + + + 5 + 6 + GTK_FILL + + + + + + True + 0 + Block + True + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + disk + True + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + True + 0 + label393 + True + + + 1 + 2 + 3 + 4 + GTK_FILL + + + + + + True + 1 + Target device: + True + + + 3 + 4 + GTK_FILL + + + + + + True + 1 + Target type: + True + + + 2 + 3 + GTK_FILL + + + + + + True + 1 + Source path: + True + + + 1 + 2 + GTK_FILL + + + + + + True + 1 + Source type: + True + GTK_JUSTIFY_RIGHT + + + GTK_FILL + + + + + + True + 0 + label402 + True + PANGO_ELLIPSIZE_START + + + 1 + 2 + 1 + 2 + + + + + + + + + + True + <b>Virtual Disk</b> + True + + + label_item + + + + + False + False + 15 + + + + + True + + + True + 13 + + + True + 0 + gtk-info + + + + + False + False + + + + + True + 3 + + + True + 0 + <b>Tip:</b> 'source' refers to information seen from the host OS, while 'target' refers to information seen from the guest OS + True + True + + + + + False + False + 1 + + + + + 1 + + + + + True + 5 + GTK_BUTTONBOX_END + + + False + False + GTK_PACK_END + 2 + + + + + 5 + + + + + True + Disk + + + tab + 5 + False + + + + + True + + + True + 0 + GTK_SHADOW_NONE + + + True + 5 + 3 + 12 + + + True + 3 + 4 + 2 + 8 + 4 + + + True + 0 + True + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + True + 1 + Source model: + + + 2 + 3 + GTK_FILL + + + + + + True + 1 + MAC address: + True + network-mac-address + + + 3 + 4 + GTK_FILL + + + + + + True + True + False + + MAC Address Field + + + + 1 + 2 + 3 + 4 + + + + + + True + 0 + label401 + True + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + + True + 0 + label395 + True + + + 1 + 2 + GTK_FILL + + + + + + True + 1 + Source device: + + + 1 + 2 + GTK_FILL + + + + + + True + 1 + Source type: + True + + + GTK_FILL + + + + + + + + + + True + <b>Virtual Network Interface</b> + True + + + label_item + + + + + False + False + 15 + + + + + True + + + True + 13 + + + True + 0 + gtk-info + + + + + False + False + + + + + True + 3 + + + True + 0 + <b>Tip:</b> 'Source device' refers to the name of the device as seen from the host OS. + True + True + + + + + False + False + 1 + + + + + 1 + + + + + 6 + + + + + True + Net + + + tab + 6 + False + + + + + True + + + True + 0 + GTK_SHADOW_NONE + + + True + 5 + 3 + 12 + + + True + 3 + 2 + 2 + 8 + 4 + + + True + 0 + label403 + True + + + 1 + 2 + + + + + + True + 0 + label401 + True + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + + True + 1 + Mode: + + + 1 + 2 + GTK_FILL + + + + + + True + 1 + Type: + True + + + GTK_FILL + + + + + + + + + + True + <b>Virtual Pointer</b> + True + + + label_item + + + + + False + False + 15 + + + + + True + + + True + 13 + + + True + 0 + gtk-info + + + + + False + False + + + + + True + 3 + + + True + 0 + <b>Tip:</b> A graphics tablet configured as the default pointer in the guest OS will ensure that the virtual cursor moves in sync with the local desktop cursor. + True + True + + + + + False + False + 1 + + + + + 1 + + + + + 7 + + + + + True + Input + + + tab + 7 + False + + + + + True + + + True + 0 + GTK_SHADOW_NONE + + + True + 5 + 3 + 12 + + + True + 3 + 5 + 2 + 8 + 4 + + + True + 1 + Keymap: + + + 4 + 5 + GTK_FILL + + + + + + True + 1 + Password: + + + 3 + 4 + GTK_FILL + + + + + + True + 1 + Type: + True + + + GTK_FILL + + + + + + True + 1 + Address: + + + 1 + 2 + GTK_FILL + + + + + + True + 1 + Port: + + + 2 + 3 + GTK_FILL + + + + + + True + 0 + label401 + True + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + + True + 0 + label401 + True + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + True + 0 + label401 + True + + + 1 + 2 + 3 + 4 + GTK_FILL + + + + + + True + 0 + keylabel + True + + + 1 + 2 + 4 + 5 + GTK_FILL + + + + + + True + 0 + label403 + True + + + 1 + 2 + + 1 + + + + + + + + + True + <b>Virtual Display</b> + True + + + label_item + + + + + 15 + + + + + 8 + + + + + True + Graphics + + + tab + 8 + False + + + + + True + + + True + 0 + GTK_SHADOW_NONE + + + True + 5 + 3 + 12 + + + True + 3 + 2 + 8 + 4 + + + True + 0 + insert sound model + True + + + 1 + 2 + GTK_FILL + + 1 + + + + + True + 0 + Device Model: + + + GTK_FILL + + + + + + + + + + True + <b>Sound Device</b> + True + + + label_item + + + + + 15 + + + + + 9 + + + + + True + Sound + + + tab + 9 + False + + + + + True + + + True + 0 + GTK_SHADOW_NONE + + + True + 12 + + + True + 3 + 3 + 2 + 8 + 4 + + + True + 0 + label508 + True + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + True + 0 + label507 + True + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + + True + 0 + label506 + True + + + 1 + 2 + GTK_FILL + + + + + + True + 1 + Source Path: + + + 2 + 3 + GTK_FILL + + + + + + True + 1 + Target Port: + + + 1 + 2 + GTK_FILL + + + + + + True + 1 + Device Type: + + + GTK_FILL + + + + + + + + + + True + <b>insert type</b> + True + + + label_item + + + + + 15 + + + + + 10 + + + + + True + Char + + + tab + 10 + False + + + + + True + + + True + 0 + GTK_SHADOW_NONE + + + True + 5 + 12 + + + True + 3 + 2 + 8 + 4 + + + True + 1 + Source Device: + + + 2 + 3 + GTK_FILL + GTK_FILL + + + + + True + 1 + Device Type: + + + GTK_FILL + + + + + + True + 1 + Device Mode: + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + label + + + 1 + 2 + + + + + + True + 0 + label + + + 1 + 2 + 1 + 2 + + + + + + True + 0 + label + + + 1 + 2 + 2 + 3 + + + + + + + + + + True + <b>Physical Host Device</b> + True + + + label_item + + + + + 15 + + + + + 11 + + + + + True + Hostdev + + + tab + 11 + False + + + True + 12 + GTK_BUTTONBOX_END + + + True + False + True + True + gtk-apply + True + 0 + + + + + + True + True + True + gtk-remove + True + 0 + + + + False + False + 1 + + + + + False + 1 + + + + 1 +