changeset 5347:64659280e466

graph: show obsolete changesets with an 'X'
author Sean Farley <sean.michael.farley@gmail.com>
date Wed, 09 Jul 2014 00:35:54 -0500
parents b75f1d0753d6
children 46d42b34cf3e
files kallithea/lib/graphmod.py kallithea/lib/vcs/backends/base.py kallithea/lib/vcs/backends/hg/changeset.py kallithea/public/js/graph.js
diffstat 4 files changed, 25 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/lib/graphmod.py	Sat May 16 17:03:51 2015 +0200
+++ b/kallithea/lib/graphmod.py	Wed Jul 09 00:35:54 2014 -0500
@@ -150,5 +150,6 @@
 
         # Yield and move on
         closing = int(repo[rev].closesbranch)
-        yield ((col, color), edges, closing)
+        obsolete = int(repo[rev].obsolete)
+        yield ((col, color), edges, closing, obsolete)
         row = nextrow
--- a/kallithea/lib/vcs/backends/base.py	Sat May 16 17:03:51 2015 +0200
+++ b/kallithea/lib/vcs/backends/base.py	Wed Jul 09 00:35:54 2014 -0500
@@ -667,6 +667,10 @@
     def closesbranch(self):
         return False
 
+    @LazyProperty
+    def obsolete(self):
+        return False
+
 class BaseWorkdir(object):
     """
     Working directory representation of single repository.
--- a/kallithea/lib/vcs/backends/hg/changeset.py	Sat May 16 17:03:51 2015 +0200
+++ b/kallithea/lib/vcs/backends/hg/changeset.py	Wed Jul 09 00:35:54 2014 -0500
@@ -43,6 +43,10 @@
         return  self._ctx.closesbranch()
 
     @LazyProperty
+    def obsolete(self):
+        return  self._ctx.obsolete()
+
+    @LazyProperty
     def bookmarks(self):
         return map(safe_unicode, self._ctx.bookmarks())
 
--- a/kallithea/public/js/graph.js	Sat May 16 17:03:51 2015 +0200
+++ b/kallithea/public/js/graph.js	Wed Jul 09 00:35:54 2014 -0500
@@ -105,6 +105,7 @@
 			node = cur[0];
 			in_l = cur[1];
 			closing = cur[2];
+			obsolete_node = cur[3];
 
 			var rowY = row.offsetTop + row.offsetHeight/2;
 			var nextY = (next == null) ? rowY + row.offsetHeight/2 : next.offsetTop + next.offsetHeight/2;
@@ -178,6 +179,19 @@
 			x = Math.floor(base_x - box_size * column);
 		
 			this.setColor(color, 0.25, 0.75);
+
+
+			r = this.dot_radius
+			if (obsolete_node)
+			{
+				this.ctx.beginPath();
+				this.ctx.moveTo(x - this.close_x, rowY - this.close_y - 3);
+				this.ctx.lineTo(x - this.close_x + 2*this.close_x, rowY - this.close_y + 4*this.close_y - 1);
+				this.ctx.moveTo(x - this.close_x, rowY - this.close_y + 4*this.close_y - 1);
+				this.ctx.lineTo(x - this.close_x + 2*this.close_x, rowY - this.close_y - 3);
+				this.ctx.stroke();
+				r -= 0.5
+			}
 			if (closing)
 			{
 				this.ctx.fillRect(x - this.close_x, rowY - this.close_y, 2*this.close_x, 2*this.close_y);
@@ -185,7 +199,7 @@
 			else
 			{
 				this.ctx.beginPath();
-				this.ctx.arc(x, rowY, this.dot_radius, 0, Math.PI * 2, true);
+				this.ctx.arc(x, rowY, r, 0, Math.PI * 2, true);
 				this.ctx.fill();
 			}