28
class TreeModel(gtk.TreeModel):
28
class TreeModel(gtk.GenericTreeModel):
31
31
def __init__ (self, branch, line_graph_data):
32
gtk.GenericTreeModel.__init__(self)
32
33
self.revisions = {}
33
34
self.branch = branch
34
35
self.line_graph_data = line_graph_data
37
def on_get_flags(self):
37
38
return gtk.TREE_MODEL_LIST_ONLY
39
def get_n_columns(self):
40
def on_get_n_columns(self):
42
def get_column_type(self, index):
43
def on_get_column_type(self, index):
43
44
if index == REVID: return gobject.TYPE_STRING
44
45
if index == NODE: return gobject.TYPE_PYOBJECT
45
46
if index == LINES: return gobject.TYPE_PYOBJECT
52
53
if index == PARENTS: return gobject.TYPE_PYOBJECT
53
54
if index == CHILDREN: return gobject.TYPE_PYOBJECT
55
def get_iter(self, path):
56
def on_get_iter(self, path):
58
def get_iter_from_string(self, path_string):
59
raise NotImplementedError
61
def get_string_from_iter(self, iter):
62
raise NotImplementedError
64
def get_iter_root(self):
65
if len(self.line_graph_data) == 0: return None
68
def get_iter_first(self):
69
if len(self.line_graph_data) == 0: return None
72
def get_path(self, iter):
75
def get_value(self, iter, column):
59
def on_get_path(self, rowref):
62
def on_get_value(self, rowref, column):
76
63
(revid, node, lines, parents,
77
children, revno_sequence) = self.line_graph_data[iter]
64
children, revno_sequence) = self.line_graph_data[rowref]
78
65
if column == REVID: return revid
79
66
if column == NODE: return node
80
67
if column == LINES: return lines
81
68
if column == PARENTS: return parents
82
69
if column == CHILDREN: return children
83
70
if column == LAST_LINES:
85
return self.line_graph_data[iter-1][2]
72
return self.line_graph_data[rowref-1][2]
87
74
if column == REVNO: return ".".join(["%d" % (revno)
88
75
for revno in revno_sequence])
95
82
if column == COMMITER: return revision.committer
96
83
if column == TIMESTAMP: return format_date(revision.timestamp,
100
def iter_next(self, iter):
101
if iter < len(self.line_graph_data) - 1:
105
def iter_children(self, parent):
88
def on_iter_next(self, rowref):
89
if rowref < len(self.line_graph_data) - 1:
93
def on_iter_children(self, parent):
106
94
if parent is None: return 0
109
def iter_has_child(self, iter):
97
def on_iter_has_child(self, rowref):
112
def iter_n_children(self, iter):
113
if iter is None: return len(self.line_graph_data)
100
def on_iter_n_children(self, rowref):
101
if rowref is None: return len(self.line_graph_data)
116
def iter_nth_child(self, parent, n):
104
def on_iter_nth_child(self, parent, n):
117
105
if parent is None: return n
120
def iter_parent(self, child):
108
def on_iter_parent(self, child):
123
def ref_node(self, iter):
111
def on_ref_node(self, iter):
124
112
revid = self.line_graph_data[iter][0]
125
113
if revid not in self.revisions:
126
114
revision = self.branch.repository.get_revisions([revid])[0]
127
115
self.revisions[revid] = revision
129
def unref_node(self,iter):
132
def get(self, iter, *column):
133
raise NotImplementedError
135
def foreach(self, func, user_data):
136
raise NotImplementedError
138
def row_changed(self, path, iter):
139
raise NotImplementedError
141
def row_inserted(self, path, iter):
142
raise NotImplementedError
144
def row_has_child_toggled(self, path, iter):
145
raise NotImplementedError
147
def row_deleted(self, path):
148
raise NotImplementedError
150
def rows_reordered(self, path, iter, new_order):
151
raise NotImplementedError
153
def filter_new(self, root=None):
154
raise NotImplementedError