Added domain ID column to summary view

This commit is contained in:
berrange@roquette.boston.redhat.com 2006-07-14 09:36:03 -04:00
parent b28f7c65e1
commit 0ec45880c8
3 changed files with 69 additions and 21 deletions

View File

@ -51,7 +51,7 @@
<signal name="activate" handler="on_menu_file_new_activate" last_modification_time="Tue, 28 Mar 2006 17:06:34 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image36">
<widget class="GtkImage" id="image42">
<property name="visible">True</property>
<property name="stock">gtk-new</property>
<property name="icon_size">1</property>
@ -78,7 +78,7 @@
<signal name="activate" handler="on_menu_file_open_connection_activate" last_modification_time="Mon, 12 Jun 2006 20:34:47 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image37">
<widget class="GtkImage" id="image43">
<property name="visible">True</property>
<property name="stock">gtk-connect</property>
<property name="icon_size">1</property>
@ -136,7 +136,7 @@
<signal name="activate" handler="on_menu_edit_details_activate" last_modification_time="Tue, 28 Mar 2006 17:06:34 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image38">
<widget class="GtkImage" id="image44">
<property name="visible">True</property>
<property name="stock">gtk-properties</property>
<property name="icon_size">1</property>
@ -157,7 +157,7 @@
<signal name="activate" handler="on_menu_edit_delete_activate" last_modification_time="Tue, 28 Mar 2006 17:06:34 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image39">
<widget class="GtkImage" id="image45">
<property name="visible">True</property>
<property name="stock">gtk-delete</property>
<property name="icon_size">1</property>
@ -198,6 +198,16 @@
<child>
<widget class="GtkMenu" id="menuitem6_menu">
<child>
<widget class="GtkCheckMenuItem" id="menu_view_domain_id">
<property name="visible">True</property>
<property name="label" translatable="yes">Domain ID</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<signal name="activate" handler="on_menu_view_domain_id_activate" last_modification_time="Fri, 14 Jul 2006 13:23:42 GMT"/>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="menu_view_status">
<property name="visible">True</property>
@ -223,7 +233,7 @@
<property name="visible">True</property>
<property name="label" translatable="yes">Virtual CPUs</property>
<property name="use_underline">True</property>
<property name="active">False</property>
<property name="active">True</property>
<signal name="activate" handler="on_menu_view_virtual_cpus_activate" last_modification_time="Wed, 12 Jul 2006 20:33:23 GMT"/>
</widget>
</child>

View File

@ -57,6 +57,9 @@ class vmmConfig:
def get_icon_dir(self):
return self.icon_dir
def is_vmlist_domain_id_visible(self):
return self.conf.get_bool(self.conf_dir + "/vmlist-fields/domain_id")
def is_vmlist_status_visible(self):
return self.conf.get_bool(self.conf_dir + "/vmlist-fields/status")
@ -77,6 +80,9 @@ class vmmConfig:
def set_vmlist_domain_id_visible(self, state):
self.conf.set_bool(self.conf_dir + "/vmlist-fields/domain_id", state)
def set_vmlist_status_visible(self, state):
self.conf.set_bool(self.conf_dir + "/vmlist-fields/status", state)
@ -97,6 +103,9 @@ class vmmConfig:
def on_vmlist_domain_id_visible_changed(self, callback):
self.conf.notify_add(self.conf_dir + "/vmlist-fields/domain_id", callback)
def on_vmlist_status_visible_changed(self, callback):
self.conf.notify_add(self.conf_dir + "/vmlist-fields/status", callback)

View File

@ -23,11 +23,12 @@ import gtk.glade
import sparkline
VMLIST_SORT_NAME = 1
VMLIST_SORT_CPU_USAGE = 2
VMLIST_SORT_MEMORY_USAGE = 3
VMLIST_SORT_DISK_USAGE = 4
VMLIST_SORT_NETWORK_USAGE = 5
VMLIST_SORT_ID = 1
VMLIST_SORT_NAME = 2
VMLIST_SORT_CPU_USAGE = 3
VMLIST_SORT_MEMORY_USAGE = 4
VMLIST_SORT_DISK_USAGE = 5
VMLIST_SORT_NETWORK_USAGE = 6
class vmmManager(gobject.GObject):
__gsignals__ = {
@ -52,6 +53,7 @@ class vmmManager(gobject.GObject):
self.connection.connect("vm-added", self.vm_added)
self.connection.connect("vm-removed", self.vm_removed)
self.config.on_vmlist_domain_id_visible_changed(self.toggle_domain_id_visible_widget)
self.config.on_vmlist_status_visible_changed(self.toggle_status_visible_widget)
self.config.on_vmlist_cpu_usage_visible_changed(self.toggle_cpu_usage_visible_widget)
self.config.on_vmlist_virtual_cpus_visible_changed(self.toggle_virtual_cpus_visible_widget)
@ -59,6 +61,7 @@ class vmmManager(gobject.GObject):
self.config.on_vmlist_disk_usage_visible_changed(self.toggle_disk_usage_visible_widget)
self.config.on_vmlist_network_traffic_visible_changed(self.toggle_network_traffic_visible_widget)
self.window.get_widget("menu_view_domain_id").set_active(self.config.is_vmlist_domain_id_visible())
self.window.get_widget("menu_view_status").set_active(self.config.is_vmlist_status_visible())
self.window.get_widget("menu_view_cpu_usage").set_active(self.config.is_vmlist_cpu_usage_visible())
self.window.get_widget("menu_view_virtual_cpus").set_active(self.config.is_vmlist_virtual_cpus_visible())
@ -89,6 +92,7 @@ class vmmManager(gobject.GObject):
self.window.signal_autoconnect({
"on_menu_view_domain_id_activate" : self.toggle_domain_id_visible_conf,
"on_menu_view_status_activate" : self.toggle_status_visible_conf,
"on_menu_view_cpu_usage_activate" : self.toggle_cpu_usage_visible_conf,
"on_menu_view_virtual_cpus_activate" : self.toggle_virtual_cpus_visible_conf,
@ -227,6 +231,7 @@ class vmmManager(gobject.GObject):
model = gtk.ListStore(str, str)
vmlist.set_model(model)
idCol = gtk.TreeViewColumn("ID")
nameCol = gtk.TreeViewColumn("Name")
statusCol = gtk.TreeViewColumn("Status")
cpuUsageCol = gtk.TreeViewColumn("CPU usage")
@ -235,11 +240,7 @@ class vmmManager(gobject.GObject):
diskUsageCol = gtk.TreeViewColumn("Disk usage")
networkTrafficCol = gtk.TreeViewColumn("Network traffic")
name_txt = gtk.CellRendererText()
nameCol.pack_start(name_txt, True)
nameCol.add_attribute(name_txt, 'text', 1)
nameCol.set_sort_column_id(VMLIST_SORT_NAME)
vmlist.append_column(idCol)
vmlist.append_column(nameCol)
vmlist.append_column(statusCol)
vmlist.append_column(cpuUsageCol)
@ -248,6 +249,17 @@ class vmmManager(gobject.GObject):
vmlist.append_column(diskUsageCol)
vmlist.append_column(networkTrafficCol)
id_txt = gtk.CellRendererText()
idCol.pack_start(id_txt, True)
idCol.set_cell_data_func(id_txt, self.domain_id_text, None)
idCol.set_visible(self.config.is_vmlist_domain_id_visible())
idCol.set_sort_column_id(VMLIST_SORT_ID)
name_txt = gtk.CellRendererText()
nameCol.pack_start(name_txt, True)
nameCol.add_attribute(name_txt, 'text', 1)
nameCol.set_sort_column_id(VMLIST_SORT_NAME)
status_txt = gtk.CellRendererText()
status_icon = gtk.CellRendererPixbuf()
statusCol.pack_start(status_icon, False)
@ -298,6 +310,7 @@ class vmmManager(gobject.GObject):
networkTrafficCol.set_visible(self.config.is_vmlist_network_traffic_visible())
networkTrafficCol.set_sort_column_id(VMLIST_SORT_NETWORK_USAGE)
model.set_sort_func(VMLIST_SORT_ID, self.vmlist_domain_id_sorter)
model.set_sort_func(VMLIST_SORT_NAME, self.vmlist_name_sorter)
model.set_sort_func(VMLIST_SORT_CPU_USAGE, self.vmlist_cpu_usage_sorter)
model.set_sort_func(VMLIST_SORT_MEMORY_USAGE, self.vmlist_memory_usage_sorter)
@ -307,6 +320,9 @@ class vmmManager(gobject.GObject):
model.set_sort_column_id(VMLIST_SORT_NAME, gtk.SORT_ASCENDING)
def vmlist_domain_id_sorter(self, model, iter1, iter2):
return cmp(self.connection.get_vm(model.get_value(iter1, 0)).get_id(), self.connection.get_vm(model.get_value(iter2, 0)).get_id())
def vmlist_name_sorter(self, model, iter1, iter2):
return cmp(model.get_value(iter1, 0), model.get_value(iter2, 0))
@ -322,13 +338,22 @@ class vmmManager(gobject.GObject):
def vmlist_network_usage_sorter(self, model, iter1, iter2):
return cmp(self.connection.get_vm(model.get_value(iter1, 0)).network_traffic(), self.connection.get_vm(model.get_value(iter2, 0)).network_traffic())
def toggle_domain_id_visible_conf(self, menu):
self.config.set_vmlist_domain_id_visible(menu.get_active())
def toggle_domain_id_visible_widget(self, ignore1, ignore2, ignore3, ignore4):
menu = self.window.get_widget("menu_view_domain_id")
vmlist = self.window.get_widget("vm-list")
col = vmlist.get_column(0)
col.set_visible(self.config.is_vmlist_domain_id_visible())
def toggle_status_visible_conf(self, menu):
self.config.set_vmlist_status_visible(menu.get_active())
def toggle_status_visible_widget(self, ignore1, ignore2, ignore3, ignore4):
menu = self.window.get_widget("menu_view_status")
vmlist = self.window.get_widget("vm-list")
col = vmlist.get_column(1)
col = vmlist.get_column(2)
col.set_visible(self.config.is_vmlist_status_visible())
def toggle_cpu_usage_visible_conf(self, menu):
@ -337,7 +362,7 @@ class vmmManager(gobject.GObject):
def toggle_cpu_usage_visible_widget(self, ignore1, ignore2, ignore3, ignore4):
menu = self.window.get_widget("menu_view_cpu_usage")
vmlist = self.window.get_widget("vm-list")
col = vmlist.get_column(2)
col = vmlist.get_column(3)
col.set_visible(self.config.is_vmlist_cpu_usage_visible())
def toggle_virtual_cpus_visible_conf(self, menu):
@ -346,7 +371,7 @@ class vmmManager(gobject.GObject):
def toggle_virtual_cpus_visible_widget(self, ignore1, ignore2, ignore3, ignore4):
menu = self.window.get_widget("menu_view_virtual_cpus")
vmlist = self.window.get_widget("vm-list")
col = vmlist.get_column(3)
col = vmlist.get_column(4)
col.set_visible(self.config.is_vmlist_virtual_cpus_visible())
def toggle_memory_usage_visible_conf(self, menu):
@ -355,7 +380,7 @@ class vmmManager(gobject.GObject):
def toggle_memory_usage_visible_widget(self, ignore1, ignore2, ignore3, ignore4):
menu = self.window.get_widget("menu_view_memory_usage")
vmlist = self.window.get_widget("vm-list")
col = vmlist.get_column(4)
col = vmlist.get_column(5)
col.set_visible(self.config.is_vmlist_memory_usage_visible())
def toggle_disk_usage_visible_conf(self, menu):
@ -364,7 +389,7 @@ class vmmManager(gobject.GObject):
def toggle_disk_usage_visible_widget(self, ignore1, ignore2, ignore3, ignore4):
menu = self.window.get_widget("menu_view_disk_usage")
vmlist = self.window.get_widget("vm-list")
col = vmlist.get_column(5)
col = vmlist.get_column(6)
col.set_visible(self.config.is_vmlist_disk_usage_visible())
def toggle_network_traffic_visible_conf(self, menu):
@ -373,10 +398,14 @@ class vmmManager(gobject.GObject):
def toggle_network_traffic_visible_widget(self, ignore1, ignore2, ignore3, ignore4):
menu = self.window.get_widget("menu_view_network_traffic")
vmlist = self.window.get_widget("vm-list")
col = vmlist.get_column(6)
col = vmlist.get_column(7)
col.set_visible(self.config.is_vmlist_network_traffic_visible())
def domain_id_text(self, column, cell, model, iter, data):
uuid = model.get_value(iter, 0)
cell.set_property('text', str(self.connection.get_vm(uuid).get_id()))
def status_text(self, column, cell, model, iter, data):
uuid = model.get_value(iter, 0)
cell.set_property('text', self.connection.get_vm(uuid).run_status())