60 |
60 |
61 if mq: |
61 if mq: |
62 self.buttonsLine.setVisible(False) |
62 self.buttonsLine.setVisible(False) |
63 self.addButton.setVisible(False) |
63 self.addButton.setVisible(False) |
64 self.diffButton.setVisible(False) |
64 self.diffButton.setVisible(False) |
|
65 self.sbsDiffButton.setVisible(False) |
65 self.revertButton.setVisible(False) |
66 self.revertButton.setVisible(False) |
66 self.forgetButton.setVisible(False) |
67 self.forgetButton.setVisible(False) |
67 self.restoreButton.setVisible(False) |
68 self.restoreButton.setVisible(False) |
68 |
69 |
69 self.menuactions = [] |
70 self.menuactions = [] |
78 self.menu.addSeparator() |
79 self.menu.addSeparator() |
79 self.menuactions.append(self.menu.addAction( |
80 self.menuactions.append(self.menu.addAction( |
80 self.trUtf8("Add to repository"), self.__add)) |
81 self.trUtf8("Add to repository"), self.__add)) |
81 self.menuactions.append(self.menu.addAction( |
82 self.menuactions.append(self.menu.addAction( |
82 self.trUtf8("Show differences"), self.__diff)) |
83 self.trUtf8("Show differences"), self.__diff)) |
|
84 self.menuactions.append(self.menu.addAction( |
|
85 self.trUtf8("Show differences side-by-side"), self.__sbsDiff)) |
83 self.menuactions.append(self.menu.addAction( |
86 self.menuactions.append(self.menu.addAction( |
84 self.trUtf8("Remove from repository"), self.__forget)) |
87 self.trUtf8("Remove from repository"), self.__forget)) |
85 self.menuactions.append(self.menu.addAction( |
88 self.menuactions.append(self.menu.addAction( |
86 self.trUtf8("Revert changes"), self.__revert)) |
89 self.trUtf8("Revert changes"), self.__revert)) |
87 self.menuactions.append(self.menu.addAction( |
90 self.menuactions.append(self.menu.addAction( |
192 act.setEnabled(False) |
195 act.setEnabled(False) |
193 |
196 |
194 self.addButton.setEnabled(False) |
197 self.addButton.setEnabled(False) |
195 self.commitButton.setEnabled(False) |
198 self.commitButton.setEnabled(False) |
196 self.diffButton.setEnabled(False) |
199 self.diffButton.setEnabled(False) |
|
200 self.sbsDiffButton.setEnabled(False) |
197 self.revertButton.setEnabled(False) |
201 self.revertButton.setEnabled(False) |
198 self.forgetButton.setEnabled(False) |
202 self.forgetButton.setEnabled(False) |
199 self.restoreButton.setEnabled(False) |
203 self.restoreButton.setEnabled(False) |
200 |
204 |
201 self.statusFilterCombo.clear() |
205 self.statusFilterCombo.clear() |
457 unversioned = len(self.__getUnversionedItems()) |
461 unversioned = len(self.__getUnversionedItems()) |
458 missing = len(self.__getMissingItems()) |
462 missing = len(self.__getMissingItems()) |
459 |
463 |
460 self.addButton.setEnabled(unversioned) |
464 self.addButton.setEnabled(unversioned) |
461 self.diffButton.setEnabled(modified) |
465 self.diffButton.setEnabled(modified) |
|
466 self.sbsDiffButton.setEnabled(modified == 1) |
462 self.revertButton.setEnabled(modified) |
467 self.revertButton.setEnabled(modified) |
463 self.forgetButton.setEnabled(missing) |
468 self.forgetButton.setEnabled(missing) |
464 self.restoreButton.setEnabled(missing) |
469 self.restoreButton.setEnabled(missing) |
465 |
470 |
466 def __updateCommitButton(self): |
471 def __updateCommitButton(self): |
522 def on_diffButton_clicked(self): |
527 def on_diffButton_clicked(self): |
523 """ |
528 """ |
524 Private slot to handle the press of the Differences button. |
529 Private slot to handle the press of the Differences button. |
525 """ |
530 """ |
526 self.__diff() |
531 self.__diff() |
|
532 |
|
533 @pyqtSlot() |
|
534 def on_sbsDiffButton_clicked(self): |
|
535 """ |
|
536 Private slot to handle the press of the Side-by-Side Diff button. |
|
537 """ |
|
538 self.__sbsDiff() |
527 |
539 |
528 @pyqtSlot() |
540 @pyqtSlot() |
529 def on_revertButton_clicked(self): |
541 def on_revertButton_clicked(self): |
530 """ |
542 """ |
531 Private slot to handle the press of the Revert button. |
543 Private slot to handle the press of the Revert button. |
688 self.trUtf8("Differences"), |
700 self.trUtf8("Differences"), |
689 self.trUtf8("""There are no uncommitted changes""" |
701 self.trUtf8("""There are no uncommitted changes""" |
690 """ available/selected.""")) |
702 """ available/selected.""")) |
691 return |
703 return |
692 |
704 |
693 # add SBS option (file mode only) |
|
694 if self.diff is None: |
705 if self.diff is None: |
695 from .HgDiffDialog import HgDiffDialog |
706 from .HgDiffDialog import HgDiffDialog |
696 self.diff = HgDiffDialog(self.vcs) |
707 self.diff = HgDiffDialog(self.vcs) |
697 self.diff.show() |
708 self.diff.show() |
698 self.diff.start(names) |
709 self.diff.start(names) |
699 |
710 |
|
711 def __sbsDiff(self): |
|
712 """ |
|
713 Private slot to handle the Diff context menu entry. |
|
714 """ |
|
715 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) |
|
716 for itm in self.__getModifiedItems()] |
|
717 if not names: |
|
718 E5MessageBox.information(self, |
|
719 self.trUtf8("Side-by-Side Diff"), |
|
720 self.trUtf8("""There are no uncommitted changes""" |
|
721 """ available/selected.""")) |
|
722 return |
|
723 elif len(names) > 1: |
|
724 E5MessageBox.information(self, |
|
725 self.trUtf8("Side-by-Side Diff"), |
|
726 self.trUtf8("""Only one file with uncommitted changes""" |
|
727 """ must be selected.""")) |
|
728 return |
|
729 |
|
730 self.vcs.hgSbsDiff(names[0]) |
|
731 |
700 def __getCommitableItems(self): |
732 def __getCommitableItems(self): |
701 """ |
733 """ |
702 Private method to retrieve all entries the user wants to commit. |
734 Private method to retrieve all entries the user wants to commit. |
703 |
735 |
704 @return list of all items, the user has checked |
736 @return list of all items, the user has checked |