/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")
234
220
        except ImportError:
235
221
            mutter("Didn't find search plugin")
236
222
        else:
 
223
            branch_menu.add(gtk.SeparatorMenuItem())
 
224
 
237
225
            branch_index_menuitem = gtk.MenuItem("_Index")
238
226
            branch_index_menuitem.connect('activate', self._branch_index_cb)
239
227
            branch_menu.add(branch_index_menuitem)
240
228
 
 
229
            branch_search_menuitem = gtk.MenuItem("_Search")
 
230
            branch_search_menuitem.connect('activate', self._branch_search_cb)
 
231
            branch_menu.add(branch_search_menuitem)
 
232
 
241
233
        help_menu = gtk.Menu()
242
234
        help_menuitem = gtk.MenuItem("_Help")
243
235
        help_menuitem.set_submenu(help_menu)
329
321
        parents  = self.treeview.get_parents()
330
322
        children = self.treeview.get_children()
331
323
 
 
324
        self.revision_menu.set_revision_ids([revision.revision_id])
 
325
 
332
326
        if revision and revision != NULL_REVISION:
333
327
            prev_menu = gtk.Menu()
334
328
            if len(parents) > 0:
388
382
        self.show_diff(revision.revision_id, parent_id)
389
383
        self.treeview.grab_focus()
390
384
        
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)    
403
 
 
404
385
    def _back_clicked_cb(self, *args):
405
386
        """Callback for when the back button is clicked."""
406
387
        self.treeview.back()
419
400
        self.show_diff(revid, parentid)
420
401
        self.treeview.grab_focus()
421
402
 
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
 
            
438
403
    def _set_revision_cb(self, w, revision_id):
439
404
        self.treeview.set_revision_id(revision_id)
440
405
 
450
415
        self.treeview.set_property('compact', self.compact_view)
451
416
        self.treeview.refresh()
452
417
 
453
 
    def _tag_revision_cb(self, w):
454
 
        try:
455
 
            self.treeview.set_sensitive(False)
456
 
            dialog = AddTagDialog(self.branch.repository, self.treeview.get_revision().revision_id, self.branch)
457
 
            response = dialog.run()
458
 
            if response != gtk.RESPONSE_NONE:
459
 
                dialog.hide()
460
 
            
461
 
                if response == gtk.RESPONSE_OK:
462
 
                    self.treeview.add_tag(dialog.tagname, dialog._revid)
463
 
                
464
 
                dialog.destroy()
465
 
 
466
 
        finally:
467
 
            self.treeview.set_sensitive(True)
468
 
 
469
418
    def _branch_index_cb(self, w):
470
419
        from bzrlib.plugins.search import index as _mod_index
471
420
        _mod_index.index_url(self.branch.base)
472
421
 
 
422
    def _branch_search_cb(self, w):
 
423
        from bzrlib.plugins.gtk.search import SearchDialog
 
424
        dialog = SearchDialog(self.branch)
 
425
        
 
426
        if dialog.run() == gtk.RESPONSE_OK:
 
427
            self.set_revision(dialog.get_revision())
 
428
 
 
429
        dialog.destroy()
 
430
 
473
431
    def _about_dialog_cb(self, w):
474
432
        from bzrlib.plugins.gtk.about import AboutDialog
475
433