Plugins/VcsPlugins/vcsMercurial/QueuesExtension/ProjectHelper.py

changeset 1035
2cd7817ac659
parent 1034
8a7fa049e9d3
child 1036
1922b6ce2a57
--- a/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/ProjectHelper.py	Sat May 14 20:00:13 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/ProjectHelper.py	Sun May 15 18:07:16 2011 +0200
@@ -12,6 +12,8 @@
 
 from E5Gui.E5Action import E5Action
 
+from .queues import Queues
+
 
 class QueuesProjectHelper(QObject):
     """
@@ -75,6 +77,22 @@
         self.hgQueueRefreshAct.triggered[()].connect(self.__hgQueueRefreshPatch)
         self.actions.append(self.hgQueueRefreshAct)
         
+        self.hgQueueRefreshMessageAct = E5Action(
+                self.trUtf8('Update Current Patch (with Message)'),
+                self.trUtf8('Update Current Patch (with Message)'),
+                0, 0, self, 'mercurial_queues_refresh_message')
+        self.hgQueueRefreshMessageAct.setStatusTip(self.trUtf8(
+            'Update the current patch and edit commit message'
+        ))
+        self.hgQueueRefreshMessageAct.setWhatsThis(self.trUtf8(
+            """<b>Update Current Patch (with Message)</b>"""
+            """<p>This updates the current patch after giving the chance to change"""
+            """ the current commit message.</p>"""
+        ))
+        self.hgQueueRefreshMessageAct.triggered[()].connect(
+            self.__hgQueueRefreshPatchMessage)
+        self.actions.append(self.hgQueueRefreshMessageAct)
+        
         self.hgQueueDiffAct = E5Action(self.trUtf8('Show Current Patch'),
                 self.trUtf8('Show Current Patch...'),
                 0, 0, self, 'mercurial_queues_show')
@@ -90,6 +108,19 @@
         self.hgQueueDiffAct.triggered[()].connect(self.__hgQueueShowPatch)
         self.actions.append(self.hgQueueDiffAct)
         
+        self.hgQueueHeaderAct = E5Action(self.trUtf8('Show Current Message'),
+                self.trUtf8('Show Current Message...'),
+                0, 0, self, 'mercurial_queues_show_message')
+        self.hgQueueHeaderAct.setStatusTip(self.trUtf8(
+            'Show the commit message of the current patch'
+        ))
+        self.hgQueueHeaderAct.setWhatsThis(self.trUtf8(
+            """<b>Show Current Message</b>"""
+            """<p>This shows the commit message of the current patch.</p>"""
+        ))
+        self.hgQueueHeaderAct.triggered[()].connect(self.__hgQueueShowHeader)
+        self.actions.append(self.hgQueueHeaderAct)
+        
         self.hgQueueListAct = E5Action(self.trUtf8('List Patches'),
                 self.trUtf8('List Patches...'),
                 0, 0, self, 'mercurial_queues_list')
@@ -111,12 +142,51 @@
         ))
         self.hgQueueFinishAct.setWhatsThis(self.trUtf8(
             """<b>Finish Applied Patches</b>"""
-            """<p>This finishes the applied patches) by moving them out of"""
+            """<p>This finishes the applied patches by moving them out of"""
             """ mq control into regular repository history.</p>"""
         ))
         self.hgQueueFinishAct.triggered[()].connect(self.__hgQueueFinishAppliedPatches)
         self.actions.append(self.hgQueueFinishAct)
         
+        self.hgQueueRenameAct = E5Action(self.trUtf8('Rename Patch'),
+                self.trUtf8('Rename Patch'),
+                0, 0, self, 'mercurial_queues_rename')
+        self.hgQueueRenameAct.setStatusTip(self.trUtf8(
+            'Rename a patch'
+        ))
+        self.hgQueueRenameAct.setWhatsThis(self.trUtf8(
+            """<b>Rename Patch</b>"""
+            """<p>This renames the current or a named patch.</p>"""
+        ))
+        self.hgQueueRenameAct.triggered[()].connect(self.__hgQueueRenamePatch)
+        self.actions.append(self.hgQueueRenameAct)
+        
+        self.hgQueueDeleteAct = E5Action(self.trUtf8('Delete Patch'),
+                self.trUtf8('Delete Patch'),
+                0, 0, self, 'mercurial_queues_delete')
+        self.hgQueueDeleteAct.setStatusTip(self.trUtf8(
+            'Delete unapplied patch'
+        ))
+        self.hgQueueDeleteAct.setWhatsThis(self.trUtf8(
+            """<b>Delete Patch</b>"""
+            """<p>This deletes an unapplied patch.</p>"""
+        ))
+        self.hgQueueDeleteAct.triggered[()].connect(self.__hgQueueDeletePatch)
+        self.actions.append(self.hgQueueDeleteAct)
+        
+        self.hgQueueFoldAct = E5Action(self.trUtf8('Fold Patches'),
+                self.trUtf8('Fold Patches'),
+                0, 0, self, 'mercurial_queues_fold')
+        self.hgQueueFoldAct.setStatusTip(self.trUtf8(
+            'Fold unapplied patches into the current patch'
+        ))
+        self.hgQueueFoldAct.setWhatsThis(self.trUtf8(
+            """<b>Fold Patches</b>"""
+            """<p>This folds unapplied patches into the current patch.</p>"""
+        ))
+        self.hgQueueFoldAct.triggered[()].connect(self.__hgQueueFoldUnappliedPatches)
+        self.actions.append(self.hgQueueFoldAct)
+        
         self.__initPushPopActions()
         self.__initPushPopForceActions()
     
@@ -203,6 +273,20 @@
         ))
         self.hgQueuePopUntilAct.triggered[()].connect(self.__hgQueuePopPatches)
         self.actions.append(self.hgQueuePopUntilAct)
+        
+        self.hgQueueGotoAct = E5Action(self.trUtf8('Go to Patch'),
+                self.trUtf8('Go to Patch'),
+                0, 0, self, 'mercurial_queues_goto')
+        self.hgQueueGotoAct.setStatusTip(self.trUtf8(
+            'Push or pop patches until named patch is at top of stack'
+        ))
+        self.hgQueueGotoAct.setWhatsThis(self.trUtf8(
+            """<b>Go to Patch</b>"""
+            """<p>This pushes or pops patches until a named patch is at the"""
+            """ top of the stack.</p>"""
+        ))
+        self.hgQueueGotoAct.triggered[()].connect(self.__hgQueueGotoPatch)
+        self.actions.append(self.hgQueueGotoAct)
     
     def __initPushPopForceActions(self):
         """
@@ -294,6 +378,21 @@
         ))
         self.hgQueuePopUntilForceAct.triggered[()].connect(self.__hgQueuePopPatchesForced)
         self.actions.append(self.hgQueuePopUntilForceAct)
+        
+        self.hgQueueGotoForceAct = E5Action(self.trUtf8('Go to Patch'),
+                self.trUtf8('Go to Patch'),
+                0, 0, self, 'mercurial_queues_goto_force')
+        self.hgQueueGotoForceAct.setStatusTip(self.trUtf8(
+            'Push or pop patches until named patch is at top of stack overwriting'
+            ' any local changes'
+        ))
+        self.hgQueueGotoForceAct.setWhatsThis(self.trUtf8(
+            """<b>Go to Patch</b>"""
+            """<p>This pushes or pops patches until a named patch is at the"""
+            """ top of the stack overwriting any local changes.</p>"""
+        ))
+        self.hgQueueGotoForceAct.triggered[()].connect(self.__hgQueueGotoPatchForced)
+        self.actions.append(self.hgQueueGotoForceAct)
     
     def initMenu(self, mainMenu):
         """
@@ -308,28 +407,41 @@
         pushPopMenu.addAction(self.hgQueuePushAct)
         pushPopMenu.addAction(self.hgQueuePushUntilAct)
         pushPopMenu.addAction(self.hgQueuePushAllAct)
+        pushPopMenu.addSeparator()
         pushPopMenu.addAction(self.hgQueuePopAct)
         pushPopMenu.addAction(self.hgQueuePopUntilAct)
         pushPopMenu.addAction(self.hgQueuePopAllAct)
+        pushPopMenu.addSeparator()
+        pushPopMenu.addAction(self.hgQueueGotoAct)
         
         pushPopForceMenu = QMenu(self.trUtf8("Push/Pop (force)"), menu)
         pushPopForceMenu.addAction(self.hgQueuePushForceAct)
         pushPopForceMenu.addAction(self.hgQueuePushUntilForceAct)
         pushPopForceMenu.addAction(self.hgQueuePushAllForceAct)
+        pushPopForceMenu.addSeparator()
         pushPopForceMenu.addAction(self.hgQueuePopForceAct)
         pushPopForceMenu.addAction(self.hgQueuePopUntilForceAct)
         pushPopForceMenu.addAction(self.hgQueuePopAllForceAct)
+        pushPopForceMenu.addSeparator()
+        pushPopForceMenu.addAction(self.hgQueueGotoForceAct)
         
         menu.addAction(self.hgQueueNewAct)
         menu.addAction(self.hgQueueRefreshAct)
+        menu.addAction(self.hgQueueRefreshMessageAct)
         menu.addAction(self.hgQueueFinishAct)
         menu.addSeparator()
         menu.addAction(self.hgQueueDiffAct)
+        menu.addAction(self.hgQueueHeaderAct)
         menu.addSeparator()
         menu.addAction(self.hgQueueListAct)
         menu.addSeparator()
         menu.addMenu(pushPopMenu)
         menu.addMenu(pushPopForceMenu)
+        menu.addSeparator()
+        menu.addAction(self.hgQueueRenameAct)
+        menu.addAction(self.hgQueueDeleteAct)
+        menu.addSeparator()
+        menu.addAction(self.hgQueueFoldAct)
         
         return menu
     
@@ -347,6 +459,13 @@
         self.vcs.getExtensionObject("mq")\
             .hgQueueRefreshPatch(self.project.getProjectPath())
     
+    def __hgQueueRefreshPatchMessage(self):
+        """
+        Private slot used to refresh the current patch and it's commit message. 
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueueRefreshPatch(self.project.getProjectPath(), editMessage=True)
+    
     def __hgQueueShowPatch(self):
         """
         Private slot used to show the contents of the current patch. 
@@ -354,13 +473,20 @@
         self.vcs.getExtensionObject("mq")\
             .hgQueueShowPatch(self.project.getProjectPath())
     
+    def __hgQueueShowHeader(self):
+        """
+        Private slot used to show the commit message of the current patch. 
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueueShowHeader(self.project.getProjectPath())
+    
     def __hgQueuePushPatch(self):
         """
         Private slot used to push the next patch onto the stack. 
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueuePushPopPatches(self.project.getProjectPath(), 
-                pop=False, all=False, named=False)
+                operation=Queues.PUSH, all=False, named=False)
     
     def __hgQueuePushPatchForced(self):
         """
@@ -369,7 +495,7 @@
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueuePushPopPatches(self.project.getProjectPath(), 
-                pop=False, all=False, named=False, force=True)
+                operation=Queues.PUSH, all=False, named=False, force=True)
     
     def __hgQueuePushAllPatches(self):
         """
@@ -377,7 +503,7 @@
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueuePushPopPatches(self.project.getProjectPath(), 
-                pop=False, all=True, named=False)
+                operation=Queues.PUSH, all=True, named=False)
     
     def __hgQueuePushAllPatchesForced(self):
         """
@@ -386,7 +512,7 @@
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueuePushPopPatches(self.project.getProjectPath(), 
-                pop=False, all=True, named=False, force=True)
+                operation=Queues.PUSH, all=True, named=False, force=True)
     
     def __hgQueuePushPatches(self):
         """
@@ -395,7 +521,7 @@
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueuePushPopPatches(self.project.getProjectPath(), 
-                pop=False, all=False, named=True)
+                operation=Queues.PUSH, all=False, named=True)
     
     def __hgQueuePushPatchesForced(self):
         """
@@ -404,7 +530,7 @@
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueuePushPopPatches(self.project.getProjectPath(), 
-                pop=False, all=False, named=True, force=True)
+                operation=Queues.PUSH, all=False, named=True, force=True)
     
     def __hgQueuePopPatch(self):
         """
@@ -412,7 +538,7 @@
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueuePushPopPatches(self.project.getProjectPath(), 
-                pop=True, all=False, named=False)
+                operation=Queues.POP, all=False, named=False)
     
     def __hgQueuePopPatchForced(self):
         """
@@ -421,7 +547,7 @@
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueuePushPopPatches(self.project.getProjectPath(), 
-                pop=True, all=False, named=False)
+                operation=Queues.POP, all=False, named=False, force=True)
     
     def __hgQueuePopAllPatches(self):
         """
@@ -429,7 +555,7 @@
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueuePushPopPatches(self.project.getProjectPath(), 
-                pop=True, all=True, named=False)
+                operation=Queues.POP, all=True, named=False)
     
     def __hgQueuePopAllPatchesForced(self):
         """
@@ -438,7 +564,7 @@
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueuePushPopPatches(self.project.getProjectPath(), 
-                pop=True, all=True, named=False, force=True)
+                operation=Queues.POP, all=True, named=False, force=True)
     
     def __hgQueuePopPatches(self):
         """
@@ -447,7 +573,7 @@
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueuePushPopPatches(self.project.getProjectPath(), 
-                pop=True, all=False, named=True)
+                operation=Queues.POP, all=False, named=True)
     
     def __hgQueuePopPatchesForced(self):
         """
@@ -456,18 +582,57 @@
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueuePushPopPatches(self.project.getProjectPath(), 
-                pop=True, all=False, named=True)
+                operation=Queues.POP, all=False, named=True, force=True)
+    
+    def __hgQueueGotoPatch(self):
+        """
+        Private slot used to push or pop patches until the a named one
+        is at the top of the stack.
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueuePushPopPatches(self.project.getProjectPath(), 
+                operation=Queues.GOTO, all=False, named=True)
+    
+    def __hgQueueGotoPatchForced(self):
+        """
+        Private slot used to push or pop patches until the a named one
+        is at the top of the stack overwriting local changes.
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueuePushPopPatches(self.project.getProjectPath(), 
+                operation=Queues.GOTO, all=False, named=True, force=True)
     
     def __hgQueueListPatches(self):
         """
-        Private slot used to show a list of applied and unapplied patches. 
+        Private slot used to show a list of applied and unapplied patches.
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueueListPatches(self.project.getProjectPath())
     
     def __hgQueueFinishAppliedPatches(self):
         """
-        Private slot used to finish all applied patches. 
+        Private slot used to finish all applied patches.
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueueFinishAppliedPatches(self.project.getProjectPath())
+    
+    def __hgQueueRenamePatch(self):
+        """
+        Private slot used to rename a patch.
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueueRenamePatch(self.project.getProjectPath())
+    
+    def __hgQueueDeletePatch(self):
+        """
+        Private slot used to delete a patch.
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueueDeletePatch(self.project.getProjectPath())
+    
+    def __hgQueueFoldUnappliedPatches(self):
+        """
+        Private slot used to fold patches into the current patch.
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueueFoldUnappliedPatches(self.project.getProjectPath())

eric ide

mercurial