src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCodeSelectionDialog.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9473
3f23dbf37dbe
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
21 21
22 class CodeStyleCodeSelectionDialog(QDialog, Ui_CodeStyleCodeSelectionDialog): 22 class CodeStyleCodeSelectionDialog(QDialog, Ui_CodeStyleCodeSelectionDialog):
23 """ 23 """
24 Class implementing a dialog to select code style message codes. 24 Class implementing a dialog to select code style message codes.
25 """ 25 """
26
26 def __init__(self, codes, categories, showFixCodes, parent=None): 27 def __init__(self, codes, categories, showFixCodes, parent=None):
27 """ 28 """
28 Constructor 29 Constructor
29 30
30 @param codes comma separated list of selected codes 31 @param codes comma separated list of selected codes
31 @type str 32 @type str
32 @param categories list of message categories to omit 33 @param categories list of message categories to omit
33 @type list of str 34 @type list of str
34 @param showFixCodes flag indicating to show a list of fixable 35 @param showFixCodes flag indicating to show a list of fixable
37 @param parent reference to the parent widget 38 @param parent reference to the parent widget
38 @type QWidget 39 @type QWidget
39 """ 40 """
40 super().__init__(parent) 41 super().__init__(parent)
41 self.setupUi(self) 42 self.setupUi(self)
42 43
43 textWrapper = textwrap.TextWrapper(width=60) 44 textWrapper = textwrap.TextWrapper(width=60)
44 45
45 self.codeTable.headerItem().setText(self.codeTable.columnCount(), "") 46 self.codeTable.headerItem().setText(self.codeTable.columnCount(), "")
46 codeList = [code.strip() for code in codes.split(",") if code.strip()] 47 codeList = [code.strip() for code in codes.split(",") if code.strip()]
47 if categories: 48 if categories:
48 codeList = [code for code in codeList if code[0] not in categories] 49 codeList = [code for code in codeList if code[0] not in categories]
49 50
50 if showFixCodes: 51 if showFixCodes:
51 from .CodeStyleFixer import FixableCodeStyleIssues 52 from .CodeStyleFixer import FixableCodeStyleIssues
53
52 selectableCodes = FixableCodeStyleIssues 54 selectableCodes = FixableCodeStyleIssues
53 else: 55 else:
54 selectableCodes = ( 56 selectableCodes = [x for x in getMessageCodes() if not x.startswith("FIX")]
55 [x for x in getMessageCodes() if not x.startswith('FIX')]
56 )
57 if categories: 57 if categories:
58 # filter by category 58 # filter by category
59 selectableCodes = [x for x in selectableCodes 59 selectableCodes = [x for x in selectableCodes if x[0] not in categories]
60 if x[0] not in categories]
61 for msgCode in sorted(selectableCodes): 60 for msgCode in sorted(selectableCodes):
62 message = getTranslatedMessage(msgCode, [], example=True) 61 message = getTranslatedMessage(msgCode, [], example=True)
63 if message is None: 62 if message is None:
64 # try with extension 63 # try with extension
65 for ext in ("L", "M", "H", "1"): 64 for ext in ("L", "M", "H", "1"):
68 ) 67 )
69 if message is not None: 68 if message is not None:
70 break 69 break
71 else: 70 else:
72 continue 71 continue
73 itm = QTreeWidgetItem(self.codeTable, [ 72 itm = QTreeWidgetItem(
74 msgCode, "\n".join(textWrapper.wrap(message))]) 73 self.codeTable, [msgCode, "\n".join(textWrapper.wrap(message))]
74 )
75 CodeStyleCheckerUtilities.setItemIcon(itm, 0, msgCode) 75 CodeStyleCheckerUtilities.setItemIcon(itm, 0, msgCode)
76 itm.setFlags(itm.flags() | Qt.ItemFlag.ItemIsUserCheckable) 76 itm.setFlags(itm.flags() | Qt.ItemFlag.ItemIsUserCheckable)
77 if msgCode in codeList: 77 if msgCode in codeList:
78 itm.setCheckState(0, Qt.CheckState.Checked) 78 itm.setCheckState(0, Qt.CheckState.Checked)
79 codeList.remove(msgCode) 79 codeList.remove(msgCode)
80 else: 80 else:
81 itm.setCheckState(0, Qt.CheckState.Unchecked) 81 itm.setCheckState(0, Qt.CheckState.Unchecked)
82 self.codeTable.resizeColumnToContents(0) 82 self.codeTable.resizeColumnToContents(0)
83 self.codeTable.resizeColumnToContents(1) 83 self.codeTable.resizeColumnToContents(1)
84 self.codeTable.header().setStretchLastSection(True) 84 self.codeTable.header().setStretchLastSection(True)
85 85
86 self.__extraCodes = codeList[:] 86 self.__extraCodes = codeList[:]
87 87
88 def getSelectedCodes(self): 88 def getSelectedCodes(self):
89 """ 89 """
90 Public method to get a comma separated list of codes selected. 90 Public method to get a comma separated list of codes selected.
91 91
92 @return comma separated list of selected codes 92 @return comma separated list of selected codes
93 @rtype str 93 @rtype str
94 """ 94 """
95 selectedCodes = [] 95 selectedCodes = []
96 96
97 for index in range(self.codeTable.topLevelItemCount()): 97 for index in range(self.codeTable.topLevelItemCount()):
98 itm = self.codeTable.topLevelItem(index) 98 itm = self.codeTable.topLevelItem(index)
99 if itm.checkState(0) == Qt.CheckState.Checked: 99 if itm.checkState(0) == Qt.CheckState.Checked:
100 selectedCodes.append(itm.text(0)) 100 selectedCodes.append(itm.text(0))
101 101
102 return ", ".join(self.__extraCodes + selectedCodes) 102 return ", ".join(self.__extraCodes + selectedCodes)

eric ide

mercurial