/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 16:20:15 UTC
  • mto: This revision was merged to the branch mainline in revision 519.
  • Revision ID: jelmer@samba.org-20080629162015-amhe7xj4cdmup4id
Rename GtkProgressBarStack to GtkWindowProgressBarStack

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
16
17
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.revisionmenu import RevisionMenu
21
 
from bzrlib.plugins.gtk.window import Window
22
 
 
23
 
from bzrlib.config import BranchConfig, GlobalConfig
 
20
from bzrlib.plugins.gtk.branchview import TreeView, treemodel
24
21
from bzrlib.revision import Revision, NULL_REVISION
25
 
from bzrlib.trace import mutter
 
22
from bzrlib.config import BranchConfig
 
23
from bzrlib.config import GlobalConfig
26
24
 
27
25
class BranchWindow(Window):
28
26
    """Branch window.
204
202
        go_menu.add(gtk.SeparatorMenuItem())
205
203
        go_menu.add(self.go_menu_tags)
206
204
 
207
 
        self.revision_menu = RevisionMenu(self.branch.repository, [], self.branch, parent=self)
 
205
        revision_menu = gtk.Menu()
208
206
        revision_menuitem = gtk.MenuItem("_Revision")
209
 
        revision_menuitem.set_submenu(self.revision_menu)
 
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)
210
223
 
211
224
        branch_menu = gtk.Menu()
212
225
        branch_menuitem = gtk.MenuItem("_Branch")
215
228
        branch_menu.add(gtk.MenuItem("Pu_ll Revisions"))
216
229
        branch_menu.add(gtk.MenuItem("Pu_sh Revisions"))
217
230
 
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
 
 
233
231
        help_menu = gtk.Menu()
234
232
        help_menuitem = gtk.MenuItem("_Help")
235
233
        help_menuitem.set_submenu(help_menu)
321
319
        parents  = self.treeview.get_parents()
322
320
        children = self.treeview.get_children()
323
321
 
324
 
        self.revision_menu.set_revision_ids([revision.revision_id])
325
 
 
326
322
        if revision and revision != NULL_REVISION:
327
323
            prev_menu = gtk.Menu()
328
324
            if len(parents) > 0:
382
378
        self.show_diff(revision.revision_id, parent_id)
383
379
        self.treeview.grab_focus()
384
380
        
 
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
 
385
394
    def _back_clicked_cb(self, *args):
386
395
        """Callback for when the back button is clicked."""
387
396
        self.treeview.back()
400
409
        self.show_diff(revid, parentid)
401
410
        self.treeview.grab_focus()
402
411
 
 
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
            
403
428
    def _set_revision_cb(self, w, revision_id):
404
429
        self.treeview.set_revision_id(revision_id)
405
430
 
415
440
        self.treeview.set_property('compact', self.compact_view)
416
441
        self.treeview.refresh()
417
442
 
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()
 
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)
430
458
 
431
459
    def _about_dialog_cb(self, w):
432
460
        from bzrlib.plugins.gtk.about import AboutDialog