# HG changeset patch
# User Wagner Bruna <[email protected]>
# Date 1254758040 10800
# Node ID 9ea3e9ac237d231654628aa0c5bbd77e03585cb9
# Parent f0acd74b033f8704aef27867783cad1577c36d42
mq: support the qup extension
Allows making an unapplied patch the next in the series.
diff --git a/tortoisehg/hgtk/thgmq.py b/tortoisehg/hgtk/thgmq.py
--- a/tortoisehg/hgtk/thgmq.py
+++ b/tortoisehg/hgtk/thgmq.py
@@ -10,6 +10,8 @@
import gobject
import pango
+from mercurial import extensions
+
from tortoisehg.util.i18n import _
from tortoisehg.util import hglib
@@ -77,6 +79,12 @@
self.repo = repo
self.mqloaded = hasattr(repo, 'mq')
+ try:
+ extensions.find('qup')
+ self.hasqup = True
+ except KeyError:
+ self.hasqup = False
+
# top toolbar
tbar = gtklib.SlimToolbar(tooltips)
@@ -371,6 +379,17 @@
cmdline = ['hg', 'qfold', patch]
self.cmd.execute(cmdline, self.cmd_done)
+ def mknext(self, patch):
+ """
+ [MQ] Execute 'qup patch'
+
+ patch: the patch name or an index to specify the patch.
+ """
+ if not (self.hasqup and patch and self.is_operable()):
+ return
+ cmdline = ['hg', 'qup', patch]
+ self.cmd.execute(cmdline, self.cmd_done)
+
def has_patch(self):
""" return True if MQ has applicable patch """
if self.mqloaded:
@@ -383,6 +402,12 @@
return len(self.repo.mq.applied) > 0
return False
+ def number_applied(self):
+ """ return the number of applied patches """
+ if self.mqloaded:
+ return len(self.repo.mq.applied)
+ return 0
+
def is_operable(self):
""" return True if MQ is operable """
if self.mqloaded:
@@ -498,6 +523,7 @@
is_qtip = self.is_qtip(row[MQ_NAME])
is_qparent = row[MQ_INDEX] == INDEX_QPARENT
is_applied = row[MQ_STATUS] == 'A'
+ is_next = row[MQ_INDEX] == self.number_applied()
if is_operable and not is_qtip and (not is_qparent or has_applied):
append(_('_goto'), self.goto_activated)
@@ -510,6 +536,8 @@
append(_('delete --keep'), self.delete_keep_activated)
if has_applied and not is_qparent:
append(_('f_old'), self.fold_activated)
+ if self.hasqup and not is_next:
+ append(_('make it _next'), self.mknext_activated)
if len(menu.get_children()) > 0:
menu.show_all()
@@ -667,3 +695,6 @@
def fold_activated(self, menuitem, row):
self.qfold(row[MQ_NAME])
+
+ def mknext_activated(self, menuitem, row):
+ self.mknext(row[MQ_NAME])
------------------------------------------------------------------------------
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
Tortoisehg-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop