5 |
5 |
6 """ |
6 """ |
7 Module implementing a dialog to select code style message codes. |
7 Module implementing a dialog to select code style message codes. |
8 """ |
8 """ |
9 |
9 |
|
10 import textwrap |
10 |
11 |
11 from PyQt5.QtCore import Qt |
12 from PyQt5.QtCore import Qt |
12 from PyQt5.QtWidgets import QDialog, QTreeWidgetItem |
13 from PyQt5.QtWidgets import QDialog, QTreeWidgetItem |
13 |
14 |
14 from .Ui_CodeStyleCodeSelectionDialog import Ui_CodeStyleCodeSelectionDialog |
15 from .Ui_CodeStyleCodeSelectionDialog import Ui_CodeStyleCodeSelectionDialog |
|
16 |
|
17 from .translations import getMessageCodes, getTranslatedMessage |
15 |
18 |
16 import UI.PixmapCache |
19 import UI.PixmapCache |
17 |
20 |
18 |
21 |
19 class CodeStyleCodeSelectionDialog(QDialog, Ui_CodeStyleCodeSelectionDialog): |
22 class CodeStyleCodeSelectionDialog(QDialog, Ui_CodeStyleCodeSelectionDialog): |
35 @type QWidget |
38 @type QWidget |
36 """ |
39 """ |
37 super(CodeStyleCodeSelectionDialog, self).__init__(parent) |
40 super(CodeStyleCodeSelectionDialog, self).__init__(parent) |
38 self.setupUi(self) |
41 self.setupUi(self) |
39 |
42 |
|
43 textWrapper = textwrap.TextWrapper(width=60) |
|
44 |
40 self.codeTable.headerItem().setText(self.codeTable.columnCount(), "") |
45 self.codeTable.headerItem().setText(self.codeTable.columnCount(), "") |
41 codeList = [code.strip() for code in codes.split(",") if code.strip()] |
46 codeList = [code.strip() for code in codes.split(",") if code.strip()] |
42 if categories: |
47 if categories: |
43 codeList = [code for code in codeList if not code[0] in categories] |
48 codeList = [code for code in codeList if not code[0] in categories] |
44 |
|
45 from .translations import _messages, _messages_sample_args |
|
46 from .Security import translations as s_translations |
|
47 |
49 |
48 if showFixCodes: |
50 if showFixCodes: |
49 from .CodeStyleFixer import FixableCodeStyleIssues |
51 from .CodeStyleFixer import FixableCodeStyleIssues |
50 selectableCodes = FixableCodeStyleIssues |
52 selectableCodes = FixableCodeStyleIssues |
51 else: |
53 else: |
52 selectableCodes = ( |
54 selectableCodes = ( |
53 [x for x in list(_messages.keys()) |
55 [x for x in getMessageCodes() if not x.startswith('FIX')] |
54 if not x.startswith('FIX')] + |
|
55 [x for x in list(s_translations._messages.keys())] |
|
56 ) |
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 |
60 if not x[0] in categories] |
60 if not x[0] in categories] |
61 for code in sorted(selectableCodes): |
61 for code in sorted(selectableCodes): |
62 if code in _messages_sample_args: |
62 message = getTranslatedMessage(code, [], example=True) |
63 message = _messages[code].format(*_messages_sample_args[code]) |
63 if message is None: |
64 elif code in _messages: |
|
65 message = _messages[code] |
|
66 elif code in s_translations._messages_sample_args: |
|
67 message = s_translations._messages[code].format( |
|
68 *s_translations._messages_sample_args) |
|
69 elif code in s_translations._messages: |
|
70 message = s_translations._messages[code] |
|
71 else: |
|
72 continue |
64 continue |
73 itm = QTreeWidgetItem(self.codeTable, [code, message]) |
65 itm = QTreeWidgetItem(self.codeTable, [ |
|
66 code, "\n".join(textWrapper.wrap(message))]) |
74 if code.startswith(("W", "C", "M")): |
67 if code.startswith(("W", "C", "M")): |
75 itm.setIcon(0, UI.PixmapCache.getIcon("warning")) |
68 itm.setIcon(0, UI.PixmapCache.getIcon("warning")) |
76 elif code.startswith("E"): |
69 elif code.startswith("E"): |
77 itm.setIcon(0, UI.PixmapCache.getIcon("syntaxError")) |
70 itm.setIcon(0, UI.PixmapCache.getIcon("syntaxError")) |
78 elif code.startswith(("A", "N")): |
71 elif code.startswith(("A", "N")): |