/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 viz/branchwin.py

  • Committer: David Planella
  • Date: 2011-03-06 08:24:07 UTC
  • mfrom: (718 trunk)
  • mto: This revision was merged to the branch mainline in revision 719.
  • Revision ID: david.planella@ubuntu.com-20110306082407-y9zwkjje5oue9egw
Added preliminary internationalization support. Merged from trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# -*- coding: UTF-8 -*-
2
1
"""Branch window.
3
2
 
4
3
This module contains the code to manage the branch information window,
5
4
which contains both the revision graph and details panes.
6
5
"""
7
6
 
8
 
__copyright__ = "Copyright © 2005 Canonical Ltd."
 
7
__copyright__ = "Copyright (c) 2005 Canonical Ltd."
9
8
__author__    = "Scott James Remnant <scott@ubuntu.com>"
10
9
 
11
10
 
12
11
import gtk
13
 
import gobject
14
 
import pango
15
12
 
16
13
from bzrlib.plugins.gtk import icon_path
17
 
from bzrlib.plugins.gtk.branchview import TreeView, treemodel
18
 
from bzrlib.plugins.gtk.tags import AddTagDialog
 
14
from bzrlib.plugins.gtk.branchview import TreeView
19
15
from bzrlib.plugins.gtk.preferences import PreferencesWindow
20
16
from bzrlib.plugins.gtk.revisionmenu import RevisionMenu
21
17
from bzrlib.plugins.gtk.window import Window
22
18
 
23
 
from bzrlib.config import BranchConfig, GlobalConfig
24
 
from bzrlib.revision import Revision, NULL_REVISION
 
19
from bzrlib.config import GlobalConfig
 
20
from bzrlib.revision import NULL_REVISION
25
21
from bzrlib.trace import mutter
26
22
 
27
23
class BranchWindow(Window):
80
76
        self.accel_group = gtk.AccelGroup()
81
77
        self.add_accel_group(self.accel_group)
82
78
 
83
 
        gtk.Action.set_tool_item_type(gtk.MenuToolButton)
 
79
        if getattr(gtk.Action, 'set_tool_item_type', None) is not None:
 
80
            # Not available before PyGtk-2.10
 
81
            gtk.Action.set_tool_item_type(gtk.MenuToolButton)
84
82
 
85
83
        self.prev_rev_action = gtk.Action("prev-rev", "_Previous Revision", "Go to the previous revision", gtk.STOCK_GO_DOWN)
86
84
        self.prev_rev_action.set_accel_path("<viz>/Go/Previous Revision")
139
137
 
140
138
        self.treeview.connect('tag-added', lambda w, t, r: self._update_tags())
141
139
        vbox.show()
142
 
    
 
140
 
143
141
    def construct_menubar(self):
144
142
        menubar = gtk.MenuBar()
145
143
 
149
147
 
150
148
        file_menu_close = gtk.ImageMenuItem(gtk.STOCK_CLOSE, self.accel_group)
151
149
        file_menu_close.connect('activate', lambda x: self.destroy())
152
 
        
 
150
 
153
151
        file_menu_quit = gtk.ImageMenuItem(gtk.STOCK_QUIT, self.accel_group)
154
152
        file_menu_quit.connect('activate', lambda x: gtk.main_quit())
155
 
        
 
153
 
156
154
        if self._parent is not None:
157
155
            file_menu.add(file_menu_close)
158
156
        file_menu.add(file_menu_quit)
190
188
        view_menu_compact = gtk.CheckMenuItem("Show Compact Graph")
191
189
        view_menu_compact.set_active(self.compact_view)
192
190
        view_menu_compact.connect('activate', self._brokenlines_toggled_cb)
193
 
        
 
191
 
194
192
        view_menu_diffs = gtk.CheckMenuItem("Show Diffs")
195
193
        view_menu_diffs.set_active(False)
196
194
        if self.config.get_user_option('viz-show-diffs') == 'True':
197
195
            view_menu_diffs.set_active(True)
198
196
        view_menu_diffs.connect('toggled', self._diff_visibility_changed)
199
 
        
 
197
 
200
198
        view_menu_wide_diffs = gtk.CheckMenuItem("Wide Diffs")
201
199
        view_menu_wide_diffs.set_active(False)
202
200
        if self.config.get_user_option('viz-wide-diffs') == 'True':
203
201
            view_menu_wide_diffs.set_active(True)
204
202
        view_menu_wide_diffs.connect('toggled', self._diff_placement_changed)
205
 
        
 
203
 
206
204
        view_menu_wrap_diffs = gtk.CheckMenuItem("Wrap _Long Lines in Diffs")
207
205
        view_menu_wrap_diffs.set_active(False)
208
206
        if self.config.get_user_option('viz-wrap-diffs') == 'True':
209
207
            view_menu_wrap_diffs.set_active(True)
210
208
        view_menu_wrap_diffs.connect('toggled', self._diff_wrap_changed)
211
 
                
 
209
 
212
210
        view_menu.add(view_menu_toolbar)
213
211
        view_menu.add(view_menu_compact)
214
212
        view_menu.add(gtk.SeparatorMenuItem())
235
233
        go_menu.set_accel_group(self.accel_group)
236
234
        go_menuitem = gtk.MenuItem("_Go")
237
235
        go_menuitem.set_submenu(go_menu)
238
 
        
 
236
 
239
237
        go_menu_next = self.next_rev_action.create_menu_item()
240
238
        go_menu_prev = self.prev_rev_action.create_menu_item()
241
239
 
413
411
                self.prev_rev_action.set_sensitive(False)
414
412
                prev_menu.hide()
415
413
 
416
 
            self.prev_button.set_menu(prev_menu)
 
414
            if getattr(self.prev_button, 'set_menu', None) is not None:
 
415
                self.prev_button.set_menu(prev_menu)
417
416
 
418
417
            next_menu = gtk.Menu()
419
418
            if len(children) > 0:
433
432
                self.next_rev_action.set_sensitive(False)
434
433
                next_menu.hide()
435
434
 
436
 
            self.next_button.set_menu(next_menu)
 
435
            if getattr(self.next_button, 'set_menu', None) is not None:
 
436
                self.next_button.set_menu(next_menu)
437
437
 
438
438
            self.revisionview.set_revision(revision)
439
439
            self.revisionview.set_children(children)
452
452
 
453
453
        self.show_diff(revision.revision_id, parent_id)
454
454
        self.treeview.grab_focus()
455
 
        
 
455
 
456
456
    def _back_clicked_cb(self, *args):
457
457
        """Callback for when the back button is clicked."""
458
458
        self.treeview.back()
459
 
        
 
459
 
460
460
    def _fwd_clicked_cb(self, *args):
461
461
        """Callback for when the forward button is clicked."""
462
462
        self.treeview.forward()
510
510
                return
511
511
 
512
512
        dialog = SearchDialog(index)
513
 
        
 
513
 
514
514
        if dialog.run() == gtk.RESPONSE_OK:
515
515
            self.set_revision(dialog.get_revision())
516
516
 
518
518
 
519
519
    def _about_dialog_cb(self, w):
520
520
        from bzrlib.plugins.gtk.about import AboutDialog
521
 
 
522
521
        AboutDialog().run()
523
522
 
524
523
    def _col_visibility_changed(self, col, property):
559
558
        self._make_diff_nonzero_size()
560
559
 
561
560
        self.treeview.emit('revision-selected')
562
 
    
 
561
 
563
562
    def _diff_wrap_changed(self, widget):
564
563
        """Toggle word wrap in the diff widget."""
565
564
        self.config.set_user_option('viz-wrap-diffs', widget.get_active())
566
565
        self.diff._on_wraplines_toggled(widget)
567
 
    
568
 
    def _show_about_cb(self, w):
569
 
        dialog = AboutDialog()
570
 
        dialog.connect('response', lambda d,r: d.destroy())
571
 
        dialog.run()
572
566
 
573
567
    def _refresh_clicked(self, w):
574
568
        self.treeview.refresh()