Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py

changeset 3562
ef3f13a2c599
parent 3515
1b8381afe38f
child 3563
aeb858ad35e3
diff -r 8938a2a66dee -r ef3f13a2c599 Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py
--- a/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Fri May 09 15:53:40 2014 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Mon May 12 18:19:22 2014 +0200
@@ -40,7 +40,6 @@
         VcsProjectHelper.__init__(self, vcsObject, projectObject, parent, name)
         
         # instantiate the extensions
-        from .BookmarksExtension.ProjectHelper import BookmarksProjectHelper
         from .QueuesExtension.ProjectHelper import QueuesProjectHelper
         from .FetchExtension.ProjectHelper import FetchProjectHelper
         from .PurgeExtension.ProjectHelper import PurgeProjectHelper
@@ -50,7 +49,6 @@
         from .ShelveExtension.ProjectHelper import ShelveProjectHelper
         from .LargefilesExtension.ProjectHelper import LargefilesProjectHelper
         self.__extensions = {
-            "bookmarks": BookmarksProjectHelper(),
             "mq": QueuesProjectHelper(),
             "fetch": FetchProjectHelper(),
             "purge": PurgeProjectHelper(),
@@ -1000,6 +998,148 @@
         ))
         self.hgArchiveAct.triggered.connect(self.__hgArchive)
         self.actions.append(self.hgArchiveAct)
+        
+        self.hgBookmarksListAct = E5Action(
+            self.tr('List bookmarks'),
+            UI.PixmapCache.getIcon("listBookmarks.png"),
+            self.tr('List bookmarks...'),
+            0, 0, self, 'mercurial_list_bookmarks')
+        self.hgBookmarksListAct.setStatusTip(self.tr(
+            'List bookmarks of the project'
+        ))
+        self.hgBookmarksListAct.setWhatsThis(self.tr(
+            """<b>List bookmarks</b>"""
+            """<p>This lists the bookmarks of the project.</p>"""
+        ))
+        self.hgBookmarksListAct.triggered.connect(self.__hgBookmarksList)
+        self.actions.append(self.hgBookmarksListAct)
+    
+        self.hgBookmarkDefineAct = E5Action(
+            self.tr('Define bookmark'),
+            UI.PixmapCache.getIcon("addBookmark.png"),
+            self.tr('Define bookmark...'),
+            0, 0, self, 'mercurial_define_bookmark')
+        self.hgBookmarkDefineAct.setStatusTip(self.tr(
+            'Define a bookmark for the project'
+        ))
+        self.hgBookmarkDefineAct.setWhatsThis(self.tr(
+            """<b>Define bookmark</b>"""
+            """<p>This defines a bookmark for the project.</p>"""
+        ))
+        self.hgBookmarkDefineAct.triggered.connect(self.__hgBookmarkDefine)
+        self.actions.append(self.hgBookmarkDefineAct)
+    
+        self.hgBookmarkDeleteAct = E5Action(
+            self.tr('Delete bookmark'),
+            UI.PixmapCache.getIcon("deleteBookmark.png"),
+            self.tr('Delete bookmark...'),
+            0, 0, self, 'mercurial_delete_bookmark')
+        self.hgBookmarkDeleteAct.setStatusTip(self.tr(
+            'Delete a bookmark of the project'
+        ))
+        self.hgBookmarkDeleteAct.setWhatsThis(self.tr(
+            """<b>Delete bookmark</b>"""
+            """<p>This deletes a bookmark of the project.</p>"""
+        ))
+        self.hgBookmarkDeleteAct.triggered.connect(self.__hgBookmarkDelete)
+        self.actions.append(self.hgBookmarkDeleteAct)
+    
+        self.hgBookmarkRenameAct = E5Action(
+            self.tr('Rename bookmark'),
+            UI.PixmapCache.getIcon("renameBookmark.png"),
+            self.tr('Rename bookmark...'),
+            0, 0, self, 'mercurial_rename_bookmark')
+        self.hgBookmarkRenameAct.setStatusTip(self.tr(
+            'Rename a bookmark of the project'
+        ))
+        self.hgBookmarkRenameAct.setWhatsThis(self.tr(
+            """<b>Rename bookmark</b>"""
+            """<p>This renames a bookmark of the project.</p>"""
+        ))
+        self.hgBookmarkRenameAct.triggered.connect(self.__hgBookmarkRename)
+        self.actions.append(self.hgBookmarkRenameAct)
+    
+        self.hgBookmarkMoveAct = E5Action(
+            self.tr('Move bookmark'),
+            UI.PixmapCache.getIcon("moveBookmark.png"),
+            self.tr('Move bookmark...'),
+            0, 0, self, 'mercurial_move_bookmark')
+        self.hgBookmarkMoveAct.setStatusTip(self.tr(
+            'Move a bookmark of the project'
+        ))
+        self.hgBookmarkMoveAct.setWhatsThis(self.tr(
+            """<b>Move bookmark</b>"""
+            """<p>This moves a bookmark of the project to another"""
+            """ changeset.</p>"""
+        ))
+        self.hgBookmarkMoveAct.triggered.connect(self.__hgBookmarkMove)
+        self.actions.append(self.hgBookmarkMoveAct)
+        
+        self.hgBookmarkIncomingAct = E5Action(
+            self.tr('Show incoming bookmarks'),
+            UI.PixmapCache.getIcon("incomingBookmark.png"),
+            self.tr('Show incoming bookmarks'),
+            0, 0, self, 'mercurial_incoming_bookmarks')
+        self.hgBookmarkIncomingAct.setStatusTip(self.tr(
+            'Show a list of incoming bookmarks'
+        ))
+        self.hgBookmarkIncomingAct.setWhatsThis(self.tr(
+            """<b>Show incoming bookmarks</b>"""
+            """<p>This shows a list of new bookmarks available at the remote"""
+            """ repository.</p>"""
+        ))
+        self.hgBookmarkIncomingAct.triggered.connect(
+            self.__hgBookmarkIncoming)
+        self.actions.append(self.hgBookmarkIncomingAct)
+        
+        self.hgBookmarkPullAct = E5Action(
+            self.tr('Pull bookmark'),
+            UI.PixmapCache.getIcon("pullBookmark.png"),
+            self.tr('Pull bookmark'),
+            0, 0, self, 'mercurial_pull_bookmark')
+        self.hgBookmarkPullAct.setStatusTip(self.tr(
+            'Pull a bookmark from a remote repository'
+        ))
+        self.hgBookmarkPullAct.setWhatsThis(self.tr(
+            """<b>Pull bookmark</b>"""
+            """<p>This pulls a bookmark from a remote repository into the """
+            """local repository.</p>"""
+        ))
+        self.hgBookmarkPullAct.triggered.connect(self.__hgBookmarkPull)
+        self.actions.append(self.hgBookmarkPullAct)
+        
+        self.hgBookmarkOutgoingAct = E5Action(
+            self.tr('Show outgoing bookmarks'),
+            UI.PixmapCache.getIcon("outgoingBookmark.png"),
+            self.tr('Show outgoing bookmarks'),
+            0, 0, self, 'mercurial_outgoing_bookmarks')
+        self.hgBookmarkOutgoingAct.setStatusTip(self.tr(
+            'Show a list of outgoing bookmarks'
+        ))
+        self.hgBookmarkOutgoingAct.setWhatsThis(self.tr(
+            """<b>Show outgoing bookmarks</b>"""
+            """<p>This shows a list of new bookmarks available at the local"""
+            """ repository.</p>"""
+        ))
+        self.hgBookmarkOutgoingAct.triggered.connect(
+            self.__hgBookmarkOutgoing)
+        self.actions.append(self.hgBookmarkOutgoingAct)
+        
+        self.hgBookmarkPushAct = E5Action(
+            self.tr('Push bookmark'),
+            UI.PixmapCache.getIcon("pushBookmark.png"),
+            self.tr('Push bookmark'),
+            0, 0, self, 'mercurial_push_bookmark')
+        self.hgBookmarkPushAct.setStatusTip(self.tr(
+            'Push a bookmark to a remote repository'
+        ))
+        self.hgBookmarkPushAct.setWhatsThis(self.tr(
+            """<b>Push bookmark</b>"""
+            """<p>This pushes a bookmark from the local repository to a """
+            """remote repository.</p>"""
+        ))
+        self.hgBookmarkPushAct.triggered.connect(self.__hgBookmarkPush)
+        self.actions.append(self.hgBookmarkPushAct)
     
     def __checkActions(self):
         """
@@ -1007,11 +1147,15 @@
         """
         self.hgPullAct.setEnabled(self.vcs.canPull())
         self.hgIncomingAct.setEnabled(self.vcs.canPull())
+        self.hgBookmarkPullAct.setEnabled(self.vcs.canPull())
+        self.hgBookmarkIncomingAct.setEnabled(self.vcs.canPull())
         
         self.hgPushAct.setEnabled(self.vcs.canPush())
         self.hgPushBranchAct.setEnabled(self.vcs.canPush())
         self.hgPushForcedAct.setEnabled(self.vcs.canPush())
         self.hgOutgoingAct.setEnabled(self.vcs.canPush())
+        self.hgBookmarkPushAct.setEnabled(self.vcs.canPush())
+        self.hgBookmarkOutgoingAct.setEnabled(self.vcs.canPush())
     
     def initMenu(self, menu):
         """
@@ -1076,6 +1220,23 @@
         bisectMenu.addAction(self.hgBisectResetAct)
         self.subMenus.append(bisectMenu)
         
+        bookmarksMenu = QMenu(self.tr("Bookmarks"), menu)
+        bookmarksMenu.setIcon(UI.PixmapCache.getIcon("bookmark22.png"))
+        bookmarksMenu.setTearOffEnabled(True)
+        bookmarksMenu.addAction(self.hgBookmarkDefineAct)
+        bookmarksMenu.addAction(self.hgBookmarkDeleteAct)
+        bookmarksMenu.addAction(self.hgBookmarkRenameAct)
+        bookmarksMenu.addAction(self.hgBookmarkMoveAct)
+        bookmarksMenu.addSeparator()
+        bookmarksMenu.addAction(self.hgBookmarksListAct)
+        bookmarksMenu.addSeparator()
+        bookmarksMenu.addAction(self.hgBookmarkIncomingAct)
+        bookmarksMenu.addAction(self.hgBookmarkPullAct)
+        bookmarksMenu.addSeparator()
+        bookmarksMenu.addAction(self.hgBookmarkOutgoingAct)
+        bookmarksMenu.addAction(self.hgBookmarkPushAct)
+        self.subMenus.append(bookmarksMenu)
+        
         self.__extensionsMenu = QMenu(self.tr("Extensions"), menu)
         self.__extensionsMenu.setTearOffEnabled(True)
         self.__extensionsMenu.aboutToShow.connect(self.__showExtensionMenu)
@@ -1096,13 +1257,10 @@
         else:
             graftMenu = None
         
-        if self.vcs.version >= (1, 8):
-            subrepoMenu = QMenu(self.tr("Sub-Repository"), menu)
-            subrepoMenu.setTearOffEnabled(True)
-            subrepoMenu.addAction(self.hgAddSubrepoAct)
-            subrepoMenu.addAction(self.hgRemoveSubreposAct)
-        else:
-            subrepoMenu = None
+        subrepoMenu = QMenu(self.tr("Sub-Repository"), menu)
+        subrepoMenu.setTearOffEnabled(True)
+        subrepoMenu.addAction(self.hgAddSubrepoAct)
+        subrepoMenu.addAction(self.hgRemoveSubreposAct)
         
         act = menu.addAction(
             UI.PixmapCache.getIcon(
@@ -1136,10 +1294,10 @@
         menu.addAction(self.vcsTagAct)
         menu.addAction(self.hgTagListAct)
         menu.addAction(self.hgBranchAct)
-        if self.vcs.version >= (1, 6):
-            menu.addAction(self.hgPushBranchAct)
+        menu.addAction(self.hgPushBranchAct)
         menu.addAction(self.hgCloseBranchAct)
         menu.addAction(self.hgBranchListAct)
+        menu.addMenu(bookmarksMenu)
         menu.addSeparator()
         menu.addAction(self.vcsLogAct)
         menu.addAction(self.hgLogBrowserAct)
@@ -1160,9 +1318,8 @@
         menu.addSeparator()
         menu.addAction(self.vcsSwitchAct)
         menu.addSeparator()
-        if subrepoMenu is not None:
-            menu.addMenu(subrepoMenu)
-            menu.addSeparator()
+        menu.addMenu(subrepoMenu)
+        menu.addSeparator()
         menu.addMenu(bisectMenu)
         menu.addSeparator()
         menu.addAction(self.vcsCleanupAct)
@@ -1548,3 +1705,57 @@
         Private slot to create an unversioned archive from the repository.
         """
         self.vcs.hgArchive()
+    
+    def __hgBookmarksList(self):
+        """
+        Private slot used to list the bookmarks.
+        """
+        self.vcs.hgListBookmarks(self.project.getProjectPath())
+    
+    def __hgBookmarkDefine(self):
+        """
+        Private slot used to define a bookmark.
+        """
+        self.vcs.hgBookmarkDefine(self.project.getProjectPath())
+    
+    def __hgBookmarkDelete(self):
+        """
+        Private slot used to delete a bookmark.
+        """
+        self.vcs.hgBookmarkDelete(self.project.getProjectPath())
+    
+    def __hgBookmarkRename(self):
+        """
+        Private slot used to rename a bookmark.
+        """
+        self.vcs.hgBookmarkRename(self.project.getProjectPath())
+    
+    def __hgBookmarkMove(self):
+        """
+        Private slot used to move a bookmark.
+        """
+        self.vcs.hgBookmarkMove(self.project.getProjectPath())
+    
+    def __hgBookmarkIncoming(self):
+        """
+        Private slot used to show a list of incoming bookmarks.
+        """
+        self.vcs.hgBookmarkIncoming(self.project.getProjectPath())
+    
+    def __hgBookmarkOutgoing(self):
+        """
+        Private slot used to show a list of outgoing bookmarks.
+        """
+        self.vcs.hgBookmarkOutgoing(self.project.getProjectPath())
+    
+    def __hgBookmarkPull(self):
+        """
+        Private slot used to pull a bookmark from a remote repository.
+        """
+        self.vcs.hgBookmarkPull(self.project.getProjectPath())
+    
+    def __hgBookmarkPush(self):
+        """
+        Private slot used to push a bookmark to a remote repository.
+        """
+        self.vcs.hgBookmarkPush(self.project.getProjectPath())

eric ide

mercurial