[Pkg-bazaar-commits] ./bzr-gtk/unstable r530: Share code between context and main revision menu.

Jelmer Vernooij jelmer at samba.org
Fri Apr 10 07:50:38 UTC 2009


------------------------------------------------------------
revno: 530
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Tue 2008-07-01 23:54:21 +0200
message:
  Share code between context and main revision menu.
modified:
  NEWS
  branchview/treeview.py
  revisionmenu.py
  viz/branchwin.py
    ------------------------------------------------------------
    revno: 523.3.1
    committer: Jelmer Vernooij <jelmer at samba.org>
    branch nick: trunk
    timestamp: Mon 2008-06-30 22:11:24 +0200
    message:
      Rename RevisionPopupMenu -> RevisionMenu. 
    modified:
      branchview/treeview.py
      revisionmenu.py
    ------------------------------------------------------------
    revno: 523.3.2
    committer: Jelmer Vernooij <jelmer at samba.org>
    branch nick: trunk
    timestamp: Mon 2008-06-30 22:19:24 +0200
    message:
      Share same menu for context menu and main menu.
    modified:
      revisionmenu.py
      viz/branchwin.py
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS	2008-07-01 21:52:06 +0000
+++ b/NEWS	2008-07-01 21:54:21 +0000
@@ -47,6 +47,8 @@
 
   * Remove obsolete tortoisebzr tests. (Jelmer Vernooij)
 
+  * Share revision context menu and main revision menu in bzr viz. (Jelmer Vernooij)
+
 0.94.0    2008-05-04
 
  CHANGES

=== modified file 'branchview/treeview.py'
--- a/branchview/treeview.py	2008-06-29 18:12:29 +0000
+++ b/branchview/treeview.py	2008-06-30 20:11:24 +0000
@@ -405,9 +405,9 @@
             self.emit('revision-selected')
 
     def _on_revision_selected(self, widget, event):
-        from bzrlib.plugins.gtk.revisionmenu import RevisionPopupMenu
+        from bzrlib.plugins.gtk.revisionmenu import RevisionMenu
         if event.button == 3:
-            menu = RevisionPopupMenu(self.branch.repository, 
+            menu = RevisionMenu(self.branch.repository, 
                 [self.get_revision().revision_id],
                 self.branch)
             menu.connect('tag-added', lambda w, t, r: self.add_tag(t, r))

=== modified file 'revisionmenu.py'
--- a/revisionmenu.py	2008-06-30 19:52:10 +0000
+++ b/revisionmenu.py	2008-07-01 21:54:21 +0000
@@ -27,7 +27,7 @@
 from bzrlib import (errors, ui)
 from bzrlib.revision import NULL_REVISION
 
-class RevisionPopupMenu(gtk.Menu):
+class RevisionMenu(gtk.Menu):
 
     __gsignals__ = {
             'tag-added': (
@@ -37,11 +37,18 @@
             )
     }
 
-    def __init__(self, repository, revids, branch=None, wt=None):
-        super(RevisionPopupMenu, self).__init__()
+    def __init__(self, repository, revids, branch=None, wt=None, parent=None):
+        super(RevisionMenu, self).__init__()
+        self._parent = parent
         self.branch = branch
         self.repository = repository
         self.wt = wt
+        self.set_revision_ids(revids)
+
+    def set_revision_ids(self, revids):
+        assert isinstance(revids, list)
+        for c in self.get_children():
+            self.remove(c)
         self.revids = revids
         self.create_items()
 
@@ -93,7 +100,7 @@
 
     def show_diff(self, item):
         from bzrlib.plugins.gtk.diff import DiffWindow
-        window = DiffWindow(parent=self.parent)
+        window = DiffWindow(parent=self._parent)
         parentids = self.repository.get_revision(self.revids[0]).parent_ids
         if len(parentids) == 0:
             parentid = NULL_REVISION

=== modified file 'viz/branchwin.py'
--- a/viz/branchwin.py	2008-07-01 14:52:31 +0000
+++ b/viz/branchwin.py	2008-07-01 21:54:21 +0000
@@ -13,11 +13,12 @@
 import gobject
 import pango
 
-from bzrlib.plugins.gtk.window import Window
 from bzrlib.plugins.gtk import icon_path
+from bzrlib.plugins.gtk.branchview import TreeView, treemodel
 from bzrlib.plugins.gtk.tags import AddTagDialog
 from bzrlib.plugins.gtk.preferences import PreferencesWindow
-from bzrlib.plugins.gtk.branchview import TreeView, treemodel
+from bzrlib.plugins.gtk.revisionmenu import RevisionMenu
+from bzrlib.plugins.gtk.window import Window
 
 from bzrlib.config import BranchConfig, GlobalConfig
 from bzrlib.revision import Revision, NULL_REVISION
@@ -203,24 +204,9 @@
         go_menu.add(gtk.SeparatorMenuItem())
         go_menu.add(self.go_menu_tags)
 
-        revision_menu = gtk.Menu()
+        self.revision_menu = RevisionMenu(self.branch.repository, [], self.branch, parent=self)
         revision_menuitem = gtk.MenuItem("_Revision")
-        revision_menuitem.set_submenu(revision_menu)
-
-        revision_menu_diff = gtk.MenuItem("View Changes")
-        revision_menu_diff.connect('activate', 
-                self._menu_diff_cb)
-        
-        revision_menu_compare = gtk.MenuItem("Compare with...")
-        revision_menu_compare.connect('activate',
-                self._compare_with_cb)
-
-        revision_menu_tag = gtk.MenuItem("Tag Revision")
-        revision_menu_tag.connect('activate', self._tag_revision_cb)
-
-        revision_menu.add(revision_menu_tag)
-        revision_menu.add(revision_menu_diff)
-        revision_menu.add(revision_menu_compare)
+        revision_menuitem.set_submenu(self.revision_menu)
 
         branch_menu = gtk.Menu()
         branch_menuitem = gtk.MenuItem("_Branch")
@@ -335,6 +321,8 @@
         parents  = self.treeview.get_parents()
         children = self.treeview.get_children()
 
+        self.revision_menu.set_revision_ids([revision.revision_id])
+
         if revision and revision != NULL_REVISION:
             prev_menu = gtk.Menu()
             if len(parents) > 0:
@@ -394,19 +382,6 @@
         self.show_diff(revision.revision_id, parent_id)
         self.treeview.grab_focus()
         
-    def _menu_diff_cb(self,w):
-        (path, focus) = self.treeview.treeview.get_cursor()
-        revid = self.treeview.model[path][treemodel.REVID]
-        
-        parentids = self.branch.repository.revision_parents(revid)
-
-        if len(parentids) == 0:
-            parentid = NULL_REVISION
-        else:
-            parentid = parentids[0]
-        
-        self.show_diff(revid,parentid)    
-
     def _back_clicked_cb(self, *args):
         """Callback for when the back button is clicked."""
         self.treeview.back()
@@ -425,22 +400,6 @@
         self.show_diff(revid, parentid)
         self.treeview.grab_focus()
 
-    def _compare_with_cb(self,w):
-        """Callback for revision 'compare with' menu. Will show a small
-            dialog with branch revisions to compare with selected revision in TreeView"""
-        
-        from bzrlib.plugins.gtk.revbrowser import RevisionBrowser
-        
-        rb = RevisionBrowser(self.branch,self)
-        ret = rb.run()
-        
-        if ret == gtk.RESPONSE_OK:          
-            (path, focus) = self.treeview.treeview.get_cursor()
-            revid = self.treeview.model[path][treemodel.REVID]
-            self.show_diff(revid, rb.selected_revid)
-            
-        rb.destroy()
-            
     def _set_revision_cb(self, w, revision_id):
         self.treeview.set_revision_id(revision_id)
 
@@ -456,22 +415,6 @@
         self.treeview.set_property('compact', self.compact_view)
         self.treeview.refresh()
 
-    def _tag_revision_cb(self, w):
-        try:
-            self.treeview.set_sensitive(False)
-            dialog = AddTagDialog(self.branch.repository, self.treeview.get_revision().revision_id, self.branch)
-            response = dialog.run()
-            if response != gtk.RESPONSE_NONE:
-                dialog.hide()
-            
-                if response == gtk.RESPONSE_OK:
-                    self.treeview.add_tag(dialog.tagname, dialog._revid)
-                
-                dialog.destroy()
-
-        finally:
-            self.treeview.set_sensitive(True)
-
     def _branch_index_cb(self, w):
         from bzrlib.plugins.search import index as _mod_index
         _mod_index.index_url(self.branch.base)



More information about the Pkg-bazaar-commits mailing list