36 basestring # __IGNORE_WARNING__ |
36 basestring # __IGNORE_WARNING__ |
37 except Exception: |
37 except Exception: |
38 basestring = str # define for Python3 |
38 basestring = str # define for Python3 |
39 |
39 |
40 |
40 |
41 # TODO: add a code filter to the results page |
|
42 class CodeStyleCheckerDialog(QDialog, Ui_CodeStyleCheckerDialog): |
41 class CodeStyleCheckerDialog(QDialog, Ui_CodeStyleCheckerDialog): |
43 """ |
42 """ |
44 Class implementing a dialog to show the results of the code style check. |
43 Class implementing a dialog to show the results of the code style check. |
45 """ |
44 """ |
46 filenameRole = Qt.ItemDataRole.UserRole + 1 |
45 filenameRole = Qt.ItemDataRole.UserRole + 1 |
197 self.__forProject = False |
196 self.__forProject = False |
198 self.__data = {} |
197 self.__data = {} |
199 self.__statistics = {} |
198 self.__statistics = {} |
200 self.__onlyFixes = {} |
199 self.__onlyFixes = {} |
201 self.__noFixCodesList = [] |
200 self.__noFixCodesList = [] |
|
201 self.__detectedCodes = [] |
202 |
202 |
203 self.on_loadDefaultButton_clicked() |
203 self.on_loadDefaultButton_clicked() |
204 |
204 |
205 self.mainWidget.setCurrentWidget(self.configureTab) |
205 self.mainWidget.setCurrentWidget(self.configureTab) |
206 self.optionsTabWidget.setCurrentWidget(self.globalOptionsTab) |
206 self.optionsTabWidget.setCurrentWidget(self.globalOptionsTab) |
277 self.__lastFileItem.setFirstColumnSpanned(True) |
277 self.__lastFileItem.setFirstColumnSpanned(True) |
278 self.__lastFileItem.setExpanded(True) |
278 self.__lastFileItem.setExpanded(True) |
279 self.__lastFileItem.setData(0, self.filenameRole, filename) |
279 self.__lastFileItem.setData(0, self.filenameRole, filename) |
280 |
280 |
281 msgCode = result["code"].split(".", 1)[0] |
281 msgCode = result["code"].split(".", 1)[0] |
|
282 self.__detectedCodes.append(msgCode) |
282 |
283 |
283 fixable = False |
284 fixable = False |
284 itm = QTreeWidgetItem( |
285 itm = QTreeWidgetItem( |
285 self.__lastFileItem, [ |
286 self.__lastFileItem, [ |
286 "{0:6}".format(result["line"]), |
287 "{0:6}".format(result["line"]), |
1064 self.showButton.setEnabled(True) |
1065 self.showButton.setEnabled(True) |
1065 self.resultList.header().resizeSections( |
1066 self.resultList.header().resizeSections( |
1066 QHeaderView.ResizeMode.ResizeToContents) |
1067 QHeaderView.ResizeMode.ResizeToContents) |
1067 self.resultList.header().setStretchLastSection(True) |
1068 self.resultList.header().setStretchLastSection(True) |
1068 |
1069 |
|
1070 if self.__detectedCodes: |
|
1071 self.filterComboBox.addItem("") |
|
1072 self.filterComboBox.addItems(sorted(set(self.__detectedCodes))) |
|
1073 self.filterComboBox.setEnabled(True) |
|
1074 self.filterButton.setEnabled(True) |
|
1075 |
1069 self.checkProgress.setVisible(False) |
1076 self.checkProgress.setVisible(False) |
1070 self.checkProgressLabel.setVisible(False) |
1077 self.checkProgressLabel.setVisible(False) |
1071 |
1078 |
1072 self.mainWidget.setCurrentWidget(self.resultsTab) |
1079 self.mainWidget.setCurrentWidget(self.resultsTab) |
1073 |
1080 |
1168 self.__data) |
1175 self.__data) |
1169 |
1176 |
1170 self.resultList.clear() |
1177 self.resultList.clear() |
1171 self.results = CodeStyleCheckerDialog.noResults |
1178 self.results = CodeStyleCheckerDialog.noResults |
1172 self.cancelled = False |
1179 self.cancelled = False |
|
1180 self.__detectedCodes.clear() |
|
1181 self.filterComboBox.clear() |
|
1182 self.filterComboBox.setEnabled(False) |
|
1183 self.filterButton.setEnabled(False) |
1173 |
1184 |
1174 self.start(self.__fileOrFileList) |
1185 self.start(self.__fileOrFileList) |
1175 |
1186 |
1176 @pyqtSlot() |
1187 @pyqtSlot() |
1177 def on_restartButton_clicked(self): |
1188 def on_restartButton_clicked(self): |
2027 """ |
2038 """ |
2028 for itm in self.whitelistWidget.selectedItems(): |
2039 for itm in self.whitelistWidget.selectedItems(): |
2029 row = self.whitelistWidget.row(itm) |
2040 row = self.whitelistWidget.row(itm) |
2030 self.whitelistWidget.takeItem(row) |
2041 self.whitelistWidget.takeItem(row) |
2031 del itm |
2042 del itm |
|
2043 |
|
2044 @pyqtSlot() |
|
2045 def on_filterButton_clicked(self): |
|
2046 """ |
|
2047 Private slot to filter the list of messages based on selected message |
|
2048 code. |
|
2049 """ |
|
2050 selectedMessageCode = self.filterComboBox.currentText() |
|
2051 print(selectedMessageCode) |
|
2052 |
|
2053 for topRow in range(self.resultList.topLevelItemCount()): |
|
2054 topItem = self.resultList.topLevelItem(topRow) |
|
2055 visibleChildren = topItem.childCount() |
|
2056 for childIndex in range(topItem.childCount()): |
|
2057 childItem = topItem.child(childIndex) |
|
2058 if selectedMessageCode: |
|
2059 hideChild = ( |
|
2060 childItem.data(0, self.codeRole) != selectedMessageCode |
|
2061 ) |
|
2062 else: |
|
2063 hideChild = False |
|
2064 childItem.setHidden(hideChild) |
|
2065 if hideChild: |
|
2066 visibleChildren -= 1 |
|
2067 topItem.setHidden(visibleChildren == 0) |