/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to annotate/gannotate.py

  • Committer: Jelmer Vernooij
  • Date: 2006-06-19 16:38:46 UTC
  • mfrom: (59.2.4 bzr-gtk)
  • Revision ID: jelmer@samba.org-20060619163846-16ecedf9ca4b3d1f
[merge] gannotate/gdiff improvements from Aaron.

Show diffs side-by-side

added added

removed removed

Lines of Context:
58
58
 
59
59
    def annotate(self, branch, file_id):
60
60
        self.revisions = {}
 
61
        self.annotations = []
 
62
        self.branch = branch
 
63
        self.file_id = file_id
61
64
        
62
65
        # [revision id, line number, committer, revno, highlight color, line]
63
66
        self.annomodel = gtk.ListStore(gobject.TYPE_STRING,
89
92
                                       None,
90
93
                                       line.rstrip("\r\n")
91
94
                                      ])
 
95
                self.annotations.append(revision)
92
96
 
93
97
            if not self.plain:
94
98
                self._set_oldest_newest()
113
117
            row = lineno - 1
114
118
 
115
119
        self.annoview.set_cursor(row)
 
120
        self.annoview.scroll_to_cell(row, use_align=True)
116
121
 
117
122
    def _annotate(self, branch, file_id):
118
123
        rev_hist = branch.revision_history()
180
185
        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
181
186
        sw.set_shadow_type(gtk.SHADOW_IN)
182
187
        sw.add(self.annoview)
 
188
        self.annoview.gwindow = self
183
189
        sw.show()
184
190
        
185
191
        self.pane = pane = gtk.VPaned()
196
202
 
197
203
        self.add(vbox)
198
204
 
 
205
    def row_diff(self, tv, path, tvc):
 
206
        row = path[0]
 
207
        revision = self.annotations[row]
 
208
        tree1 = self.branch.repository.revision_tree(revision.revision_id)
 
209
        tree2 = self.branch.repository.revision_tree(revision.parent_ids[0])
 
210
        from bzrlib.plugins.gtk.viz.diffwin import DiffWindow
 
211
        window = DiffWindow()
 
212
        window.set_diff("Diff for row %d" % row, tree1, tree2)
 
213
        window.set_file(tree1.id2path(self.file_id))
 
214
        window.show()
 
215
 
 
216
 
199
217
    def _create_annotate_view(self):
200
218
        tv = gtk.TreeView()
201
219
        tv.set_rules_hint(False)
202
220
        tv.connect("cursor-changed", self._show_log)
203
221
        tv.show()
 
222
        tv.connect("row-activated", self.row_diff)
204
223
 
205
224
        cell = gtk.CellRendererText()
206
225
        cell.set_property("xalign", 1.0)