[accerciser/gtkbuilder] get rid of cell data function for relations



commit 87f4520ed8f8f6d4ab8687a13839f368a2a2cd09
Author: Eitan Isaacson <eitan ascender com>
Date:   Sun May 10 18:31:08 2009 +0300

    get rid of cell data function for relations
---
 plugins/interface_view.py |   47 +++++++++-----------------------------------
 plugins/interface_view.ui |   30 ++++++++++++++++++----------
 2 files changed, 29 insertions(+), 48 deletions(-)

diff --git a/plugins/interface_view.py b/plugins/interface_view.py
index ee38cb7..ec20fb1 100644
--- a/plugins/interface_view.py
+++ b/plugins/interface_view.py
@@ -282,15 +282,10 @@ class _SectionAccessible(_InterfaceSection):
     # configure relations tree view
     self.relations_view = ui_xml.get_object('relations_view')
     self.relations_model = ui_xml.get_object('relations_treestore')
-    tvc = ui_xml.get_object('treeviewcolumn2')
-    tvc.set_cell_data_func(
-      ui_xml.get_object('cellrendererpixbuf1'), self._relationCellDataFunc)
-    tvc.set_cell_data_func(
-      ui_xml.get_object('cellrenderertext2'), self._relationCellDataFunc)
     # preset the different bg colors
     style = gtk.Style ()
-    self.header_bg = style.bg[gtk.STATE_NORMAL]
-    self.relation_bg = style.base[gtk.STATE_NORMAL]
+    self.header_bg = style.bg[gtk.STATE_NORMAL].to_string()
+    self.relation_bg = style.base[gtk.STATE_NORMAL].to_string()
 
     selection = self.relations_view.get_selection()
     selection.set_select_function(self._relationSelectFunc)
@@ -331,10 +326,16 @@ class _SectionAccessible(_InterfaceSection):
     for relation in relations:
       r_type_name = repr(relation.getRelationType()).replace('RELATION_', '')
       r_type_name = r_type_name.replace('_', ' ').lower().capitalize()
-      iter = self.relations_model.append(None, [None, r_type_name, -1])
+      iter = self.relations_model.append(
+          None, [None, 
+                 '<i>'+markup_escape_text(r_type_name)+'</i>', -1, 
+                 self.header_bg, False])
       for i in range(relation.getNTargets()):
         acc = relation.getTarget(i)
-        self.relations_model.append(iter, [getIcon(acc), acc.name, i])
+        self.relations_model.append(
+            iter, [getIcon(acc), 
+                   markup_escape_text(acc.name), i, 
+                   self.relation_bg, True])
     self.relations_view.expand_all()
 
     self.registerEventListener(self._accEventState, 'object:state-changed')
@@ -347,34 +348,6 @@ class _SectionAccessible(_InterfaceSection):
     self.states_model.clear()
     self.attr_model.clear()
 
-  def _relationCellDataFunc(self, tvc, cellrenderer, model, iter):
-    '''
-    Make relation-type headers distinguishable by tweaking the visible styling.
-    
-    @param tvc: The given tree view column
-    @type tvc: gtk.TreeViewColumn
-    @param cellrenderer: The given cell renderer.
-    @type cellrenderer: gtk.CellRenderer
-    @param model: The relations data model.
-    @type model: gtk.TreeStore
-    @param iter: The current iter.
-    @type iter: gtk.TreeIter
-    '''
-    if len(model.get_path(iter)) == 1:
-      cellrenderer.set_property('cell-background-gdk', self.header_bg)
-      cellrenderer.set_property('mode', gtk.CELL_RENDERER_MODE_INERT)
-      if isinstance(cellrenderer, gtk.CellRendererText):
-        cellrenderer.set_property('style', pango.STYLE_ITALIC)
-      elif isinstance(cellrenderer, gtk.CellRendererPixbuf):
-        cellrenderer.set_property('visible', False)
-    else:
-      cellrenderer.set_property('cell-background-gdk', self.relation_bg)
-      cellrenderer.set_property('mode', gtk.CELL_RENDERER_MODE_ACTIVATABLE)
-      if isinstance(cellrenderer, gtk.CellRendererText):
-        cellrenderer.set_property('style', pango.STYLE_NORMAL)
-      elif isinstance(cellrenderer, gtk.CellRendererPixbuf):
-        cellrenderer.set_property('visible', True)
-
   def _relationSelectFunc(self, path):
     '''
     Make relation-type headers unselectable.
diff --git a/plugins/interface_view.ui b/plugins/interface_view.ui
index d549974..c5b0454 100644
--- a/plugins/interface_view.ui
+++ b/plugins/interface_view.ui
@@ -8,16 +8,6 @@
       <column type="gchararray"/>
     </columns>
   </object>
-  <object class="GtkTreeStore" id="relations_treestore">
-    <columns>
-      <!-- column-name role_icon -->
-      <column type="GdkPixbuf"/>
-      <!-- column-name name -->
-      <column type="gchararray"/>
-      <!-- column-name index -->
-      <column type="gint"/>
-    </columns>
-  </object>
   <object class="GtkListStore" id="accattrib_liststore">
     <columns>
       <!-- column-name gchararray1 -->
@@ -62,6 +52,20 @@
       <column type="gchararray"/>
     </columns>
   </object>
+  <object class="GtkTreeStore" id="relations_treestore">
+    <columns>
+      <!-- column-name role_icon -->
+      <column type="GdkPixbuf"/>
+      <!-- column-name name -->
+      <column type="gchararray"/>
+      <!-- column-name index -->
+      <column type="gint"/>
+      <!-- column-name bg_color -->
+      <column type="gchararray"/>
+      <!-- column-name visible -->
+      <column type="gboolean"/>
+    </columns>
+  </object>
   <object class="GtkFrame" id="iface_view_frame">
     <property name="visible">True</property>
     <property name="label_xalign">0</property>
@@ -254,13 +258,17 @@
                                                     <child>
                                                       <object class="GtkCellRendererPixbuf" id="cellrendererpixbuf1"/>
                                                       <attributes>
+                                                        <attribute name="cell-background-gdk">3</attribute>
+                                                        <attribute name="visible">4</attribute>
                                                         <attribute name="pixbuf">0</attribute>
                                                       </attributes>
                                                     </child>
                                                     <child>
                                                       <object class="GtkCellRendererText" id="cellrenderertext2"/>
                                                       <attributes>
-                                                        <attribute name="text">1</attribute>
+                                                        <attribute name="cell-background-gdk">3</attribute>
+                                                        <attribute name="background">3</attribute>
+                                                        <attribute name="markup">1</attribute>
                                                       </attributes>
                                                     </child>
                                                   </object>



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