859 """<b>Change Phase</b>""" |
859 """<b>Change Phase</b>""" |
860 """<p>This changes the phase of revisions.</p>""" |
860 """<p>This changes the phase of revisions.</p>""" |
861 )) |
861 )) |
862 self.hgPhaseAct.triggered[()].connect(self.__hgPhase) |
862 self.hgPhaseAct.triggered[()].connect(self.__hgPhase) |
863 self.actions.append(self.hgPhaseAct) |
863 self.actions.append(self.hgPhaseAct) |
|
864 |
|
865 self.hgGraftAct = E5Action(self.trUtf8('Copy Changesets'), |
|
866 UI.PixmapCache.getIcon("vcsGraft.png"), |
|
867 self.trUtf8('Copy Changesets'), |
|
868 0, 0, self, 'mercurial_graft') |
|
869 self.hgGraftAct.setStatusTip(self.trUtf8( |
|
870 'Copies changesets from another branch' |
|
871 )) |
|
872 self.hgGraftAct.setWhatsThis(self.trUtf8( |
|
873 """<b>Copy Changesets</b>""" |
|
874 """<p>This copies changesets from another branch on top of the""" |
|
875 """ current working directory with the user, date and description""" |
|
876 """ of the original changeset.</p>""" |
|
877 )) |
|
878 self.hgGraftAct.triggered[()].connect(self.__hgGraft) |
|
879 self.actions.append(self.hgGraftAct) |
|
880 |
|
881 self.hgGraftContinueAct = E5Action( |
|
882 self.trUtf8('Continue Copying Session'), |
|
883 self.trUtf8('Continue Copying Session'), |
|
884 0, 0, self, 'mercurial_graft_continue') |
|
885 self.hgGraftContinueAct.setStatusTip(self.trUtf8( |
|
886 'Continue the last copying session after conflicts were resolved' |
|
887 )) |
|
888 self.hgGraftContinueAct.setWhatsThis(self.trUtf8( |
|
889 """<b>Continue Copying Session</b>""" |
|
890 """<p>This continues the last copying session after conflicts were""" |
|
891 """ resolved.</p>""" |
|
892 )) |
|
893 self.hgGraftContinueAct.triggered[()].connect(self.__hgGraftContinue) |
|
894 self.actions.append(self.hgGraftContinueAct) |
864 |
895 |
865 def initMenu(self, menu): |
896 def initMenu(self, menu): |
866 """ |
897 """ |
867 Public method to generate the VCS menu. |
898 Public method to generate the VCS menu. |
868 |
899 |
932 extensionName = self.__extensionMenuTitles[extensionMenuTitle] |
963 extensionName = self.__extensionMenuTitles[extensionMenuTitle] |
933 self.extensionMenus[extensionName] = self.__extensionsMenu.addMenu( |
964 self.extensionMenus[extensionName] = self.__extensionsMenu.addMenu( |
934 self.__extensions[extensionName].initMenu(self.__extensionsMenu)) |
965 self.__extensions[extensionName].initMenu(self.__extensionsMenu)) |
935 self.vcs.activeExtensionsChanged.connect(self.__showExtensionMenu) |
966 self.vcs.activeExtensionsChanged.connect(self.__showExtensionMenu) |
936 |
967 |
|
968 if self.vcs.version >= (2, 0): |
|
969 graftMenu = QMenu(self.trUtf8("Graft"), menu) |
|
970 graftMenu.setIcon(UI.PixmapCache.getIcon("vcsGraft.png")) |
|
971 graftMenu.setTearOffEnabled(True) |
|
972 graftMenu.addAction(self.hgGraftAct) |
|
973 graftMenu.addAction(self.hgGraftContinueAct) |
|
974 else: |
|
975 graftMenu = None |
|
976 |
937 act = menu.addAction( |
977 act = menu.addAction( |
938 UI.PixmapCache.getIcon( |
978 UI.PixmapCache.getIcon( |
939 os.path.join("VcsPlugins", "vcsMercurial", "icons", "mercurial.png")), |
979 os.path.join("VcsPlugins", "vcsMercurial", "icons", "mercurial.png")), |
940 self.vcs.vcsName(), self._vcsInfoDisplay) |
980 self.vcs.vcsName(), self._vcsInfoDisplay) |
941 font = act.font() |
981 font = act.font() |
949 menu.addSeparator() |
989 menu.addSeparator() |
950 menu.addAction(self.vcsCommitAct) |
990 menu.addAction(self.vcsCommitAct) |
951 menu.addAction(self.hgOutgoingAct) |
991 menu.addAction(self.hgOutgoingAct) |
952 menu.addAction(self.hgPushAct) |
992 menu.addAction(self.hgPushAct) |
953 menu.addSeparator() |
993 menu.addSeparator() |
|
994 if graftMenu is not None: |
|
995 menu.addMenu(graftMenu) |
|
996 menu.addSeparator() |
954 menu.addMenu(bundleMenu) |
997 menu.addMenu(bundleMenu) |
955 menu.addMenu(patchMenu) |
998 menu.addMenu(patchMenu) |
956 menu.addSeparator() |
999 menu.addSeparator() |
957 menu.addMenu(self.__extensionsMenu) |
1000 menu.addMenu(self.__extensionsMenu) |
958 menu.addSeparator() |
1001 menu.addSeparator() |
1308 def __hgPhase(self): |
1351 def __hgPhase(self): |
1309 """ |
1352 """ |
1310 Private slot used to change the phase of revisions. |
1353 Private slot used to change the phase of revisions. |
1311 """ |
1354 """ |
1312 self.vcs.hgPhase(self.project.ppath) |
1355 self.vcs.hgPhase(self.project.ppath) |
|
1356 |
|
1357 def __hgGraft(self): |
|
1358 """ |
|
1359 Private slot used to copy changesets from another branch. |
|
1360 """ |
|
1361 shouldReopen = self.vcs.hgGraft(self.project.getProjectPath()) |
|
1362 if shouldReopen: |
|
1363 res = E5MessageBox.yesNo(None, |
|
1364 self.trUtf8("Copy Changesets"), |
|
1365 self.trUtf8("""The project should be reread. Do this now?"""), |
|
1366 yesDefault=True) |
|
1367 if res: |
|
1368 self.project.reopenProject() |
|
1369 |
|
1370 def __hgGraftContinue(self): |
|
1371 """ |
|
1372 Private slot used to continue the last copying session after conflicts |
|
1373 were resolved. |
|
1374 """ |
|
1375 shouldReopen = self.vcs.hgGraftContinue(self.project.getProjectPath()) |
|
1376 if shouldReopen: |
|
1377 res = E5MessageBox.yesNo(None, |
|
1378 self.trUtf8("Copy Changesets (Continue)"), |
|
1379 self.trUtf8("""The project should be reread. Do this now?"""), |
|
1380 yesDefault=True) |
|
1381 if res: |
|
1382 self.project.reopenProject() |