8 """ |
8 """ |
9 |
9 |
10 |
10 |
11 import os |
11 import os |
12 |
12 |
13 from PyQt5.QtCore import pyqtSlot, QProcess, QTimer, Qt, QRegExp, \ |
13 from PyQt5.QtCore import ( |
14 QCoreApplication |
14 pyqtSlot, QProcess, QTimer, Qt, QRegExp, QCoreApplication |
15 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QHeaderView, \ |
15 ) |
16 QTreeWidgetItem, QLineEdit |
16 from PyQt5.QtWidgets import ( |
|
17 QDialog, QDialogButtonBox, QHeaderView, QTreeWidgetItem, QLineEdit |
|
18 ) |
17 |
19 |
18 from E5Gui import E5MessageBox |
20 from E5Gui import E5MessageBox |
19 |
21 |
20 from .Ui_HgGpgSignaturesDialog import Ui_HgGpgSignaturesDialog |
22 from .Ui_HgGpgSignaturesDialog import Ui_HgGpgSignaturesDialog |
21 |
23 |
59 """ |
61 """ |
60 if self.__hgClient: |
62 if self.__hgClient: |
61 if self.__hgClient.isExecuting(): |
63 if self.__hgClient.isExecuting(): |
62 self.__hgClient.cancel() |
64 self.__hgClient.cancel() |
63 else: |
65 else: |
64 if self.process is not None and \ |
66 if ( |
65 self.process.state() != QProcess.NotRunning: |
67 self.process is not None and |
|
68 self.process.state() != QProcess.NotRunning |
|
69 ): |
66 self.process.terminate() |
70 self.process.terminate() |
67 QTimer.singleShot(2000, self.process.kill) |
71 QTimer.singleShot(2000, self.process.kill) |
68 self.process.waitForFinished(3000) |
72 self.process.waitForFinished(3000) |
69 |
73 |
70 e.accept() |
74 e.accept() |
128 def __finish(self): |
132 def __finish(self): |
129 """ |
133 """ |
130 Private slot called when the process finished or the user pressed |
134 Private slot called when the process finished or the user pressed |
131 the button. |
135 the button. |
132 """ |
136 """ |
133 if self.process is not None and \ |
137 if ( |
134 self.process.state() != QProcess.NotRunning: |
138 self.process is not None and |
|
139 self.process.state() != QProcess.NotRunning |
|
140 ): |
135 self.process.terminate() |
141 self.process.terminate() |
136 QTimer.singleShot(2000, self.process.kill) |
142 QTimer.singleShot(2000, self.process.kill) |
137 self.process.waitForFinished(3000) |
143 self.process.waitForFinished(3000) |
138 |
144 |
139 self.inputGroup.setEnabled(False) |
145 self.inputGroup.setEnabled(False) |
270 def on_signaturesList_itemSelectionChanged(self): |
276 def on_signaturesList_itemSelectionChanged(self): |
271 """ |
277 """ |
272 Private slot handling changes of the selection. |
278 Private slot handling changes of the selection. |
273 """ |
279 """ |
274 selectedItems = self.signaturesList.selectedItems() |
280 selectedItems = self.signaturesList.selectedItems() |
275 if len(selectedItems) == 1 and \ |
281 if ( |
276 self.signaturesList.indexOfTopLevelItem(selectedItems[0]) != -1: |
282 len(selectedItems) == 1 and |
|
283 self.signaturesList.indexOfTopLevelItem(selectedItems[0]) != -1 |
|
284 ): |
277 self.verifyButton.setEnabled(True) |
285 self.verifyButton.setEnabled(True) |
278 else: |
286 else: |
279 self.verifyButton.setEnabled(False) |
287 self.verifyButton.setEnabled(False) |
280 |
288 |
281 @pyqtSlot() |
289 @pyqtSlot() |
282 def on_verifyButton_clicked(self): |
290 def on_verifyButton_clicked(self): |
283 """ |
291 """ |
284 Private slot to verify the signatures of the selected revision. |
292 Private slot to verify the signatures of the selected revision. |
285 """ |
293 """ |
286 rev = self.signaturesList.selectedItems()[0].text(0)\ |
294 rev = ( |
|
295 self.signaturesList.selectedItems()[0].text(0) |
287 .split(":")[0].strip() |
296 .split(":")[0].strip() |
288 self.vcs.getExtensionObject("gpg")\ |
297 ) |
289 .hgGpgVerifySignatures(self.__path, rev) |
298 self.vcs.getExtensionObject("gpg").hgGpgVerifySignatures( |
|
299 self.__path, rev) |
290 |
300 |
291 @pyqtSlot(str) |
301 @pyqtSlot(str) |
292 def on_categoryCombo_activated(self, txt): |
302 def on_categoryCombo_activated(self, txt): |
293 """ |
303 """ |
294 Private slot called, when a new filter category is selected. |
304 Private slot called, when a new filter category is selected. |