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) |
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: |