src/eric7/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py

branch
eric7
changeset 11109
3de1710db709
parent 11090
f5f5f5803935
equal deleted inserted replaced
11108:62f50b72fbb7 11109:3de1710db709
410 410
411 self.__actionsMenu.addSeparator() 411 self.__actionsMenu.addSeparator()
412 412
413 self.__pullAct = self.__actionsMenu.addAction( 413 self.__pullAct = self.__actionsMenu.addAction(
414 EricPixmapCache.getIcon("vcsUpdate"), 414 EricPixmapCache.getIcon("vcsUpdate"),
415 self.tr("Pull Changes"), 415 self.tr("Pull Selected Changes"),
416 self.__pullActTriggered, 416 lambda: self.__pullActTriggered(selectedOnly=True),
417 ) 417 )
418 self.__pullAct.setToolTip(self.tr("Pull changes from a remote repository")) 418 self.__pullAct.setToolTip(
419 self.tr("Pull selected changes from a remote repository")
420 )
421 self.__pullAllAct = self.__actionsMenu.addAction(
422 EricPixmapCache.getIcon("vcsUpdate"),
423 self.tr("Pull All Changes"),
424 lambda: self.__pullActTriggered(selectedOnly=False),
425 )
426 self.__pullAllAct.setToolTip(
427 self.tr("Pull all changes from a remote repository")
428 )
419 self.__lfPullAct = self.__actionsMenu.addAction( 429 self.__lfPullAct = self.__actionsMenu.addAction(
420 self.tr("Pull Large Files"), self.__lfPullActTriggered 430 self.tr("Pull Large Files"), self.__lfPullActTriggered
421 ) 431 )
422 self.__lfPullAct.setToolTip(self.tr("Pull large files for selected revisions")) 432 self.__lfPullAct.setToolTip(self.tr("Pull large files for selected revisions"))
423 433
1614 self.__tagAct.setEnabled(selectedItemsCount == 1) 1624 self.__tagAct.setEnabled(selectedItemsCount == 1)
1615 self.__switchAct.setEnabled(selectedItemsCount == 1) 1625 self.__switchAct.setEnabled(selectedItemsCount == 1)
1616 self.__bookmarkAct.setEnabled(selectedItemsCount == 1) 1626 self.__bookmarkAct.setEnabled(selectedItemsCount == 1)
1617 self.__bookmarkMoveAct.setEnabled(selectedItemsCount == 1) 1627 self.__bookmarkMoveAct.setEnabled(selectedItemsCount == 1)
1618 1628
1619 if selectedIncomingItemsCount > 0:
1620 self.__pullAct.setText(self.tr("Pull Selected Changes"))
1621 else:
1622 self.__pullAct.setText(self.tr("Pull Changes"))
1623 if self.vcs.canPull(): 1629 if self.vcs.canPull():
1624 self.__pullAct.setEnabled(True) 1630 self.__pullAct.setEnabled(selectedIncomingItemsCount > 0)
1631 self.__pullAllAct.setEnabled(True)
1625 self.__lfPullAct.setEnabled( 1632 self.__lfPullAct.setEnabled(
1626 self.vcs.isExtensionActive("largefiles") and selectedItemsCount > 0 1633 self.vcs.isExtensionActive("largefiles") and selectedItemsCount > 0
1627 ) 1634 )
1628 else: 1635 else:
1629 self.__pullAct.setEnabled(False) 1636 self.__pullAct.setEnabled(False)
1696 self.__gpgSignAct, 1703 self.__gpgSignAct,
1697 self.__gpgVerifyAct, 1704 self.__gpgVerifyAct,
1698 ]: 1705 ]:
1699 act.setEnabled(False) 1706 act.setEnabled(False)
1700 1707
1701 self.__pullAct.setText(self.tr("Pull Selected Changes"))
1702 if self.vcs.canPull() and not bool(self.__bundle): 1708 if self.vcs.canPull() and not bool(self.__bundle):
1703 selectedIncomingItemsCount = len( 1709 selectedIncomingItemsCount = len(
1704 [ 1710 [
1705 itm 1711 itm
1706 for itm in self.logTree.selectedItems() 1712 for itm in self.logTree.selectedItems()
1707 if itm.data(0, self.__incomingRole) 1713 if itm.data(0, self.__incomingRole)
1708 ] 1714 ]
1709 ) 1715 )
1710 self.__pullAct.setEnabled(selectedIncomingItemsCount > 0) 1716 self.__pullAct.setEnabled(selectedIncomingItemsCount > 0)
1717 self.__pullAllAct.setEnabled(True)
1711 self.__lfPullAct.setEnabled( 1718 self.__lfPullAct.setEnabled(
1712 self.vcs.isExtensionActive("largefiles") 1719 self.vcs.isExtensionActive("largefiles")
1713 and selectedIncomingItemsCount > 0 1720 and selectedIncomingItemsCount > 0
1714 ) 1721 )
1715 else: 1722 else:
1716 self.__pullAct.setEnabled(False) 1723 self.__pullAct.setEnabled(False)
1724 self.__pullAllAct.setEnabled(False)
1717 self.__lfPullAct.setEnabled(False) 1725 self.__lfPullAct.setEnabled(False)
1718 1726
1719 self.__unbundleAct.setEnabled(bool(self.__bundle)) 1727 self.__unbundleAct.setEnabled(bool(self.__bundle))
1720 1728
1721 self.actionsButton.setEnabled(True) 1729 self.actionsButton.setEnabled(True)
1729 self.__closeHeadsAct, 1737 self.__closeHeadsAct,
1730 self.__switchAct, 1738 self.__switchAct,
1731 self.__bookmarkAct, 1739 self.__bookmarkAct,
1732 self.__bookmarkMoveAct, 1740 self.__bookmarkMoveAct,
1733 self.__pullAct, 1741 self.__pullAct,
1742 self.__pullAllAct,
1734 self.__lfPullAct, 1743 self.__lfPullAct,
1735 self.__stripAct, 1744 self.__stripAct,
1736 self.__gpgSignAct, 1745 self.__gpgSignAct,
1737 self.__gpgVerifyAct, 1746 self.__gpgVerifyAct,
1738 self.__unbundleAct, 1747 self.__unbundleAct,
2399 2408
2400 if revs: 2409 if revs:
2401 self.vcs.getExtensionObject("largefiles").hgLfPull(revisions=revs) 2410 self.vcs.getExtensionObject("largefiles").hgLfPull(revisions=revs)
2402 2411
2403 @pyqtSlot() 2412 @pyqtSlot()
2404 def __pullActTriggered(self): 2413 def __pullActTriggered(self, selectedOnly=False):
2405 """ 2414 """
2406 Private slot to pull changes from a remote repository. 2415 Private slot to pull all or selected changes from a remote repository.
2416
2417 @param selectedOnly flag indicating to pull the selected changes only
2418 (defaults to False)
2419 @type bool (optional)
2407 """ 2420 """
2408 shouldReopen = False 2421 shouldReopen = False
2409 refresh = False 2422 refresh = False
2410 addNext = False 2423 addNext = False
2411 2424
2412 if self.initialCommandMode in ("log", "full_log", "incoming"): 2425 if self.initialCommandMode in ("log", "full_log", "incoming"):
2413 revs = [] 2426 revs = []
2414 for itm in [ 2427 if selectedOnly:
2415 item 2428 for itm in [
2416 for item in self.logTree.selectedItems() 2429 item
2417 if item.data(0, self.__incomingRole) 2430 for item in self.logTree.selectedItems()
2418 ]: 2431 if item.data(0, self.__incomingRole)
2419 rev = itm.text(self.RevisionColumn).split(":")[1].strip() 2432 ]:
2420 if rev: 2433 rev = itm.text(self.RevisionColumn).split(":")[1].strip()
2421 revs.append(rev) 2434 if rev:
2422 shouldReopen = self.vcs.hgPull(revisions=revs) 2435 revs.append(rev)
2436 shouldReopen = self.vcs.hgPull(revisions=revs, noupdate=bool(revs))
2423 refresh = True 2437 refresh = True
2424 if self.initialCommandMode == "incoming": 2438 if self.initialCommandMode == "incoming":
2425 addNext = True 2439 addNext = True
2426 2440
2427 if shouldReopen: 2441 if shouldReopen:

eric ide

mercurial