/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: Gary van der Merwe
  • Date: 2007-08-12 16:12:33 UTC
  • mto: (256.2.37 gtk)
  • mto: This revision was merged to the branch mainline in revision 262.
  • Revision ID: garyvdm@gmail.com-20070812161233-yhv1vafcxtsvpugj
Fix for bug Bug #132017 : olive no longer able to find bzrlib location.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
from bzrlib.revision import NULL_REVISION, CURRENT_REVISION
29
29
 
30
30
from colormap import AnnotateColorMap, AnnotateColorSaturation
31
 
from bzrlib.plugins.gtk.revisionview import RevisionView
32
 
from bzrlib.plugins.gtk.window import Window
 
31
from bzrlib.plugins.gtk.logview import LogView
33
32
 
34
33
 
35
34
(
42
41
) = range(6)
43
42
 
44
43
 
45
 
class GAnnotateWindow(Window):
 
44
class GAnnotateWindow(gtk.Window):
46
45
    """Annotate window."""
47
46
 
48
 
    def __init__(self, all=False, plain=False, parent=None):
 
47
    def __init__(self, all=False, plain=False):
49
48
        self.all = all
50
49
        self.plain = plain
51
50
        
52
 
        Window.__init__(self, parent)
 
51
        gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
53
52
        
54
53
        self.set_icon(self.render_icon(gtk.STOCK_FIND, gtk.ICON_SIZE_BUTTON))
55
54
        self.annotate_colormap = AnnotateColorSaturation()
64
63
        self.branch = branch
65
64
        self.tree = tree
66
65
        self.file_id = file_id
67
 
        self.revisionview.set_file_id(file_id)
68
66
        self.revision_id = getattr(tree, 'get_revision_id', 
69
67
                                   lambda: CURRENT_REVISION)()
70
68
        
71
 
        # [revision id, line number, author, revno, highlight color, line]
 
69
        # [revision id, line number, committer, revno, highlight color, line]
72
70
        self.annomodel = gtk.ListStore(gobject.TYPE_STRING,
73
71
                                       gobject.TYPE_STRING,
74
72
                                       gobject.TYPE_STRING,
83
81
            for line_no, (revision, revno, line)\
84
82
                    in enumerate(self._annotate(tree, file_id)):
85
83
                if revision.revision_id == last_seen and not self.all:
86
 
                    revno = author = ""
 
84
                    revno = committer = ""
87
85
                else:
88
86
                    last_seen = revision.revision_id
89
 
                    author = revision.get_apparent_author()
 
87
                    committer = revision.committer
90
88
 
91
89
                if revision.revision_id not in self.revisions:
92
90
                    self.revisions[revision.revision_id] = revision
93
91
 
94
92
                self.annomodel.append([revision.revision_id,
95
93
                                       line_no + 1,
96
 
                                       author,
 
94
                                       committer,
97
95
                                       revno,
98
96
                                       None,
99
97
                                       line.rstrip("\r\n")
186
184
        if rev_id is None:
187
185
            return
188
186
        selected = self.revisions[rev_id]
189
 
        self.revisionview.set_revision(selected)
 
187
        self.logview.set_revision(selected)
190
188
        if (len(selected.parent_ids) != 0 and selected.parent_ids[0] not in
191
189
            self._no_back):
192
190
            enable_back = True
195
193
        self.back_button.set_sensitive(enable_back)
196
194
 
197
195
    def _create(self):
198
 
        self.revisionview = self._create_log_view()
 
196
        self.logview = self._create_log_view()
199
197
        self.annoview = self._create_annotate_view()
200
198
 
201
199
        vbox = gtk.VBox(False)
222
220
        
223
221
        self.pane = pane = gtk.VPaned()
224
222
        pane.add1(swbox)
225
 
        pane.add2(self.revisionview)
 
223
        pane.add2(self.logview)
226
224
        pane.show()
227
225
        vbox.pack_start(pane, expand=True, fill=True)
228
226
 
326
324
        return tv
327
325
 
328
326
    def _create_log_view(self):
329
 
        lv = RevisionView()
 
327
        lv = LogView()
330
328
        lv.show()
331
329
        return lv
332
330
 
394
392
                return j - i
395
393
 
396
394
 
 
395
 
397
396
class FakeRevision:
398
397
    """ A fake revision.
399
398
 
409
408
        self.timezone = 0
410
409
        self.properties = {}
411
410
 
412
 
    def get_apparent_author(self):
413
 
        return self.committer
414
 
 
415
411
 
416
412
class RevisionCache(object):
417
413
    """A caching revision source"""