86 self.menu.addSeparator() |
86 self.menu.addSeparator() |
87 self.menuactions.append(self.menu.addAction( |
87 self.menuactions.append(self.menu.addAction( |
88 self.trUtf8("Add to repository"), self.__add)) |
88 self.trUtf8("Add to repository"), self.__add)) |
89 self.menuactions.append(self.menu.addAction( |
89 self.menuactions.append(self.menu.addAction( |
90 self.trUtf8("Show differences"), self.__diff)) |
90 self.trUtf8("Show differences"), self.__diff)) |
|
91 self.menuactions.append(self.menu.addAction( |
|
92 self.trUtf8("Show differences side-by-side"), self.__sbsDiff)) |
91 self.menuactions.append(self.menu.addAction( |
93 self.menuactions.append(self.menu.addAction( |
92 self.trUtf8("Revert changes"), self.__revert)) |
94 self.trUtf8("Revert changes"), self.__revert)) |
93 self.menuactions.append(self.menu.addAction( |
95 self.menuactions.append(self.menu.addAction( |
94 self.trUtf8("Restore missing"), self.__restoreMissing)) |
96 self.trUtf8("Restore missing"), self.__restoreMissing)) |
95 if pysvn.svn_version >= (1, 5, 0) and pysvn.version >= (1, 6, 0): |
97 if pysvn.svn_version >= (1, 5, 0) and pysvn.version >= (1, 6, 0): |
262 act.setEnabled(False) |
264 act.setEnabled(False) |
263 |
265 |
264 self.addButton.setEnabled(False) |
266 self.addButton.setEnabled(False) |
265 self.commitButton.setEnabled(False) |
267 self.commitButton.setEnabled(False) |
266 self.diffButton.setEnabled(False) |
268 self.diffButton.setEnabled(False) |
|
269 self.sbsDiffButton.setEnabled(False) |
267 self.revertButton.setEnabled(False) |
270 self.revertButton.setEnabled(False) |
268 self.restoreButton.setEnabled(False) |
271 self.restoreButton.setEnabled(False) |
269 |
272 |
270 self.statusFilterCombo.clear() |
273 self.statusFilterCombo.clear() |
271 self.__statusFilters = [] |
274 self.__statusFilters = [] |
482 unversioned = len(self.__getUnversionedItems()) |
485 unversioned = len(self.__getUnversionedItems()) |
483 missing = len(self.__getMissingItems()) |
486 missing = len(self.__getMissingItems()) |
484 |
487 |
485 self.addButton.setEnabled(unversioned) |
488 self.addButton.setEnabled(unversioned) |
486 self.diffButton.setEnabled(modified) |
489 self.diffButton.setEnabled(modified) |
|
490 self.sbsDiffButton.setEnabled(modified == 1) |
487 self.revertButton.setEnabled(modified) |
491 self.revertButton.setEnabled(modified) |
488 self.restoreButton.setEnabled(missing) |
492 self.restoreButton.setEnabled(missing) |
489 |
493 |
490 def __updateCommitButton(self): |
494 def __updateCommitButton(self): |
491 """ |
495 """ |
692 from .SvnDiffDialog import SvnDiffDialog |
703 from .SvnDiffDialog import SvnDiffDialog |
693 self.diff = SvnDiffDialog(self.vcs) |
704 self.diff = SvnDiffDialog(self.vcs) |
694 self.diff.show() |
705 self.diff.show() |
695 QApplication.processEvents() |
706 QApplication.processEvents() |
696 self.diff.start(names) |
707 self.diff.start(names) |
697 |
708 |
|
709 def __sbsDiff(self): |
|
710 """ |
|
711 Private slot to handle the Side-by-Side Diff context menu entry. |
|
712 """ |
|
713 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) |
|
714 for itm in self.__getModifiedItems()] |
|
715 if not names: |
|
716 E5MessageBox.information(self, |
|
717 self.trUtf8("Side-by-Side Diff"), |
|
718 self.trUtf8("""There are no uncommitted changes""" |
|
719 """ available/selected.""")) |
|
720 return |
|
721 elif len(names) > 1: |
|
722 E5MessageBox.information(self, |
|
723 self.trUtf8("Side-by-Side Diff"), |
|
724 self.trUtf8("""Only one file with uncommitted changes""" |
|
725 """ must be selected.""")) |
|
726 return |
|
727 |
|
728 self.vcs.svnSbsDiff(names[0]) |
|
729 |
698 def __lock(self): |
730 def __lock(self): |
699 """ |
731 """ |
700 Private slot to handle the Lock context menu entry. |
732 Private slot to handle the Lock context menu entry. |
701 """ |
733 """ |
702 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) \ |
734 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) \ |