[Pkg-bazaar-commits] ./bzr-gtk/unstable r303: Made basic signaling work.

Daniel Schierbeck daniel.schierbeck at gmail.com
Fri Apr 10 07:49:14 UTC 2009


------------------------------------------------------------
revno: 303
committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
branch nick: revhistoryview
timestamp: Sat 2007-10-20 23:38:23 +0200
message:
  Made basic signaling work.
modified:
  viz/branchwin.py
  viz/treeview.py
-------------- next part --------------
=== modified file 'viz/branchwin.py'
--- a/viz/branchwin.py	2007-10-20 20:47:44 +0000
+++ b/viz/branchwin.py	2007-10-20 21:38:23 +0000
@@ -19,7 +19,7 @@
 from linegraph import linegraph, same_branch
 from graphcell import CellRendererGraph
 from treemodel import TreeModel
-
+from treeview  import TreeView
 
 class BranchWindow(gtk.Window):
     """Branch window.
@@ -91,66 +91,14 @@
 
     def construct_top(self):
         """Construct the top-half of the window."""
-        scrollwin = gtk.ScrolledWindow()
-        scrollwin.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
-        scrollwin.set_shadow_type(gtk.SHADOW_IN)
-        scrollwin.show()
-
-        self.treeview = gtk.TreeView()
-        self.treeview.set_rules_hint(True)
-        self.treeview.set_search_column(4)
-        self.treeview.get_selection().connect("changed", self._treeselection_changed_cb)
-        self.treeview.connect("row-activated", self._treeview_row_activated_cb)
-        self.treeview.connect("button-release-event", 
-                self._treeview_row_mouseclick)
-        self.treeview.set_property('fixed-height-mode', True)
-        scrollwin.add(self.treeview)
+        self.treeview = TreeView()
+
+        self.treeview.treeview.get_selection().connect("changed",
+                self._treeselection_changed_cb)
+
         self.treeview.show()
 
-        cell = gtk.CellRendererText()
-        cell.set_property("width-chars", 15)
-        cell.set_property("ellipsize", pango.ELLIPSIZE_END)
-        column = gtk.TreeViewColumn("Revision No")
-        column.set_resizable(True)
-        column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
-        column.set_fixed_width(cell.get_size(self.treeview)[2])
-        column.pack_start(cell, expand=True)
-        column.add_attribute(cell, "text", treemodel.REVNO)
-        self.treeview.append_column(column)
-
-        self.graph_cell = CellRendererGraph()
-        self.graph_column = gtk.TreeViewColumn()
-        self.graph_column.set_resizable(True)
-        self.graph_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
-        self.graph_column.pack_start(self.graph_cell, expand=False)
-        self.graph_column.add_attribute(self.graph_cell, "node", treemodel.NODE)
-        self.graph_column.add_attribute(self.graph_cell, "in-lines", treemodel.LAST_LINES)
-        self.graph_column.add_attribute(self.graph_cell, "out-lines", treemodel.LINES)
-        self.treeview.append_column(self.graph_column)
-
-        cell = gtk.CellRendererText()
-        cell.set_property("width-chars", 65)
-        cell.set_property("ellipsize", pango.ELLIPSIZE_END)
-        column = gtk.TreeViewColumn("Message")
-        column.set_resizable(True)
-        column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
-        column.set_fixed_width(cell.get_size(self.treeview)[2])
-        column.pack_start(cell, expand=True)
-        column.add_attribute(cell, "text", treemodel.MESSAGE)
-        self.treeview.append_column(column)
-
-        cell = gtk.CellRendererText()
-        cell.set_property("width-chars", 15)
-        cell.set_property("ellipsize", pango.ELLIPSIZE_END)
-        column = gtk.TreeViewColumn("Committer")
-        column.set_resizable(True)
-        column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
-        column.set_fixed_width(cell.get_size(self.treeview)[2])
-        column.pack_start(cell, expand=True)
-        column.add_attribute(cell, "text", treemodel.COMMITER)
-        self.treeview.append_column(column)
-
-        return scrollwin
+        return self.treeview
 
     def construct_navigation(self):
         """Construct the navigation buttons."""
@@ -200,23 +148,7 @@
         """
         self.branch = branch
         self.set_title(branch.nick + " - revision history")
-        gobject.idle_add(self.populate_model, start, maxnum)
-
-    def populate_model(self, start, maxnum):
-        self.branch.lock_read()
-        (linegraphdata, index, columns_len) = linegraph(self.branch,
-                                                        start,
-                                                        maxnum)
-        self.model = TreeModel(self.branch, linegraphdata)
-        self.graph_cell.columns_len = columns_len
-        width = self.graph_cell.get_size(self.treeview)[2]
-        self.graph_column.set_fixed_width(width)
-        self.graph_column.set_max_width(width)
-        self.index = index
-        self.treeview.set_model(self.model)
-        self.treeview.set_cursor(0)
-        self.loading_msg_box.hide()
-        return False
+        self.treeview.set_branch(branch, start, maxnum)
     
     def _on_key_pressed(self, widget, event):
         """ Key press event handler. """
@@ -236,14 +168,12 @@
             gtk.main_quit()
     
     def _treeselection_changed_cb(self, selection, *args):
-        """Callback for when the treeview changes."""
-        (model, selected_rows) = selection.get_selected_rows()
-        if len(selected_rows) > 0:
-            iter = self.model.get_iter(selected_rows[0])
-            revision = self.model.get_value(iter, treemodel.REVISION)
-            parents = self.model.get_value(iter, treemodel.PARENTS)
-            children = self.model.get_value(iter, treemodel.CHILDREN)
-            
+        """callback for when the treeview changes."""
+        revision = self.treeview.get_revision()
+        parents  = self.treeview.get_parents()
+        children = self.treeview.get_children()
+
+        if revision is not None:
             self.back_button.set_sensitive(len(parents) > 0)
             self.fwd_button.set_sensitive(len(children) > 0)
             tags = []

=== modified file 'viz/treeview.py'
--- a/viz/treeview.py	2007-10-20 20:47:07 +0000
+++ b/viz/treeview.py	2007-10-20 21:38:23 +0000
@@ -10,20 +10,34 @@
 import gobject
 import pango
 import re
+import treemodel
 
 from linegraph import linegraph, same_branch
 from graphcell import CellRendererGraph
 from treemodel import TreeModel
 
-class RevisionHistoryView(gtk.ScrolledWindow):
+class TreeView(gtk.ScrolledWindow):
 
     def __init__(self):
         gtk.ScrolledWindow.__init__(self)
 
-        self.set_olicy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
+        self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
         self.set_shadow_type(gtk.SHADOW_IN)
 
-        self.contruct_treeview()
+        self.construct_treeview()
+
+        self.revision = None
+        self.children = None
+        self.parents  = None
+
+    def get_revision(self):
+        return self.revision
+
+    def get_children(self):
+        return self.children
+
+    def get_parents(self):
+        return self.parents
 
     def construct_treeview(self):
         self.treeview = gtk.TreeView()
@@ -31,7 +45,7 @@
         self.treeview.set_rules_hint(True)
         self.treeview.set_search_column(4)
 
-        self.treeview.get_selection().connect("changed", 
+        self.treeview.get_selection().connect("changed",
                 self._on_selection_changed)
 
         self.treeview.connect("row-activated", 
@@ -112,22 +126,13 @@
         return False
     
     def _on_selection_changed(self, selection, *args):
-        """Callback for when the treeview changes."""
+        """callback for when the treeview changes."""
         (model, selected_rows) = selection.get_selected_rows()
         if len(selected_rows) > 0:
             iter = self.model.get_iter(selected_rows[0])
-            revision = self.model.get_value(iter, treemodel.REVISION)
-            parents = self.model.get_value(iter, treemodel.PARENTS)
-            children = self.model.get_value(iter, treemodel.CHILDREN)
-            
-            self.back_button.set_sensitive(len(parents) > 0)
-            self.fwd_button.set_sensitive(len(children) > 0)
-            tags = []
-            if self.branch.supports_tags():
-                tagdict = self.branch.tags.get_reverse_tag_dict()
-                if tagdict.has_key(revision.revision_id):
-                    tags = tagdict[revision.revision_id]
-            self.logview.set_revision(revision, tags, children)
+            self.revision = self.model.get_value(iter, treemodel.REVISION)
+            self.parents = self.model.get_value(iter, treemodel.PARENTS)
+            self.children = self.model.get_value(iter, treemodel.CHILDREN)
 
     def _on_revision_selected(self, widget, event):
         from bzrlib.plugins.gtk.revisionmenu import RevisionPopupMenu



More information about the Pkg-bazaar-commits mailing list