25 |
25 |
26 class SyntaxCheckerDialog(QDialog, Ui_SyntaxCheckerDialog): |
26 class SyntaxCheckerDialog(QDialog, Ui_SyntaxCheckerDialog): |
27 """ |
27 """ |
28 Class implementing a dialog to display the results of a syntax check run. |
28 Class implementing a dialog to display the results of a syntax check run. |
29 """ |
29 """ |
30 filenameRole = Qt.UserRole + 1 |
30 filenameRole = Qt.ItemDataRole.UserRole + 1 |
31 lineRole = Qt.UserRole + 2 |
31 lineRole = Qt.ItemDataRole.UserRole + 2 |
32 indexRole = Qt.UserRole + 3 |
32 indexRole = Qt.ItemDataRole.UserRole + 3 |
33 errorRole = Qt.UserRole + 4 |
33 errorRole = Qt.ItemDataRole.UserRole + 4 |
34 warningRole = Qt.UserRole + 5 |
34 warningRole = Qt.ItemDataRole.UserRole + 5 |
35 |
35 |
36 def __init__(self, parent=None): |
36 def __init__(self, parent=None): |
37 """ |
37 """ |
38 Constructor |
38 Constructor |
39 |
39 |
40 @param parent The parent widget. (QWidget) |
40 @param parent The parent widget. (QWidget) |
41 """ |
41 """ |
42 super(SyntaxCheckerDialog, self).__init__(parent) |
42 super(SyntaxCheckerDialog, self).__init__(parent) |
43 self.setupUi(self) |
43 self.setupUi(self) |
44 self.setWindowFlags(Qt.Window) |
44 self.setWindowFlags(Qt.WindowType.Window) |
45 |
45 |
46 self.showButton = self.buttonBox.addButton( |
46 self.showButton = self.buttonBox.addButton( |
47 self.tr("Show"), QDialogButtonBox.ActionRole) |
47 self.tr("Show"), QDialogButtonBox.ButtonRole.ActionRole) |
48 self.showButton.setToolTip( |
48 self.showButton.setToolTip( |
49 self.tr("Press to show all files containing an issue")) |
49 self.tr("Press to show all files containing an issue")) |
50 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
50 self.buttonBox.button( |
51 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
51 QDialogButtonBox.StandardButton.Close).setEnabled(False) |
|
52 self.buttonBox.button( |
|
53 QDialogButtonBox.StandardButton.Cancel).setDefault(True) |
52 |
54 |
53 self.resultList.headerItem().setText(self.resultList.columnCount(), "") |
55 self.resultList.headerItem().setText(self.resultList.columnCount(), "") |
54 self.resultList.header().setSortIndicator(0, Qt.AscendingOrder) |
56 self.resultList.header().setSortIndicator( |
|
57 0, Qt.SortOrder.AscendingOrder) |
55 |
58 |
56 self.noResults = True |
59 self.noResults = True |
57 self.cancelled = False |
60 self.cancelled = False |
58 self.__lastFileItem = None |
61 self.__lastFileItem = None |
59 self.__batch = False |
62 self.__batch = False |
96 """ |
99 """ |
97 if self.__errorItem is None: |
100 if self.__errorItem is None: |
98 self.__errorItem = QTreeWidgetItem(self.resultList, [ |
101 self.__errorItem = QTreeWidgetItem(self.resultList, [ |
99 self.tr("Errors")]) |
102 self.tr("Errors")]) |
100 self.__errorItem.setExpanded(True) |
103 self.__errorItem.setExpanded(True) |
101 self.__errorItem.setForeground(0, Qt.red) |
104 self.__errorItem.setForeground(0, Qt.GlobalColor.red) |
102 |
105 |
103 msg = "{0} ({1})".format(self.__project.getRelativePath(filename), |
106 msg = "{0} ({1})".format(self.__project.getRelativePath(filename), |
104 message) |
107 message) |
105 if not self.resultList.findItems(msg, Qt.MatchExactly): |
108 if not self.resultList.findItems(msg, Qt.MatchFlag.MatchExactly): |
106 itm = QTreeWidgetItem(self.__errorItem, [msg]) |
109 itm = QTreeWidgetItem(self.__errorItem, [msg]) |
107 itm.setForeground(0, Qt.red) |
110 itm.setForeground(0, Qt.GlobalColor.red) |
108 itm.setFirstColumnSpanned(True) |
111 itm.setFirstColumnSpanned(True) |
109 |
112 |
110 def __createResultItem(self, filename, line, index, error, sourcecode, |
113 def __createResultItem(self, filename, line, index, error, sourcecode, |
111 isWarning=False): |
114 isWarning=False): |
112 """ |
115 """ |
133 itm = QTreeWidgetItem(self.__lastFileItem) |
136 itm = QTreeWidgetItem(self.__lastFileItem) |
134 if isWarning: |
137 if isWarning: |
135 itm.setIcon(0, UI.PixmapCache.getIcon("warning")) |
138 itm.setIcon(0, UI.PixmapCache.getIcon("warning")) |
136 else: |
139 else: |
137 itm.setIcon(0, UI.PixmapCache.getIcon("syntaxError")) |
140 itm.setIcon(0, UI.PixmapCache.getIcon("syntaxError")) |
138 itm.setData(0, Qt.DisplayRole, line) |
141 itm.setData(0, Qt.ItemDataRole.DisplayRole, line) |
139 itm.setData(1, Qt.DisplayRole, error) |
142 itm.setData(1, Qt.ItemDataRole.DisplayRole, error) |
140 itm.setData(2, Qt.DisplayRole, sourcecode) |
143 itm.setData(2, Qt.ItemDataRole.DisplayRole, sourcecode) |
141 itm.setData(0, self.filenameRole, filename) |
144 itm.setData(0, self.filenameRole, filename) |
142 itm.setData(0, self.lineRole, int(line)) |
145 itm.setData(0, self.lineRole, int(line)) |
143 itm.setData(0, self.indexRole, index) |
146 itm.setData(0, self.indexRole, index) |
144 itm.setData(0, self.errorRole, error) |
147 itm.setData(0, self.errorRole, error) |
145 itm.setData(0, self.warningRole, isWarning) |
148 itm.setData(0, self.warningRole, isWarning) |
152 @param project reference to the project object (Project) |
155 @param project reference to the project object (Project) |
153 """ |
156 """ |
154 self.__fileList = fileList[:] |
157 self.__fileList = fileList[:] |
155 self.__project = project |
158 self.__project = project |
156 |
159 |
157 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) |
160 self.buttonBox.button( |
158 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) |
161 QDialogButtonBox.StandardButton.Close).setEnabled(True) |
159 self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) |
162 self.buttonBox.button( |
|
163 QDialogButtonBox.StandardButton.Cancel).setEnabled(False) |
|
164 self.buttonBox.button( |
|
165 QDialogButtonBox.StandardButton.Close).setDefault(True) |
160 |
166 |
161 self.filterFrame.setVisible(True) |
167 self.filterFrame.setVisible(True) |
162 |
168 |
163 self.__data = self.__project.getData("CHECKERSPARMS", "SyntaxChecker") |
169 self.__data = self.__project.getData("CHECKERSPARMS", "SyntaxChecker") |
164 if self.__data is None or "ExcludeFiles" not in self.__data: |
170 if self.__data is None or "ExcludeFiles" not in self.__data: |
179 if self.syntaxCheckService is not None: |
185 if self.syntaxCheckService is not None: |
180 if self.__project is None: |
186 if self.__project is None: |
181 self.__project = e5App().getObject("Project") |
187 self.__project = e5App().getObject("Project") |
182 |
188 |
183 self.cancelled = False |
189 self.cancelled = False |
184 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
190 self.buttonBox.button( |
185 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True) |
191 QDialogButtonBox.StandardButton.Close).setEnabled(False) |
186 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
192 self.buttonBox.button( |
|
193 QDialogButtonBox.StandardButton.Cancel).setEnabled(True) |
|
194 self.buttonBox.button( |
|
195 QDialogButtonBox.StandardButton.Cancel).setDefault(True) |
187 self.showButton.setEnabled(False) |
196 self.showButton.setEnabled(False) |
188 self.checkProgress.setVisible(True) |
197 self.checkProgress.setVisible(True) |
189 QApplication.processEvents() |
198 QApplication.processEvents() |
190 |
199 |
191 if isinstance(fn, list): |
200 if isinstance(fn, list): |
387 """ |
396 """ |
388 if not self.__finished: |
397 if not self.__finished: |
389 self.__finished = True |
398 self.__finished = True |
390 |
399 |
391 self.cancelled = True |
400 self.cancelled = True |
392 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) |
401 self.buttonBox.button( |
393 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) |
402 QDialogButtonBox.StandardButton.Close).setEnabled(True) |
394 self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) |
403 self.buttonBox.button( |
|
404 QDialogButtonBox.StandardButton.Cancel).setEnabled(False) |
|
405 self.buttonBox.button( |
|
406 QDialogButtonBox.StandardButton.Close).setDefault(True) |
395 |
407 |
396 if self.noResults: |
408 if self.noResults: |
397 QTreeWidgetItem(self.resultList, [self.tr('No issues found.')]) |
409 QTreeWidgetItem(self.resultList, [self.tr('No issues found.')]) |
398 QApplication.processEvents() |
410 QApplication.processEvents() |
399 self.showButton.setEnabled(False) |
411 self.showButton.setEnabled(False) |
400 else: |
412 else: |
401 self.showButton.setEnabled(True) |
413 self.showButton.setEnabled(True) |
402 self.resultList.header().resizeSections( |
414 self.resultList.header().resizeSections( |
403 QHeaderView.ResizeToContents) |
415 QHeaderView.ResizeMode.ResizeToContents) |
404 self.resultList.header().setStretchLastSection(True) |
416 self.resultList.header().setStretchLastSection(True) |
405 |
417 |
406 self.checkProgress.setVisible(False) |
418 self.checkProgress.setVisible(False) |
407 self.checkProgressLabel.setVisible(False) |
419 self.checkProgressLabel.setVisible(False) |
408 |
420 |
410 """ |
422 """ |
411 Private slot called by a button of the button box clicked. |
423 Private slot called by a button of the button box clicked. |
412 |
424 |
413 @param button button that was clicked (QAbstractButton) |
425 @param button button that was clicked (QAbstractButton) |
414 """ |
426 """ |
415 if button == self.buttonBox.button(QDialogButtonBox.Close): |
427 if button == self.buttonBox.button( |
|
428 QDialogButtonBox.StandardButton.Close |
|
429 ): |
416 self.close() |
430 self.close() |
417 elif button == self.buttonBox.button(QDialogButtonBox.Cancel): |
431 elif button == self.buttonBox.button( |
|
432 QDialogButtonBox.StandardButton.Cancel |
|
433 ): |
418 if self.__batch: |
434 if self.__batch: |
419 self.syntaxCheckService.cancelSyntaxBatchCheck() |
435 self.syntaxCheckService.cancelSyntaxBatchCheck() |
420 QTimer.singleShot(1000, self.__finish) |
436 QTimer.singleShot(1000, self.__finish) |
421 else: |
437 else: |
422 self.__finish() |
438 self.__finish() |