/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 logview.py

  • Committer: John Arbash Meinel
  • Date: 2007-09-21 23:06:05 UTC
  • mto: (322.1.1 trunk) (330.3.3 trunk)
  • mto: This revision was merged to the branch mainline in revision 368.
  • Revision ID: john@arbash-meinel.com-20070921230605-muo8c027l8ag5m5n
Add an extra box that pops up when we have per-file information.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
import pango
22
22
 
23
23
from bzrlib.osutils import format_date
 
24
from bzrlib.util import bencode
24
25
 
25
26
 
26
27
class LogView(gtk.ScrolledWindow):
79
80
        self._add_parents(revision.parent_ids)
80
81
        self._add_tags(tags)
81
82
 
 
83
        file_info = revision.properties.get('sp1-exp-file-info', None)
 
84
        if file_info is not None:
 
85
            file_info = bencode.bdecode(file_info)
 
86
 
 
87
        if file_info:
 
88
            text = []
 
89
            for fi in file_info:
 
90
                text.append('%(file_id)s\n%(comments)s' % fi)
 
91
            self.file_info_buffer.set_text('\n'.join(text))
 
92
            self.file_info_box.show()
 
93
        else:
 
94
            self.file_info_box.hide()
 
95
 
82
96
    def _show_clicked_cb(self, widget, revid, parentid):
83
97
        """Callback for when the show button for a parent is clicked."""
84
98
        self._show_callback(revid, parentid)
152
166
        vbox.set_border_width(6)
153
167
        vbox.pack_start(self._create_headers(), expand=False, fill=True)
154
168
        vbox.pack_start(self._create_parents_table(), expand=False, fill=True)
155
 
        vbox.pack_start(self._create_message_view())
 
169
        vbox.pack_start(self._create_message_view(), expand=True, fill=True)
 
170
        vbox.pack_start(self._create_file_info_view(), expand=True, fill=True)
156
171
        self.add_with_viewport(vbox)
157
172
        vbox.show()
158
173
 
287
302
        tv.show()
288
303
        return tv
289
304
 
 
305
    def _create_file_info_view(self):
 
306
        self.file_info_box = gtk.VBox()
 
307
        label = gtk.Label()
 
308
        label.set_markup("<b>Per File Messages:</b>")
 
309
        label.show()
 
310
        self.file_info_buffer = gtk.TextBuffer()
 
311
        tv = gtk.TextView(self.file_info_buffer)
 
312
        tv.set_editable(False)
 
313
        tv.set_wrap_mode(gtk.WRAP_WORD)
 
314
        tv.modify_font(pango.FontDescription("Monospace"))
 
315
        tv.show()
 
316
        self.file_info_box.pack_start(label)
 
317
        self.file_info_box.pack_start(tv)
 
318
        self.file_info_box.hide() # Only shown when there are per-file messages
 
319
        return self.file_info_box
 
320