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 |