Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py

changeset 3562
ef3f13a2c599
parent 3515
1b8381afe38f
child 3563
aeb858ad35e3
equal deleted inserted replaced
3559:8938a2a66dee 3562:ef3f13a2c599
38 @param name name of this object (string) 38 @param name name of this object (string)
39 """ 39 """
40 VcsProjectHelper.__init__(self, vcsObject, projectObject, parent, name) 40 VcsProjectHelper.__init__(self, vcsObject, projectObject, parent, name)
41 41
42 # instantiate the extensions 42 # instantiate the extensions
43 from .BookmarksExtension.ProjectHelper import BookmarksProjectHelper
44 from .QueuesExtension.ProjectHelper import QueuesProjectHelper 43 from .QueuesExtension.ProjectHelper import QueuesProjectHelper
45 from .FetchExtension.ProjectHelper import FetchProjectHelper 44 from .FetchExtension.ProjectHelper import FetchProjectHelper
46 from .PurgeExtension.ProjectHelper import PurgeProjectHelper 45 from .PurgeExtension.ProjectHelper import PurgeProjectHelper
47 from .GpgExtension.ProjectHelper import GpgProjectHelper 46 from .GpgExtension.ProjectHelper import GpgProjectHelper
48 from .TransplantExtension.ProjectHelper import TransplantProjectHelper 47 from .TransplantExtension.ProjectHelper import TransplantProjectHelper
49 from .RebaseExtension.ProjectHelper import RebaseProjectHelper 48 from .RebaseExtension.ProjectHelper import RebaseProjectHelper
50 from .ShelveExtension.ProjectHelper import ShelveProjectHelper 49 from .ShelveExtension.ProjectHelper import ShelveProjectHelper
51 from .LargefilesExtension.ProjectHelper import LargefilesProjectHelper 50 from .LargefilesExtension.ProjectHelper import LargefilesProjectHelper
52 self.__extensions = { 51 self.__extensions = {
53 "bookmarks": BookmarksProjectHelper(),
54 "mq": QueuesProjectHelper(), 52 "mq": QueuesProjectHelper(),
55 "fetch": FetchProjectHelper(), 53 "fetch": FetchProjectHelper(),
56 "purge": PurgeProjectHelper(), 54 "purge": PurgeProjectHelper(),
57 "gpg": GpgProjectHelper(), 55 "gpg": GpgProjectHelper(),
58 "transplant": TransplantProjectHelper(), 56 "transplant": TransplantProjectHelper(),
998 """<p>This creates an unversioned archive from the""" 996 """<p>This creates an unversioned archive from the"""
999 """ repository.</p>""" 997 """ repository.</p>"""
1000 )) 998 ))
1001 self.hgArchiveAct.triggered.connect(self.__hgArchive) 999 self.hgArchiveAct.triggered.connect(self.__hgArchive)
1002 self.actions.append(self.hgArchiveAct) 1000 self.actions.append(self.hgArchiveAct)
1001
1002 self.hgBookmarksListAct = E5Action(
1003 self.tr('List bookmarks'),
1004 UI.PixmapCache.getIcon("listBookmarks.png"),
1005 self.tr('List bookmarks...'),
1006 0, 0, self, 'mercurial_list_bookmarks')
1007 self.hgBookmarksListAct.setStatusTip(self.tr(
1008 'List bookmarks of the project'
1009 ))
1010 self.hgBookmarksListAct.setWhatsThis(self.tr(
1011 """<b>List bookmarks</b>"""
1012 """<p>This lists the bookmarks of the project.</p>"""
1013 ))
1014 self.hgBookmarksListAct.triggered.connect(self.__hgBookmarksList)
1015 self.actions.append(self.hgBookmarksListAct)
1016
1017 self.hgBookmarkDefineAct = E5Action(
1018 self.tr('Define bookmark'),
1019 UI.PixmapCache.getIcon("addBookmark.png"),
1020 self.tr('Define bookmark...'),
1021 0, 0, self, 'mercurial_define_bookmark')
1022 self.hgBookmarkDefineAct.setStatusTip(self.tr(
1023 'Define a bookmark for the project'
1024 ))
1025 self.hgBookmarkDefineAct.setWhatsThis(self.tr(
1026 """<b>Define bookmark</b>"""
1027 """<p>This defines a bookmark for the project.</p>"""
1028 ))
1029 self.hgBookmarkDefineAct.triggered.connect(self.__hgBookmarkDefine)
1030 self.actions.append(self.hgBookmarkDefineAct)
1031
1032 self.hgBookmarkDeleteAct = E5Action(
1033 self.tr('Delete bookmark'),
1034 UI.PixmapCache.getIcon("deleteBookmark.png"),
1035 self.tr('Delete bookmark...'),
1036 0, 0, self, 'mercurial_delete_bookmark')
1037 self.hgBookmarkDeleteAct.setStatusTip(self.tr(
1038 'Delete a bookmark of the project'
1039 ))
1040 self.hgBookmarkDeleteAct.setWhatsThis(self.tr(
1041 """<b>Delete bookmark</b>"""
1042 """<p>This deletes a bookmark of the project.</p>"""
1043 ))
1044 self.hgBookmarkDeleteAct.triggered.connect(self.__hgBookmarkDelete)
1045 self.actions.append(self.hgBookmarkDeleteAct)
1046
1047 self.hgBookmarkRenameAct = E5Action(
1048 self.tr('Rename bookmark'),
1049 UI.PixmapCache.getIcon("renameBookmark.png"),
1050 self.tr('Rename bookmark...'),
1051 0, 0, self, 'mercurial_rename_bookmark')
1052 self.hgBookmarkRenameAct.setStatusTip(self.tr(
1053 'Rename a bookmark of the project'
1054 ))
1055 self.hgBookmarkRenameAct.setWhatsThis(self.tr(
1056 """<b>Rename bookmark</b>"""
1057 """<p>This renames a bookmark of the project.</p>"""
1058 ))
1059 self.hgBookmarkRenameAct.triggered.connect(self.__hgBookmarkRename)
1060 self.actions.append(self.hgBookmarkRenameAct)
1061
1062 self.hgBookmarkMoveAct = E5Action(
1063 self.tr('Move bookmark'),
1064 UI.PixmapCache.getIcon("moveBookmark.png"),
1065 self.tr('Move bookmark...'),
1066 0, 0, self, 'mercurial_move_bookmark')
1067 self.hgBookmarkMoveAct.setStatusTip(self.tr(
1068 'Move a bookmark of the project'
1069 ))
1070 self.hgBookmarkMoveAct.setWhatsThis(self.tr(
1071 """<b>Move bookmark</b>"""
1072 """<p>This moves a bookmark of the project to another"""
1073 """ changeset.</p>"""
1074 ))
1075 self.hgBookmarkMoveAct.triggered.connect(self.__hgBookmarkMove)
1076 self.actions.append(self.hgBookmarkMoveAct)
1077
1078 self.hgBookmarkIncomingAct = E5Action(
1079 self.tr('Show incoming bookmarks'),
1080 UI.PixmapCache.getIcon("incomingBookmark.png"),
1081 self.tr('Show incoming bookmarks'),
1082 0, 0, self, 'mercurial_incoming_bookmarks')
1083 self.hgBookmarkIncomingAct.setStatusTip(self.tr(
1084 'Show a list of incoming bookmarks'
1085 ))
1086 self.hgBookmarkIncomingAct.setWhatsThis(self.tr(
1087 """<b>Show incoming bookmarks</b>"""
1088 """<p>This shows a list of new bookmarks available at the remote"""
1089 """ repository.</p>"""
1090 ))
1091 self.hgBookmarkIncomingAct.triggered.connect(
1092 self.__hgBookmarkIncoming)
1093 self.actions.append(self.hgBookmarkIncomingAct)
1094
1095 self.hgBookmarkPullAct = E5Action(
1096 self.tr('Pull bookmark'),
1097 UI.PixmapCache.getIcon("pullBookmark.png"),
1098 self.tr('Pull bookmark'),
1099 0, 0, self, 'mercurial_pull_bookmark')
1100 self.hgBookmarkPullAct.setStatusTip(self.tr(
1101 'Pull a bookmark from a remote repository'
1102 ))
1103 self.hgBookmarkPullAct.setWhatsThis(self.tr(
1104 """<b>Pull bookmark</b>"""
1105 """<p>This pulls a bookmark from a remote repository into the """
1106 """local repository.</p>"""
1107 ))
1108 self.hgBookmarkPullAct.triggered.connect(self.__hgBookmarkPull)
1109 self.actions.append(self.hgBookmarkPullAct)
1110
1111 self.hgBookmarkOutgoingAct = E5Action(
1112 self.tr('Show outgoing bookmarks'),
1113 UI.PixmapCache.getIcon("outgoingBookmark.png"),
1114 self.tr('Show outgoing bookmarks'),
1115 0, 0, self, 'mercurial_outgoing_bookmarks')
1116 self.hgBookmarkOutgoingAct.setStatusTip(self.tr(
1117 'Show a list of outgoing bookmarks'
1118 ))
1119 self.hgBookmarkOutgoingAct.setWhatsThis(self.tr(
1120 """<b>Show outgoing bookmarks</b>"""
1121 """<p>This shows a list of new bookmarks available at the local"""
1122 """ repository.</p>"""
1123 ))
1124 self.hgBookmarkOutgoingAct.triggered.connect(
1125 self.__hgBookmarkOutgoing)
1126 self.actions.append(self.hgBookmarkOutgoingAct)
1127
1128 self.hgBookmarkPushAct = E5Action(
1129 self.tr('Push bookmark'),
1130 UI.PixmapCache.getIcon("pushBookmark.png"),
1131 self.tr('Push bookmark'),
1132 0, 0, self, 'mercurial_push_bookmark')
1133 self.hgBookmarkPushAct.setStatusTip(self.tr(
1134 'Push a bookmark to a remote repository'
1135 ))
1136 self.hgBookmarkPushAct.setWhatsThis(self.tr(
1137 """<b>Push bookmark</b>"""
1138 """<p>This pushes a bookmark from the local repository to a """
1139 """remote repository.</p>"""
1140 ))
1141 self.hgBookmarkPushAct.triggered.connect(self.__hgBookmarkPush)
1142 self.actions.append(self.hgBookmarkPushAct)
1003 1143
1004 def __checkActions(self): 1144 def __checkActions(self):
1005 """ 1145 """
1006 Private slot to set the enabled status of actions. 1146 Private slot to set the enabled status of actions.
1007 """ 1147 """
1008 self.hgPullAct.setEnabled(self.vcs.canPull()) 1148 self.hgPullAct.setEnabled(self.vcs.canPull())
1009 self.hgIncomingAct.setEnabled(self.vcs.canPull()) 1149 self.hgIncomingAct.setEnabled(self.vcs.canPull())
1150 self.hgBookmarkPullAct.setEnabled(self.vcs.canPull())
1151 self.hgBookmarkIncomingAct.setEnabled(self.vcs.canPull())
1010 1152
1011 self.hgPushAct.setEnabled(self.vcs.canPush()) 1153 self.hgPushAct.setEnabled(self.vcs.canPush())
1012 self.hgPushBranchAct.setEnabled(self.vcs.canPush()) 1154 self.hgPushBranchAct.setEnabled(self.vcs.canPush())
1013 self.hgPushForcedAct.setEnabled(self.vcs.canPush()) 1155 self.hgPushForcedAct.setEnabled(self.vcs.canPush())
1014 self.hgOutgoingAct.setEnabled(self.vcs.canPush()) 1156 self.hgOutgoingAct.setEnabled(self.vcs.canPush())
1157 self.hgBookmarkPushAct.setEnabled(self.vcs.canPush())
1158 self.hgBookmarkOutgoingAct.setEnabled(self.vcs.canPush())
1015 1159
1016 def initMenu(self, menu): 1160 def initMenu(self, menu):
1017 """ 1161 """
1018 Public method to generate the VCS menu. 1162 Public method to generate the VCS menu.
1019 1163
1074 bisectMenu.addAction(self.hgBisectBadAct) 1218 bisectMenu.addAction(self.hgBisectBadAct)
1075 bisectMenu.addAction(self.hgBisectSkipAct) 1219 bisectMenu.addAction(self.hgBisectSkipAct)
1076 bisectMenu.addAction(self.hgBisectResetAct) 1220 bisectMenu.addAction(self.hgBisectResetAct)
1077 self.subMenus.append(bisectMenu) 1221 self.subMenus.append(bisectMenu)
1078 1222
1223 bookmarksMenu = QMenu(self.tr("Bookmarks"), menu)
1224 bookmarksMenu.setIcon(UI.PixmapCache.getIcon("bookmark22.png"))
1225 bookmarksMenu.setTearOffEnabled(True)
1226 bookmarksMenu.addAction(self.hgBookmarkDefineAct)
1227 bookmarksMenu.addAction(self.hgBookmarkDeleteAct)
1228 bookmarksMenu.addAction(self.hgBookmarkRenameAct)
1229 bookmarksMenu.addAction(self.hgBookmarkMoveAct)
1230 bookmarksMenu.addSeparator()
1231 bookmarksMenu.addAction(self.hgBookmarksListAct)
1232 bookmarksMenu.addSeparator()
1233 bookmarksMenu.addAction(self.hgBookmarkIncomingAct)
1234 bookmarksMenu.addAction(self.hgBookmarkPullAct)
1235 bookmarksMenu.addSeparator()
1236 bookmarksMenu.addAction(self.hgBookmarkOutgoingAct)
1237 bookmarksMenu.addAction(self.hgBookmarkPushAct)
1238 self.subMenus.append(bookmarksMenu)
1239
1079 self.__extensionsMenu = QMenu(self.tr("Extensions"), menu) 1240 self.__extensionsMenu = QMenu(self.tr("Extensions"), menu)
1080 self.__extensionsMenu.setTearOffEnabled(True) 1241 self.__extensionsMenu.setTearOffEnabled(True)
1081 self.__extensionsMenu.aboutToShow.connect(self.__showExtensionMenu) 1242 self.__extensionsMenu.aboutToShow.connect(self.__showExtensionMenu)
1082 self.extensionMenus = {} 1243 self.extensionMenus = {}
1083 for extensionMenuTitle in sorted(self.__extensionMenuTitles): 1244 for extensionMenuTitle in sorted(self.__extensionMenuTitles):
1094 graftMenu.addAction(self.hgGraftAct) 1255 graftMenu.addAction(self.hgGraftAct)
1095 graftMenu.addAction(self.hgGraftContinueAct) 1256 graftMenu.addAction(self.hgGraftContinueAct)
1096 else: 1257 else:
1097 graftMenu = None 1258 graftMenu = None
1098 1259
1099 if self.vcs.version >= (1, 8): 1260 subrepoMenu = QMenu(self.tr("Sub-Repository"), menu)
1100 subrepoMenu = QMenu(self.tr("Sub-Repository"), menu) 1261 subrepoMenu.setTearOffEnabled(True)
1101 subrepoMenu.setTearOffEnabled(True) 1262 subrepoMenu.addAction(self.hgAddSubrepoAct)
1102 subrepoMenu.addAction(self.hgAddSubrepoAct) 1263 subrepoMenu.addAction(self.hgRemoveSubreposAct)
1103 subrepoMenu.addAction(self.hgRemoveSubreposAct)
1104 else:
1105 subrepoMenu = None
1106 1264
1107 act = menu.addAction( 1265 act = menu.addAction(
1108 UI.PixmapCache.getIcon( 1266 UI.PixmapCache.getIcon(
1109 os.path.join("VcsPlugins", "vcsMercurial", "icons", 1267 os.path.join("VcsPlugins", "vcsMercurial", "icons",
1110 "mercurial.png")), 1268 "mercurial.png")),
1134 menu.addAction(self.vcsExportAct) 1292 menu.addAction(self.vcsExportAct)
1135 menu.addSeparator() 1293 menu.addSeparator()
1136 menu.addAction(self.vcsTagAct) 1294 menu.addAction(self.vcsTagAct)
1137 menu.addAction(self.hgTagListAct) 1295 menu.addAction(self.hgTagListAct)
1138 menu.addAction(self.hgBranchAct) 1296 menu.addAction(self.hgBranchAct)
1139 if self.vcs.version >= (1, 6): 1297 menu.addAction(self.hgPushBranchAct)
1140 menu.addAction(self.hgPushBranchAct)
1141 menu.addAction(self.hgCloseBranchAct) 1298 menu.addAction(self.hgCloseBranchAct)
1142 menu.addAction(self.hgBranchListAct) 1299 menu.addAction(self.hgBranchListAct)
1300 menu.addMenu(bookmarksMenu)
1143 menu.addSeparator() 1301 menu.addSeparator()
1144 menu.addAction(self.vcsLogAct) 1302 menu.addAction(self.vcsLogAct)
1145 menu.addAction(self.hgLogBrowserAct) 1303 menu.addAction(self.hgLogBrowserAct)
1146 menu.addSeparator() 1304 menu.addSeparator()
1147 menu.addAction(self.vcsStatusAct) 1305 menu.addAction(self.vcsStatusAct)
1158 menu.addAction(self.vcsResolveAct) 1316 menu.addAction(self.vcsResolveAct)
1159 menu.addAction(self.hgCancelMergeAct) 1317 menu.addAction(self.hgCancelMergeAct)
1160 menu.addSeparator() 1318 menu.addSeparator()
1161 menu.addAction(self.vcsSwitchAct) 1319 menu.addAction(self.vcsSwitchAct)
1162 menu.addSeparator() 1320 menu.addSeparator()
1163 if subrepoMenu is not None: 1321 menu.addMenu(subrepoMenu)
1164 menu.addMenu(subrepoMenu) 1322 menu.addSeparator()
1165 menu.addSeparator()
1166 menu.addMenu(bisectMenu) 1323 menu.addMenu(bisectMenu)
1167 menu.addSeparator() 1324 menu.addSeparator()
1168 menu.addAction(self.vcsCleanupAct) 1325 menu.addAction(self.vcsCleanupAct)
1169 menu.addSeparator() 1326 menu.addSeparator()
1170 menu.addAction(self.vcsCommandAct) 1327 menu.addAction(self.vcsCommandAct)
1546 def __hgArchive(self): 1703 def __hgArchive(self):
1547 """ 1704 """
1548 Private slot to create an unversioned archive from the repository. 1705 Private slot to create an unversioned archive from the repository.
1549 """ 1706 """
1550 self.vcs.hgArchive() 1707 self.vcs.hgArchive()
1708
1709 def __hgBookmarksList(self):
1710 """
1711 Private slot used to list the bookmarks.
1712 """
1713 self.vcs.hgListBookmarks(self.project.getProjectPath())
1714
1715 def __hgBookmarkDefine(self):
1716 """
1717 Private slot used to define a bookmark.
1718 """
1719 self.vcs.hgBookmarkDefine(self.project.getProjectPath())
1720
1721 def __hgBookmarkDelete(self):
1722 """
1723 Private slot used to delete a bookmark.
1724 """
1725 self.vcs.hgBookmarkDelete(self.project.getProjectPath())
1726
1727 def __hgBookmarkRename(self):
1728 """
1729 Private slot used to rename a bookmark.
1730 """
1731 self.vcs.hgBookmarkRename(self.project.getProjectPath())
1732
1733 def __hgBookmarkMove(self):
1734 """
1735 Private slot used to move a bookmark.
1736 """
1737 self.vcs.hgBookmarkMove(self.project.getProjectPath())
1738
1739 def __hgBookmarkIncoming(self):
1740 """
1741 Private slot used to show a list of incoming bookmarks.
1742 """
1743 self.vcs.hgBookmarkIncoming(self.project.getProjectPath())
1744
1745 def __hgBookmarkOutgoing(self):
1746 """
1747 Private slot used to show a list of outgoing bookmarks.
1748 """
1749 self.vcs.hgBookmarkOutgoing(self.project.getProjectPath())
1750
1751 def __hgBookmarkPull(self):
1752 """
1753 Private slot used to pull a bookmark from a remote repository.
1754 """
1755 self.vcs.hgBookmarkPull(self.project.getProjectPath())
1756
1757 def __hgBookmarkPush(self):
1758 """
1759 Private slot used to push a bookmark to a remote repository.
1760 """
1761 self.vcs.hgBookmarkPush(self.project.getProjectPath())

eric ide

mercurial