38
class BranchTreeModel(Gtk.TreeStore):
39
"""A model of branch's merge history."""
41
def __init__(self, branch, line_graph_data):
42
super(BranchTreeModel, self).__init__()
45
self.repository = branch.repository
46
self.line_graph_data = line_graph_data
48
if self.branch.supports_tags():
49
self.tags = self.branch.tags.get_reverse_tag_dict()
52
self.set_column_types(
54
GObject.TYPE_PYOBJECT,
55
GObject.TYPE_PYOBJECT,
56
GObject.TYPE_PYOBJECT,
62
GObject.TYPE_PYOBJECT,
63
GObject.TYPE_PYOBJECT,
64
GObject.TYPE_PYOBJECT,
65
GObject.TYPE_PYOBJECT,
68
def add_tag(self, tag, revid):
69
self.branch.tags.set_tag(tag, revid)
71
self.tags[revid].append(tag)
73
self.tags[revid] = [tag]
75
def set_line_graph_data(self, line_graph_data):
77
self.line_graph_data = line_graph_data
78
# (None, (0, 0), (), (), (), ())
79
for rowref, data in enumerate(self.line_graph_data):
80
revid, node, lines, parents, children, revno_sequence = data
82
last_lines = self.line_graph_data[rowref - 1][2]
85
revno = ".".join(["%d" % (revno) for revno in revno_sequence])
86
tags = self.tags.get(revid, [])
87
if not revid or revid == NULL_REVISION:
89
elif revid not in self.revisions:
90
revision = self.repository.get_revisions([revid])[0]
91
self.revisions[revid] = revision
93
revision = self.revisions[revid]
95
summary = message = committer = timestamp = authors = None
97
summary = escape(revision.get_summary())
98
message = escape(revision.message)
99
committer = parse_username(revision.committer)[0]
100
timestamp = strftime(
101
"%Y-%m-%d %H:%M", localtime(revision.timestamp))
102
authors = ", ".join([
103
parse_username(author)[0]
104
for author in revision.get_apparent_authors()])
107
(revid, node, lines, last_lines, revno, summary, message,
108
committer, timestamp, revision, parents, children, tags,
37
112
class TreeModel(Gtk.TreeStore):
39
def __init__ (self, branch, line_graph_data):
114
def __init__(self, branch, line_graph_data):
40
115
Gtk.TreeStore.__init__(self)
41
116
self.revisions = {}
42
117
self.branch = branch