[PATCH 1/2]: New preferences dialog UI

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

 



That attached patch updates the virt-manager preferences dialog UI to
use a tabbed view. This makes the dialog easily extendible and hopefully
will encourage adding more global preference options.

UI is also added for the new enable/disable stats polling options. They
are hooked up the their underlying gconf entries, but they don't have
any effect (handled by the next patch).

Some screenshots:

http://fedorapeople.org/~crobinso/virt-manager/vmm-prefs-1.png
http://fedorapeople.org/~crobinso/virt-manager/vmm-prefs-2.png

Thanks,
Cole
# HG changeset patch
# User "Cole Robinson <crobinso@xxxxxxxxxx>"
# Date 1228749085 18000
# Node ID c7cd0d65d7a67da18e6b7b44e5bbee98710569ce
# Parent  f4b79629808d40de713ad8096de7897564d22dfa
Revamp preferences dialog.

More extensible design, hopefully will facilitate adding more options.
Add options to disable stats reporting by type (cpu, mem, disk, net), but
don't hook them up yet.

diff -r f4b79629808d -r c7cd0d65d7a6 src/virt-manager.schemas.in
--- a/src/virt-manager.schemas.in	Sun Dec 07 16:32:56 2008 -0500
+++ b/src/virt-manager.schemas.in	Mon Dec 08 10:11:25 2008 -0500
@@ -118,6 +118,58 @@
     </schema>
 
     <schema>
+      <key>/schemas/apps/::PACKAGE::/stats/enable-disk-poll</key>
+      <applyto>/apps/::PACKAGE::/stats/enable-disk-poll</applyto>
+      <owner>::PACKAGE::</owner>
+      <type>bool</type>
+      <default>0</default>
+
+      <locale name="C">
+        <short>Poll disk i/o stats</short>
+        <long>Whether or not the app will poll VM disk i/o statistics</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/::PACKAGE::/stats/enable-net-poll</key>
+      <applyto>/apps/::PACKAGE::/stats/enable-net-poll</applyto>
+      <owner>::PACKAGE::</owner>
+      <type>bool</type>
+      <default>0</default>
+
+      <locale name="C">
+        <short>Poll net i/o stats</short>
+        <long>Whether or not the app will poll VM network i/o statistics</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/::PACKAGE::/stats/enable-mem-poll</key>
+      <applyto>/apps/::PACKAGE::/stats/enable-mem-poll</applyto>
+      <owner>::PACKAGE::</owner>
+      <type>bool</type>
+      <default>1</default>
+
+      <locale name="C">
+        <short>Poll memory usage stats</short>
+        <long>Whether or not the app will poll connection and VM memory usage statistics</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/::PACKAGE::/stats/enable-cpu-poll</key>
+      <applyto>/apps/::PACKAGE::/stats/enable-cpu-poll</applyto>
+      <owner>::PACKAGE::</owner>
+      <type>bool</type>
+      <default>1</default>
+
+      <locale name="C">
+        <short>Poll cpu stats</short>
+        <long>Whether or not the app will poll connection and VM cpu usage statistics</long>
+      </locale>
+    </schema>
+
+    <schema>
       <key>/schemas/apps/::PACKAGE::/urls/url-list-length</key>
       <applyto>/apps/::PACKAGE::/urls/url-list-length</applyto>
       <owner>::PACKAGE::</owner>
diff -r f4b79629808d -r c7cd0d65d7a6 src/virtManager/config.py
--- a/src/virtManager/config.py	Sun Dec 07 16:32:56 2008 -0500
+++ b/src/virtManager/config.py	Mon Dec 08 10:11:25 2008 -0500
@@ -190,6 +190,40 @@
     def on_stats_history_length_changed(self, callback):
         self.conf.notify_add(self.conf_dir + "/stats/history-length", callback)
 
+
+    # Disable/Enable different stats polling
+    def get_stats_enable_disk_poll(self):
+        return self.conf.get_bool(self.conf_dir + "/stats/enable-disk-poll")
+    def get_stats_enable_net_poll(self):
+        return self.conf.get_bool(self.conf_dir + "/stats/enable-net-poll")
+    def get_stats_enable_mem_poll(self):
+        return self.conf.get_bool(self.conf_dir + "/stats/enable-mem-poll")
+    def get_stats_enable_cpu_poll(self):
+        return self.conf.get_bool(self.conf_dir + "/stats/enable-cpu-poll")
+
+    def set_stats_enable_disk_poll(self, val):
+        self.conf.set_bool(self.conf_dir + "/stats/enable-disk-poll", val)
+    def set_stats_enable_net_poll(self, val):
+        self.conf.set_bool(self.conf_dir + "/stats/enable-net-poll", val)
+    def set_stats_enable_mem_poll(self, val):
+        self.conf.set_bool(self.conf_dir + "/stats/enable-mem-poll", val)
+    def set_stats_enable_cpu_poll(self, val):
+        self.conf.set_bool(self.conf_dir + "/stats/enable-cpu-poll", val)
+
+    def on_stats_enable_disk_poll_changed(self, cb, userdata=None):
+        self.conf.notify_add(self.conf_dir + "/stats/enable-disk-poll", cb,
+                             userdata)
+    def on_stats_enable_net_poll_changed(self, cb, userdata=None):
+        self.conf.notify_add(self.conf_dir + "/stats/enable-net-poll", cb,
+                             userdata)
+    def on_stats_enable_mem_poll_changed(self, cb, userdata=None):
+        self.conf.notify_add(self.conf_dir + "/stats/enable-mem-poll", cb,
+                             userdata)
+    def on_stats_enable_cpu_poll_changed(self, cb, userdata=None):
+        self.conf.notify_add(self.conf_dir + "/stats/enable-cpu-poll", cb,
+                             userdata)
+
+    # VM Console preferences
     def on_console_popup_changed(self, callback):
         self.conf.notify_add(self.conf_dir + "/console/popup", callback)
 
diff -r f4b79629808d -r c7cd0d65d7a6 src/virtManager/preferences.py
--- a/src/virtManager/preferences.py	Sun Dec 07 16:32:56 2008 -0500
+++ b/src/virtManager/preferences.py	Mon Dec 08 10:11:25 2008 -0500
@@ -21,6 +21,9 @@
 import gtk.glade
 import gobject
 
+PREFS_PAGE_STATS    = 0
+PREFS_PAGE_VM_PREFS = 1
+
 class vmmPreferences(gobject.GObject):
     __gsignals__ = {
         "action-show-help": (gobject.SIGNAL_RUN_FIRST,
@@ -30,56 +33,87 @@
         self.__gobject_init__()
         self.window = gtk.glade.XML(config.get_glade_dir() + "/vmm-preferences.glade", "vmm-preferences", domain="virt-manager")
         self.config = config
-        self.window.get_widget("vmm-preferences").hide()
+
+        self.topwin = self.window.get_widget("vmm-preferences")
+        self.topwin.hide()
 
         self.config.on_console_popup_changed(self.refresh_console_popup)
         self.config.on_console_keygrab_changed(self.refresh_console_keygrab)
         self.config.on_stats_update_interval_changed(self.refresh_update_interval)
         self.config.on_stats_history_length_changed(self.refresh_history_length)
 
+        self.config.on_stats_enable_disk_poll_changed(self.refresh_disk_poll)
+        self.config.on_stats_enable_net_poll_changed(self.refresh_net_poll)
+        self.config.on_stats_enable_mem_poll_changed(self.refresh_mem_poll)
+        self.config.on_stats_enable_cpu_poll_changed(self.refresh_cpu_poll)
+
         self.refresh_update_interval()
         self.refresh_history_length()
         self.refresh_console_popup()
         self.refresh_console_keygrab()
         self.refresh_sound_options()
+        self.refresh_disk_poll()
+        self.refresh_net_poll()
+        self.refresh_mem_poll()
+        self.refresh_cpu_poll()
 
         self.window.signal_autoconnect({
-            "on_stats_update_interval_changed": self.change_update_interval,
-            "on_stats_history_length_changed": self.change_history_length,
-            "on_console_popup_changed": self.change_console_popup,
-            "on_console_keygrab_changed": self.change_console_keygrab,
-            "on_close_clicked": self.close,
+            "on_prefs_stats_update_interval_changed": self.change_update_interval,
+            "on_prefs_stats_history_length_changed": self.change_history_length,
+            "on_prefs_console_popup_changed": self.change_console_popup,
+            "on_prefs_console_keygrab_changed": self.change_console_keygrab,
+            "on_prefs_close_clicked": self.close,
             "on_vmm_preferences_delete_event": self.close,
-            "on_preferences_help_clicked": self.show_help,
-            "on_local_sound_toggled": self.change_local_sound,
-            "on_remote_sound_toggled": self.change_remote_sound,
+            "on_prefs_help_clicked": self.show_help,
+            "on_prefs_sound_local_toggled": self.change_local_sound,
+            "on_prefs_sound_remote_toggled": self.change_remote_sound,
+            "on_prefs_stats_enable_disk_toggled": self.change_disk_poll,
+            "on_prefs_stats_enable_net_toggled": self.change_net_poll,
+            "on_prefs_stats_enable_mem_toggled": self.change_mem_poll,
+            "on_prefs_stats_enable_cpu_toggled": self.change_cpu_poll,
             })
 
-    def close(self,ignore1=None,ignore2=None):
-        self.window.get_widget("vmm-preferences").hide()
+    def close(self, ignore1=None, ignore2=None):
+        self.topwin.hide()
         return 1
 
     def show(self):
-        win = self.window.get_widget("vmm-preferences")
-        win.show()
-        # win.present()
+        self.topwin.show()
+        self.topwin.present()
+
+    #########################
+    # Config Change Options #
+    #########################
 
     def refresh_update_interval(self, ignore1=None,ignore2=None,ignore3=None,ignore4=None):
-        self.window.get_widget("stats-update-interval").set_value(self.config.get_stats_update_interval())
+        self.window.get_widget("prefs-stats-update-interval").set_value(self.config.get_stats_update_interval())
 
     def refresh_history_length(self, ignore1=None,ignore2=None,ignore3=None,ignore4=None):
-        self.window.get_widget("stats-history-length").set_value(self.config.get_stats_history_length())
+        self.window.get_widget("prefs-stats-history-len").set_value(self.config.get_stats_history_length())
 
     def refresh_console_popup(self,ignore1=None,ignore2=None,ignore3=None,ignore4=None):
-        self.window.get_widget("console-popup").set_active(self.config.get_console_popup())
+        self.window.get_widget("prefs-console-popup").set_active(self.config.get_console_popup())
 
     def refresh_console_keygrab(self,ignore1=None,ignore2=None,ignore3=None,ignore4=None):
-        self.window.get_widget("console-keygrab").set_active(self.config.get_console_keygrab())
+        self.window.get_widget("prefs-console-keygrab").set_active(self.config.get_console_keygrab())
 
     def refresh_sound_options(self, ignore1=None, ignore2=None, ignore=None,
                               ignore4=None):
-        self.window.get_widget("local-sound").set_active(self.config.get_local_sound())
-        self.window.get_widget("remote-sound").set_active(self.config.get_remote_sound())
+        self.window.get_widget("prefs-sound-local").set_active(self.config.get_local_sound())
+        self.window.get_widget("prefs-sound-remote").set_active(self.config.get_remote_sound())
+
+    def refresh_disk_poll(self, ignore1=None, ignore2=None, ignore3=None,
+                          ignore4=None):
+        self.window.get_widget("prefs-stats-enable-disk").set_active(self.config.get_stats_enable_disk_poll())
+    def refresh_net_poll(self, ignore1=None, ignore2=None, ignore3=None,
+                         ignore4=None):
+        self.window.get_widget("prefs-stats-enable-net").set_active(self.config.get_stats_enable_net_poll())
+    def refresh_mem_poll(self, ignore1=None, ignore2=None, ignore3=None,
+                         ignore4=None):
+        self.window.get_widget("prefs-stats-enable-mem").set_active(self.config.get_stats_enable_mem_poll())
+    def refresh_cpu_poll(self, ignore1=None, ignore2=None, ignore3=None,
+                         ignore4=None):
+        self.window.get_widget("prefs-stats-enable-cpu").set_active(self.config.get_stats_enable_cpu_poll())
 
     def change_update_interval(self, src):
         self.config.set_stats_update_interval(src.get_value_as_int())
@@ -99,6 +133,16 @@
     def change_remote_sound(self, src):
         self.config.set_remote_sound(not self.config.get_remote_sound())
 
+    def change_disk_poll(self, src):
+        self.config.set_stats_enable_disk_poll(src.get_active())
+    def change_net_poll(self, src):
+        self.config.set_stats_enable_net_poll(src.get_active())
+    def change_mem_poll(self, src):
+        self.config.set_stats_enable_mem_poll(src.get_active())
+    def change_cpu_poll(self, src):
+        self.config.set_stats_enable_cpu_poll(src.get_active())
+
     def show_help(self, src):
-        # From the Preferences window, show the help document from the Preferences page
-        self.emit("action-show-help", "virt-manager-preferences-window") 
+        # From the Preferences window, show the help document from
+        # the Preferences page
+        self.emit("action-show-help", "virt-manager-preferences-window")
diff -r f4b79629808d -r c7cd0d65d7a6 src/vmm-preferences.glade
--- a/src/vmm-preferences.glade	Sun Dec 07 16:32:56 2008 -0500
+++ b/src/vmm-preferences.glade	Mon Dec 08 10:11:25 2008 -0500
@@ -1,362 +1,512 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--*- mode: xml -*-->
+<!--Generated with glade3 3.4.5 on Mon Dec  8 10:10:57 2008 -->
 <glade-interface>
-  <widget class="GtkDialog" id="vmm-preferences">
-    <property name="visible">True</property>
-    <property name="can_focus">True</property>
-    <property name="has_focus">True</property>
+  <widget class="GtkWindow" id="vmm-preferences">
     <property name="title" translatable="yes">Preferences</property>
-    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
-    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <property name="gravity">GDK_GRAVITY_CENTER</property>
-    <property name="has_separator">False</property>
     <signal name="delete_event" handler="on_vmm_preferences_delete_event"/>
-    <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox1">
+    <child>
+      <widget class="GtkVBox" id="vbox1">
         <property name="visible">True</property>
+        <property name="border_width">3</property>
+        <property name="spacing">3</property>
         <child>
-          <widget class="GtkVBox" id="vbox4">
+          <widget class="GtkNotebook" id="prefs-pages">
             <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="border_width">3</property>
             <child>
-              <widget class="GtkFrame" id="frame1">
+              <widget class="GtkVBox" id="vbox2">
                 <property name="visible">True</property>
-                <property name="border_width">3</property>
-                <property name="label_xalign">0</property>
+                <property name="border_width">6</property>
+                <property name="spacing">8</property>
                 <child>
-                  <widget class="GtkAlignment" id="alignment2">
+                  <widget class="GtkFrame" id="frame1">
                     <property name="visible">True</property>
-                    <property name="left_padding">12</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">GTK_SHADOW_NONE</property>
                     <child>
-                      <widget class="GtkTable" id="table3">
+                      <widget class="GtkAlignment" id="alignment2">
                         <property name="visible">True</property>
-                        <property name="border_width">3</property>
-                        <property name="n_rows">2</property>
-                        <property name="n_columns">3</property>
-                        <property name="column_spacing">3</property>
-                        <property name="row_spacing">3</property>
+                        <property name="left_padding">12</property>
                         <child>
-                          <widget class="GtkSpinButton" id="stats-history-length">
+                          <widget class="GtkTable" id="table1">
                             <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="adjustment">10 10 300 1 5 5</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">History Samples</atkproperty>
-                            </accessibility>
-                            <signal name="value_changed" handler="on_stats_history_length_changed"/>
+                            <property name="n_rows">2</property>
+                            <property name="n_columns">3</property>
+                            <property name="column_spacing">3</property>
+                            <property name="row_spacing">3</property>
+                            <child>
+                              <widget class="GtkLabel" id="label6">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Update status every</property>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label7">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Maintain history of</property>
+                              </widget>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkSpinButton" id="prefs-stats-update-interval">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">0 0 60 1 5 5</property>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkSpinButton" id="prefs-stats-history-len">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">0 0 300 5 5 5</property>
+                                <property name="climb_rate">0.01</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>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label8">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">seconds</property>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">2</property>
+                                <property name="right_attach">3</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label9">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">samples</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>
+                              </packing>
+                            </child>
                           </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="label38">
-                            <property name="visible">True</property>
-                            <property name="xalign">0</property>
-                            <property name="label" translatable="yes">seconds</property>
-                          </widget>
-                          <packing>
-                            <property name="left_attach">2</property>
-                            <property name="right_attach">3</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="label39">
-                            <property name="visible">True</property>
-                            <property name="xalign">0</property>
-                            <property name="label" translatable="yes">samples</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="y_options"></property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="label37">
-                            <property name="visible">True</property>
-                            <property name="xalign">0</property>
-                            <property name="label" translatable="yes">Maintain history of</property>
-                          </widget>
-                          <packing>
-                            <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="label36">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="xalign">0</property>
-                            <property name="label" translatable="yes">Update status every</property>
-                            <property name="use_underline">True</property>
-                            <property name="selectable">True</property>
-                            <property name="mnemonic_widget">stats-update-interval</property>
-                          </widget>
-                          <packing>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkSpinButton" id="stats-update-interval">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="adjustment">5 1 60 1 5 5</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">Status Interval</atkproperty>
-                            </accessibility>
-                            <signal name="value_changed" handler="on_stats_update_interval_changed"/>
-                          </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>
                       </widget>
                     </child>
+                    <child>
+                      <widget class="GtkLabel" id="label77">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Stats Options&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                      </widget>
+                      <packing>
+                        <property name="type">label_item</property>
+                      </packing>
+                    </child>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                  </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label35">
+                  <widget class="GtkFrame" id="frame2">
                     <property name="visible">True</property>
-                    <property name="label" translatable="yes">&lt;b&gt;Status monitoring&lt;/b&gt;</property>
-                    <property name="use_markup">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">GTK_SHADOW_NONE</property>
+                    <child>
+                      <widget class="GtkAlignment" id="alignment3">
+                        <property name="visible">True</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <widget class="GtkTable" id="table2">
+                            <property name="visible">True</property>
+                            <property name="n_rows">4</property>
+                            <property name="n_columns">2</property>
+                            <property name="column_spacing">3</property>
+                            <property name="row_spacing">3</property>
+                            <child>
+                              <widget class="GtkLabel" id="label11">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">CPU Usage</property>
+                                <property name="ellipsize">PANGO_ELLIPSIZE_END</property>
+                              </widget>
+                              <packing>
+                                <property name="x_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label12">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</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>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label13">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</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>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label14">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</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>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckButton" id="prefs-stats-enable-cpu">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="response_id">0</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="on_prefs_stats_enable_cpu_toggled"/>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="x_options">GTK_EXPAND</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckButton" id="prefs-stats-enable-mem">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="response_id">0</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="on_prefs_stats_enable_mem_toggled"/>
+                              </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_EXPAND</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckButton" id="prefs-stats-enable-disk">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="response_id">0</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="on_prefs_stats_enable_disk_toggled"/>
+                              </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_EXPAND</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckButton" id="prefs-stats-enable-net">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="response_id">0</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="on_prefs_stats_enable_net_toggled"/>
+                              </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_EXPAND</property>
+                              </packing>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label10">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Enable Stats Polling&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                      </widget>
+                      <packing>
+                        <property name="type">label_item</property>
+                      </packing>
+                    </child>
                   </widget>
                   <packing>
-                    <property name="type">label_item</property>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
               </widget>
             </child>
             <child>
-              <widget class="GtkFrame" id="frame9">
+              <widget class="GtkLabel" id="label2">
                 <property name="visible">True</property>
-                <property name="border_width">3</property>
-                <property name="label_xalign">0</property>
+                <property name="label" translatable="yes">Stats</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkVBox" id="vbox3">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="spacing">8</property>
                 <child>
-                  <widget class="GtkAlignment" id="alignment127">
+                  <widget class="GtkFrame" id="frame3">
                     <property name="visible">True</property>
-                    <property name="bottom_padding">6</property>
-                    <property name="left_padding">12</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">GTK_SHADOW_NONE</property>
                     <child>
-                      <widget class="GtkTable" id="table31">
+                      <widget class="GtkAlignment" id="alignment4">
                         <property name="visible">True</property>
-                        <property name="n_rows">4</property>
-                        <property name="n_columns">1</property>
+                        <property name="left_padding">12</property>
                         <child>
-                          <widget class="GtkComboBox" id="console-popup">
+                          <widget class="GtkTable" id="table3">
                             <property name="visible">True</property>
-                            <property name="items" translatable="yes">Never
-For new domains
+                            <property name="n_rows">4</property>
+                            <property name="n_columns">1</property>
+                            <property name="row_spacing">2</property>
+                            <child>
+                              <widget class="GtkComboBox" id="prefs-console-popup">
+                                <property name="visible">True</property>
+                                <property name="items" translatable="yes">Never
+For all new domains
 For all domains</property>
-                            <accessibility>
-                              <atkproperty name="AtkObject::accessible_name" translatable="yes">Auto Console</atkproperty>
-                            </accessibility>
-                            <signal name="changed" handler="on_console_popup_changed"/>
-                          </widget>
-                          <packing>
-                            <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
-                            <property name="x_padding">5</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkComboBox" id="console-keygrab">
-                            <property name="visible">True</property>
-                            <property name="items" translatable="yes">Never
+                              </widget>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_padding">5</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label5">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Automatically open consoles:</property>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label15">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Grab keyboard input:</property>
+                              </widget>
+                              <packing>
+                                <property name="top_attach">2</property>
+                                <property name="bottom_attach">3</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkComboBox" id="prefs-console-keygrab">
+                                <property name="visible">True</property>
+                                <property name="items" translatable="yes">Never
 When fullscreen
 On mouse over</property>
-                            <accessibility>
-                              <atkproperty name="AtkObject::accessible_name" translatable="yes">Grab Keyboard</atkproperty>
-                            </accessibility>
-                            <signal name="changed" handler="on_console_keygrab_changed"/>
+                              </widget>
+                              <packing>
+                                <property name="top_attach">3</property>
+                                <property name="bottom_attach">4</property>
+                                <property name="x_padding">5</property>
+                              </packing>
+                            </child>
                           </widget>
-                          <packing>
-                            <property name="top_attach">3</property>
-                            <property name="bottom_attach">4</property>
-                            <property name="x_options">GTK_FILL</property>
-                            <property name="x_padding">5</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkLabel" id="label345">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="xalign">0</property>
-                            <property name="label" translatable="yes">Grab keyboard input:</property>
-                            <property name="use_underline">True</property>
-                            <property name="selectable">True</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="label342">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="xalign">0</property>
-                            <property name="label" translatable="yes">Automatically open consoles:</property>
-                            <property name="use_underline">True</property>
-                            <property name="selectable">True</property>
-                          </widget>
-                          <packing>
-                            <property name="x_options">GTK_FILL</property>
-                            <property name="y_options"></property>
-                          </packing>
                         </child>
                       </widget>
                     </child>
+                    <child>
+                      <widget class="GtkLabel" id="label1">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Consoles&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                      </widget>
+                      <packing>
+                        <property name="type">label_item</property>
+                      </packing>
+                    </child>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                  </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="label341">
+                  <widget class="GtkFrame" id="frame4">
                     <property name="visible">True</property>
-                    <property name="label" translatable="yes">&lt;b&gt;Consoles&lt;/b&gt;</property>
-                    <property name="use_markup">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="left_padding">12</property>
+                        <child>
+                          <widget class="GtkTable" id="table4">
+                            <property name="visible">True</property>
+                            <property name="n_rows">1</property>
+                            <property name="n_columns">3</property>
+                            <property name="column_spacing">8</property>
+                            <child>
+                              <widget class="GtkLabel" id="label16">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Install Audio Device:</property>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckButton" id="prefs-sound-remote">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="label" translatable="yes">Remote VM</property>
+                                <property name="response_id">0</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="prefs_sound_remote_toggled_cb"/>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">2</property>
+                                <property name="right_attach">3</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckButton" id="prefs-sound-local">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="label" translatable="yes">Local VM</property>
+                                <property name="response_id">0</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="on_prefs_sound_local_toggled"/>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                              </packing>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label4">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">&lt;b&gt;New VM&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                      </widget>
+                      <packing>
+                        <property name="type">label_item</property>
+                      </packing>
+                    </child>
                   </widget>
                   <packing>
-                    <property name="type">label_item</property>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
               </widget>
               <packing>
-                <property name="padding">3</property>
                 <property name="position">1</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkFrame" id="frame10">
+              <widget class="GtkLabel" id="label3">
                 <property name="visible">True</property>
-                <property name="border_width">3</property>
-                <property name="label_xalign">0</property>
+                <property name="label" translatable="yes">VM Details</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </widget>
+        </child>
+        <child>
+          <widget class="GtkHBox" id="hbox2">
+            <property name="visible">True</property>
+            <child>
+              <widget class="GtkButton" id="prefs-help">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="label" translatable="yes">gtk-help</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">0</property>
+                <signal name="clicked" handler="on_prefs_help_clicked"/>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkAlignment" id="alignment1">
+                <property name="visible">True</property>
                 <child>
-                  <widget class="GtkAlignment" id="alignment128">
-                    <property name="visible">True</property>
-                    <property name="left_padding">12</property>
-                    <child>
-                      <widget class="GtkHBox" id="hbox1">
-                        <property name="visible">True</property>
-                        <property name="border_width">3</property>
-                        <property name="spacing">3</property>
-                        <child>
-                          <widget class="GtkLabel" id="label348">
-                            <property name="visible">True</property>
-                            <property name="label" translatable="yes">Install Audio Device:</property>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkCheckButton" id="local-sound">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">Local VM</property>
-                            <property name="use_underline">True</property>
-                            <property name="response_id">0</property>
-                            <property name="draw_indicator">True</property>
-                            <signal name="toggled" handler="on_local_sound_toggled"/>
-                          </widget>
-                          <packing>
-                            <property name="fill">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <widget class="GtkCheckButton" id="remote-sound">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="label" translatable="yes">Remote VM</property>
-                            <property name="use_underline">True</property>
-                            <property name="response_id">0</property>
-                            <property name="draw_indicator">True</property>
-                            <signal name="toggled" handler="on_remote_sound_toggled"/>
-                          </widget>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">2</property>
-                          </packing>
-                        </child>
-                      </widget>
-                    </child>
-                  </widget>
-                </child>
-                <child>
-                  <widget class="GtkLabel" id="label347">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">&lt;b&gt;New VM Preferences&lt;/b&gt;</property>
-                    <property name="use_markup">True</property>
-                  </widget>
-                  <packing>
-                    <property name="type">label_item</property>
-                  </packing>
+                  <placeholder/>
                 </child>
               </widget>
               <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkHBox" id="hbox3">
+                <property name="visible">True</property>
+                <property name="spacing">6</property>
+                <property name="homogeneous">True</property>
+                <child>
+                  <widget class="GtkButton" id="prefs-close">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="label" translatable="yes">gtk-close</property>
+                    <property name="use_stock">True</property>
+                    <property name="response_id">0</property>
+                    <signal name="clicked" handler="on_prefs_close_clicked"/>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
                 <property name="position">2</property>
               </packing>
             </child>
           </widget>
           <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
             <property name="position">1</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area1">
-            <property name="visible">True</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
-            <child>
-              <widget class="GtkButton" id="button1">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="label">gtk-help</property>
-                <property name="use_stock">True</property>
-                <property name="response_id">-11</property>
-                <signal name="clicked" handler="on_preferences_help_clicked"/>
-              </widget>
-            </child>
-            <child>
-              <widget class="GtkButton" id="close">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="label">gtk-close</property>
-                <property name="use_stock">True</property>
-                <property name="response_id">-7</property>
-                <signal name="clicked" handler="on_close_clicked"/>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">GTK_PACK_END</property>
           </packing>
         </child>
       </widget>
_______________________________________________
et-mgmt-tools mailing list
et-mgmt-tools@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/et-mgmt-tools

[Index of Archives]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux