eric6/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py

changeset 7183
4ac1c9daa90b
parent 6942
2602857055c5
child 7188
f9c57c6fa7c4
equal deleted inserted replaced
7181:46ac11be8058 7183:4ac1c9daa90b
190 self.tr("Restore missing"), self.__restoreMissing) 190 self.tr("Restore missing"), self.__restoreMissing)
191 self.__restoreAct.setToolTip(self.tr( 191 self.__restoreAct.setToolTip(self.tr(
192 "Restores the selected missing files")) 192 "Restores the selected missing files"))
193 193
194 self.__actionsMenu.addSeparator() 194 self.__actionsMenu.addSeparator()
195
196 self.__commitMergeAct = self.__actionsMenu.addAction(
197 self.tr("Commit Merge"), self.__commitMerge)
198 self.__commitMergeAct.setToolTip(self.tr("Commit all the merged"
199 " changes."))
200 self.__abortMergeAct = self.__actionsMenu.addAction(
201 self.tr("Abort Merge"), self.__abortMerge)
202 self.__commitMergeAct.setToolTip(self.tr("Abort an uncommitted merge "
203 "and lose all changes"))
204
205 self.__actionsMenu.addSeparator()
195 206
196 act = self.__actionsMenu.addAction( 207 act = self.__actionsMenu.addAction(
197 self.tr("Adjust column sizes"), self.__resizeColumns) 208 self.tr("Adjust column sizes"), self.__resizeColumns)
198 act.setToolTip(self.tr( 209 act.setToolTip(self.tr(
199 "Adjusts the width of all columns to their contents")) 210 "Adjusts the width of all columns to their contents"))
200 211
201 self.actionsButton.setIcon( 212 self.actionsButton.setIcon(
202 UI.PixmapCache.getIcon("actionsToolButton.png")) 213 UI.PixmapCache.getIcon("actionsToolButton.png"))
203 self.actionsButton.setMenu(self.__actionsMenu) 214 self.actionsButton.setMenu(self.__actionsMenu)
204 215
205 def __actionsMenuHovered(self, action): 216 def __actionsMenuHovered(self, action):
206 """ 217 """
207 Private slot to show the tooltip for an action menu entry. 218 Private slot to show the tooltip for an action menu entry.
208 219
209 @param action action to show tooltip for 220 @param action action to show tooltip for
394 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) 405 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
395 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True) 406 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True)
396 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) 407 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
397 408
398 self.refreshButton.setEnabled(False) 409 self.refreshButton.setEnabled(False)
410
411 self.statusList.setEnabled(not self.vcs.canCommitMerge(self.dname))
399 412
400 def __finish(self): 413 def __finish(self):
401 """ 414 """
402 Private slot called when the process finished or the user pressed 415 Private slot called when the process finished or the user pressed
403 the button. 416 the button.
560 @pyqtSlot() 573 @pyqtSlot()
561 def on_refreshButton_clicked(self): 574 def on_refreshButton_clicked(self):
562 """ 575 """
563 Private slot to refresh the status display. 576 Private slot to refresh the status display.
564 """ 577 """
578 self.statusList.setEnabled(not self.vcs.canCommitMerge(self.dname))
579
565 selectedItems = self.statusList.selectedItems() 580 selectedItems = self.statusList.selectedItems()
566 if len(selectedItems) == 1: 581 if len(selectedItems) == 1:
567 self.__selectedName = selectedItems[0].text(self.__pathColumn) 582 self.__selectedName = selectedItems[0].text(self.__pathColumn)
568 else: 583 else:
569 self.__selectedName = "" 584 self.__selectedName = ""
599 614
600 def __showActionsMenu(self): 615 def __showActionsMenu(self):
601 """ 616 """
602 Private slot to prepare the actions button menu before it is shown. 617 Private slot to prepare the actions button menu before it is shown.
603 """ 618 """
604 modified = len(self.__getModifiedItems()) 619 if self.vcs.canCommitMerge(self.dname):
605 unversioned = len(self.__getUnversionedItems()) 620 self.__commitMergeAct.setEnabled(True)
606 missing = len(self.__getMissingItems()) 621 self.__abortMergeAct.setEnabled(True)
607 commitable = len(self.__getCommitableItems()) 622
608 commitableUnselected = len(self.__getCommitableUnselectedItems()) 623 self.__addAct.setEnabled(False)
609 624 self.__diffAct.setEnabled(False)
610 self.__addAct.setEnabled(unversioned) 625 self.__sbsDiffAct.setEnabled(False)
611 self.__diffAct.setEnabled(modified) 626 self.__revertAct.setEnabled(False)
612 self.__sbsDiffAct.setEnabled(modified == 1) 627 self.__forgetAct.setEnabled(False)
613 self.__revertAct.setEnabled(modified) 628 self.__restoreAct.setEnabled(False)
614 self.__forgetAct.setEnabled(missing) 629 self.__commitAct.setEnabled(False)
615 self.__restoreAct.setEnabled(missing) 630 self.__commitSelectAct.setEnabled(False)
616 self.__commitAct.setEnabled(commitable) 631 self.__commitDeselectAct.setEnabled(False)
617 self.__commitSelectAct.setEnabled(commitableUnselected) 632
618 self.__commitDeselectAct.setEnabled(commitable) 633 self.__lfAddLargeAct.setEnabled(False)
619 634 self.__lfAddNormalAct.setEnabled(False)
620 if self.vcs.isExtensionActive("largefiles"): 635
621 enable = bool(unversioned) 636 else:
622 else: 637 self.__commitMergeAct.setEnabled(False)
623 enable = False 638 self.__abortMergeAct.setEnabled(False)
624 self.__lfAddLargeAct.setEnabled(enable) 639
625 self.__lfAddNormalAct.setEnabled(enable) 640 modified = len(self.__getModifiedItems())
641 unversioned = len(self.__getUnversionedItems())
642 missing = len(self.__getMissingItems())
643 commitable = len(self.__getCommitableItems())
644 commitableUnselected = len(self.__getCommitableUnselectedItems())
645
646 self.__addAct.setEnabled(unversioned)
647 self.__diffAct.setEnabled(modified)
648 self.__sbsDiffAct.setEnabled(modified == 1)
649 self.__revertAct.setEnabled(modified)
650 self.__forgetAct.setEnabled(missing)
651 self.__restoreAct.setEnabled(missing)
652 self.__commitAct.setEnabled(commitable)
653 self.__commitSelectAct.setEnabled(commitableUnselected)
654 self.__commitDeselectAct.setEnabled(commitable)
655
656 if self.vcs.isExtensionActive("largefiles"):
657 enable = bool(unversioned)
658 else:
659 enable = False
660 self.__lfAddLargeAct.setEnabled(enable)
661 self.__lfAddNormalAct.setEnabled(enable)
626 662
627 def __commit(self): 663 def __commit(self):
628 """ 664 """
629 Private slot to handle the Commit context menu entry. 665 Private slot to handle the Commit context menu entry.
630 """ 666 """
893 if selected: 929 if selected:
894 itm.setCheckState(self.__toBeCommittedColumn, Qt.Checked) 930 itm.setCheckState(self.__toBeCommittedColumn, Qt.Checked)
895 else: 931 else:
896 itm.setCheckState(self.__toBeCommittedColumn, Qt.Unchecked) 932 itm.setCheckState(self.__toBeCommittedColumn, Qt.Unchecked)
897 933
934 def __commitMerge(self):
935 """
936 Private slot to handle the Commit Merge context menu entry.
937 """
938 self.vcs.vcsCommit(self.dname, 'Merge', merge=True)
939 self.__committed()
940
941 def __abortMerge(self):
942 """
943 Private slot used to abort an uncommitted merge.
944 """
945 self.vcs.hgAbortMerge(self.dname)
946 self.__committed()
947
898 ########################################################################### 948 ###########################################################################
899 ## Diff handling methods below 949 ## Diff handling methods below
900 ########################################################################### 950 ###########################################################################
901 951
902 def __generateDiffs(self): 952 def __generateDiffs(self):

eric ide

mercurial