eric6/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCodeSelectionDialog.py

changeset 7609
d5aff4fd0ef8
parent 7533
88261c96484b
child 7611
d546c4e72f52
equal deleted inserted replaced
7606:a3a4760b59ec 7609:d5aff4fd0ef8
18 18
19 class CodeStyleCodeSelectionDialog(QDialog, Ui_CodeStyleCodeSelectionDialog): 19 class CodeStyleCodeSelectionDialog(QDialog, Ui_CodeStyleCodeSelectionDialog):
20 """ 20 """
21 Class implementing a dialog to select code style message codes. 21 Class implementing a dialog to select code style message codes.
22 """ 22 """
23 def __init__(self, codes, showFixCodes, parent=None): 23 def __init__(self, codes, categories, showFixCodes, parent=None):
24 """ 24 """
25 Constructor 25 Constructor
26 26
27 @param codes comma separated list of selected codes (string) 27 @param codes comma separated list of selected codes
28 @type str
29 @param categories list of message categories to omit
30 @type list of str
28 @param showFixCodes flag indicating to show a list of fixable 31 @param showFixCodes flag indicating to show a list of fixable
29 issues (boolean) 32 issues
30 @param parent reference to the parent widget (QWidget) 33 @type bool
34 @param parent reference to the parent widget
35 @type QWidget
31 """ 36 """
32 super(CodeStyleCodeSelectionDialog, self).__init__(parent) 37 super(CodeStyleCodeSelectionDialog, self).__init__(parent)
33 self.setupUi(self) 38 self.setupUi(self)
34 39
35 self.codeTable.headerItem().setText(self.codeTable.columnCount(), "") 40 self.codeTable.headerItem().setText(self.codeTable.columnCount(), "")
36 codeList = [code.strip() for code in codes.split(",") if code.strip()] 41 codeList = [code.strip() for code in codes.split(",") if code.strip()]
42 if categories:
43 codeList = [code for code in codeList if not code[0] in categories]
37 44
38 from .translations import _messages, _messages_sample_args 45 from .translations import _messages, _messages_sample_args
39 46
40 if showFixCodes: 47 if showFixCodes:
41 from .CodeStyleFixer import FixableCodeStyleIssues 48 from .CodeStyleFixer import FixableCodeStyleIssues
42 selectableCodes = FixableCodeStyleIssues 49 selectableCodes = FixableCodeStyleIssues
43 else: 50 else:
44 selectableCodes = [x for x in list(_messages.keys()) 51 selectableCodes = [x for x in list(_messages.keys())
45 if not x.startswith('F')] 52 if not x.startswith('FIX')]
53 if categories:
54 # filter by category
55 selectableCodes = [x for x in selectableCodes
56 if not x[0] in categories]
46 for code in sorted(selectableCodes): 57 for code in sorted(selectableCodes):
47 if code in _messages_sample_args: 58 if code in _messages_sample_args:
48 message = _messages[code].format(*_messages_sample_args[code]) 59 message = _messages[code].format(*_messages_sample_args[code])
49 elif code in _messages: 60 elif code in _messages:
50 message = _messages[code] 61 message = _messages[code]
53 itm = QTreeWidgetItem(self.codeTable, [code, message]) 64 itm = QTreeWidgetItem(self.codeTable, [code, message])
54 if code.startswith(("W", "C", "M")): 65 if code.startswith(("W", "C", "M")):
55 itm.setIcon(0, UI.PixmapCache.getIcon("warning")) 66 itm.setIcon(0, UI.PixmapCache.getIcon("warning"))
56 elif code.startswith("E"): 67 elif code.startswith("E"):
57 itm.setIcon(0, UI.PixmapCache.getIcon("syntaxError")) 68 itm.setIcon(0, UI.PixmapCache.getIcon("syntaxError"))
58 elif code.startswith("N"): 69 elif code.startswith(("A", "N")):
59 itm.setIcon(0, UI.PixmapCache.getIcon("namingError")) 70 itm.setIcon(0, UI.PixmapCache.getIcon("namingError"))
60 elif code.startswith("D"): 71 elif code.startswith("D"):
61 itm.setIcon(0, UI.PixmapCache.getIcon("docstringError")) 72 itm.setIcon(0, UI.PixmapCache.getIcon("docstringError"))
62 else: 73 else:
63 # unknown category prefix => warning 74 # unknown category prefix => warning
76 87
77 def getSelectedCodes(self): 88 def getSelectedCodes(self):
78 """ 89 """
79 Public method to get a comma separated list of codes selected. 90 Public method to get a comma separated list of codes selected.
80 91
81 @return comma separated list of selected codes (string) 92 @return comma separated list of selected codes
93 @rtype str
82 """ 94 """
83 selectedCodes = [] 95 selectedCodes = []
84 96
85 for index in range(self.codeTable.topLevelItemCount()): 97 for index in range(self.codeTable.topLevelItemCount()):
86 itm = self.codeTable.topLevelItem(index) 98 itm = self.codeTable.topLevelItem(index)

eric ide

mercurial