[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [et-mgmt-tools] [PATCH] virt-manager: List VM 'hostdev' devices



Daniel P. Berrange wrote:
> On Tue, Jan 20, 2009 at 05:41:48PM -0500, Cole Robinson wrote:
>> The attached patch adds support for listing, viewing details of, and
>> removing VM 'hostdev' devices. libvirt currently supports usb and pci
>> host devices, so I tried to tackle all the variants for each. Some
>> example screeenshots:
>>
>> http://fedorapeople.org/~crobinso/virt-manager/vmm-show-hostdev1.png
>> http://fedorapeople.org/~crobinso/virt-manager/vmm-show-hostdev2.png
>>
>> A couple particulars:
>>
>> - There is no icon for a 'hostdev' in the VM's hardware list. We've been
>> stretching use of gtk stock icons pretty thin, and there really isn't
>> anything available that makes sense. This will be addressed when we
>> integrate custom icons (next release).
>>
>> - The parameter differences between PCI, USB by vendor/product, and USB
>> by bus/device number are pretty large. Rather than have 10 different GUI
>> fields, populating only what is appropriate and hiding the others, I
>> just generate a single line listing for the device details section (ex.
>> "Bus: 001, Device: 002". This is shown in the screenshots. It's a bit
>> uglier this way, but much simpler, and conveys all the same information.
> 
> I'd just use the formatted address syntax shown by lspci/lsusb, eg
> 
>   USB      001:002
>   PCI      0000:01:3f.0
> 
> Given the PCI / USB address you ought to be able to use the host 
> device enumeration patches to find the matching device on the host.
> Once you have that you get the friendly Vendor + Product name 
> which would be more useful to display
> 

Updated patch attached, addressing the above comment. New screenshots
say it all:

http://fedorapeople.org/~crobinso/virt-manager/vmm-show-hostdev1v2.png
http://fedorapeople.org/~crobinso/virt-manager/vmm-show-hostdev2v2.png

Thanks,
Cole

# HG changeset patch
# User Cole Robinson <crobinso redhat com>
# Date 1232551745 18000
# Node ID 194b588a02b22781dbf88271c6e285a6e00340bc
# Parent  5314ba956ebebb21cfeb17efcffc2aafc7325840
List, display info about, and enable removing VM host devices.

diff -r 5314ba956ebe -r 194b588a02b2 src/virtManager/details.py
--- a/src/virtManager/details.py	Mon Jan 19 11:07:56 2009 -0500
+++ b/src/virtManager/details.py	Wed Jan 21 10:29:05 2009 -0500
@@ -57,6 +57,7 @@
 HW_LIST_TYPE_GRAPHICS = 6
 HW_LIST_TYPE_SOUND = 7
 HW_LIST_TYPE_CHAR = 8
+HW_LIST_TYPE_HOSTDEV = 9
 
 # Console pages
 PAGE_UNAVAILABLE = 0
@@ -293,6 +294,7 @@
             "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_add_hardware_button_clicked": self.add_hardware,
 
             "on_details_menu_view_fullscreen_activate": self.toggle_fullscreen,
@@ -610,6 +612,9 @@
             elif pagetype == HW_LIST_TYPE_MEMORY:
                 self.window.get_widget("config-memory-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)
             elif pagetype == HW_LIST_TYPE_DISK:
                 self.refresh_disk_page()
             elif pagetype == HW_LIST_TYPE_NIC:
@@ -622,9 +627,8 @@
                 self.refresh_sound_page()
             elif pagetype == HW_LIST_TYPE_CHAR:
                 self.refresh_char_page()
-            elif pagetype == HW_LIST_TYPE_BOOT:
-                self.refresh_boot_page()
-                self.window.get_widget("config-boot-options-apply").set_sensitive(False)
+            elif pagetype == HW_LIST_TYPE_HOSTDEV:
+                self.refresh_hostdev_page()
             else:
                 pagenum = -1
 
@@ -822,6 +826,8 @@
                     self.refresh_sound_page()
                 elif pagetype == HW_LIST_TYPE_CHAR:
                     self.refresh_char_page()
+                elif pagetype == HW_LIST_TYPE_HOSTDEV:
+                    self.refresh_hostdev_page()
 
     def refresh_summary(self):
         def _rx_tx_text(rx, tx, unit):
@@ -1037,6 +1043,19 @@
         self.window.get_widget("char-target-port").set_text(charinfo[3])
         self.window.get_widget("char-source-path").set_text(charinfo[5] or "-")
 
+    def refresh_hostdev_page(self):
+        hostdevinfo = self.get_hw_selection(HW_LIST_COL_DEVICE)
+        if not hostdevinfo:
+            return
+
+        devlabel = "<b>Physical %s Device</b>" % hostdevinfo[4].upper()
+
+        self.window.get_widget("hostdev-title").set_markup(devlabel)
+        self.window.get_widget("hostdev-type").set_text(hostdevinfo[4])
+        self.window.get_widget("hostdev-mode").set_text(hostdevinfo[3])
+        self.window.get_widget("hostdev-source").set_text(hostdevinfo[5])
+
+
     def refresh_boot_page(self):
         # Refresh autostart
         try:
@@ -1512,6 +1531,7 @@
         currentGraphics = {}
         currentSounds = {}
         currentChars = {}
+        currentHostdevs = {}
 
         def update_hwlist(hwtype, info):
             """Return (true if we updated an entry,
@@ -1590,7 +1610,6 @@
             if missing:
                 hw_list_model.insert(insertAt, [_("Sound: %s" % soundinfo[2]), gtk.STOCK_MEDIA_PLAY, gtk.ICON_SIZE_LARGE_TOOLBAR, None, HW_LIST_TYPE_SOUND, soundinfo])
 
-
         # Populate list of char devices
         for charinfo in self.vm.get_char_devices():
             currentChars[charinfo[2]] = 1
@@ -1604,6 +1623,15 @@
                     l += " %s" % charinfo[3] # Don't show port for console
                 hw_list_model.insert(insertAt, [l, gtk.STOCK_CONNECT, gtk.ICON_SIZE_LARGE_TOOLBAR, None, HW_LIST_TYPE_CHAR, charinfo])
 
+        # Populate host devices
+        for hostdevinfo in self.vm.get_hostdev_devices():
+            currentHostdevs[hostdevinfo[2]] = 1
+            missing, insertAt = update_hwlist(HW_LIST_TYPE_HOSTDEV,
+                                              hostdevinfo)
+
+            if missing:
+                hw_list_model.insert(insertAt, [hostdevinfo[2], None, gtk.ICON_SIZE_LARGE_TOOLBAR, None, HW_LIST_TYPE_HOSTDEV, hostdevinfo])
+
 
         # Now remove any no longer current devs
         devs = range(len(hw_list_model))
@@ -1631,6 +1659,9 @@
             elif row[HW_LIST_COL_TYPE] == HW_LIST_TYPE_CHAR and not \
                  currentChars.has_key(row[HW_LIST_COL_DEVICE][2]):
                 removeIt = True
+            elif row[HW_LIST_COL_TYPE] == HW_LIST_TYPE_HOSTDEV and not \
+                 currentHostdevs.has_key(row[HW_LIST_COL_DEVICE][2]):
+                removeIt = True
 
             if removeIt:
                 # Re-select the first row, if we're viewing the device
diff -r 5314ba956ebe -r 194b588a02b2 src/virtManager/domain.py
--- a/src/virtManager/domain.py	Mon Jan 19 11:07:56 2009 -0500
+++ b/src/virtManager/domain.py	Wed Jan 21 10:29:05 2009 -0500
@@ -805,6 +805,101 @@
 
         return self._parse_device_xml(_parse_char_devs)
 
+    def get_hostdev_devices(self):
+        def _parse_hostdev_devs(ctx):
+            hostdevs = []
+            devs = ctx.xpathEval("/domain/devices/hostdev")
+
+            for dev in devs:
+                vendor  = None
+                product = None
+                addrbus = None
+                addrdev = None
+                unique = {}
+
+                # String shown in the devices details section
+                srclabel = ""
+                # String shown in the VMs hardware list
+                hwlabel = ""
+
+                def dehex(val):
+                    if val.startswith("0x"):
+                        val = val[2:]
+                    return val
+
+                def safeint(val, fmt="%.3d"):
+                    try:
+                        int(val)
+                    except:
+                        return str(val)
+                    return fmt % int(val)
+
+                def set_uniq(baseent, propname, node):
+                    val = node.prop(propname)
+                    if not unique.has_key(baseent):
+                        unique[baseent] = {}
+                    unique[baseent][propname] = val
+                    return val
+
+                mode = dev.prop("mode")
+                typ  = dev.prop("type")
+                unique["type"] = typ
+
+                hwlabel = typ.upper()
+                srclabel = typ.upper()
+
+                for node in dev.children:
+                    if node.name == "source":
+                        for child in node.children:
+                            if child.name == "address":
+                                addrbus = set_uniq("address", "bus", child)
+
+                                # For USB
+                                addrdev = set_uniq("address", "device", child)
+
+                                # For PCI
+                                addrdom = set_uniq("address", "domain", child)
+                                addrslt = set_uniq("address", "slot", child)
+                                addrfun = set_uniq("address", "function", child)
+                            elif child.name == "vendor":
+                                vendor = set_uniq("vendor", "id", child)
+                            elif child.name == "product":
+                                product = set_uniq("product", "id", child)
+
+                if vendor and product:
+                    # USB by vendor + product
+                    devstr = " %s:%s" % (dehex(vendor), dehex(product))
+                    srclabel += devstr
+                    hwlabel += devstr
+
+                elif addrbus and addrdev:
+                    # USB by bus + dev
+                    srclabel += " Bus %s Device %s" % \
+                                (safeint(addrbus), safeint(addrdev))
+                    hwlabel += " %s:%s" % (safeint(addrbus), safeint(addrdev))
+
+                elif addrbus and addrslt and addrfun and addrdom:
+                    # PCI by bus:slot:function
+                    devstr = " %s:%s:%s.%s" % \
+                              (dehex(addrdom), dehex(addrbus),
+                               dehex(addrslt), dehex(addrfun))
+                    srclabel += devstr
+                    hwlabel += devstr
+
+                else:
+                    # If we can't determine source info, skip these
+                    # device since we have no way to determine uniqueness
+                    continue
+
+                # [device type, unique, hwlist label, hostdev mode,
+                #  hostdev type, source desc label]
+                hostdevs.append(["hostdev", unique, hwlabel, mode, typ,
+                                 srclabel])
+
+            return hostdevs
+        return self._parse_device_xml(_parse_hostdev_devs)
+
+
     def _parse_device_xml(self, parse_function):
         doc = None
         ctx = None
@@ -883,6 +978,51 @@
                 cons_ret = ctx.xpathEval("/domain/devices/console[target/@port='%s']" % dev_id_info)
                 if cons_ret and len(cons_ret) > 0:
                     ret.append(cons_ret[0])
+
+        elif dev_type == "hostdev":
+            # This whole process is a little funky, since we need a decent
+            # amount of info to determine which specific hostdev to remove
+
+            xmlbase = "/domain/devices/hostdev[ type='%s' and " % \
+                      dev_id_info["type"]
+            xpath = ""
+            ret = []
+
+            addr = dev_id_info.get("address")
+            vend = dev_id_info.get("vendor")
+            prod = dev_id_info.get("product")
+            if addr:
+                bus = addr.get("bus")
+                dev = addr.get("device")
+                slot = addr.get("slot")
+                funct = addr.get("function")
+                dom = addr.get("domain")
+
+                if bus and dev:
+                    # USB by bus and dev
+                    xpath = (xmlbase + "source/address/@bus='%s' and "
+                                       "source/address/@device='%s']" %
+                                       (bus, dev))
+                elif bus and slot and funct and dom:
+                    # PCI by bus,slot,funct,dom
+                    xpath = (xmlbase + "source/address/@bus='%s' and "
+                                       "source/address/@slot='%s' and "
+                                       "source/address/@function='%s' and "
+                                       "source/address/@domain='%s']" %
+                                       (bus, slot, funct, dom))
+
+            elif vend.get("id") and prod.get("id"):
+                # USB by vendor and product
+                xpath = (xmlbase + "source/vendor/@id='%s' and "
+                                   "source/product/@id='%s']" %
+                                   (vend.get("id"), prod.get("id")))
+
+            if xpath:
+                # Log this, since we could hit issues with unexpected
+                # xml parameters in the future
+                logging.debug("Hostdev xpath string: %s" % xpath)
+                ret = ctx.xpathEval(xpath)
+
         else:
             raise RuntimeError, _("Unknown device type '%s'" % dev_type)
 
diff -r 5314ba956ebe -r 194b588a02b2 src/vmm-details.glade
--- a/src/vmm-details.glade	Mon Jan 19 11:07:56 2009 -0500
+++ b/src/vmm-details.glade	Wed Jan 21 10:29:05 2009 -0500
@@ -412,6 +412,7 @@
               </widget>
               <packing>
                 <property name="expand">False</property>
+                <property name="homogeneous">False</property>
               </packing>
             </child>
             <child>
@@ -543,48 +544,6 @@
                       <placeholder/>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="label436">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Password:</property>
-                      </widget>
-                      <packing>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkCheckButton" id="console-auth-remember">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="label" translatable="yes">Save this password in your keyring</property>
-                        <property name="use_underline">True</property>
-                        <property name="response_id">0</property>
-                        <property name="draw_indicator">True</property>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="GtkEntry" id="console-auth-password">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="visibility">False</property>
-                        <property name="invisible_char">*</property>
-                      </widget>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-                    <child>
                       <widget class="GtkButton" id="console-auth-login">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
@@ -633,6 +592,48 @@
                         <property name="y_options"></property>
                       </packing>
                     </child>
+                    <child>
+                      <widget class="GtkEntry" id="console-auth-password">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="visibility">False</property>
+                        <property name="invisible_char">*</property>
+                      </widget>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkCheckButton" id="console-auth-remember">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label" translatable="yes">Save this password in your keyring</property>
+                        <property name="use_underline">True</property>
+                        <property name="response_id">0</property>
+                        <property name="draw_indicator">True</property>
+                      </widget>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label436">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Password:</property>
+                      </widget>
+                      <packing>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
                   </widget>
                   <packing>
                     <property name="position">2</property>
@@ -724,34 +725,39 @@
                                     <property name="column_spacing">3</property>
                                     <property name="row_spacing">3</property>
                                     <child>
-                                      <widget class="GtkEntry" id="overview-uuid">
+                                      <widget class="GtkLabel" id="label44">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="editable">False</property>
-                                        <accessibility>
-                                          <atkproperty name="AtkObject::accessible_name" translatable="yes">UUID Field</atkproperty>
-                                        </accessibility>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Status:</property>
                                       </widget>
                                       <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
-                                        <property name="top_attach">1</property>
-                                        <property name="bottom_attach">2</property>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
+                                        <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkEntry" id="overview-name">
+                                      <widget class="GtkLabel" id="label68">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="editable">False</property>
-                                        <accessibility>
-                                          <atkproperty name="AtkObject::accessible_name" translatable="yes">Name Field</atkproperty>
-                                        </accessibility>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">UUID:</property>
                                       </widget>
                                       <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label43">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Name:</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
@@ -788,39 +794,34 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="label43">
+                                      <widget class="GtkEntry" id="overview-name">
                                         <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Name:</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="editable">False</property>
+                                        <accessibility>
+                                          <atkproperty name="AtkObject::accessible_name" translatable="yes">Name Field</atkproperty>
+                                        </accessibility>
                                       </widget>
                                       <packing>
-                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="label68">
+                                      <widget class="GtkEntry" id="overview-uuid">
                                         <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">UUID:</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="editable">False</property>
+                                        <accessibility>
+                                          <atkproperty name="AtkObject::accessible_name" translatable="yes">UUID Field</atkproperty>
+                                        </accessibility>
                                       </widget>
                                       <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
                                         <property name="top_attach">1</property>
                                         <property name="bottom_attach">2</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label44">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Status:</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="top_attach">2</property>
-                                        <property name="bottom_attach">3</property>
-                                        <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
@@ -874,79 +875,17 @@
                                       <placeholder/>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="label45">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">CPU usage:</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label46">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Memory usage:</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="top_attach">1</property>
-                                        <property name="bottom_attach">2</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="overview-disk-usage-label">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Disk I/O:</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="top_attach">2</property>
-                                        <property name="bottom_attach">3</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="overview-network-traffic-label">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Network I/O:</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="top_attach">3</property>
-                                        <property name="bottom_attach">4</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="overview-cpu-usage-text">
+                                      <widget class="GtkLabel" id="overview-network-traffic-text">
                                         <property name="visible">True</property>
                                         <property name="xalign">0</property>
-                                        <property name="label">18%</property>
+                                        <property name="label">0 KBytes/s\n0KBytes/s</property>
+                                        <property name="use_markup">True</property>
                                       </widget>
                                       <packing>
                                         <property name="left_attach">2</property>
                                         <property name="right_attach">3</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="overview-memory-usage-text">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label">30 MB of 128 MB</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="left_attach">2</property>
-                                        <property name="right_attach">3</property>
-                                        <property name="top_attach">1</property>
-                                        <property name="bottom_attach">2</property>
+                                        <property name="top_attach">3</property>
+                                        <property name="bottom_attach">4</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
@@ -968,21 +907,83 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="overview-network-traffic-text">
+                                      <widget class="GtkLabel" id="overview-memory-usage-text">
                                         <property name="visible">True</property>
                                         <property name="xalign">0</property>
-                                        <property name="label">0 KBytes/s\n0KBytes/s</property>
-                                        <property name="use_markup">True</property>
+                                        <property name="label">30 MB of 128 MB</property>
                                       </widget>
                                       <packing>
                                         <property name="left_attach">2</property>
                                         <property name="right_attach">3</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="overview-cpu-usage-text">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label">18%</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="left_attach">2</property>
+                                        <property name="right_attach">3</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="overview-network-traffic-label">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Network I/O:</property>
+                                      </widget>
+                                      <packing>
                                         <property name="top_attach">3</property>
                                         <property name="bottom_attach">4</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="overview-disk-usage-label">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Disk I/O:</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label46">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Memory usage:</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label45">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">CPU usage:</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
                                   </widget>
                                 </child>
                               </widget>
@@ -1144,23 +1145,21 @@
                                         <property name="column_spacing">3</property>
                                         <property name="row_spacing">3</property>
                                         <child>
-                                          <widget class="GtkLabel" id="label347">
+                                          <widget class="GtkSpinButton" id="config-vcpus">
                                             <property name="visible">True</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">Current allocation:</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="adjustment">2 1 32 1 2 0</property>
+                                            <property name="climb_rate">1</property>
+                                            <property name="numeric">True</property>
+                                            <property name="update_policy">GTK_UPDATE_IF_VALID</property>
+                                            <accessibility>
+                                              <atkproperty name="AtkObject::accessible_name" translatable="yes">Virtual CPU Select</atkproperty>
+                                            </accessibility>
+                                            <signal name="changed" handler="on_config_vcpus_changed"/>
                                           </widget>
                                           <packing>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label333">
-                                            <property name="visible">True</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">Change allocation:</property>
-                                          </widget>
-                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="right_attach">2</property>
                                             <property name="top_attach">1</property>
                                             <property name="bottom_attach">2</property>
                                             <property name="x_options">GTK_FILL</property>
@@ -1168,25 +1167,27 @@
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkLabel" id="label335">
+                                          <widget class="GtkLabel" id="state-vm-vcpus">
                                             <property name="visible">True</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">Maximum allocation:</property>
+                                            <property name="xalign">0</property>
+                                            <property name="label">2</property>
                                           </widget>
                                           <packing>
-                                            <property name="top_attach">2</property>
-                                            <property name="bottom_attach">3</property>
+                                            <property name="left_attach">1</property>
+                                            <property name="right_attach">2</property>
                                             <property name="x_options">GTK_FILL</property>
                                             <property name="y_options"></property>
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkLabel" id="label334">
+                                          <widget class="GtkLabel" id="state-host-cpus">
                                             <property name="visible">True</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">Total CPUs on host machine:</property>
+                                            <property name="xalign">0</property>
+                                            <property name="label">8</property>
                                           </widget>
                                           <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="right_attach">2</property>
                                             <property name="top_attach">3</property>
                                             <property name="bottom_attach">4</property>
                                             <property name="x_options">GTK_FILL</property>
@@ -1209,14 +1210,12 @@
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkLabel" id="state-host-cpus">
+                                          <widget class="GtkLabel" id="label334">
                                             <property name="visible">True</property>
-                                            <property name="xalign">0</property>
-                                            <property name="label">8</property>
+                                            <property name="xalign">1</property>
+                                            <property name="label" translatable="yes">Total CPUs on host machine:</property>
                                           </widget>
                                           <packing>
-                                            <property name="left_attach">1</property>
-                                            <property name="right_attach">2</property>
                                             <property name="top_attach">3</property>
                                             <property name="bottom_attach">4</property>
                                             <property name="x_options">GTK_FILL</property>
@@ -1224,40 +1223,42 @@
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkLabel" id="state-vm-vcpus">
+                                          <widget class="GtkLabel" id="label335">
                                             <property name="visible">True</property>
-                                            <property name="xalign">0</property>
-                                            <property name="label">2</property>
+                                            <property name="xalign">1</property>
+                                            <property name="label" translatable="yes">Maximum allocation:</property>
                                           </widget>
                                           <packing>
-                                            <property name="left_attach">1</property>
-                                            <property name="right_attach">2</property>
+                                            <property name="top_attach">2</property>
+                                            <property name="bottom_attach">3</property>
                                             <property name="x_options">GTK_FILL</property>
                                             <property name="y_options"></property>
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkSpinButton" id="config-vcpus">
+                                          <widget class="GtkLabel" id="label333">
                                             <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="adjustment">2 1 32 1 2 0</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="numeric">True</property>
-                                            <property name="update_policy">GTK_UPDATE_IF_VALID</property>
-                                            <accessibility>
-                                              <atkproperty name="AtkObject::accessible_name" translatable="yes">Virtual CPU Select</atkproperty>
-                                            </accessibility>
-                                            <signal name="changed" handler="on_config_vcpus_changed"/>
+                                            <property name="xalign">1</property>
+                                            <property name="label" translatable="yes">Change allocation:</property>
                                           </widget>
                                           <packing>
-                                            <property name="left_attach">1</property>
-                                            <property name="right_attach">2</property>
                                             <property name="top_attach">1</property>
                                             <property name="bottom_attach">2</property>
                                             <property name="x_options">GTK_FILL</property>
                                             <property name="y_options"></property>
                                           </packing>
                                         </child>
+                                        <child>
+                                          <widget class="GtkLabel" id="label347">
+                                            <property name="visible">True</property>
+                                            <property name="xalign">1</property>
+                                            <property name="label" translatable="yes">Current allocation:</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="x_options">GTK_FILL</property>
+                                            <property name="y_options"></property>
+                                          </packing>
+                                        </child>
                                       </widget>
                                       <packing>
                                         <property name="expand">False</property>
@@ -1410,79 +1411,39 @@
                                         <property name="column_spacing">3</property>
                                         <property name="row_spacing">3</property>
                                         <child>
-                                          <widget class="GtkLabel" id="label309">
+                                          <widget class="GtkHBox" id="hbox47">
                                             <property name="visible">True</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">Current allocation:</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label60">
-                                            <property name="visible">True</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">Change allocation:</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="top_attach">1</property>
-                                            <property name="bottom_attach">2</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label307">
-                                            <property name="visible">True</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">Maximum allocation:</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="top_attach">2</property>
-                                            <property name="bottom_attach">3</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="label61">
-                                            <property name="visible">True</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">Total memory on host machine:</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="top_attach">3</property>
-                                            <property name="bottom_attach">4</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="state-host-memory">
-                                            <property name="visible">True</property>
-                                            <property name="xalign">0</property>
-                                            <property name="label">2 GB</property>
+                                            <child>
+                                              <widget class="GtkSpinButton" id="config-maxmem">
+                                                <property name="visible">True</property>
+                                                <property name="can_focus">True</property>
+                                                <property name="adjustment">50 50 32000 5 10 0</property>
+                                                <property name="climb_rate">1</property>
+                                                <property name="numeric">True</property>
+                                                <property name="update_policy">GTK_UPDATE_IF_VALID</property>
+                                                <accessibility>
+                                                  <atkproperty name="AtkObject::accessible_name" translatable="yes">Max Memory Select</atkproperty>
+                                                </accessibility>
+                                                <signal name="changed" handler="on_config_maxmem_changed"/>
+                                              </widget>
+                                            </child>
+                                            <child>
+                                              <widget class="GtkLabel" id="label346">
+                                                <property name="visible">True</property>
+                                                <property name="label" translatable="yes">MB</property>
+                                              </widget>
+                                              <packing>
+                                                <property name="expand">False</property>
+                                                <property name="fill">False</property>
+                                                <property name="position">1</property>
+                                              </packing>
+                                            </child>
                                           </widget>
                                           <packing>
                                             <property name="left_attach">1</property>
                                             <property name="right_attach">2</property>
-                                            <property name="top_attach">3</property>
-                                            <property name="bottom_attach">4</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <widget class="GtkLabel" id="state-vm-memory">
-                                            <property name="visible">True</property>
-                                            <property name="xalign">0</property>
-                                            <property name="label">200 MB</property>
-                                          </widget>
-                                          <packing>
-                                            <property name="left_attach">1</property>
-                                            <property name="right_attach">2</property>
+                                            <property name="top_attach">2</property>
+                                            <property name="bottom_attach">3</property>
                                             <property name="x_options">GTK_FILL</property>
                                             <property name="y_options"></property>
                                           </packing>
@@ -1526,43 +1487,83 @@
                                           </packing>
                                         </child>
                                         <child>
-                                          <widget class="GtkHBox" id="hbox47">
+                                          <widget class="GtkLabel" id="state-vm-memory">
                                             <property name="visible">True</property>
-                                            <child>
-                                              <widget class="GtkSpinButton" id="config-maxmem">
-                                                <property name="visible">True</property>
-                                                <property name="can_focus">True</property>
-                                                <property name="adjustment">50 50 32000 5 10 0</property>
-                                                <property name="climb_rate">1</property>
-                                                <property name="numeric">True</property>
-                                                <property name="update_policy">GTK_UPDATE_IF_VALID</property>
-                                                <accessibility>
-                                                  <atkproperty name="AtkObject::accessible_name" translatable="yes">Max Memory Select</atkproperty>
-                                                </accessibility>
-                                                <signal name="changed" handler="on_config_maxmem_changed"/>
-                                              </widget>
-                                            </child>
-                                            <child>
-                                              <widget class="GtkLabel" id="label346">
-                                                <property name="visible">True</property>
-                                                <property name="label" translatable="yes">MB</property>
-                                              </widget>
-                                              <packing>
-                                                <property name="expand">False</property>
-                                                <property name="fill">False</property>
-                                                <property name="position">1</property>
-                                              </packing>
-                                            </child>
+                                            <property name="xalign">0</property>
+                                            <property name="label">200 MB</property>
                                           </widget>
                                           <packing>
                                             <property name="left_attach">1</property>
                                             <property name="right_attach">2</property>
+                                            <property name="x_options">GTK_FILL</property>
+                                            <property name="y_options"></property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkLabel" id="state-host-memory">
+                                            <property name="visible">True</property>
+                                            <property name="xalign">0</property>
+                                            <property name="label">2 GB</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="right_attach">2</property>
+                                            <property name="top_attach">3</property>
+                                            <property name="bottom_attach">4</property>
+                                            <property name="x_options">GTK_FILL</property>
+                                            <property name="y_options"></property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkLabel" id="label61">
+                                            <property name="visible">True</property>
+                                            <property name="xalign">1</property>
+                                            <property name="label" translatable="yes">Total memory on host machine:</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="top_attach">3</property>
+                                            <property name="bottom_attach">4</property>
+                                            <property name="x_options">GTK_FILL</property>
+                                            <property name="y_options"></property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkLabel" id="label307">
+                                            <property name="visible">True</property>
+                                            <property name="xalign">1</property>
+                                            <property name="label" translatable="yes">Maximum allocation:</property>
+                                          </widget>
+                                          <packing>
                                             <property name="top_attach">2</property>
                                             <property name="bottom_attach">3</property>
                                             <property name="x_options">GTK_FILL</property>
                                             <property name="y_options"></property>
                                           </packing>
                                         </child>
+                                        <child>
+                                          <widget class="GtkLabel" id="label60">
+                                            <property name="visible">True</property>
+                                            <property name="xalign">1</property>
+                                            <property name="label" translatable="yes">Change allocation:</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="top_attach">1</property>
+                                            <property name="bottom_attach">2</property>
+                                            <property name="x_options">GTK_FILL</property>
+                                            <property name="y_options"></property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <widget class="GtkLabel" id="label309">
+                                            <property name="visible">True</property>
+                                            <property name="xalign">1</property>
+                                            <property name="label" translatable="yes">Current allocation:</property>
+                                          </widget>
+                                          <packing>
+                                            <property name="x_options">GTK_FILL</property>
+                                            <property name="y_options"></property>
+                                          </packing>
+                                        </child>
                                       </widget>
                                       <packing>
                                         <property name="expand">False</property>
@@ -1690,6 +1691,17 @@
                                         <property name="n_rows">2</property>
                                         <property name="n_columns">1</property>
                                         <child>
+                                          <widget class="GtkComboBox" id="config-boot-device">
+                                            <property name="visible">True</property>
+                                            <signal name="changed" handler="on_config_boot_device_changed"/>
+                                          </widget>
+                                          <packing>
+                                            <property name="top_attach">1</property>
+                                            <property name="bottom_attach">2</property>
+                                            <property name="x_options">GTK_FILL</property>
+                                          </packing>
+                                        </child>
+                                        <child>
                                           <widget class="GtkLabel" id="label4">
                                             <property name="visible">True</property>
                                             <property name="xalign">0</property>
@@ -1700,17 +1712,6 @@
                                             <property name="y_options"></property>
                                           </packing>
                                         </child>
-                                        <child>
-                                          <widget class="GtkComboBox" id="config-boot-device">
-                                            <property name="visible">True</property>
-                                            <signal name="changed" handler="on_config_boot_device_changed"/>
-                                          </widget>
-                                          <packing>
-                                            <property name="top_attach">1</property>
-                                            <property name="bottom_attach">2</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                          </packing>
-                                        </child>
                                       </widget>
                                     </child>
                                   </widget>
@@ -1807,71 +1808,102 @@
                                       <placeholder/>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="disk-source-path">
+                                      <widget class="GtkButton" id="config-cdrom-connect">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="can_default">True</property>
+                                        <property name="label">gtk-connect</property>
+                                        <property name="use_stock">True</property>
+                                        <property name="response_id">0</property>
+                                        <signal name="clicked" handler="on_config_cdrom_connect_clicked"/>
+                                      </widget>
+                                      <packing>
+                                        <property name="left_attach">2</property>
+                                        <property name="right_attach">3</property>
+                                        <property name="bottom_attach">3</property>
+                                        <property name="x_options"></property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="disk-bus">
                                         <property name="visible">True</property>
                                         <property name="xalign">0</property>
-                                        <property name="label">label402</property>
-                                        <property name="ellipsize">PANGO_ELLIPSIZE_START</property>
                                       </widget>
                                       <packing>
                                         <property name="left_attach">1</property>
                                         <property name="right_attach">2</property>
-                                        <property name="top_attach">1</property>
-                                        <property name="bottom_attach">2</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label373">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Source type:</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="justify">GTK_JUSTIFY_RIGHT</property>
-                                      </widget>
-                                      <packing>
+                                        <property name="top_attach">4</property>
+                                        <property name="bottom_attach">5</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="label392">
+                                      <widget class="GtkLabel" id="label507">
                                         <property name="visible">True</property>
                                         <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Source path:</property>
-                                        <property name="use_underline">True</property>
+                                        <property name="label" translatable="yes">Target bus:</property>
                                       </widget>
                                       <packing>
-                                        <property name="top_attach">1</property>
-                                        <property name="bottom_attach">2</property>
+                                        <property name="top_attach">4</property>
+                                        <property name="bottom_attach">5</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="label375">
+                                      <widget class="GtkLabel" id="disk-permissions">
                                         <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Target type:</property>
-                                        <property name="use_underline">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label">label423</property>
                                       </widget>
                                       <packing>
-                                        <property name="top_attach">2</property>
-                                        <property name="bottom_attach">3</property>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">5</property>
+                                        <property name="bottom_attach">6</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="label374">
+                                      <widget class="GtkLabel" id="permissions-label">
                                         <property name="visible">True</property>
                                         <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Target device:</property>
-                                        <property name="use_underline">True</property>
+                                        <property name="label" translatable="yes">Permissions:</property>
                                       </widget>
                                       <packing>
-                                        <property name="top_attach">3</property>
-                                        <property name="bottom_attach">4</property>
+                                        <property name="top_attach">5</property>
+                                        <property name="bottom_attach">6</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="disk-source-type">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Block</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="disk-target-type">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">disk	</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
@@ -1892,14 +1924,27 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="disk-target-type">
+                                      <widget class="GtkLabel" id="label374">
                                         <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label" translatable="yes">disk	</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Target device:</property>
+                                        <property name="use_underline">True</property>
                                       </widget>
                                       <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">3</property>
+                                        <property name="bottom_attach">4</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label375">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Target type:</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                      <packing>
                                         <property name="top_attach">2</property>
                                         <property name="bottom_attach">3</property>
                                         <property name="x_options">GTK_FILL</property>
@@ -1907,88 +1952,44 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="disk-source-type">
+                                      <widget class="GtkLabel" id="label392">
                                         <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label" translatable="yes">Block</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Source path:</property>
+                                        <property name="use_underline">True</property>
                                       </widget>
                                       <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="permissions-label">
+                                      <widget class="GtkLabel" id="label373">
                                         <property name="visible">True</property>
                                         <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Permissions:</property>
+                                        <property name="label" translatable="yes">Source type:</property>
+                                        <property name="use_underline">True</property>
+                                        <property name="justify">GTK_JUSTIFY_RIGHT</property>
                                       </widget>
                                       <packing>
-                                        <property name="top_attach">5</property>
-                                        <property name="bottom_attach">6</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="disk-permissions">
+                                      <widget class="GtkLabel" id="disk-source-path">
                                         <property name="visible">True</property>
                                         <property name="xalign">0</property>
-                                        <property name="label">label423</property>
+                                        <property name="label">label402</property>
+                                        <property name="ellipsize">PANGO_ELLIPSIZE_START</property>
                                       </widget>
                                       <packing>
                                         <property name="left_attach">1</property>
                                         <property name="right_attach">2</property>
-                                        <property name="top_attach">5</property>
-                                        <property name="bottom_attach">6</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label507">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Target bus:</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="top_attach">4</property>
-                                        <property name="bottom_attach">5</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="disk-bus">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
-                                        <property name="top_attach">4</property>
-                                        <property name="bottom_attach">5</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkButton" id="config-cdrom-connect">
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="can_default">True</property>
-                                        <property name="label">gtk-connect</property>
-                                        <property name="use_stock">True</property>
-                                        <property name="response_id">0</property>
-                                        <signal name="clicked" handler="on_config_cdrom_connect_clicked"/>
-                                      </widget>
-                                      <packing>
-                                        <property name="left_attach">2</property>
-                                        <property name="right_attach">3</property>
-                                        <property name="bottom_attach">3</property>
-                                        <property name="x_options"></property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
@@ -2132,54 +2133,43 @@
                                     <property name="column_spacing">8</property>
                                     <property name="row_spacing">4</property>
                                     <child>
-                                      <widget class="GtkLabel" id="label369">
+                                      <widget class="GtkLabel" id="network-source-model">
                                         <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Source type:</property>
-                                        <property name="use_underline">True</property>
+                                        <property name="xalign">0</property>
                                       </widget>
                                       <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="label397">
+                                      <widget class="GtkLabel" id="label509">
                                         <property name="visible">True</property>
                                         <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Source device:</property>
+                                        <property name="label" translatable="yes">Source model:</property>
                                       </widget>
                                       <packing>
-                                        <property name="top_attach">1</property>
-                                        <property name="bottom_attach">2</property>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="network-source-type">
+                                      <widget class="GtkLabel" id="mac-address-label">
                                         <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label">label395</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">MAC address:</property>
+                                        <property name="use_underline">True</property>
+                                        <property name="mnemonic_widget">network-mac-address</property>
                                       </widget>
                                       <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="network-source-device">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label">label401</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
-                                        <property name="top_attach">1</property>
-                                        <property name="bottom_attach">2</property>
+                                        <property name="top_attach">3</property>
+                                        <property name="bottom_attach">4</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
@@ -2202,43 +2192,54 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="mac-address-label">
+                                      <widget class="GtkLabel" id="network-source-device">
                                         <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">MAC address:</property>
-                                        <property name="use_underline">True</property>
-                                        <property name="mnemonic_widget">network-mac-address</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label">label401</property>
                                       </widget>
                                       <packing>
-                                        <property name="top_attach">3</property>
-                                        <property name="bottom_attach">4</property>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="label509">
+                                      <widget class="GtkLabel" id="network-source-type">
                                         <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Source model:</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label">label395</property>
                                       </widget>
                                       <packing>
-                                        <property name="top_attach">2</property>
-                                        <property name="bottom_attach">3</property>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="network-source-model">
+                                      <widget class="GtkLabel" id="label397">
                                         <property name="visible">True</property>
-                                        <property name="xalign">0</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Source device:</property>
                                       </widget>
                                       <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
-                                        <property name="top_attach">2</property>
-                                        <property name="bottom_attach">3</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label369">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Source type:</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                      <packing>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
@@ -2371,27 +2372,14 @@
                                     <property name="column_spacing">8</property>
                                     <property name="row_spacing">4</property>
                                     <child>
-                                      <widget class="GtkLabel" id="label402">
+                                      <widget class="GtkLabel" id="input-dev-type">
                                         <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Type:</property>
-                                        <property name="use_underline">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label">label403</property>
                                       </widget>
                                       <packing>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label405">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Mode:</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="top_attach">1</property>
-                                        <property name="bottom_attach">2</property>
-                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
@@ -2411,14 +2399,27 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="input-dev-type">
+                                      <widget class="GtkLabel" id="label405">
                                         <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label">label403</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Mode:</property>
                                       </widget>
                                       <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label402">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Type:</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
@@ -2550,27 +2551,12 @@
                                     <property name="column_spacing">8</property>
                                     <property name="row_spacing">4</property>
                                     <child>
-                                      <widget class="GtkLabel" id="graphics-type">
+                                      <widget class="GtkLabel" id="label5">
                                         <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label">label403</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Keymap:</property>
                                       </widget>
                                       <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
-                                        <property name="y_options"></property>
-                                        <property name="y_padding">1</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="graphics-keymap">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label">keylabel</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
                                         <property name="top_attach">4</property>
                                         <property name="bottom_attach">5</property>
                                         <property name="x_options">GTK_FILL</property>
@@ -2578,14 +2564,12 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="graphics-password">
+                                      <widget class="GtkLabel" id="label419">
                                         <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label">label401</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Password:</property>
                                       </widget>
                                       <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
                                         <property name="top_attach">3</property>
                                         <property name="bottom_attach">4</property>
                                         <property name="x_options">GTK_FILL</property>
@@ -2593,14 +2577,37 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="graphics-port">
+                                      <widget class="GtkLabel" id="label410">
                                         <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label">label401</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Type:</property>
+                                        <property name="use_underline">True</property>
                                       </widget>
                                       <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label412">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Address:</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label418">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Port:</property>
+                                      </widget>
+                                      <packing>
                                         <property name="top_attach">2</property>
                                         <property name="bottom_attach">3</property>
                                         <property name="x_options">GTK_FILL</property>
@@ -2623,12 +2630,14 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="label418">
+                                      <widget class="GtkLabel" id="graphics-port">
                                         <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Port:</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label">label401</property>
                                       </widget>
                                       <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
                                         <property name="top_attach">2</property>
                                         <property name="bottom_attach">3</property>
                                         <property name="x_options">GTK_FILL</property>
@@ -2636,37 +2645,14 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="label412">
+                                      <widget class="GtkLabel" id="graphics-password">
                                         <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Address:</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label">label401</property>
                                       </widget>
                                       <packing>
-                                        <property name="top_attach">1</property>
-                                        <property name="bottom_attach">2</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label410">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Type:</property>
-                                        <property name="use_underline">True</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label419">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Password:</property>
-                                      </widget>
-                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
                                         <property name="top_attach">3</property>
                                         <property name="bottom_attach">4</property>
                                         <property name="x_options">GTK_FILL</property>
@@ -2674,18 +2660,33 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="label5">
+                                      <widget class="GtkLabel" id="graphics-keymap">
                                         <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Keymap:</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label">keylabel</property>
                                       </widget>
                                       <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
                                         <property name="top_attach">4</property>
                                         <property name="bottom_attach">5</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="graphics-type">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label">label403</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="y_options"></property>
+                                        <property name="y_padding">1</property>
+                                      </packing>
+                                    </child>
                                   </widget>
                                 </child>
                               </widget>
@@ -2766,17 +2767,6 @@
                                     <property name="column_spacing">8</property>
                                     <property name="row_spacing">4</property>
                                     <child>
-                                      <widget class="GtkLabel" id="label452">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                        <property name="label" translatable="yes">Device Model:</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
                                       <widget class="GtkLabel" id="sound-model">
                                         <property name="visible">True</property>
                                         <property name="xalign">0</property>
@@ -2790,6 +2780,17 @@
                                         <property name="y_padding">1</property>
                                       </packing>
                                     </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label452">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Device Model:</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
                                   </widget>
                                 </child>
                               </widget>
@@ -2868,51 +2869,16 @@
                                     <property name="column_spacing">8</property>
                                     <property name="row_spacing">4</property>
                                     <child>
-                                      <widget class="GtkLabel" id="label503">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Device Type:</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label504">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Target Port:</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="top_attach">1</property>
-                                        <property name="bottom_attach">2</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="label505">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Source Path:</property>
-                                      </widget>
-                                      <packing>
-                                        <property name="top_attach">2</property>
-                                        <property name="bottom_attach">3</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                        <property name="y_options"></property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <widget class="GtkLabel" id="char-dev-type">
+                                      <widget class="GtkLabel" id="char-source-path">
                                         <property name="visible">True</property>
                                         <property name="xalign">0</property>
-                                        <property name="label" translatable="yes">label506</property>
+                                        <property name="label" translatable="yes">label508</property>
                                       </widget>
                                       <packing>
                                         <property name="left_attach">1</property>
                                         <property name="right_attach">2</property>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
@@ -2933,20 +2899,55 @@
                                       </packing>
                                     </child>
                                     <child>
-                                      <widget class="GtkLabel" id="char-source-path">
+                                      <widget class="GtkLabel" id="char-dev-type">
                                         <property name="visible">True</property>
                                         <property name="xalign">0</property>
-                                        <property name="label" translatable="yes">label508</property>
+                                        <property name="label" translatable="yes">label506</property>
                                       </widget>
                                       <packing>
                                         <property name="left_attach">1</property>
                                         <property name="right_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label505">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Source Path:</property>
+                                      </widget>
+                                      <packing>
                                         <property name="top_attach">2</property>
                                         <property name="bottom_attach">3</property>
                                         <property name="x_options">GTK_FILL</property>
                                         <property name="y_options"></property>
                                       </packing>
                                     </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label504">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Target Port:</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label503">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Device Type:</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
                                   </widget>
                                 </child>
                               </widget>
@@ -3004,6 +3005,160 @@
                         <property name="tab_fill">False</property>
                       </packing>
                     </child>
+                    <child>
+                      <widget class="GtkVBox" id="vbox4">
+                        <property name="visible">True</property>
+                        <child>
+                          <widget class="GtkFrame" id="frame6">
+                            <property name="visible">True</property>
+                            <property name="label_xalign">0</property>
+                            <property name="shadow_type">GTK_SHADOW_NONE</property>
+                            <child>
+                              <widget class="GtkAlignment" id="alignment5">
+                                <property name="visible">True</property>
+                                <property name="top_padding">5</property>
+                                <property name="left_padding">12</property>
+                                <child>
+                                  <widget class="GtkTable" id="table50">
+                                    <property name="visible">True</property>
+                                    <property name="n_rows">3</property>
+                                    <property name="n_columns">2</property>
+                                    <property name="column_spacing">8</property>
+                                    <property name="row_spacing">4</property>
+                                    <child>
+                                      <widget class="GtkLabel" id="label3">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Source Device:</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options">GTK_FILL</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label8">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Device Type:</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label9">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Device Mode:</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="hostdev-type">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">label</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="hostdev-mode">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">label</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="hostdev-source">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">label</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
+                                        <property name="y_options"></property>
+                                      </packing>
+                                    </child>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="hostdev-title">
+                                <property name="visible">True</property>
+                                <property name="label">&lt;b&gt;Physical Host Device&lt;/b&gt;</property>
+                                <property name="use_markup">True</property>
+                              </widget>
+                              <packing>
+                                <property name="type">label_item</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="padding">15</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkHButtonBox" id="hbuttonbox1">
+                            <property name="visible">True</property>
+                            <property name="border_width">6</property>
+                            <property name="layout_style">GTK_BUTTONBOX_END</property>
+                            <child>
+                              <widget class="GtkButton" id="config-hostdev-remove">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="can_default">True</property>
+                                <property name="label">gtk-remove</property>
+                                <property name="use_stock">True</property>
+                                <property name="response_id">0</property>
+                                <signal name="clicked" handler="on_config_hostdev_remove_clicked"/>
+                              </widget>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="position">9</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label6">
+                        <property name="visible">True</property>
+                        <property name="label">Hostdev</property>
+                      </widget>
+                      <packing>
+                        <property name="type">tab</property>
+                        <property name="position">9</property>
+                        <property name="tab_fill">False</property>
+                      </packing>
+                    </child>
                   </widget>
                   <packing>
                     <property name="resize">True</property>

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]