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