# HG changeset patch
# User Peer Sommerlund <p...@users.sourceforge.net>
# Date 1253192956 -7200
# Node ID 6b18a5e1f43305049d40843f204e550af537303e
# Parent  dc45de6f86d8b9ac7f266dc962ca82bb9a367225
logview: Support branch colour on compact graph

diff -r dc45de6f86d8 -r 6b18a5e1f433 tortoisehg/hgtk/logview/revgraph.py
--- a/tortoisehg/hgtk/logview/revgraph.py       Wed Sep 16 00:18:17 2009 -0500
+++ b/tortoisehg/hgtk/logview/revgraph.py       Thu Sep 17 15:09:16 2009 +0200
@@ -57,6 +57,9 @@
 def __get_parents(repo, rev):
     return [x for x in repo.changelog.parentrevs(rev) if x != nullrev]
 
+def _color_of_branch(repo, rev):
+    return sum([ord(c) for c in repo[rev].branch()])
+
 def _color_of(repo, rev, nextcolor, preferredcolor, branch_color=False):
     if not branch_color:
         if preferredcolor[0]:
@@ -67,7 +70,7 @@
             nextcolor[0] = nextcolor[0] + 1
         return rv
     else:
-        return sum([ord(c) for c in repo[rev].branch()])
+        return _color_of_branch(repo, rev)
 
 type_PLAIN = 0
 type_LOOSE_LOW = 1
@@ -154,7 +157,12 @@
     two branches.
     """
     
-    def __init__(self, repo, start_rev, stop_rev):
+    def __init__(self, repo, start_rev, stop_rev, branch_color):
+        ''' 
+        start_rev - first (newest) changeset to cover
+        stop_rev - last (oldest) changeset to cover
+        branch_color - true if branch name determines colours
+        '''
         assert start_rev >= stop_rev
         self.repo = repo
         
@@ -201,6 +209,9 @@
         
         # Next colour used. for branches
         self.nextcolor = 0
+        
+        # Flag to indicate if coloring is done pr micro-branch or pr named 
branch
+        self.branch_color = branch_color
 
     def _get_parents(self, rev):
         return [x for x in self.repo.changelog.parentrevs(rev) if x != nullrev]
@@ -217,8 +228,12 @@
         of branch_head as part of the same branch. Stops when stop_rev
         is passed or a known revision is found"""
         assert not branch_head in self.branch4rev
-        self.color4branch[branch_head] = self.nextcolor
-        self.nextcolor += 1
+        if self.branch_color:
+            self.color4branch[branch_head] = \
+                _color_of_branch(self.repo, branch_head)
+        else:
+            self.color4branch[branch_head] = self.nextcolor
+            self.nextcolor += 1
         self.next_in_branch[branch_head] = branch_head
         branch_name = self._branch_name(branch_head)
         rev = branch_head
@@ -330,8 +345,8 @@
         # Return result
         return (rev, node, lines, None)
     
-def branch_grapher(repo, start_rev, stop_rev):
-    grapher = BranchGrapher(repo, start_rev, stop_rev)
+def branch_grapher(repo, start_rev, stop_rev, branch_color=False):
+    grapher = BranchGrapher(repo, start_rev, stop_rev, branch_color)
     while grapher.more():
         yield grapher.next()            
 
diff -r dc45de6f86d8 -r 6b18a5e1f433 tortoisehg/hgtk/logview/treeview.py
--- a/tortoisehg/hgtk/logview/treeview.py       Wed Sep 16 00:18:17 2009 -0500
+++ b/tortoisehg/hgtk/logview/treeview.py       Thu Sep 17 15:09:16 2009 +0200
@@ -164,7 +164,8 @@
                 start = len(self.repo.changelog) - 1
             noheads = opts.get('noheads', False)
             if opts.get('branch-view', False):
-                self.grapher = branch_grapher(self.repo, start, end)
+                self.grapher = branch_grapher(self.repo, start, end, 
+                    self.branch_color)
             else:
                 self.grapher = revision_grapher(self.repo, start, end, pats,
                         noheads, self.branch_color)

------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to