/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: Jelmer Vernooij
  • Date: 2008-06-29 19:34:29 UTC
  • mto: This revision was merged to the branch mainline in revision 520.
  • Revision ID: jelmer@samba.org-20080629193429-ir2ilmbko6qkubg5
Add Branch/Index option if bzr-search is available.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
from bzrlib.plugins.gtk.tags import AddTagDialog
19
19
from bzrlib.plugins.gtk.preferences import PreferencesWindow
20
20
from bzrlib.plugins.gtk.branchview import TreeView, treemodel
 
21
 
 
22
from bzrlib.config import BranchConfig, GlobalConfig
21
23
from bzrlib.revision import Revision, NULL_REVISION
22
 
from bzrlib.config import BranchConfig
23
 
from bzrlib.config import GlobalConfig
 
24
from bzrlib.trace import mutter
24
25
 
25
26
class BranchWindow(Window):
26
27
    """Branch window.
66
67
 
67
68
        gtk.accel_map_add_entry("<viz>/Go/Next Revision", gtk.keysyms.Up, gtk.gdk.MOD1_MASK)
68
69
        gtk.accel_map_add_entry("<viz>/Go/Previous Revision", gtk.keysyms.Down, gtk.gdk.MOD1_MASK)
 
70
        gtk.accel_map_add_entry("<viz>/View/Refresh", gtk.keysyms.F5, 0)
69
71
 
70
72
        self.accel_group = gtk.AccelGroup()
71
73
        self.add_accel_group(self.accel_group)
84
86
        self.next_rev_action.connect("activate", self._fwd_clicked_cb)
85
87
        self.next_rev_action.connect_accelerator()
86
88
 
 
89
        self.refresh_action = gtk.Action("refresh", "_Refresh", "Refresh view", gtk.STOCK_REFRESH)
 
90
        self.refresh_action.set_accel_path("<viz>/View/Refresh")
 
91
        self.refresh_action.set_accel_group(self.accel_group)
 
92
        self.refresh_action.connect("activate", self._refresh_clicked)
 
93
        self.refresh_action.connect_accelerator()
 
94
 
87
95
        self.construct()
88
96
 
89
97
    def set_revision(self, revid):
144
152
        view_menuitem = gtk.MenuItem("_View")
145
153
        view_menuitem.set_submenu(view_menu)
146
154
 
 
155
        view_menu_refresh = self.refresh_action.create_menu_item()
 
156
        view_menu_refresh.connect('activate', self._refresh_clicked)
 
157
 
 
158
        view_menu.add(view_menu_refresh)
 
159
        view_menu.add(gtk.SeparatorMenuItem())
 
160
 
147
161
        view_menu_toolbar = gtk.CheckMenuItem("Show Toolbar")
148
162
        view_menu_toolbar.set_active(True)
149
163
        view_menu_toolbar.connect('toggled', self._toolbar_visibility_changed)
195
209
 
196
210
        revision_menu_diff = gtk.MenuItem("View Changes")
197
211
        revision_menu_diff.connect('activate', 
198
 
                lambda w: self.treeview.show_diff())
 
212
                self._menu_diff_cb)
 
213
        
 
214
        revision_menu_compare = gtk.MenuItem("Compare with...")
 
215
        revision_menu_compare.connect('activate',
 
216
                self._compare_with_cb)
199
217
 
200
218
        revision_menu_tag = gtk.MenuItem("Tag Revision")
201
219
        revision_menu_tag.connect('activate', self._tag_revision_cb)
202
220
 
203
221
        revision_menu.add(revision_menu_tag)
204
222
        revision_menu.add(revision_menu_diff)
 
223
        revision_menu.add(revision_menu_compare)
205
224
 
206
225
        branch_menu = gtk.Menu()
207
226
        branch_menuitem = gtk.MenuItem("_Branch")
210
229
        branch_menu.add(gtk.MenuItem("Pu_ll Revisions"))
211
230
        branch_menu.add(gtk.MenuItem("Pu_sh Revisions"))
212
231
 
 
232
        try:
 
233
            from bzrlib.plugins import search
 
234
        except ImportError:
 
235
            mutter("Didn't find search plugin")
 
236
        else:
 
237
            branch_index_menuitem = gtk.MenuItem("_Index")
 
238
            branch_index_menuitem.connect('activate', self._branch_index_cb)
 
239
            branch_menu.add(branch_index_menuitem)
 
240
 
213
241
        help_menu = gtk.Menu()
214
242
        help_menuitem = gtk.MenuItem("_Help")
215
243
        help_menuitem.set_submenu(help_menu)
247
275
            option = self.config.get_user_option(col + '-column-visible')
248
276
            if option is not None:
249
277
                self.treeview.set_property(col + '-column-visible', option == 'True')
 
278
            else:
 
279
                self.treeview.set_property(col + '-column-visible', False)
250
280
 
251
 
        self.treeview.set_property(col + '-column-visible', False)
252
281
        self.treeview.show()
253
282
 
254
283
        align = gtk.Alignment(0.0, 0.0, 1.0, 1.0)
358
387
 
359
388
        self.show_diff(revision.revision_id, parent_id)
360
389
        self.treeview.grab_focus()
361
 
    
 
390
        
 
391
    def _menu_diff_cb(self,w):
 
392
        (path, focus) = self.treeview.treeview.get_cursor()
 
393
        revid = self.treeview.model[path][treemodel.REVID]
 
394
        
 
395
        parentids = self.branch.repository.revision_parents(revid)
 
396
 
 
397
        if len(parentids) == 0:
 
398
            parentid = NULL_REVISION
 
399
        else:
 
400
            parentid = parentids[0]
 
401
        
 
402
        self.show_diff(revid,parentid)    
362
403
 
363
404
    def _back_clicked_cb(self, *args):
364
405
        """Callback for when the back button is clicked."""
378
419
        self.show_diff(revid, parentid)
379
420
        self.treeview.grab_focus()
380
421
 
 
422
    def _compare_with_cb(self,w):
 
423
        """Callback for revision 'compare with' menu. Will show a small
 
424
            dialog with branch revisions to compare with selected revision in TreeView"""
 
425
        
 
426
        from bzrlib.plugins.gtk.revbrowser import RevisionBrowser
 
427
        
 
428
        rb = RevisionBrowser(self.branch,self)
 
429
        ret = rb.run()
 
430
        
 
431
        if ret == gtk.RESPONSE_OK:          
 
432
            (path, focus) = self.treeview.treeview.get_cursor()
 
433
            revid = self.treeview.model[path][treemodel.REVID]
 
434
            self.show_diff(revid, rb.selected_revid)
 
435
            
 
436
        rb.destroy()
 
437
            
381
438
    def _set_revision_cb(self, w, revision_id):
382
439
        self.treeview.set_revision_id(revision_id)
383
440
 
409
466
        finally:
410
467
            self.treeview.set_sensitive(True)
411
468
 
 
469
    def _branch_index_cb(self, w):
 
470
        from bzrlib.plugins.search import index as _mod_index
 
471
        _mod_index.index_url(self.branch.base)
 
472
 
412
473
    def _about_dialog_cb(self, w):
413
474
        from bzrlib.plugins.gtk.about import AboutDialog
414
475