[virt-tools-list] [PATCH 3/4] Display operating system inspection icons in main vmlist.

2011-07-18 Thread Richard W.M. Jones
From: Richard W.M. Jones rjo...@redhat.com

---
 src/virtManager/manager.py |   43 +--
 1 files changed, 41 insertions(+), 2 deletions(-)

diff --git a/src/virtManager/manager.py b/src/virtManager/manager.py
index f10879d..f6cd0d9 100644
--- a/src/virtManager/manager.py
+++ b/src/virtManager/manager.py
@@ -43,6 +43,7 @@ ROW_IS_CONN_CONNECTED = 8
 ROW_IS_VM = 9
 ROW_IS_VM_RUNNING = 10
 ROW_COLOR = 11
+ROW_INSPECTION_OS_ICON = 12
 
 # Columns in the tree view
 COL_NAME = 0
@@ -361,9 +362,11 @@ class vmmManager(vmmGObjectUI):
 self.widget(vm-notebook).set_show_tabs(False)
 
 # Handle, name, markup, status, status icon name, key/uuid, hint,
-# is conn, is conn connected, is vm, is vm running, fg color
+# is conn, is conn connected, is vm, is vm running, fg color,
+# inspection icon
 model = gtk.TreeStore(object, str, str, str, str, str, str,
-  bool, bool, bool, bool, gtk.gdk.Color)
+  bool, bool, bool, bool, gtk.gdk.Color,
+  gtk.gdk.Pixbuf)
 vmlist.set_model(model)
 util.tooltip_wrapper(vmlist, ROW_HINT, set_tooltip_column)
 
@@ -384,6 +387,12 @@ class vmmManager(vmmGObjectUI):
 statusCol.add_attribute(status_icon, 'icon-name', ROW_STATUS_ICON)
 statusCol.add_attribute(status_icon, 'visible', ROW_IS_VM)
 
+inspection_os_icon = gtk.CellRendererPixbuf()
+statusCol.pack_start(inspection_os_icon, False)
+statusCol.add_attribute(inspection_os_icon, 'pixbuf',
+ROW_INSPECTION_OS_ICON)
+statusCol.add_attribute(inspection_os_icon, 'visible', ROW_IS_VM)
+
 name_txt = gtk.CellRendererText()
 nameCol.pack_start(name_txt, True)
 nameCol.add_attribute(name_txt, 'markup', ROW_MARKUP)
@@ -676,6 +685,7 @@ class vmmManager(vmmGObjectUI):
 vm.connect(status-changed, self.vm_status_changed)
 vm.connect(resources-sampled, self.vm_resources_sampled)
 vm.connect(config-changed, self.vm_resources_sampled, True)
+vm.connect(inspection-changed, self.vm_inspection_changed)
 
 vmlist = self.widget(vm-list)
 model = vmlist.get_model()
@@ -741,6 +751,8 @@ class vmmManager(vmmGObjectUI):
 row.insert(ROW_IS_VM, True)
 row.insert(ROW_IS_VM_RUNNING, vm.is_active())
 row.insert(ROW_COLOR, None)
+row.insert(ROW_INSPECTION_OS_ICON,
+   self.get_inspection_icon_pixbuf(vm, 16, 16))
 
 row[ROW_MARKUP] = self._build_vm_markup(row)
 
@@ -777,6 +789,7 @@ class vmmManager(vmmGObjectUI):
 row.insert(ROW_IS_VM, False)
 row.insert(ROW_IS_VM_RUNNING, False)
 row.insert(ROW_COLOR, self._build_conn_color(conn))
+row.insert(ROW_INSPECTION_OS_ICON, None)
 
 _iter = model.append(None, row)
 path = model.get_path(_iter)
@@ -880,6 +893,32 @@ class vmmManager(vmmGObjectUI):
 
 model.row_changed(row.path, row.iter)
 
+def vm_inspection_changed(self, vm):
+vmlist = self.window.get_widget(vm-list)
+model = vmlist.get_model()
+
+if self.vm_row_key(vm) not in self.rows:
+return
+
+row = self.rows[self.vm_row_key(vm)]
+row[ROW_INSPECTION_OS_ICON] = \
+self.get_inspection_icon_pixbuf(vm, 16, 16)
+model.row_changed(row.path, row.iter)
+
+def get_inspection_icon_pixbuf(self, vm, w, h):
+# libguestfs gives us the PNG data as a string.
+png_data = vm.inspection.icon
+if png_data == None:
+return None
+try:
+pb = gtk.gdk.PixbufLoader(image_type=png)
+pb.set_size(w, h)
+pb.write(png_data)
+pb.close()
+return pb.get_pixbuf()
+except:
+return None
+
 def conn_state_changed(self, conn):
 self.conn_refresh_resources(conn)
 self.vm_selected()
-- 
1.7.5.2

___
virt-tools-list mailing list
virt-tools-list@redhat.com
https://www.redhat.com/mailman/listinfo/virt-tools-list


[virt-tools-list] [PATCH 3/4] Display operating system inspection icons in main vmlist.

2011-07-18 Thread Richard W.M. Jones
From: Richard W.M. Jones rjo...@redhat.com

---
 src/virtManager/manager.py |   43 +--
 1 files changed, 41 insertions(+), 2 deletions(-)

diff --git a/src/virtManager/manager.py b/src/virtManager/manager.py
index f10879d..f6cd0d9 100644
--- a/src/virtManager/manager.py
+++ b/src/virtManager/manager.py
@@ -43,6 +43,7 @@ ROW_IS_CONN_CONNECTED = 8
 ROW_IS_VM = 9
 ROW_IS_VM_RUNNING = 10
 ROW_COLOR = 11
+ROW_INSPECTION_OS_ICON = 12
 
 # Columns in the tree view
 COL_NAME = 0
@@ -361,9 +362,11 @@ class vmmManager(vmmGObjectUI):
 self.widget(vm-notebook).set_show_tabs(False)
 
 # Handle, name, markup, status, status icon name, key/uuid, hint,
-# is conn, is conn connected, is vm, is vm running, fg color
+# is conn, is conn connected, is vm, is vm running, fg color,
+# inspection icon
 model = gtk.TreeStore(object, str, str, str, str, str, str,
-  bool, bool, bool, bool, gtk.gdk.Color)
+  bool, bool, bool, bool, gtk.gdk.Color,
+  gtk.gdk.Pixbuf)
 vmlist.set_model(model)
 util.tooltip_wrapper(vmlist, ROW_HINT, set_tooltip_column)
 
@@ -384,6 +387,12 @@ class vmmManager(vmmGObjectUI):
 statusCol.add_attribute(status_icon, 'icon-name', ROW_STATUS_ICON)
 statusCol.add_attribute(status_icon, 'visible', ROW_IS_VM)
 
+inspection_os_icon = gtk.CellRendererPixbuf()
+statusCol.pack_start(inspection_os_icon, False)
+statusCol.add_attribute(inspection_os_icon, 'pixbuf',
+ROW_INSPECTION_OS_ICON)
+statusCol.add_attribute(inspection_os_icon, 'visible', ROW_IS_VM)
+
 name_txt = gtk.CellRendererText()
 nameCol.pack_start(name_txt, True)
 nameCol.add_attribute(name_txt, 'markup', ROW_MARKUP)
@@ -676,6 +685,7 @@ class vmmManager(vmmGObjectUI):
 vm.connect(status-changed, self.vm_status_changed)
 vm.connect(resources-sampled, self.vm_resources_sampled)
 vm.connect(config-changed, self.vm_resources_sampled, True)
+vm.connect(inspection-changed, self.vm_inspection_changed)
 
 vmlist = self.widget(vm-list)
 model = vmlist.get_model()
@@ -741,6 +751,8 @@ class vmmManager(vmmGObjectUI):
 row.insert(ROW_IS_VM, True)
 row.insert(ROW_IS_VM_RUNNING, vm.is_active())
 row.insert(ROW_COLOR, None)
+row.insert(ROW_INSPECTION_OS_ICON,
+   self.get_inspection_icon_pixbuf(vm, 16, 16))
 
 row[ROW_MARKUP] = self._build_vm_markup(row)
 
@@ -777,6 +789,7 @@ class vmmManager(vmmGObjectUI):
 row.insert(ROW_IS_VM, False)
 row.insert(ROW_IS_VM_RUNNING, False)
 row.insert(ROW_COLOR, self._build_conn_color(conn))
+row.insert(ROW_INSPECTION_OS_ICON, None)
 
 _iter = model.append(None, row)
 path = model.get_path(_iter)
@@ -880,6 +893,32 @@ class vmmManager(vmmGObjectUI):
 
 model.row_changed(row.path, row.iter)
 
+def vm_inspection_changed(self, vm):
+vmlist = self.window.get_widget(vm-list)
+model = vmlist.get_model()
+
+if self.vm_row_key(vm) not in self.rows:
+return
+
+row = self.rows[self.vm_row_key(vm)]
+row[ROW_INSPECTION_OS_ICON] = \
+self.get_inspection_icon_pixbuf(vm, 16, 16)
+model.row_changed(row.path, row.iter)
+
+def get_inspection_icon_pixbuf(self, vm, w, h):
+# libguestfs gives us the PNG data as a string.
+png_data = vm.inspection.icon
+if png_data == None:
+return None
+try:
+pb = gtk.gdk.PixbufLoader(image_type=png)
+pb.set_size(w, h)
+pb.write(png_data)
+pb.close()
+return pb.get_pixbuf()
+except:
+return None
+
 def conn_state_changed(self, conn):
 self.conn_refresh_resources(conn)
 self.vm_selected()
-- 
1.7.5.2

___
virt-tools-list mailing list
virt-tools-list@redhat.com
https://www.redhat.com/mailman/listinfo/virt-tools-list


Re: [virt-tools-list] [PATCH 3/4] Display operating system inspection icons in main vmlist.

2011-07-07 Thread Cole Robinson
On 06/30/2011 04:02 AM, Richard W.M. Jones wrote:
 From: Richard W.M. Jones rjo...@redhat.com
 
 ---
  src/virtManager/manager.py |   41 +++--
  1 files changed, 39 insertions(+), 2 deletions(-)
 
 diff --git a/src/virtManager/manager.py b/src/virtManager/manager.py
 index c7cca67..a52fd90 100644
 --- a/src/virtManager/manager.py
 +++ b/src/virtManager/manager.py
 @@ -43,6 +43,7 @@ ROW_IS_CONN_CONNECTED = 8
  ROW_IS_VM = 9
  ROW_IS_VM_RUNNING = 10
  ROW_COLOR = 11
 +ROW_INSPECTION_OS_ICON = 12
  
  # Columns in the tree view
  COL_NAME = 0
 @@ -352,9 +353,10 @@ class vmmManager(vmmGObjectUI):
  self.window.get_widget(vm-notebook).set_show_tabs(False)
  
  # Handle, name, markup, status, status icon, key/uuid, hint, is conn,
 -# is conn connected, is vm, is vm running, fg color
 +# is conn connected, is vm, is vm running, fg color, inspection icon
  model = gtk.TreeStore(object, str, str, str, gtk.gdk.Pixbuf, str, 
 str,
 -  bool, bool, bool, bool, gtk.gdk.Color)
 +  bool, bool, bool, bool, gtk.gdk.Color,
 +  gtk.gdk.Pixbuf)
  vmlist.set_model(model)
  util.tooltip_wrapper(vmlist, ROW_HINT, set_tooltip_column)
  
 @@ -384,6 +386,12 @@ class vmmManager(vmmGObjectUI):
  statusCol.add_attribute(status_icon, 'pixbuf', ROW_STATUS_ICON)
  statusCol.add_attribute(status_icon, 'visible', ROW_IS_VM)
  
 +inspection_os_icon = gtk.CellRendererPixbuf()
 +statusCol.pack_start(inspection_os_icon, False)
 +statusCol.add_attribute(inspection_os_icon, 'pixbuf',
 +ROW_INSPECTION_OS_ICON)
 +statusCol.add_attribute(inspection_os_icon, 'visible', ROW_IS_VM)
 +
  name_txt = gtk.CellRendererText()
  nameCol.pack_start(name_txt, True)
  nameCol.add_attribute(name_txt, 'markup', ROW_MARKUP)
 @@ -679,6 +687,7 @@ class vmmManager(vmmGObjectUI):
  vm.connect(status-changed, self.vm_status_changed)
  vm.connect(resources-sampled, self.vm_resources_sampled)
  vm.connect(config-changed, self.vm_resources_sampled)
 +vm.connect(inspection-changed, self.vm_inspection_changed)


Hmm, this makes me think maybe we shouldn't have a separate signal for
'inspection-changed' and just wrap this up into 'config-changed', since
from the UIs perspective it's all just domain details.

  vmlist = self.window.get_widget(vm-list)
  model = vmlist.get_model()
 @@ -747,6 +756,8 @@ class vmmManager(vmmGObjectUI):
  row.insert(ROW_IS_VM, True)
  row.insert(ROW_IS_VM_RUNNING, vm.is_active())
  row.insert(ROW_COLOR, gtk.gdk.Color(0, 0, 0))
 +row.insert(ROW_INSPECTION_OS_ICON,
 +   self.get_inspection_icon_pixbuf(vm,16,16))
  
  row[ROW_MARKUP] = self._build_vm_markup(vm, row)
  
 @@ -784,6 +795,7 @@ class vmmManager(vmmGObjectUI):
  row.insert(ROW_IS_VM, False)
  row.insert(ROW_IS_VM_RUNNING, False)
  row.insert(ROW_COLOR, self._build_conn_color(conn))
 +row.insert(ROW_INSPECTION_OS_ICON, None)
  
  _iter = model.append(None, row)
  path = model.get_path(_iter)
 @@ -883,6 +895,31 @@ class vmmManager(vmmGObjectUI):
  row[ROW_MARKUP] = self._build_vm_markup(vm, row)
  model.row_changed(row.path, row.iter)
  
 +def vm_inspection_changed(self, vm):
 +vmlist = self.window.get_widget(vm-list)
 +model = vmlist.get_model()
 +
 +if self.vm_row_key(vm) not in self.rows:
 +return
 +
 +row = self.rows[self.vm_row_key(vm)]
 +row[ROW_INSPECTION_OS_ICON] = 
 self.get_inspection_icon_pixbuf(vm,16,16)
 +model.row_changed(row.path, row.iter)
 +
 +def get_inspection_icon_pixbuf(self, vm, w, h):
 +# libguestfs gives us the PNG data as a string.
 +png_data = vm.get_inspection_icon()
 +if png_data == None:
 +return None
 +try:
 +pb = gtk.gdk.PixbufLoader(image_type=png)
 +pb.set_size(w, h)
 +pb.write (png_data)
 +pb.close()
 +return pb.get_pixbuf()
 +except:
 +return None
 +

Maybe we should do this just once when we set the data in
vmmInspectionData? If we need multiple sizes, just precreate multiple PNGs.

In general I like the idea though!

Thanks,
Cole

___
virt-tools-list mailing list
virt-tools-list@redhat.com
https://www.redhat.com/mailman/listinfo/virt-tools-list


[virt-tools-list] [PATCH 3/4] Display operating system inspection icons in main vmlist.

2011-06-30 Thread Richard W.M. Jones
From: Richard W.M. Jones rjo...@redhat.com

---
 src/virtManager/manager.py |   41 +++--
 1 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/src/virtManager/manager.py b/src/virtManager/manager.py
index c7cca67..a52fd90 100644
--- a/src/virtManager/manager.py
+++ b/src/virtManager/manager.py
@@ -43,6 +43,7 @@ ROW_IS_CONN_CONNECTED = 8
 ROW_IS_VM = 9
 ROW_IS_VM_RUNNING = 10
 ROW_COLOR = 11
+ROW_INSPECTION_OS_ICON = 12
 
 # Columns in the tree view
 COL_NAME = 0
@@ -352,9 +353,10 @@ class vmmManager(vmmGObjectUI):
 self.window.get_widget(vm-notebook).set_show_tabs(False)
 
 # Handle, name, markup, status, status icon, key/uuid, hint, is conn,
-# is conn connected, is vm, is vm running, fg color
+# is conn connected, is vm, is vm running, fg color, inspection icon
 model = gtk.TreeStore(object, str, str, str, gtk.gdk.Pixbuf, str, str,
-  bool, bool, bool, bool, gtk.gdk.Color)
+  bool, bool, bool, bool, gtk.gdk.Color,
+  gtk.gdk.Pixbuf)
 vmlist.set_model(model)
 util.tooltip_wrapper(vmlist, ROW_HINT, set_tooltip_column)
 
@@ -384,6 +386,12 @@ class vmmManager(vmmGObjectUI):
 statusCol.add_attribute(status_icon, 'pixbuf', ROW_STATUS_ICON)
 statusCol.add_attribute(status_icon, 'visible', ROW_IS_VM)
 
+inspection_os_icon = gtk.CellRendererPixbuf()
+statusCol.pack_start(inspection_os_icon, False)
+statusCol.add_attribute(inspection_os_icon, 'pixbuf',
+ROW_INSPECTION_OS_ICON)
+statusCol.add_attribute(inspection_os_icon, 'visible', ROW_IS_VM)
+
 name_txt = gtk.CellRendererText()
 nameCol.pack_start(name_txt, True)
 nameCol.add_attribute(name_txt, 'markup', ROW_MARKUP)
@@ -679,6 +687,7 @@ class vmmManager(vmmGObjectUI):
 vm.connect(status-changed, self.vm_status_changed)
 vm.connect(resources-sampled, self.vm_resources_sampled)
 vm.connect(config-changed, self.vm_resources_sampled)
+vm.connect(inspection-changed, self.vm_inspection_changed)
 
 vmlist = self.window.get_widget(vm-list)
 model = vmlist.get_model()
@@ -747,6 +756,8 @@ class vmmManager(vmmGObjectUI):
 row.insert(ROW_IS_VM, True)
 row.insert(ROW_IS_VM_RUNNING, vm.is_active())
 row.insert(ROW_COLOR, gtk.gdk.Color(0, 0, 0))
+row.insert(ROW_INSPECTION_OS_ICON,
+   self.get_inspection_icon_pixbuf(vm,16,16))
 
 row[ROW_MARKUP] = self._build_vm_markup(vm, row)
 
@@ -784,6 +795,7 @@ class vmmManager(vmmGObjectUI):
 row.insert(ROW_IS_VM, False)
 row.insert(ROW_IS_VM_RUNNING, False)
 row.insert(ROW_COLOR, self._build_conn_color(conn))
+row.insert(ROW_INSPECTION_OS_ICON, None)
 
 _iter = model.append(None, row)
 path = model.get_path(_iter)
@@ -883,6 +895,31 @@ class vmmManager(vmmGObjectUI):
 row[ROW_MARKUP] = self._build_vm_markup(vm, row)
 model.row_changed(row.path, row.iter)
 
+def vm_inspection_changed(self, vm):
+vmlist = self.window.get_widget(vm-list)
+model = vmlist.get_model()
+
+if self.vm_row_key(vm) not in self.rows:
+return
+
+row = self.rows[self.vm_row_key(vm)]
+row[ROW_INSPECTION_OS_ICON] = self.get_inspection_icon_pixbuf(vm,16,16)
+model.row_changed(row.path, row.iter)
+
+def get_inspection_icon_pixbuf(self, vm, w, h):
+# libguestfs gives us the PNG data as a string.
+png_data = vm.get_inspection_icon()
+if png_data == None:
+return None
+try:
+pb = gtk.gdk.PixbufLoader(image_type=png)
+pb.set_size(w, h)
+pb.write (png_data)
+pb.close()
+return pb.get_pixbuf()
+except:
+return None
+
 def conn_state_changed(self, conn):
 self.conn_refresh_resources(conn)
 self.vm_selected()
-- 
1.7.5.2

___
virt-tools-list mailing list
virt-tools-list@redhat.com
https://www.redhat.com/mailman/listinfo/virt-tools-list