mirror of
https://github.com/git/git.git
synced 2024-11-05 08:47:56 +01:00
Merge branch 'ak/gitview'
* ak/gitview: gitview: Display the lines joining commit nodes clearly.
This commit is contained in:
commit
1d3d03bbea
1 changed files with 35 additions and 13 deletions
|
@ -823,6 +823,7 @@ class GitView:
|
|||
self.colours = {}
|
||||
self.nodepos = {}
|
||||
self.incomplete_line = {}
|
||||
self.commits = []
|
||||
|
||||
index = 0
|
||||
last_colour = 0
|
||||
|
@ -840,12 +841,7 @@ class GitView:
|
|||
|
||||
commit = Commit(commit_lines)
|
||||
if (commit != None ):
|
||||
(out_line, last_colour, last_nodepos) = self.draw_graph(commit,
|
||||
index, out_line,
|
||||
last_colour,
|
||||
last_nodepos)
|
||||
self.index[commit.commit_sha1] = index
|
||||
index += 1
|
||||
self.commits.append(commit)
|
||||
|
||||
# Skip the '\0
|
||||
commit_lines = []
|
||||
|
@ -854,6 +850,14 @@ class GitView:
|
|||
|
||||
fp.close()
|
||||
|
||||
for commit in self.commits:
|
||||
(out_line, last_colour, last_nodepos) = self.draw_graph(commit,
|
||||
index, out_line,
|
||||
last_colour,
|
||||
last_nodepos)
|
||||
self.index[commit.commit_sha1] = index
|
||||
index += 1
|
||||
|
||||
self.treeview.set_model(self.model)
|
||||
self.treeview.show()
|
||||
|
||||
|
@ -869,13 +873,6 @@ class GitView:
|
|||
last_nodepos = 0
|
||||
|
||||
# Add the incomplete lines of the last cell in this
|
||||
for sha1 in self.incomplete_line.keys():
|
||||
if ( sha1 != commit.commit_sha1):
|
||||
for pos in self.incomplete_line[sha1]:
|
||||
in_line.append((pos, pos, self.colours[sha1]))
|
||||
else:
|
||||
del self.incomplete_line[sha1]
|
||||
|
||||
try:
|
||||
colour = self.colours[commit.commit_sha1]
|
||||
except KeyError:
|
||||
|
@ -897,6 +894,14 @@ class GitView:
|
|||
self.colours[commit.parent_sha1[0]] = colour
|
||||
self.nodepos[commit.parent_sha1[0]] = node_pos
|
||||
|
||||
for sha1 in self.incomplete_line.keys():
|
||||
if ( sha1 != commit.commit_sha1):
|
||||
self.draw_incomplete_line(sha1, node_pos,
|
||||
out_line, in_line, index)
|
||||
else:
|
||||
del self.incomplete_line[sha1]
|
||||
|
||||
|
||||
in_line.append((node_pos, self.nodepos[commit.parent_sha1[0]],
|
||||
self.colours[commit.parent_sha1[0]]))
|
||||
|
||||
|
@ -936,6 +941,23 @@ class GitView:
|
|||
except KeyError:
|
||||
self.incomplete_line[sha1] = [self.nodepos[sha1]]
|
||||
|
||||
def draw_incomplete_line(self, sha1, node_pos, out_line, in_line, index):
|
||||
for idx, pos in enumerate(self.incomplete_line[sha1]):
|
||||
if(pos == node_pos):
|
||||
out_line.append((pos,
|
||||
pos+0.5, self.colours[sha1]))
|
||||
self.incomplete_line[sha1][idx] = pos = pos+0.5
|
||||
try:
|
||||
next_commit = self.commits[index+1]
|
||||
if (next_commit.commit_sha1 == sha1 and pos != int(pos)):
|
||||
# join the line back to the node point
|
||||
# This need to be done only if we modified it
|
||||
in_line.append((pos, pos-0.5, self.colours[sha1]))
|
||||
continue;
|
||||
except IndexError:
|
||||
pass
|
||||
in_line.append((pos, pos, self.colours[sha1]))
|
||||
|
||||
|
||||
def _go_clicked_cb(self, widget, revid):
|
||||
"""Callback for when the go button for a parent is clicked."""
|
||||
|
|
Loading…
Reference in a new issue