This reconciles some context menu and main menu code related to
revisions.

Cheers,

Jelmer
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [EMAIL PROTECTED]
# target_branch: lp:bzr-gtk
# testament_sha1: c6eb8beea8bcb6c3fee4667b2016dd99b7d3a858
# timestamp: 2008-06-30 22:19:56 +0200
# base_revision_id: [EMAIL PROTECTED]
# 
# Begin patch
=== modified file 'branchview/linegraph.py'
--- branchview/linegraph.py	2008-06-29 18:12:29 +0000
+++ branchview/linegraph.py	2008-06-30 12:39:07 +0000
@@ -47,7 +47,7 @@
     def update_root_progress(step_number):
         """IFF our container received a root progress bar, then update it."""
         if root_progress is not None:
-            root_progress.update(current_cnt=step_number)
+            root_progress.update(None, current_cnt=step_number)
 
     graph_parents = {}
     ghosts = set()

=== modified file 'branchview/treeview.py'
--- branchview/treeview.py	2008-06-29 18:12:29 +0000
+++ 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'
--- revisionmenu.py	2008-06-29 22:46:38 +0000
+++ revisionmenu.py	2008-06-30 20:19:24 +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()
 
@@ -80,7 +87,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'
--- viz/branchwin.py	2008-06-29 19:34:29 +0000
+++ viz/branchwin.py	2008-06-30 20:19:24 +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")
@@ -329,6 +315,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:
@@ -388,19 +376,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()
@@ -419,22 +394,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)
 
@@ -450,22 +409,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)

# Begin bundle
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

Attachment: signature.asc
Description: Digital signature

-- 
bzr-gtk mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.canonical.com/mailman/listinfo/bzr-gtk

Reply via email to