Rev 210: Add inspect window to bzr commity-notify. in http://people.ubuntu.com/~robertc/baz2.0/plugins/gtk/trunk

Robert Collins robertc at robertcollins.net
Thu Jul 5 06:01:54 BST 2007


At http://people.ubuntu.com/~robertc/baz2.0/plugins/gtk/trunk

------------------------------------------------------------
revno: 210
revision-id: robertc at robertcollins.net-20070705050153-o5j4t7fkxe66fbht
parent: robertc at robertcollins.net-20070705042700-cw2buapcxrctkeya
committer: Robert Collins <robertc at robertcollins.net>
branch nick: trunk
timestamp: Thu 2007-07-05 15:01:53 +1000
message:
  Add inspect window to bzr commity-notify.
modified:
  __init__.py                    __init__.py-20060519165329-a1fd52c8a829fcd5
=== modified file '__init__.py'
--- a/__init__.py	2007-07-05 04:27:00 +0000
+++ b/__init__.py	2007-07-05 05:01:53 +0000
@@ -211,6 +211,20 @@
             wt.unlock()
 
 
+def start_viz_window(branch, revision, limit=None):
+    """Start viz on branch with revision revision.
+    
+    :return: The viz window object.
+    """
+    from viz.branchwin import BranchWindow
+    branch.lock_read()
+    pp = BranchWindow()
+    pp.set_branch(branch, revision, limit)
+    # cleanup locks when the window is closed
+    pp.connect("destroy", lambda w: branch.unlock())
+    return pp
+
+
 class cmd_visualise(Command):
     """Graphically visualise this branch.
 
@@ -231,7 +245,6 @@
         set_ui_factory()
         (br, path) = branch.Branch.open_containing(location)
         br.lock_read()
-        br.repository.lock_read()
         try:
             if revision is None:
                 revid = br.last_revision()
@@ -240,16 +253,12 @@
             else:
                 (revno, revid) = revision[0].in_history(br)
 
-            from viz.branchwin import BranchWindow
             import gtk
-                
-            pp = BranchWindow()
-            pp.set_branch(br, revid, limit)
+            pp = start_viz_window(br, revid, limit)
             pp.connect("destroy", lambda w: gtk.main_quit())
             pp.show()
             gtk.main()
         finally:
-            br.repository.unlock()
             br.unlock()
 
 
@@ -515,6 +524,11 @@
                 body += revision.message
                 body = cgi.escape(body)
                 nw = pynotify.Notification(summary, body)
+                def start_viz(notification=None, action=None, data=None):
+                    """Start the viz program."""
+                    pp = start_viz_window(branch, revision_id)
+                    pp.show()
+                nw.add_action("clicked", "Inspect", start_viz, None)
                 nw.set_timeout(5000)
                 nw.show()
             except Exception, e:



More information about the bazaar-commits mailing list