/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: Daniel Schierbeck
  • Date: 2007-10-30 22:34:58 UTC
  • mto: (326.1.1 dev)
  • mto: This revision was merged to the branch mainline in revision 327.
  • Revision ID: daniel.schierbeck@gmail.com-20071030223458-c8ixlyc2q24095j2
Removed 'Changes' page.

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
pygtk.require("2.0")
20
20
import gtk
21
21
import pango
22
 
import gtksourceview
23
 
import sys
24
 
 
25
 
from cStringIO import StringIO
26
22
 
27
23
from bzrlib.osutils import format_date
28
 
from bzrlib.diff import show_diff_trees
29
 
from bzrlib.revision import NULL_REVISION
30
24
 
31
25
class LogView(gtk.Notebook):
32
26
    """ Custom widget for commit log details.
42
36
 
43
37
        self._create_general()
44
38
        self._create_relations()
45
 
        self._create_changes()
46
39
 
47
40
        self.set_current_page(0)
48
 
        self.connect('switch-page', self._switch_page_cb)
49
41
        
50
42
        self._show_callback = None
51
43
        self._go_callback = None
97
89
                                          self.children_table)
98
90
        
99
91
        self._add_tags(tags)
100
 
        if self.get_current_page() == 2:
101
 
            self._set_diff()
102
 
 
103
 
    def _set_diff(self):
104
 
        revid = self._revision.revision_id
105
 
 
106
 
        rev_tree = self._branch.repository.revision_tree(revid)
107
 
 
108
 
        if len(self._revision.parent_ids) > 0:
109
 
            parentid = self._revision.parent_ids[0]
110
 
            parent_tree = self._branch.repository.revision_tree(parentid)
111
 
        else:
112
 
            parent_tree = self._branch.repository.revision_tree(None)
113
 
 
114
 
        s = StringIO()
115
 
        show_diff_trees(parent_tree, rev_tree, s, None)
116
 
        self.diff_buffer.set_text(s.getvalue().decode(sys.getdefaultencoding(), 'replace'))
117
 
 
118
 
    def _switch_page_cb(self, *args):
119
 
        #if self.get_current_page() == 2:
120
 
        self._set_diff()
121
92
 
122
93
    def _show_clicked_cb(self, widget, revid, parentid):
123
94
        """Callback for when the show button for a parent is clicked."""
203
174
        self.append_page(vbox, tab_label=gtk.Label("Relations"))
204
175
        vbox.show()
205
176
 
206
 
    def _create_changes(self):
207
 
        slm = gtksourceview.SourceLanguagesManager()
208
 
 
209
 
        self.diff_buffer = gtksourceview.SourceBuffer()
210
 
        self.diff_buffer.set_language(slm.get_language_from_mime_type("text/x-patch"))
211
 
        self.diff_buffer.set_highlight(True)
212
 
 
213
 
        sourceview = gtksourceview.SourceView(self.diff_buffer)
214
 
        sourceview.set_editable(False)
215
 
        sourceview.modify_font(pango.FontDescription("Monospace"))
216
 
 
217
 
        sourceview.show()
218
 
 
219
 
        vbox = gtk.VBox(False, 6)
220
 
        vbox.set_border_width(6)
221
 
 
222
 
        win = gtk.ScrolledWindow()
223
 
        win.set_shadow_type(gtk.SHADOW_IN)
224
 
        win.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
225
 
        win.add(sourceview)
226
 
        win.show()
227
 
 
228
 
        vbox.pack_start(win)
229
 
        vbox.show()
230
 
 
231
 
        self.append_page(vbox, tab_label=gtk.Label("Changes"))
232
 
        
233
177
    def _create_headers(self):
234
178
        self.table = gtk.Table(rows=5, columns=2)
235
179
        self.table.set_row_spacings(6)