/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-07-01 21:54:21 UTC
  • mfrom: (523.3.2 trunk)
  • Revision ID: jelmer@samba.org-20080701215421-50g2c59zx9vcn7j5
Share code between context and main revision menu.

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
import gobject
14
14
import pango
15
15
 
16
 
from bzrlib.plugins.gtk.window import Window
17
16
from bzrlib.plugins.gtk import icon_path
 
17
from bzrlib.plugins.gtk.branchview import TreeView, treemodel
18
18
from bzrlib.plugins.gtk.tags import AddTagDialog
19
19
from bzrlib.plugins.gtk.preferences import PreferencesWindow
20
 
from bzrlib.plugins.gtk.branchview import TreeView, treemodel
 
20
from bzrlib.plugins.gtk.revisionmenu import RevisionMenu
 
21
from bzrlib.plugins.gtk.window import Window
21
22
 
22
23
from bzrlib.config import BranchConfig, GlobalConfig
23
24
from bzrlib.revision import Revision, NULL_REVISION
203
204
        go_menu.add(gtk.SeparatorMenuItem())
204
205
        go_menu.add(self.go_menu_tags)
205
206
 
206
 
        revision_menu = gtk.Menu()
 
207
        self.revision_menu = RevisionMenu(self.branch.repository, [], self.branch, parent=self)
207
208
        revision_menuitem = gtk.MenuItem("_Revision")
208
 
        revision_menuitem.set_submenu(revision_menu)
209
 
 
210
 
        revision_menu_diff = gtk.MenuItem("View Changes")
211
 
        revision_menu_diff.connect('activate', 
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)
217
 
 
218
 
        revision_menu_tag = gtk.MenuItem("Tag Revision")
219
 
        revision_menu_tag.connect('activate', self._tag_revision_cb)
220
 
 
221
 
        revision_menu.add(revision_menu_tag)
222
 
        revision_menu.add(revision_menu_diff)
223
 
        revision_menu.add(revision_menu_compare)
 
209
        revision_menuitem.set_submenu(self.revision_menu)
224
210
 
225
211
        branch_menu = gtk.Menu()
226
212
        branch_menuitem = gtk.MenuItem("_Branch")
335
321
        parents  = self.treeview.get_parents()
336
322
        children = self.treeview.get_children()
337
323
 
 
324
        self.revision_menu.set_revision_ids([revision.revision_id])
 
325
 
338
326
        if revision and revision != NULL_REVISION:
339
327
            prev_menu = gtk.Menu()
340
328
            if len(parents) > 0:
394
382
        self.show_diff(revision.revision_id, parent_id)
395
383
        self.treeview.grab_focus()
396
384
        
397
 
    def _menu_diff_cb(self,w):
398
 
        (path, focus) = self.treeview.treeview.get_cursor()
399
 
        revid = self.treeview.model[path][treemodel.REVID]
400
 
        
401
 
        parentids = self.branch.repository.revision_parents(revid)
402
 
 
403
 
        if len(parentids) == 0:
404
 
            parentid = NULL_REVISION
405
 
        else:
406
 
            parentid = parentids[0]
407
 
        
408
 
        self.show_diff(revid,parentid)    
409
 
 
410
385
    def _back_clicked_cb(self, *args):
411
386
        """Callback for when the back button is clicked."""
412
387
        self.treeview.back()
425
400
        self.show_diff(revid, parentid)
426
401
        self.treeview.grab_focus()
427
402
 
428
 
    def _compare_with_cb(self,w):
429
 
        """Callback for revision 'compare with' menu. Will show a small
430
 
            dialog with branch revisions to compare with selected revision in TreeView"""
431
 
        
432
 
        from bzrlib.plugins.gtk.revbrowser import RevisionBrowser
433
 
        
434
 
        rb = RevisionBrowser(self.branch,self)
435
 
        ret = rb.run()
436
 
        
437
 
        if ret == gtk.RESPONSE_OK:          
438
 
            (path, focus) = self.treeview.treeview.get_cursor()
439
 
            revid = self.treeview.model[path][treemodel.REVID]
440
 
            self.show_diff(revid, rb.selected_revid)
441
 
            
442
 
        rb.destroy()
443
 
            
444
403
    def _set_revision_cb(self, w, revision_id):
445
404
        self.treeview.set_revision_id(revision_id)
446
405
 
456
415
        self.treeview.set_property('compact', self.compact_view)
457
416
        self.treeview.refresh()
458
417
 
459
 
    def _tag_revision_cb(self, w):
460
 
        try:
461
 
            self.treeview.set_sensitive(False)
462
 
            dialog = AddTagDialog(self.branch.repository, self.treeview.get_revision().revision_id, self.branch)
463
 
            response = dialog.run()
464
 
            if response != gtk.RESPONSE_NONE:
465
 
                dialog.hide()
466
 
            
467
 
                if response == gtk.RESPONSE_OK:
468
 
                    self.treeview.add_tag(dialog.tagname, dialog._revid)
469
 
                
470
 
                dialog.destroy()
471
 
 
472
 
        finally:
473
 
            self.treeview.set_sensitive(True)
474
 
 
475
418
    def _branch_index_cb(self, w):
476
419
        from bzrlib.plugins.search import index as _mod_index
477
420
        _mod_index.index_url(self.branch.base)