/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: Daniel Schierbeck
  • Date: 2007-12-06 23:37:06 UTC
  • mto: This revision was merged to the branch mainline in revision 417.
  • Revision ID: daniel.schierbeck@gmail.com-20071206233706-eeinks66w86r3gfm
Fixed bug in gmissing.

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