Plugins/VcsPlugins/vcsMercurial/ProjectBrowserHelper.py

changeset 216
6f9713e8d570
parent 198
7ab8e126f404
child 248
f4561c24989a
equal deleted inserted replaced
215:e8978dca44af 216:6f9713e8d570
8 """ 8 """
9 9
10 import os 10 import os
11 11
12 from PyQt4.QtCore import SIGNAL 12 from PyQt4.QtCore import SIGNAL
13 from PyQt4.QtGui import QMenu 13 from PyQt4.QtGui import QMenu, QDialog
14
15 from Project.ProjectBrowserModel import ProjectBrowserFileItem
14 16
15 from VCS.ProjectBrowserHelper import VcsProjectBrowserHelper 17 from VCS.ProjectBrowserHelper import VcsProjectBrowserHelper
16 18
19 from UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog
17 import UI.PixmapCache 20 import UI.PixmapCache
18 21
19 class HgProjectBrowserHelper(VcsProjectBrowserHelper): 22 class HgProjectBrowserHelper(VcsProjectBrowserHelper):
20 """ 23 """
21 Class implementing the VCS project browser helper for Mercurial. 24 Class implementing the VCS project browser helper for Mercurial.
201 self.vcsAddMenuActions.append(act) 204 self.vcsAddMenuActions.append(act)
202 act = menu.addAction(UI.PixmapCache.getIcon("vcsRemove.png"), 205 act = menu.addAction(UI.PixmapCache.getIcon("vcsRemove.png"),
203 self.trUtf8('Remove from repository (and disk)'), 206 self.trUtf8('Remove from repository (and disk)'),
204 self._VCSRemove) 207 self._VCSRemove)
205 self.vcsMenuActions.append(act) 208 self.vcsMenuActions.append(act)
209 act = menu.addAction(UI.PixmapCache.getIcon("vcsRemove.png"),
210 self.trUtf8('Remove from repository only'),
211 self.__HgForget)
212 self.vcsMenuActions.append(act)
206 menu.addSeparator() 213 menu.addSeparator()
207 act = menu.addAction(self.trUtf8('Copy in repository'), self.__HgCopy) 214 act = menu.addAction(self.trUtf8('Copy in repository'), self.__HgCopy)
208 self.vcsMenuActions.append(act) 215 self.vcsMenuActions.append(act)
209 act = menu.addAction(self.trUtf8('Move in repository'), self.__HgMove) 216 act = menu.addAction(self.trUtf8('Move in repository'), self.__HgMove)
210 self.vcsMenuActions.append(act) 217 self.vcsMenuActions.append(act)
285 self.vcsAddMultiMenuActions.append(act) 292 self.vcsAddMultiMenuActions.append(act)
286 act = menu.addAction(UI.PixmapCache.getIcon("vcsRemove.png"), 293 act = menu.addAction(UI.PixmapCache.getIcon("vcsRemove.png"),
287 self.trUtf8('Remove from repository (and disk)'), 294 self.trUtf8('Remove from repository (and disk)'),
288 self._VCSRemove) 295 self._VCSRemove)
289 self.vcsMultiMenuActions.append(act) 296 self.vcsMultiMenuActions.append(act)
290 self.vcsRemoveMultiMenuItem = act 297 act = menu.addAction(UI.PixmapCache.getIcon("vcsRemove.png"),
298 self.trUtf8('Remove from repository only'),
299 self.__HgForget)
300 self.vcsMultiMenuActions.append(act)
291 menu.addSeparator() 301 menu.addSeparator()
292 act = menu.addAction(UI.PixmapCache.getIcon("vcsStatus.png"), 302 act = menu.addAction(UI.PixmapCache.getIcon("vcsStatus.png"),
293 self.trUtf8('Show status'), self._VCSStatus) 303 self.trUtf8('Show status'), self._VCSStatus)
294 self.vcsMultiMenuActions.append(act) 304 self.vcsMultiMenuActions.append(act)
295 menu.addSeparator() 305 menu.addSeparator()
590 try: 600 try:
591 names.append(itm.fileName()) 601 names.append(itm.fileName())
592 except AttributeError: 602 except AttributeError:
593 names.append(itm.dirName()) 603 names.append(itm.dirName())
594 self.vcs.hgResolve(names) 604 self.vcs.hgResolve(names)
605
606 def __HgForget(self):
607 """
608 Private slot called by the context menu to remove the selected file from the
609 Mercurial repository leaving a copy in the project directory.
610 """
611 if self.isTranslationsBrowser:
612 items = self.browser.getSelectedItems([ProjectBrowserFileItem])
613 names = [itm.fileName() for itm in items]
614
615 dlg = DeleteFilesConfirmationDialog(self.parent(),
616 self.trUtf8("Remove from repository only"),
617 self.trUtf8("Do you really want to remove these translation files from"
618 " the repository?"),
619 names)
620 else:
621 items = self.browser.getSelectedItems()
622 names = [itm.fileName() for itm in items]
623 files = [name.replace(self.browser.project.ppath + os.sep, '') \
624 for name in names]
625
626 dlg = DeleteFilesConfirmationDialog(self.parent(),
627 self.trUtf8("Remove from repository only"),
628 self.trUtf8("Do you really want to remove these files"
629 " from the repository?"),
630 files)
631
632 if dlg.exec_() == QDialog.Accepted:
633 self.vcs.hgForget(names)

eric ide

mercurial