Rev 530: Share code between context and main revision menu. in file:///data/jelmer/bzr-gtk/trunk/
Jelmer Vernooij
jelmer at samba.org
Tue Jul 1 22:54:23 BST 2008
At file:///data/jelmer/bzr-gtk/trunk/
------------------------------------------------------------
revno: 530
revision-id: jelmer at samba.org-20080701215421-50g2c59zx9vcn7j5
parent: jelmer at samba.org-20080701215237-of0pp0iwtbrke44q
parent: jelmer at samba.org-20080630201924-bwkazf2b5ke2gk2i
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 news-20070325173539-3va57o99cz3o57xe-1
branchview/treeview.py treeview.py-20071020204704-vk1erblrjhbcgw94-1
revisionmenu.py revisionmenu.py-20070715160146-pd4ew0wtlevga2mx-1
viz/branchwin.py branchwin.py-20051016222514-15fd120652fcf25c
------------------------------------------------------------
revno: 523.3.2
revision-id: jelmer at samba.org-20080630201924-bwkazf2b5ke2gk2i
parent: jelmer at samba.org-20080630201124-9hek197ldh8gf3wo
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 revisionmenu.py-20070715160146-pd4ew0wtlevga2mx-1
viz/branchwin.py branchwin.py-20051016222514-15fd120652fcf25c
------------------------------------------------------------
revno: 523.3.1
revision-id: jelmer at samba.org-20080630201124-9hek197ldh8gf3wo
parent: jelmer at samba.org-20080630123907-pvny3atdtpbkjsno
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 treeview.py-20071020204704-vk1erblrjhbcgw94-1
revisionmenu.py revisionmenu.py-20070715160146-pd4ew0wtlevga2mx-1
=== 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 bazaar-commits
mailing list