/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: Aaron Bentley
  • Date: 2007-03-19 14:04:43 UTC
  • mto: This revision was merged to the branch mainline in revision 182.
  • Revision ID: abentley@panoramicfeedback.com-20070319140443-nimeomjezt1nzf0h
Better behavior when unable to go back

Show diffs side-by-side

added added

removed removed

Lines of Context:
56
56
        self._create()
57
57
        self.revisions = {}
58
58
        self.history = []
 
59
        self._no_back = set()
59
60
 
60
61
    def annotate(self, tree, branch, file_id):
61
62
        self.annotations = []
184
185
            return
185
186
        selected = self.revisions[rev_id]
186
187
        self.logview.set_revision(selected)
187
 
        self.back_button.set_sensitive(len(selected.parent_ids) != 0)
 
188
        if (len(selected.parent_ids) != 0 and selected.parent_ids[0] not in
 
189
            self._no_back):
 
190
            enable_back = True
 
191
        else:
 
192
            enable_back = False
 
193
        self.back_button.set_sensitive(enable_back)
188
194
 
189
195
    def _create(self):
190
196
        self.logview = self._create_log_view()
342
348
        return button
343
349
 
344
350
    def go_back(self):
345
 
        self.history.append(self.tree)
346
 
        self.forward_button.set_sensitive(True)
 
351
        last_tree = self.tree
347
352
        rev_id = self._selected_revision()
348
353
        parent_id = self.revisions[rev_id].parent_ids[0]
349
354
        target_tree = self.branch.repository.revision_tree(parent_id)
350
 
        self._go(target_tree)
 
355
        if self._go(target_tree):
 
356
            self.history.append(last_tree)
 
357
            self.forward_button.set_sensitive(True)
 
358
        else:
 
359
            self._no_back.add(parent_id)
 
360
            self.back_button.set_sensitive(False)
351
361
 
352
362
    def go_forward(self):
353
363
        if len(self.history) == 0:
367
377
            if new_row < 0:
368
378
                new_row = 0
369
379
            self.annoview.set_cursor(new_row)
 
380
            return True
 
381
        else:
 
382
            return False
370
383
 
371
384
    def get_scroll_offset(self, tree):
372
385
        old = self.tree.get_file(self.file_id)