14
15
from linegraph import linegraph, same_branch
15
16
from graphcell import CellRendererGraph
16
17
from treemodel import TreeModel
18
class RevisionHistoryView(gtk.ScrolledWindow):
19
class TreeView(gtk.ScrolledWindow):
20
21
def __init__(self):
21
22
gtk.ScrolledWindow.__init__(self)
23
self.set_olicy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
24
self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
24
25
self.set_shadow_type(gtk.SHADOW_IN)
26
self.contruct_treeview()
27
self.construct_treeview()
33
def get_revision(self):
36
def get_children(self):
39
def get_parents(self):
28
42
def construct_treeview(self):
29
43
self.treeview = gtk.TreeView()
31
45
self.treeview.set_rules_hint(True)
32
46
self.treeview.set_search_column(4)
34
self.treeview.get_selection().connect("changed",
48
self.treeview.get_selection().connect("changed",
35
49
self._on_selection_changed)
37
51
self.treeview.connect("row-activated",
114
128
def _on_selection_changed(self, selection, *args):
115
"""Callback for when the treeview changes."""
129
"""callback for when the treeview changes."""
116
130
(model, selected_rows) = selection.get_selected_rows()
117
131
if len(selected_rows) > 0:
118
132
iter = self.model.get_iter(selected_rows[0])
119
revision = self.model.get_value(iter, treemodel.REVISION)
120
parents = self.model.get_value(iter, treemodel.PARENTS)
121
children = self.model.get_value(iter, treemodel.CHILDREN)
123
self.back_button.set_sensitive(len(parents) > 0)
124
self.fwd_button.set_sensitive(len(children) > 0)
126
if self.branch.supports_tags():
127
tagdict = self.branch.tags.get_reverse_tag_dict()
128
if tagdict.has_key(revision.revision_id):
129
tags = tagdict[revision.revision_id]
130
self.logview.set_revision(revision, tags, children)
133
self.revision = self.model.get_value(iter, treemodel.REVISION)
134
self.parents = self.model.get_value(iter, treemodel.PARENTS)
135
self.children = self.model.get_value(iter, treemodel.CHILDREN)
132
137
def _on_revision_selected(self, widget, event):
133
138
from bzrlib.plugins.gtk.revisionmenu import RevisionPopupMenu