diff -r dbb53746813f -r 58e95eea9b6d Plugins/VcsPlugins/vcsMercurial/ShelveExtension/ProjectHelper.py --- a/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/ProjectHelper.py Thu Feb 20 19:51:30 2014 +0100 +++ b/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/ProjectHelper.py Fri Feb 21 18:57:15 2014 +0100 @@ -9,9 +9,10 @@ from PyQt4.QtGui import QMenu -from ..HgExtensionProjectHelper import HgExtensionProjectHelper +from E5Gui.E5Action import E5Action +from E5Gui import E5MessageBox -from .shelve import Shelve +from ..HgExtensionProjectHelper import HgExtensionProjectHelper class ShelveProjectHelper(HgExtensionProjectHelper): @@ -28,6 +29,19 @@ """ Public method to generate the action objects. """ + self.hgShelveAct = E5Action( + self.tr('Shelve changes'), + self.tr('Shelve changes...'), + 0, 0, self, 'mercurial_shelve') + self.hgShelveAct.setStatusTip(self.tr( + 'Shelve all current changes of the project' + )) + self.hgShelveAct.setWhatsThis(self.tr( + """<b>Shelve changes</b>""" + """<p>This shelves all current changes of the project.</p>""" + )) + self.hgShelveAct.triggered[()].connect(self.__hgShelve) + self.actions.append(self.hgShelveAct) def initMenu(self, mainMenu): """ @@ -39,6 +53,8 @@ menu = QMenu(self.menuTitle(), mainMenu) menu.setTearOffEnabled(True) + menu.addAction(self.hgShelveAct) + return menu def menuTitle(self): @@ -48,3 +64,18 @@ @return title of the menu (string) """ return self.tr("Shelve") + + def __hgShelve(self): + """ + Private slot used to shelve all current changes. + """ + shouldReopen = self.vcs.getExtensionObject("shelve")\ + .hgShelve(self.project.getProjectPath()) + if shouldReopen: + res = E5MessageBox.yesNo( + None, + self.tr("Shelve"), + self.tr("""The project should be reread. Do this now?"""), + yesDefault=True) + if res: + self.project.reopenProject()