88 self.menu.addSeparator() |
88 self.menu.addSeparator() |
89 self.menuactions.append(self.menu.addAction( |
89 self.menuactions.append(self.menu.addAction( |
90 self.trUtf8("Add to repository"), self.__add)) |
90 self.trUtf8("Add to repository"), self.__add)) |
91 self.menuactions.append(self.menu.addAction( |
91 self.menuactions.append(self.menu.addAction( |
92 self.trUtf8("Show differences"), self.__diff)) |
92 self.trUtf8("Show differences"), self.__diff)) |
|
93 self.menuactions.append(self.menu.addAction( |
|
94 self.trUtf8("Show differences side-by-side"), self.__sbsDiff)) |
93 self.menuactions.append(self.menu.addAction( |
95 self.menuactions.append(self.menu.addAction( |
94 self.trUtf8("Revert changes"), self.__revert)) |
96 self.trUtf8("Revert changes"), self.__revert)) |
95 self.menuactions.append(self.menu.addAction( |
97 self.menuactions.append(self.menu.addAction( |
96 self.trUtf8("Restore missing"), self.__restoreMissing)) |
98 self.trUtf8("Restore missing"), self.__restoreMissing)) |
97 if pysvn.svn_version >= (1, 5, 0) and pysvn.version >= (1, 6, 0): |
99 if pysvn.svn_version >= (1, 5, 0) and pysvn.version >= (1, 6, 0): |
264 act.setEnabled(False) |
266 act.setEnabled(False) |
265 |
267 |
266 self.addButton.setEnabled(False) |
268 self.addButton.setEnabled(False) |
267 self.commitButton.setEnabled(False) |
269 self.commitButton.setEnabled(False) |
268 self.diffButton.setEnabled(False) |
270 self.diffButton.setEnabled(False) |
|
271 self.sbsDiffButton.setEnabled(False) |
269 self.revertButton.setEnabled(False) |
272 self.revertButton.setEnabled(False) |
270 self.restoreButton.setEnabled(False) |
273 self.restoreButton.setEnabled(False) |
271 |
274 |
272 self.statusFilterCombo.clear() |
275 self.statusFilterCombo.clear() |
273 self.__statusFilters = [] |
276 self.__statusFilters = [] |
484 unversioned = len(self.__getUnversionedItems()) |
487 unversioned = len(self.__getUnversionedItems()) |
485 missing = len(self.__getMissingItems()) |
488 missing = len(self.__getMissingItems()) |
486 |
489 |
487 self.addButton.setEnabled(unversioned) |
490 self.addButton.setEnabled(unversioned) |
488 self.diffButton.setEnabled(modified) |
491 self.diffButton.setEnabled(modified) |
|
492 self.sbsDiffButton.setEnabled(modified == 1) |
489 self.revertButton.setEnabled(modified) |
493 self.revertButton.setEnabled(modified) |
490 self.restoreButton.setEnabled(missing) |
494 self.restoreButton.setEnabled(missing) |
491 |
495 |
492 def __updateCommitButton(self): |
496 def __updateCommitButton(self): |
493 """ |
497 """ |
694 from .SvnDiffDialog import SvnDiffDialog |
705 from .SvnDiffDialog import SvnDiffDialog |
695 self.diff = SvnDiffDialog(self.vcs) |
706 self.diff = SvnDiffDialog(self.vcs) |
696 self.diff.show() |
707 self.diff.show() |
697 QApplication.processEvents() |
708 QApplication.processEvents() |
698 self.diff.start(names) |
709 self.diff.start(names) |
699 |
710 |
|
711 def __sbsDiff(self): |
|
712 """ |
|
713 Private slot to handle the Side-by-Side 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.svnSbsDiff(names[0]) |
|
731 |
700 def __lock(self): |
732 def __lock(self): |
701 """ |
733 """ |
702 Private slot to handle the Lock context menu entry. |
734 Private slot to handle the Lock context menu entry. |
703 """ |
735 """ |
704 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) \ |
736 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) \ |