/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-17 11:51:03 UTC
  • Revision ID: jelmer@samba.org-20080717115103-djh5sb0pvpse2zkb
Add note about glade.

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
 
22
 
 
23
from bzrlib.config import BranchConfig, GlobalConfig
21
24
from bzrlib.revision import Revision, NULL_REVISION
22
 
from bzrlib.config import BranchConfig
23
 
from bzrlib.config import GlobalConfig
 
25
from bzrlib.trace import mutter
24
26
 
25
27
class BranchWindow(Window):
26
28
    """Branch window.
202
204
        go_menu.add(gtk.SeparatorMenuItem())
203
205
        go_menu.add(self.go_menu_tags)
204
206
 
205
 
        revision_menu = gtk.Menu()
 
207
        self.revision_menu = RevisionMenu(self.branch.repository, [], self.branch, parent=self)
206
208
        revision_menuitem = gtk.MenuItem("_Revision")
207
 
        revision_menuitem.set_submenu(revision_menu)
208
 
 
209
 
        revision_menu_diff = gtk.MenuItem("View Changes")
210
 
        revision_menu_diff.connect('activate', 
211
 
                self._menu_diff_cb)
212
 
        
213
 
        revision_menu_compare = gtk.MenuItem("Compare with...")
214
 
        revision_menu_compare.connect('activate',
215
 
                self._compare_with_cb)
216
 
 
217
 
        revision_menu_tag = gtk.MenuItem("Tag Revision")
218
 
        revision_menu_tag.connect('activate', self._tag_revision_cb)
219
 
 
220
 
        revision_menu.add(revision_menu_tag)
221
 
        revision_menu.add(revision_menu_diff)
222
 
        revision_menu.add(revision_menu_compare)
 
209
        revision_menuitem.set_submenu(self.revision_menu)
223
210
 
224
211
        branch_menu = gtk.Menu()
225
212
        branch_menuitem = gtk.MenuItem("_Branch")
228
215
        branch_menu.add(gtk.MenuItem("Pu_ll Revisions"))
229
216
        branch_menu.add(gtk.MenuItem("Pu_sh Revisions"))
230
217
 
 
218
        try:
 
219
            from bzrlib.plugins import search
 
220
        except ImportError:
 
221
            mutter("Didn't find search plugin")
 
222
        else:
 
223
            branch_menu.add(gtk.SeparatorMenuItem())
 
224
 
 
225
            branch_index_menuitem = gtk.MenuItem("_Index")
 
226
            branch_index_menuitem.connect('activate', self._branch_index_cb)
 
227
            branch_menu.add(branch_index_menuitem)
 
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
 
231
233
        help_menu = gtk.Menu()
232
234
        help_menuitem = gtk.MenuItem("_Help")
233
235
        help_menuitem.set_submenu(help_menu)
319
321
        parents  = self.treeview.get_parents()
320
322
        children = self.treeview.get_children()
321
323
 
 
324
        self.revision_menu.set_revision_ids([revision.revision_id])
 
325
 
322
326
        if revision and revision != NULL_REVISION:
323
327
            prev_menu = gtk.Menu()
324
328
            if len(parents) > 0:
378
382
        self.show_diff(revision.revision_id, parent_id)
379
383
        self.treeview.grab_focus()
380
384
        
381
 
    def _menu_diff_cb(self,w):
382
 
        (path, focus) = self.treeview.treeview.get_cursor()
383
 
        revid = self.treeview.model[path][treemodel.REVID]
384
 
        
385
 
        parentids = self.branch.repository.revision_parents(revid)
386
 
 
387
 
        if len(parentids) == 0:
388
 
            parentid = NULL_REVISION
389
 
        else:
390
 
            parentid = parentids[0]
391
 
        
392
 
        self.show_diff(revid,parentid)    
393
 
 
394
385
    def _back_clicked_cb(self, *args):
395
386
        """Callback for when the back button is clicked."""
396
387
        self.treeview.back()
409
400
        self.show_diff(revid, parentid)
410
401
        self.treeview.grab_focus()
411
402
 
412
 
    def _compare_with_cb(self,w):
413
 
        """Callback for revision 'compare with' menu. Will show a small
414
 
            dialog with branch revisions to compare with selected revision in TreeView"""
415
 
        
416
 
        from bzrlib.plugins.gtk.revbrowser import RevisionBrowser
417
 
        
418
 
        rb = RevisionBrowser(self.branch,self)
419
 
        ret = rb.run()
420
 
        
421
 
        if ret == gtk.RESPONSE_OK:          
422
 
            (path, focus) = self.treeview.treeview.get_cursor()
423
 
            revid = self.treeview.model[path][treemodel.REVID]
424
 
            self.show_diff(revid, rb.selected_revid)
425
 
            
426
 
        rb.destroy()
427
 
            
428
403
    def _set_revision_cb(self, w, revision_id):
429
404
        self.treeview.set_revision_id(revision_id)
430
405
 
440
415
        self.treeview.set_property('compact', self.compact_view)
441
416
        self.treeview.refresh()
442
417
 
443
 
    def _tag_revision_cb(self, w):
444
 
        try:
445
 
            self.treeview.set_sensitive(False)
446
 
            dialog = AddTagDialog(self.branch.repository, self.treeview.get_revision().revision_id, self.branch)
447
 
            response = dialog.run()
448
 
            if response != gtk.RESPONSE_NONE:
449
 
                dialog.hide()
450
 
            
451
 
                if response == gtk.RESPONSE_OK:
452
 
                    self.treeview.add_tag(dialog.tagname, dialog._revid)
453
 
                
454
 
                dialog.destroy()
455
 
 
456
 
        finally:
457
 
            self.treeview.set_sensitive(True)
 
418
    def _branch_index_cb(self, w):
 
419
        from bzrlib.plugins.search import index as _mod_index
 
420
        _mod_index.index_url(self.branch.base)
 
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()
458
430
 
459
431
    def _about_dialog_cb(self, w):
460
432
        from bzrlib.plugins.gtk.about import AboutDialog