Plugins/VcsPlugins/vcsMercurial/QueuesExtension/ProjectHelper.py

changeset 1053
c54aa980ea8e
parent 1047
b41a36b201e4
child 1061
3e21869872e3
--- a/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/ProjectHelper.py	Sun May 22 11:31:38 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/ProjectHelper.py	Sun May 22 16:21:32 2011 +0200
@@ -190,6 +190,7 @@
         self.__initPushPopActions()
         self.__initPushPopForceActions()
         self.__initGuardsActions()
+        self.__initQueuesMgmtActions()
     
     def __initPushPopActions(self):
         """
@@ -495,6 +496,95 @@
             self.__hgQueueGuardsIdentifyActive)
         self.actions.append(self.hgQueueIdentifyActiveGuardsAct)
     
+    def __initQueuesMgmtActions(self):
+        """
+        Public method to generate the queues management action objects.
+        """
+        self.hgQueueCreateQueueAct = E5Action(self.trUtf8('Create Queue'),
+                self.trUtf8('Create Queue'),
+                0, 0, self, 'mercurial_queues_create_queue')
+        self.hgQueueCreateQueueAct.setStatusTip(self.trUtf8(
+            'Create a new patch queue'
+        ))
+        self.hgQueueCreateQueueAct.setWhatsThis(self.trUtf8(
+            """<b>Create Queue</b>"""
+            """<p>This creates a new patch queue.</p>"""
+        ))
+        self.hgQueueCreateQueueAct.triggered[()].connect(
+            self.__hgQueueCreateQueue)
+        self.actions.append(self.hgQueueCreateQueueAct)
+        
+        self.hgQueueRenameQueueAct = E5Action(self.trUtf8('Rename Queue'),
+                self.trUtf8('Rename Queue'),
+                0, 0, self, 'mercurial_queues_rename_queue')
+        self.hgQueueRenameQueueAct.setStatusTip(self.trUtf8(
+            'Rename the active patch queue'
+        ))
+        self.hgQueueRenameQueueAct.setWhatsThis(self.trUtf8(
+            """<b>Rename Queue</b>"""
+            """<p>This renames the active patch queue.</p>"""
+        ))
+        self.hgQueueRenameQueueAct.triggered[()].connect(
+            self.__hgQueueRenameQueue)
+        self.actions.append(self.hgQueueRenameQueueAct)
+        
+        self.hgQueueDeleteQueueAct = E5Action(self.trUtf8('Delete Queue'),
+                self.trUtf8('Delete Queue'),
+                0, 0, self, 'mercurial_queues_delete_queue')
+        self.hgQueueDeleteQueueAct.setStatusTip(self.trUtf8(
+            'Delete the reference to a patch queue'
+        ))
+        self.hgQueueDeleteQueueAct.setWhatsThis(self.trUtf8(
+            """<b>Delete Queue</b>"""
+            """<p>This deletes the reference to a patch queue.</p>"""
+        ))
+        self.hgQueueDeleteQueueAct.triggered[()].connect(
+            self.__hgQueueDeleteQueue)
+        self.actions.append(self.hgQueueDeleteQueueAct)
+        
+        self.hgQueuePurgeQueueAct = E5Action(self.trUtf8('Purge Queue'),
+                self.trUtf8('Purge Queue'),
+                0, 0, self, 'mercurial_queues_purge_queue')
+        self.hgQueuePurgeQueueAct.setStatusTip(self.trUtf8(
+            'Delete the reference to a patch queue and remove the patch directory'
+        ))
+        self.hgQueuePurgeQueueAct.setWhatsThis(self.trUtf8(
+            """<b>Purge Queue</b>"""
+            """<p>This deletes the reference to a patch queue and removes"""
+            """ the patch directory.</p>"""
+        ))
+        self.hgQueuePurgeQueueAct.triggered[()].connect(
+            self.__hgQueuePurgeQueue)
+        self.actions.append(self.hgQueuePurgeQueueAct)
+        
+        self.hgQueueActivateQueueAct = E5Action(self.trUtf8('Activate Queue'),
+                self.trUtf8('Activate Queue'),
+                0, 0, self, 'mercurial_queues_activate_queue')
+        self.hgQueueActivateQueueAct.setStatusTip(self.trUtf8(
+            'Set the active queue'
+        ))
+        self.hgQueueActivateQueueAct.setWhatsThis(self.trUtf8(
+            """<b>Activate Queue</b>"""
+            """<p>This sets the active queue.</p>"""
+        ))
+        self.hgQueueActivateQueueAct.triggered[()].connect(
+            self.__hgQueueActivateQueue)
+        self.actions.append(self.hgQueueActivateQueueAct)
+        
+        self.hgQueueListQueuesAct = E5Action(self.trUtf8('List Queues'),
+                self.trUtf8('List Queues...'),
+                0, 0, self, 'mercurial_queues_list_queues')
+        self.hgQueueListQueuesAct.setStatusTip(self.trUtf8(
+            'List the available queues'
+        ))
+        self.hgQueueListQueuesAct.setWhatsThis(self.trUtf8(
+            """<b>List Queues</b>"""
+            """<p>This opens a dialog showing all available queues.</p>"""
+        ))
+        self.hgQueueListQueuesAct.triggered[()].connect(
+            self.__hgQueueListQueues)
+        self.actions.append(self.hgQueueListQueuesAct)
+    
     def initMenu(self, mainMenu):
         """
         Public method to generate the VCS menu.
@@ -538,6 +628,16 @@
         guardsMenu.addSeparator()
         guardsMenu.addAction(self.hgQueueIdentifyActiveGuardsAct)
         
+        queuesMenu = QMenu(self.trUtf8("Queue Management"), menu)
+        queuesMenu.addAction(self.hgQueueCreateQueueAct)
+        queuesMenu.addAction(self.hgQueueRenameQueueAct)
+        queuesMenu.addAction(self.hgQueueDeleteQueueAct)
+        queuesMenu.addAction(self.hgQueuePurgeQueueAct)
+        queuesMenu.addSeparator()
+        queuesMenu.addAction(self.hgQueueActivateQueueAct)
+        queuesMenu.addSeparator()
+        queuesMenu.addAction(self.hgQueueListQueuesAct)
+        
         menu.addAction(self.hgQueueNewAct)
         menu.addAction(self.hgQueueRefreshAct)
         menu.addAction(self.hgQueueRefreshMessageAct)
@@ -557,6 +657,8 @@
         menu.addAction(self.hgQueueFoldAct)
         menu.addSeparator()
         menu.addMenu(guardsMenu)
+        menu.addSeparator()
+        menu.addMenu(queuesMenu)
         
         return menu
     
@@ -800,3 +902,49 @@
         """
         self.vcs.getExtensionObject("mq")\
             .hgQueueGuardsIdentifyActive(self.project.getProjectPath())
+    
+    def __hgQueueCreateQueue(self):
+        """
+        Private slot used to create a new queue.
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueueCreateRenameQueue(self.project.getProjectPath(), True)
+    
+    def __hgQueueRenameQueue(self):
+        """
+        Private slot used to rename the active queue.
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueueCreateRenameQueue(self.project.getProjectPath(), False)
+    
+    def __hgQueueDeleteQueue(self):
+        """
+        Private slot used to delete the reference to a queue.
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueueDeletePurgeActivateQueue(self.project.getProjectPath(),
+                                             Queues.QUEUE_DELETE)
+    
+    def __hgQueuePurgeQueue(self):
+        """
+        Private slot used to delete the reference to a queue and remove
+        the patch directory.
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueueDeletePurgeActivateQueue(self.project.getProjectPath(),
+                                             Queues.QUEUE_PURGE)
+    
+    def __hgQueueActivateQueue(self):
+        """
+        Private slot used to set the active queue.
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueueDeletePurgeActivateQueue(self.project.getProjectPath(),
+                                             Queues.QUEUE_ACTIVATE)
+    
+    def __hgQueueListQueues(self):
+        """
+        Private slot used to list available queues.
+        """
+        self.vcs.getExtensionObject("mq")\
+            .hgQueueListQueues(self.project.getProjectPath())

eric ide

mercurial