Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py

changeset 3190
a9a94491c4fd
parent 3160
209a07d7e401
child 3302
e92f0dd51979
equal deleted inserted replaced
3189:9a21c547de5f 3190:a9a94491c4fd
42 self.__statusColumn = 1 42 self.__statusColumn = 1
43 self.__pathColumn = 2 43 self.__pathColumn = 2
44 self.__lastColumn = self.statusList.columnCount() 44 self.__lastColumn = self.statusList.columnCount()
45 45
46 self.refreshButton = self.buttonBox.addButton( 46 self.refreshButton = self.buttonBox.addButton(
47 self.trUtf8("Refresh"), QDialogButtonBox.ActionRole) 47 self.tr("Refresh"), QDialogButtonBox.ActionRole)
48 self.refreshButton.setToolTip( 48 self.refreshButton.setToolTip(
49 self.trUtf8("Press to refresh the status display")) 49 self.tr("Press to refresh the status display"))
50 self.refreshButton.setEnabled(False) 50 self.refreshButton.setEnabled(False)
51 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) 51 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
52 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) 52 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
53 53
54 self.diff = None 54 self.diff = None
73 73
74 self.menuactions = [] 74 self.menuactions = []
75 self.menu = QMenu() 75 self.menu = QMenu()
76 if not mq: 76 if not mq:
77 self.menuactions.append(self.menu.addAction( 77 self.menuactions.append(self.menu.addAction(
78 self.trUtf8("Commit changes to repository..."), self.__commit)) 78 self.tr("Commit changes to repository..."), self.__commit))
79 self.menuactions.append(self.menu.addAction( 79 self.menuactions.append(self.menu.addAction(
80 self.trUtf8("Select all for commit"), self.__commitSelectAll)) 80 self.tr("Select all for commit"), self.__commitSelectAll))
81 self.menuactions.append(self.menu.addAction( 81 self.menuactions.append(self.menu.addAction(
82 self.trUtf8("Deselect all from commit"), 82 self.tr("Deselect all from commit"),
83 self.__commitDeselectAll)) 83 self.__commitDeselectAll))
84 self.menu.addSeparator() 84 self.menu.addSeparator()
85 self.menuactions.append(self.menu.addAction( 85 self.menuactions.append(self.menu.addAction(
86 self.trUtf8("Add to repository"), self.__add)) 86 self.tr("Add to repository"), self.__add))
87 self.menuactions.append(self.menu.addAction( 87 self.menuactions.append(self.menu.addAction(
88 self.trUtf8("Show differences"), self.__diff)) 88 self.tr("Show differences"), self.__diff))
89 self.menuactions.append(self.menu.addAction( 89 self.menuactions.append(self.menu.addAction(
90 self.trUtf8("Show differences side-by-side"), self.__sbsDiff)) 90 self.tr("Show differences side-by-side"), self.__sbsDiff))
91 self.menuactions.append(self.menu.addAction( 91 self.menuactions.append(self.menu.addAction(
92 self.trUtf8("Remove from repository"), self.__forget)) 92 self.tr("Remove from repository"), self.__forget))
93 self.menuactions.append(self.menu.addAction( 93 self.menuactions.append(self.menu.addAction(
94 self.trUtf8("Revert changes"), self.__revert)) 94 self.tr("Revert changes"), self.__revert))
95 self.menuactions.append(self.menu.addAction( 95 self.menuactions.append(self.menu.addAction(
96 self.trUtf8("Restore missing"), self.__restoreMissing)) 96 self.tr("Restore missing"), self.__restoreMissing))
97 self.menu.addSeparator() 97 self.menu.addSeparator()
98 self.menuactions.append(self.menu.addAction( 98 self.menuactions.append(self.menu.addAction(
99 self.trUtf8("Adjust column sizes"), self.__resizeColumns)) 99 self.tr("Adjust column sizes"), self.__resizeColumns))
100 for act in self.menuactions: 100 for act in self.menuactions:
101 act.setEnabled(False) 101 act.setEnabled(False)
102 102
103 self.statusList.setContextMenuPolicy(Qt.CustomContextMenu) 103 self.statusList.setContextMenuPolicy(Qt.CustomContextMenu)
104 self.statusList.customContextMenuRequested.connect( 104 self.statusList.customContextMenuRequested.connect(
105 self.__showContextMenu) 105 self.__showContextMenu)
106 106
107 self.modifiedIndicators = [ 107 self.modifiedIndicators = [
108 self.trUtf8('added'), 108 self.tr('added'),
109 self.trUtf8('modified'), 109 self.tr('modified'),
110 self.trUtf8('removed'), 110 self.tr('removed'),
111 ] 111 ]
112 112
113 self.unversionedIndicators = [ 113 self.unversionedIndicators = [
114 self.trUtf8('not tracked'), 114 self.tr('not tracked'),
115 ] 115 ]
116 116
117 self.missingIndicators = [ 117 self.missingIndicators = [
118 self.trUtf8('missing') 118 self.tr('missing')
119 ] 119 ]
120 120
121 self.status = { 121 self.status = {
122 'A': self.trUtf8('added'), 122 'A': self.tr('added'),
123 'C': self.trUtf8('normal'), 123 'C': self.tr('normal'),
124 'I': self.trUtf8('ignored'), 124 'I': self.tr('ignored'),
125 'M': self.trUtf8('modified'), 125 'M': self.tr('modified'),
126 'R': self.trUtf8('removed'), 126 'R': self.tr('removed'),
127 '?': self.trUtf8('not tracked'), 127 '?': self.tr('not tracked'),
128 '!': self.trUtf8('missing'), 128 '!': self.tr('missing'),
129 } 129 }
130 130
131 def __resort(self): 131 def __resort(self):
132 """ 132 """
133 Private method to resort the tree. 133 Private method to resort the tree.
212 self.statusFilterCombo.clear() 212 self.statusFilterCombo.clear()
213 self.__statusFilters = [] 213 self.__statusFilters = []
214 214
215 if self.__mq: 215 if self.__mq:
216 self.setWindowTitle( 216 self.setWindowTitle(
217 self.trUtf8("Mercurial Queue Repository Status")) 217 self.tr("Mercurial Queue Repository Status"))
218 else: 218 else:
219 self.setWindowTitle(self.trUtf8('Mercurial Status')) 219 self.setWindowTitle(self.tr('Mercurial Status'))
220 220
221 args = [] 221 args = []
222 args.append('status') 222 args.append('status')
223 self.vcs.addArguments(args, self.vcs.options['global']) 223 self.vcs.addArguments(args, self.vcs.options['global'])
224 if self.__mq: 224 if self.__mq:
276 if not procStarted: 276 if not procStarted:
277 self.inputGroup.setEnabled(False) 277 self.inputGroup.setEnabled(False)
278 self.inputGroup.hide() 278 self.inputGroup.hide()
279 E5MessageBox.critical( 279 E5MessageBox.critical(
280 self, 280 self,
281 self.trUtf8('Process Generation Error'), 281 self.tr('Process Generation Error'),
282 self.trUtf8( 282 self.tr(
283 'The process {0} could not be started. ' 283 'The process {0} could not be started. '
284 'Ensure, that it is in the search path.' 284 'Ensure, that it is in the search path.'
285 ).format('hg')) 285 ).format('hg'))
286 else: 286 else:
287 self.inputGroup.setEnabled(True) 287 self.inputGroup.setEnabled(True)
307 self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) 307 self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
308 self.buttonBox.button(QDialogButtonBox.Close).setFocus( 308 self.buttonBox.button(QDialogButtonBox.Close).setFocus(
309 Qt.OtherFocusReason) 309 Qt.OtherFocusReason)
310 310
311 self.__statusFilters.sort() 311 self.__statusFilters.sort()
312 self.__statusFilters.insert(0, "<{0}>".format(self.trUtf8("all"))) 312 self.__statusFilters.insert(0, "<{0}>".format(self.tr("all")))
313 self.statusFilterCombo.addItems(self.__statusFilters) 313 self.statusFilterCombo.addItems(self.__statusFilters)
314 314
315 for act in self.menuactions: 315 for act in self.menuactions:
316 act.setEnabled(True) 316 act.setEnabled(True)
317 317
492 """ 492 """
493 Private slot to react to the selection of a status filter. 493 Private slot to react to the selection of a status filter.
494 494
495 @param txt selected status filter (string) 495 @param txt selected status filter (string)
496 """ 496 """
497 if txt == "<{0}>".format(self.trUtf8("all")): 497 if txt == "<{0}>".format(self.tr("all")):
498 for topIndex in range(self.statusList.topLevelItemCount()): 498 for topIndex in range(self.statusList.topLevelItemCount()):
499 topItem = self.statusList.topLevelItem(topIndex) 499 topItem = self.statusList.topLevelItem(topIndex)
500 topItem.setHidden(False) 500 topItem.setHidden(False)
501 else: 501 else:
502 for topIndex in range(self.statusList.topLevelItemCount()): 502 for topIndex in range(self.statusList.topLevelItemCount()):
592 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) 592 names = [os.path.join(self.dname, itm.text(self.__pathColumn))
593 for itm in self.__getCommitableItems()] 593 for itm in self.__getCommitableItems()]
594 if not names: 594 if not names:
595 E5MessageBox.information( 595 E5MessageBox.information(
596 self, 596 self,
597 self.trUtf8("Commit"), 597 self.tr("Commit"),
598 self.trUtf8("""There are no entries selected to be""" 598 self.tr("""There are no entries selected to be"""
599 """ committed.""")) 599 """ committed."""))
600 return 600 return
601 601
602 if Preferences.getVCS("AutoSaveFiles"): 602 if Preferences.getVCS("AutoSaveFiles"):
603 vm = e5App().getObject("ViewManager") 603 vm = e5App().getObject("ViewManager")
604 for name in names: 604 for name in names:
632 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) 632 names = [os.path.join(self.dname, itm.text(self.__pathColumn))
633 for itm in self.__getUnversionedItems()] 633 for itm in self.__getUnversionedItems()]
634 if not names: 634 if not names:
635 E5MessageBox.information( 635 E5MessageBox.information(
636 self, 636 self,
637 self.trUtf8("Add"), 637 self.tr("Add"),
638 self.trUtf8("""There are no unversioned entries""" 638 self.tr("""There are no unversioned entries"""
639 """ available/selected.""")) 639 """ available/selected."""))
640 return 640 return
641 641
642 self.vcs.vcsAdd(names) 642 self.vcs.vcsAdd(names)
643 self.on_refreshButton_clicked() 643 self.on_refreshButton_clicked()
644 644
654 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) 654 names = [os.path.join(self.dname, itm.text(self.__pathColumn))
655 for itm in self.__getMissingItems()] 655 for itm in self.__getMissingItems()]
656 if not names: 656 if not names:
657 E5MessageBox.information( 657 E5MessageBox.information(
658 self, 658 self,
659 self.trUtf8("Remove"), 659 self.tr("Remove"),
660 self.trUtf8("""There are no missing entries""" 660 self.tr("""There are no missing entries"""
661 """ available/selected.""")) 661 """ available/selected."""))
662 return 662 return
663 663
664 self.vcs.hgForget(names) 664 self.vcs.hgForget(names)
665 self.on_refreshButton_clicked() 665 self.on_refreshButton_clicked()
666 666
671 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) 671 names = [os.path.join(self.dname, itm.text(self.__pathColumn))
672 for itm in self.__getModifiedItems()] 672 for itm in self.__getModifiedItems()]
673 if not names: 673 if not names:
674 E5MessageBox.information( 674 E5MessageBox.information(
675 self, 675 self,
676 self.trUtf8("Revert"), 676 self.tr("Revert"),
677 self.trUtf8("""There are no uncommitted changes""" 677 self.tr("""There are no uncommitted changes"""
678 """ available/selected.""")) 678 """ available/selected."""))
679 return 679 return
680 680
681 self.vcs.hgRevert(names) 681 self.vcs.hgRevert(names)
682 self.raise_() 682 self.raise_()
683 self.activateWindow() 683 self.activateWindow()
695 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) 695 names = [os.path.join(self.dname, itm.text(self.__pathColumn))
696 for itm in self.__getMissingItems()] 696 for itm in self.__getMissingItems()]
697 if not names: 697 if not names:
698 E5MessageBox.information( 698 E5MessageBox.information(
699 self, 699 self,
700 self.trUtf8("Revert"), 700 self.tr("Revert"),
701 self.trUtf8("""There are no missing entries""" 701 self.tr("""There are no missing entries"""
702 """ available/selected.""")) 702 """ available/selected."""))
703 return 703 return
704 704
705 self.vcs.hgRevert(names) 705 self.vcs.hgRevert(names)
706 self.on_refreshButton_clicked() 706 self.on_refreshButton_clicked()
707 self.vcs.checkVCSStatus() 707 self.vcs.checkVCSStatus()
713 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) 713 names = [os.path.join(self.dname, itm.text(self.__pathColumn))
714 for itm in self.__getModifiedItems()] 714 for itm in self.__getModifiedItems()]
715 if not names: 715 if not names:
716 E5MessageBox.information( 716 E5MessageBox.information(
717 self, 717 self,
718 self.trUtf8("Differences"), 718 self.tr("Differences"),
719 self.trUtf8("""There are no uncommitted changes""" 719 self.tr("""There are no uncommitted changes"""
720 """ available/selected.""")) 720 """ available/selected."""))
721 return 721 return
722 722
723 if self.diff is None: 723 if self.diff is None:
724 from .HgDiffDialog import HgDiffDialog 724 from .HgDiffDialog import HgDiffDialog
725 self.diff = HgDiffDialog(self.vcs) 725 self.diff = HgDiffDialog(self.vcs)
733 names = [os.path.join(self.dname, itm.text(self.__pathColumn)) 733 names = [os.path.join(self.dname, itm.text(self.__pathColumn))
734 for itm in self.__getModifiedItems()] 734 for itm in self.__getModifiedItems()]
735 if not names: 735 if not names:
736 E5MessageBox.information( 736 E5MessageBox.information(
737 self, 737 self,
738 self.trUtf8("Side-by-Side Diff"), 738 self.tr("Side-by-Side Diff"),
739 self.trUtf8("""There are no uncommitted changes""" 739 self.tr("""There are no uncommitted changes"""
740 """ available/selected.""")) 740 """ available/selected."""))
741 return 741 return
742 elif len(names) > 1: 742 elif len(names) > 1:
743 E5MessageBox.information( 743 E5MessageBox.information(
744 self, 744 self,
745 self.trUtf8("Side-by-Side Diff"), 745 self.tr("Side-by-Side Diff"),
746 self.trUtf8("""Only one file with uncommitted changes""" 746 self.tr("""Only one file with uncommitted changes"""
747 """ must be selected.""")) 747 """ must be selected."""))
748 return 748 return
749 749
750 self.vcs.hgSbsDiff(names[0]) 750 self.vcs.hgSbsDiff(names[0])
751 751
752 def __getCommitableItems(self): 752 def __getCommitableItems(self):

eric ide

mercurial