# HG changeset patch
# User Simon Heimberg <sim...@besonet.ch>
# Date 1250506284 -7200
# Node ID 28804ddf9ded1864cd5299a3c9fc341d24c96f97
# Parent  6bfd63beab2aa114edecb6c1c0d801da3db54907
status: allow selecting the mergetool for resolving

diff -r 6bfd63beab2a -r 28804ddf9ded hggtk/status.py
--- a/hggtk/status.py   Mit Mai 20 11:58:35 2009 +0200
+++ b/hggtk/status.py   Mon Aug 17 12:51:24 2009 +0200
@@ -1230,6 +1230,7 @@
             item.connect('activate', handler, files)
             item.set_border_width(1)
             menu.append(item)
+            return files
 
         def vdiff(menuitem, files):
             self._do_diff(files, self.opts)
@@ -1270,6 +1271,16 @@
                 ms = merge_.mergestate(self.repo)
                 ms.resolve(util.pconvert(wfile), wctx, mctx)
             self.reload_status()
+        def resolve_with(stat, tool, files):
+            if tool:
+                oldmergeenv = os.environ.get('HGMERGE')
+                os.environ['HGMERGE'] = tool
+            resolve(stat, files)
+            if tool:
+                if oldmergeenv:
+                    os.environ['HGMERGE'] = oldmergeenv
+                else:
+                    del os.environ['HGMERGE']
         def rename(menuitem, files):
             self.rename_file(files[0])
         def copy(menuitem, files):
@@ -1301,9 +1312,19 @@
         if len(all) == 1:
             make(_('_copy'), copy, 'MC')
             make(_('rename'), rename, 'MC')
-        make(_('restart merge'), resolve, 'u')
+        f = make(_('restart merge'), resolve, 'u')
         make(_('mark unresolved'), unmark, 'r')
         make(_('mark resolved'), mark, 'u')
+        if f:
+            rmenu = gtk.Menu()
+            for tool in hglib.mergetools(self.ui):
+                item = gtk.MenuItem(tool, True)
+                item.connect('activate', resolve_with, tool, f)
+                item.set_border_width(1)
+                rmenu.append(item)
+            item = gtk.MenuItem(_('restart merge with'), True)
+            item.set_submenu(rmenu)
+            menu.append(item)
 
         for label, func, stats in self.get_custom_menus():
             make(label, func, stats)

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to