# HG changeset patch
# User Stefan Haller <ste...@haller-berlin.de>
# Date 1275774340 -7200
# Node ID b0cee21d853aa4865e4da73fcc3d12a08caec059
# Parent  d8ebf2aeff32ef17675f8cf4ed5d25f17c7bd40f
annotate: provide Annotate 1st/2nd Parent for merges

Also, don't show the "Annotate Parent" menu item at all when there is no parent.

diff -r d8ebf2aeff32 -r b0cee21d853a tortoisehg/hgtk/datamine.py
--- a/tortoisehg/hgtk/datamine.py   Sat Jun 05 23:34:16 2010 +0200
+++ b/tortoisehg/hgtk/datamine.py   Sat Jun 05 23:45:40 2010 +0200
@@ -162,8 +162,21 @@
                  args=[objs])
         m.append(_('Di_splay Change'), self.cmenu_display,
                  'menushowchanged.ico')
-        m.append(_('_Annotate Parent'), self.cmenu_annotate_parent,
-                 'menublame.ico', args=[objs])
+        (frame, treeview, filepath, graphview) = objs
+        path = graphview.get_path_at_revid(int(self.currev))
+        filepath = graphview.get_wfile_at_path(path)
+        ctx = self.repo[self.currev]
+        fctx = ctx.filectx(filepath)
+        parents = fctx.parents()
+        if len(parents) > 0:
+            if len(parents) == 1:
+                m.append(_('_Annotate Parent'), self.cmenu_annotate_1st_parent,
+                         'menublame.ico', args=[objs])
+            else:
+                m.append(_('_Annotate First Parent'), 
self.cmenu_annotate_1st_parent,
+                         'menublame.ico', args=[objs])
+                m.append(_('Annotate Second Parent'), 
self.cmenu_annotate_2nd_parent,
+                         'menublame.ico', args=[objs])
         m.append(_('_View File at Revision'), self.cmenu_view, gtk.STOCK_EDIT)
         m.append(_('_File History'), self.cmenu_file_log, 'menulog.ico')
         m.append(_('_Diff to Local'), self.cmenu_local_diff)
@@ -188,20 +201,20 @@
     def cmenu_annotate(self, menuitem):
         self.add_annotate_page(self.curpath, self.currev)
 
-    def cmenu_annotate_parent(self, menuitem, objs):
-        def error_prompt():
-            gdialog.Prompt(_('No parent file'),
-                           _('Unable to annotate'), self).run()
-            return False
+    def cmenu_annotate_1st_parent(self, menuitem, objs):
+        self.annotate_parent(objs, 0)
+
+    def cmenu_annotate_2nd_parent(self, menuitem, objs):
+        self.annotate_parent(objs, 1)
+
+    def annotate_parent(self, objs, parent_idx):
         (frame, treeview, filepath, graphview) = objs
         path = graphview.get_path_at_revid(int(self.currev))
         filepath = graphview.get_wfile_at_path(path)
         ctx = self.repo[self.currev]
         fctx = ctx.filectx(filepath)
         parents = fctx.parents()
-        if len(parents) == 0:
-            return error_prompt()
-        parent_fctx = parents[0]
+        parent_fctx = parents[parent_idx]
         parent_revid = parent_fctx.changectx().rev()
         filepath = parent_fctx.path()
         # annotate file of parent rev

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to