55 """ |
55 """ |
56 super().__init__(parent) |
56 super().__init__(parent) |
57 self.setupUi(self) |
57 self.setupUi(self) |
58 |
58 |
59 if mode == "log": |
59 if mode == "log": |
60 self.setWindowTitle(self.trUtf8("Mercurial Log")) |
60 self.setWindowTitle(self.tr("Mercurial Log")) |
61 elif mode == "incoming": |
61 elif mode == "incoming": |
62 self.setWindowTitle(self.trUtf8("Mercurial Log (Incoming)")) |
62 self.setWindowTitle(self.tr("Mercurial Log (Incoming)")) |
63 elif mode == "outgoing": |
63 elif mode == "outgoing": |
64 self.setWindowTitle(self.trUtf8("Mercurial Log (Outgoing)")) |
64 self.setWindowTitle(self.tr("Mercurial Log (Outgoing)")) |
65 |
65 |
66 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
66 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
67 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
67 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
68 |
68 |
69 self.filesTree.headerItem().setText(self.filesTree.columnCount(), "") |
69 self.filesTree.headerItem().setText(self.filesTree.columnCount(), "") |
70 self.filesTree.header().setSortIndicator(0, Qt.AscendingOrder) |
70 self.filesTree.header().setSortIndicator(0, Qt.AscendingOrder) |
71 |
71 |
72 self.refreshButton = self.buttonBox.addButton( |
72 self.refreshButton = self.buttonBox.addButton( |
73 self.trUtf8("&Refresh"), QDialogButtonBox.ActionRole) |
73 self.tr("&Refresh"), QDialogButtonBox.ActionRole) |
74 self.refreshButton.setToolTip( |
74 self.refreshButton.setToolTip( |
75 self.trUtf8("Press to refresh the list of changesets")) |
75 self.tr("Press to refresh the list of changesets")) |
76 self.refreshButton.setEnabled(False) |
76 self.refreshButton.setEnabled(False) |
77 |
77 |
78 self.sbsCheckBox.setEnabled(isFile) |
78 self.sbsCheckBox.setEnabled(isFile) |
79 self.sbsCheckBox.setVisible(isFile) |
79 self.sbsCheckBox.setVisible(isFile) |
80 |
80 |
87 self.bundle = bundle |
87 self.bundle = bundle |
88 self.__hgClient = vcs.getClient() |
88 self.__hgClient = vcs.getClient() |
89 |
89 |
90 self.__initData() |
90 self.__initData() |
91 |
91 |
92 self.__allBranchesFilter = self.trUtf8("All") |
92 self.__allBranchesFilter = self.tr("All") |
93 |
93 |
94 self.fromDate.setDisplayFormat("yyyy-MM-dd") |
94 self.fromDate.setDisplayFormat("yyyy-MM-dd") |
95 self.toDate.setDisplayFormat("yyyy-MM-dd") |
95 self.toDate.setDisplayFormat("yyyy-MM-dd") |
96 self.fromDate.setDate(QDate.currentDate()) |
96 self.fromDate.setDate(QDate.currentDate()) |
97 self.toDate.setDate(QDate.currentDate()) |
97 self.toDate.setDate(QDate.currentDate()) |
98 self.fieldCombo.setCurrentIndex(self.fieldCombo.findText( |
98 self.fieldCombo.setCurrentIndex(self.fieldCombo.findText( |
99 self.trUtf8("Message"))) |
99 self.tr("Message"))) |
100 self.limitSpinBox.setValue(self.vcs.getPlugin().getPreferences( |
100 self.limitSpinBox.setValue(self.vcs.getPlugin().getPreferences( |
101 "LogLimit")) |
101 "LogLimit")) |
102 self.stopCheckBox.setChecked(self.vcs.getPlugin().getPreferences( |
102 self.stopCheckBox.setChecked(self.vcs.getPlugin().getPreferences( |
103 "StopLogOnCopy")) |
103 "StopLogOnCopy")) |
104 |
104 |
118 self.process.finished.connect(self.__procFinished) |
118 self.process.finished.connect(self.__procFinished) |
119 self.process.readyReadStandardOutput.connect(self.__readStdout) |
119 self.process.readyReadStandardOutput.connect(self.__readStdout) |
120 self.process.readyReadStandardError.connect(self.__readStderr) |
120 self.process.readyReadStandardError.connect(self.__readStderr) |
121 |
121 |
122 self.flags = { |
122 self.flags = { |
123 'A': self.trUtf8('Added'), |
123 'A': self.tr('Added'), |
124 'D': self.trUtf8('Deleted'), |
124 'D': self.tr('Deleted'), |
125 'M': self.trUtf8('Modified'), |
125 'M': self.tr('Modified'), |
126 } |
126 } |
127 |
127 |
128 self.__dotRadius = 8 |
128 self.__dotRadius = 8 |
129 self.__rowHeight = 20 |
129 self.__rowHeight = 20 |
130 |
130 |
131 self.logTree.setIconSize( |
131 self.logTree.setIconSize( |
132 QSize(100 * self.__rowHeight, self.__rowHeight)) |
132 QSize(100 * self.__rowHeight, self.__rowHeight)) |
133 if self.vcs.version >= (1, 8): |
133 if self.vcs.version >= (1, 8): |
134 self.logTree.headerItem().setText( |
134 self.logTree.headerItem().setText( |
135 self.logTree.columnCount(), self.trUtf8("Bookmarks")) |
135 self.logTree.columnCount(), self.tr("Bookmarks")) |
136 if self.vcs.version < (2, 1): |
136 if self.vcs.version < (2, 1): |
137 self.logTree.setColumnHidden(self.PhaseColumn, True) |
137 self.logTree.setColumnHidden(self.PhaseColumn, True) |
138 |
138 |
139 self.__actionsMenu = QMenu() |
139 self.__actionsMenu = QMenu() |
140 if self.vcs.version >= (2, 0): |
140 if self.vcs.version >= (2, 0): |
141 self.__graftAct = self.__actionsMenu.addAction( |
141 self.__graftAct = self.__actionsMenu.addAction( |
142 self.trUtf8("Copy Changesets"), self.__graftActTriggered) |
142 self.tr("Copy Changesets"), self.__graftActTriggered) |
143 self.__graftAct.setToolTip(self.trUtf8( |
143 self.__graftAct.setToolTip(self.tr( |
144 "Copy the selected changesets to the current branch")) |
144 "Copy the selected changesets to the current branch")) |
145 else: |
145 else: |
146 self.__graftAct = None |
146 self.__graftAct = None |
147 if self.vcs.version >= (2, 1): |
147 if self.vcs.version >= (2, 1): |
148 self.__phaseAct = self.__actionsMenu.addAction( |
148 self.__phaseAct = self.__actionsMenu.addAction( |
149 self.trUtf8("Change Phase"), self.__phaseActTriggered) |
149 self.tr("Change Phase"), self.__phaseActTriggered) |
150 self.__phaseAct.setToolTip(self.trUtf8( |
150 self.__phaseAct.setToolTip(self.tr( |
151 "Change the phase of the selected revisions")) |
151 "Change the phase of the selected revisions")) |
152 self.__phaseAct.setWhatsThis(self.trUtf8( |
152 self.__phaseAct.setWhatsThis(self.tr( |
153 """<b>Change Phase</b>\n<p>This changes the phase of the""" |
153 """<b>Change Phase</b>\n<p>This changes the phase of the""" |
154 """ selected revisions. The selected revisions have to have""" |
154 """ selected revisions. The selected revisions have to have""" |
155 """ the same current phase.</p>""")) |
155 """ the same current phase.</p>""")) |
156 else: |
156 else: |
157 self.__phaseAct = None |
157 self.__phaseAct = None |
158 self.__tagAct = self.__actionsMenu.addAction( |
158 self.__tagAct = self.__actionsMenu.addAction( |
159 self.trUtf8("Tag"), self.__tagActTriggered) |
159 self.tr("Tag"), self.__tagActTriggered) |
160 self.__tagAct.setToolTip(self.trUtf8("Tag the selected revision")) |
160 self.__tagAct.setToolTip(self.tr("Tag the selected revision")) |
161 self.actionsButton.setIcon( |
161 self.actionsButton.setIcon( |
162 UI.PixmapCache.getIcon("actionsToolButton.png")) |
162 UI.PixmapCache.getIcon("actionsToolButton.png")) |
163 self.actionsButton.setMenu(self.__actionsMenu) |
163 self.actionsButton.setMenu(self.__actionsMenu) |
164 |
164 |
165 def __initData(self): |
165 def __initData(self): |
478 str(process.readAllStandardOutput(), |
478 str(process.readAllStandardOutput(), |
479 Preferences.getSystem("IOEncoding"), |
479 Preferences.getSystem("IOEncoding"), |
480 'replace') |
480 'replace') |
481 else: |
481 else: |
482 if not finished: |
482 if not finished: |
483 errMsg = self.trUtf8( |
483 errMsg = self.tr( |
484 "The hg process did not finish within 30s.") |
484 "The hg process did not finish within 30s.") |
485 else: |
485 else: |
486 errMsg = self.trUtf8("Could not start the hg executable.") |
486 errMsg = self.tr("Could not start the hg executable.") |
487 |
487 |
488 if errMsg: |
488 if errMsg: |
489 E5MessageBox.critical( |
489 E5MessageBox.critical( |
490 self, |
490 self, |
491 self.trUtf8("Mercurial Error"), |
491 self.tr("Mercurial Error"), |
492 errMsg) |
492 errMsg) |
493 |
493 |
494 if output: |
494 if output: |
495 outputList = output.strip().split(None, 1) |
495 outputList = output.strip().split(None, 1) |
496 if len(outputList) == 2: |
496 if len(outputList) == 2: |
525 str(process.readAllStandardOutput(), |
525 str(process.readAllStandardOutput(), |
526 Preferences.getSystem("IOEncoding"), |
526 Preferences.getSystem("IOEncoding"), |
527 'replace') |
527 'replace') |
528 else: |
528 else: |
529 if not finished: |
529 if not finished: |
530 errMsg = self.trUtf8( |
530 errMsg = self.tr( |
531 "The hg process did not finish within 30s.") |
531 "The hg process did not finish within 30s.") |
532 else: |
532 else: |
533 errMsg = self.trUtf8("Could not start the hg executable.") |
533 errMsg = self.tr("Could not start the hg executable.") |
534 |
534 |
535 if errMsg: |
535 if errMsg: |
536 E5MessageBox.critical( |
536 E5MessageBox.critical( |
537 self, |
537 self, |
538 self.trUtf8("Mercurial Error"), |
538 self.tr("Mercurial Error"), |
539 errMsg) |
539 errMsg) |
540 |
540 |
541 if output: |
541 if output: |
542 for line in output.splitlines(): |
542 for line in output.splitlines(): |
543 if line.strip().endswith("(closed)"): |
543 if line.strip().endswith("(closed)"): |
1253 to_ = self.toDate.date().addDays(1).toString("yyyy-MM-dd") |
1253 to_ = self.toDate.date().addDays(1).toString("yyyy-MM-dd") |
1254 branch = self.branchCombo.currentText() |
1254 branch = self.branchCombo.currentText() |
1255 closedBranch = branch + '--' |
1255 closedBranch = branch + '--' |
1256 |
1256 |
1257 txt = self.fieldCombo.currentText() |
1257 txt = self.fieldCombo.currentText() |
1258 if txt == self.trUtf8("Author"): |
1258 if txt == self.tr("Author"): |
1259 fieldIndex = self.AuthorColumn |
1259 fieldIndex = self.AuthorColumn |
1260 searchRx = QRegExp(self.rxEdit.text(), Qt.CaseInsensitive) |
1260 searchRx = QRegExp(self.rxEdit.text(), Qt.CaseInsensitive) |
1261 elif txt == self.trUtf8("Revision"): |
1261 elif txt == self.tr("Revision"): |
1262 fieldIndex = self.RevisionColumn |
1262 fieldIndex = self.RevisionColumn |
1263 txt = self.rxEdit.text() |
1263 txt = self.rxEdit.text() |
1264 if txt.startswith("^"): |
1264 if txt.startswith("^"): |
1265 searchRx = QRegExp("^\s*{0}".format(txt[1:]), |
1265 searchRx = QRegExp("^\s*{0}".format(txt[1:]), |
1266 Qt.CaseInsensitive) |
1266 Qt.CaseInsensitive) |