--- 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())