Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py

changeset 2840
10a133f3a5e8
parent 2838
0f1423054184
child 2847
1843ef6e2656
child 3008
7848489bcb92
equal deleted inserted replaced
2839:ae21f79512b7 2840:10a133f3a5e8
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

eric ide

mercurial