Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py

changeset 5322
c2cabdca0734
parent 5276
c8055cb37262
child 5324
337c27027c66
equal deleted inserted replaced
5321:07b4da7d6833 5322:c2cabdca0734
18 18
19 from PyQt5.QtCore import pyqtSlot, Qt, QDate, QProcess, QTimer, QRegExp, \ 19 from PyQt5.QtCore import pyqtSlot, Qt, QDate, QProcess, QTimer, QRegExp, \
20 QSize, QPoint 20 QSize, QPoint
21 from PyQt5.QtGui import QCursor, QColor, QPixmap, QPainter, QPen, QBrush, QIcon 21 from PyQt5.QtGui import QCursor, QColor, QPixmap, QPainter, QPen, QBrush, QIcon
22 from PyQt5.QtWidgets import QWidget, QDialogButtonBox, QHeaderView, \ 22 from PyQt5.QtWidgets import QWidget, QDialogButtonBox, QHeaderView, \
23 QTreeWidgetItem, QApplication, QLineEdit, QMenu 23 QTreeWidgetItem, QApplication, QLineEdit, QMenu, QInputDialog
24 24
25 from E5Gui.E5Application import e5App 25 from E5Gui.E5Application import e5App
26 from E5Gui import E5MessageBox 26 from E5Gui import E5MessageBox
27 27
28 from .Ui_HgLogBrowserDialog import Ui_HgLogBrowserDialog 28 from .Ui_HgLogBrowserDialog import Ui_HgLogBrowserDialog
176 176
177 def __initActionsMenu(self): 177 def __initActionsMenu(self):
178 """ 178 """
179 Private method to initialize the actions menu. 179 Private method to initialize the actions menu.
180 """ 180 """
181 # TODO: add some eye candy
181 self.__actionsMenu = QMenu() 182 self.__actionsMenu = QMenu()
182 self.__graftAct = self.__actionsMenu.addAction( 183 self.__graftAct = self.__actionsMenu.addAction(
183 self.tr("Copy Changesets"), self.__graftActTriggered) 184 self.tr("Copy Changesets"), self.__graftActTriggered)
184 self.__graftAct.setToolTip(self.tr( 185 self.__graftAct.setToolTip(self.tr(
185 "Copy the selected changesets to the current branch")) 186 "Copy the selected changesets to the current branch"))
199 200
200 self.__switchAct = self.__actionsMenu.addAction( 201 self.__switchAct = self.__actionsMenu.addAction(
201 self.tr("Switch"), self.__switchActTriggered) 202 self.tr("Switch"), self.__switchActTriggered)
202 self.__switchAct.setToolTip(self.tr( 203 self.__switchAct.setToolTip(self.tr(
203 "Switch the working directory to the selected revision")) 204 "Switch the working directory to the selected revision"))
205
206 self.__actionsMenu.addSeparator()
207
208 self.__bookmarkAct = self.__actionsMenu.addAction(
209 self.tr("Define Bookmark..."), self.__bookmarkActTriggered)
210 self.__bookmarkAct.setToolTip(
211 self.tr("Bookmark the selected revision"))
212 self.__bookmarkMoveAct = self.__actionsMenu.addAction(
213 self.tr("Move Bookmark..."), self.__bookmarkMoveActTriggered)
214 self.__bookmarkMoveAct.setToolTip(
215 self.tr("Move bookmark to the selected revision"))
204 216
205 self.__actionsMenu.addSeparator() 217 self.__actionsMenu.addSeparator()
206 218
207 self.__pullAct = self.__actionsMenu.addAction( 219 self.__pullAct = self.__actionsMenu.addAction(
208 self.tr("Pull Changes"), self.__pullActTriggered) 220 self.tr("Pull Changes"), self.__pullActTriggered)
1241 # step 2: set the status of the graft action 1253 # step 2: set the status of the graft action
1242 self.__graftAct.setEnabled(otherBranches > 0) 1254 self.__graftAct.setEnabled(otherBranches > 0)
1243 1255
1244 self.__tagAct.setEnabled(len(self.logTree.selectedItems()) == 1) 1256 self.__tagAct.setEnabled(len(self.logTree.selectedItems()) == 1)
1245 self.__switchAct.setEnabled(len(self.logTree.selectedItems()) == 1) 1257 self.__switchAct.setEnabled(len(self.logTree.selectedItems()) == 1)
1258 self.__bookmarkAct.setEnabled(
1259 len(self.logTree.selectedItems()) == 1)
1260 self.__bookmarkMoveAct.setEnabled(
1261 len(self.logTree.selectedItems()) == 1)
1246 1262
1247 if self.vcs.canPull(): 1263 if self.vcs.canPull():
1248 self.__pullAct.setEnabled(True) 1264 self.__pullAct.setEnabled(True)
1249 self.__lfPullAct.setEnabled( 1265 self.__lfPullAct.setEnabled(
1250 self.vcs.isExtensionActive("largefiles") and 1266 self.vcs.isExtensionActive("largefiles") and
1724 return 1740 return
1725 1741
1726 self.on_refreshButton_clicked() 1742 self.on_refreshButton_clicked()
1727 1743
1728 @pyqtSlot() 1744 @pyqtSlot()
1745 def __bookmarkActTriggered(self):
1746 """
1747 Private slot to bookmark the selected revision.
1748 """
1749 if len(self.logTree.selectedItems()) == 1:
1750 itm = self.logTree.selectedItems()[0]
1751 rev, changeset = \
1752 itm.text(self.RevisionColumn).strip().split(":", 1)
1753 bookmark, ok = QInputDialog.getText(
1754 self,
1755 self.tr("Define Bookmark"),
1756 self.tr('Enter bookmark name for changeset "{0}":').format(
1757 changeset),
1758 QLineEdit.Normal)
1759 if ok and bool(bookmark):
1760 self.vcs.hgBookmarkDefine(
1761 self.repodir, revision="rev({0})".format(rev),
1762 bookmark=bookmark)
1763 self.on_refreshButton_clicked()
1764
1765 @pyqtSlot()
1766 def __bookmarkMoveActTriggered(self):
1767 """
1768 Private slot to move a bookmark to the selected revision.
1769 """
1770 if len(self.logTree.selectedItems()) == 1:
1771 itm = self.logTree.selectedItems()[0]
1772 rev, changeset = \
1773 itm.text(self.RevisionColumn).strip().split(":", 1)
1774 bookmarksList = self.vcs.hgGetBookmarksList(self.repodir)
1775 bookmark, ok = QInputDialog.getItem(
1776 self,
1777 self.tr("Move Bookmark"),
1778 self.tr('Select the bookmark to be moved to changeset'
1779 ' "{0}":').format(changeset),
1780 [""] + bookmarksList,
1781 0, False)
1782 if ok and bool(bookmark):
1783 self.vcs.hgBookmarkMove(
1784 self.repodir, revision="rev({0})".format(rev),
1785 bookmark=bookmark)
1786 self.on_refreshButton_clicked()
1787
1788 @pyqtSlot()
1729 def __lfPullActTriggered(self): 1789 def __lfPullActTriggered(self):
1730 """ 1790 """
1731 Private slot to pull large files of selected revisions. 1791 Private slot to pull large files of selected revisions.
1732 """ 1792 """
1733 revs = [] 1793 revs = []

eric ide

mercurial