Hi,
Warning: this is my first python and qt code.
Regards,
Ike
# HG changeset patch
# User
i...@compufit.be# Date 1350848383 -7200
# Node ID 6b9935b9da8aa74e0a0203e4fcc1c616fab3b67e
# Parent 40f1d75ee003736a1fc52fd828a8abfb6f191cb3
fixes #2201
resolve window: add "diff to common ancestor" buttons
diff --git a/tortoisehg/hgqt/resolve.py b/tortoisehg/hgqt/resolve.py
--- a/tortoisehg/hgqt/resolve.py
+++ b/tortoisehg/hgqt/resolve.py
@@ -111,13 +111,21 @@
res = QPushButton(_('Mark as Resolved'))
res.setToolTip(_('Mark this file as resolved'))
res.clicked.connect(self.markresolved)
+ diffLocToAnc = QPushButton(_('Diff Local to Ancestor'))
+ diffLocToAnc.setToolTip(_('Visual diff between local file and common ancestor'))
+ diffLocToAnc.clicked.connect(self.diffLocToAnc)
+ diffOthToAnc = QPushButton(_('Diff Other to Ancestor'))
+ diffOthToAnc.setToolTip(_('Visual diff between other file and common ancestor'))
+ diffOthToAnc.clicked.connect(self.diffOthToAnc)
vbox.addWidget(auto)
vbox.addWidget(manual)
vbox.addWidget(local)
vbox.addWidget(other)
vbox.addWidget(res)
+ vbox.addWidget(diffLocToAnc)
+ vbox.addWidget(diffOthToAnc)
vbox.addStretch(1)
- self.ubuttons = (auto, manual, local, other, res)
+ self.ubuttons = (auto, manual, local, other, res, diffLocToAnc, diffOthToAnc)
self.utreecmenu = QMenu(self)
cmauto = self.utreecmenu.addAction(_('Mercurial Resolve'))
@@ -130,7 +138,11 @@
cmother.triggered.connect(lambda: self.merge('internal:other'))
cmres = self.utreecmenu.addAction(_('Mark as Resolved'))
cmres.triggered.connect(self.markresolved)
- self.umenuitems = (cmauto, cmmanual, cmlocal, cmother, cmres)
+ cmdiffLocToAnc = self.utreecmenu.addAction(_('Diff Local to Ancestor'))
+ cmdiffLocToAnc.triggered.connect(self.diffLocToAnc)
+ cmdiffOthToAnc = self.utreecmenu.addAction(_('Diff Other to Ancestor'))
+ cmdiffOthToAnc.triggered.connect(self.diffOthToAnc)
+ self.umenuitems = (cmauto, cmmanual, cmlocal, cmother, cmres, cmdiffLocToAnc, cmdiffOthToAnc)
res = qtlib.LabeledSeparator(_('Resolved conflicts'))
self.layout().addWidget(res)
@@ -269,7 +281,7 @@
qtlib.editfiles(self.repo, abspaths, parent=self)
def getVdiffFiles(self, tree):
- paths = self.getSelectedPaths(self.rtree)
+ paths = self.getSelectedPaths(tree)
if not paths:
return []
files, sub = [], False
@@ -314,6 +326,26 @@
if dlg:
dlg.exec_()
+ def diffLocToAnc(self):
+ paths = self.getVdiffFiles(self.utree)
+ if paths:
+ opts = {}
+ opts['rev'] = ['ancestor(p1(),p2())..p1()']
+ opts['tool'] = self.tcombo.readValue()
+ dlg = visdiff.visualdiff(self.repo.ui, self.repo, paths, opts)
+ if dlg:
+ dlg.exec_()
+
+ def diffOthToAnc(self):
+ paths = self.getVdiffFiles(self.utree)
+ if paths:
+ opts = {}
+ opts['rev'] = ['ancestor(p1(),p2())..p2()']
+ opts['tool'] = self.tcombo.readValue()
+ dlg = visdiff.visualdiff(self.repo.ui, self.repo, paths, opts)
+ if dlg:
+ dlg.exec_()
+
def configChanged(self):
'repository has detected a change to config files'
self.tcombo.reset()