|
1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Module implementing a dialog to select PEP 8 message codes. |
|
8 """ |
|
9 |
|
10 from PyQt4.QtCore import QCoreApplication |
|
11 from PyQt4.QtGui import QDialog, QTreeWidgetItem |
|
12 |
|
13 from . import pep8 |
|
14 |
|
15 from .Ui_Pep8CodeSelectionDialog import Ui_Pep8CodeSelectionDialog |
|
16 |
|
17 class Pep8CodeSelectionDialog(QDialog, Ui_Pep8CodeSelectionDialog): |
|
18 """ |
|
19 Class implementing a dialog to select PEP 8 message codes. |
|
20 """ |
|
21 def __init__(self, codes, parent = None): |
|
22 """ |
|
23 Constructor |
|
24 |
|
25 @param codes comma separated list of selected codes (string) |
|
26 @param parent reference to the parent widget (QWidget) |
|
27 """ |
|
28 QDialog.__init__(self, parent) |
|
29 self.setupUi(self) |
|
30 |
|
31 codeList = [code.strip() for code in codes.split(",") if code.strip()] |
|
32 |
|
33 for code in sorted(pep8.pep8_messages.keys(), key=lambda a: a[1:]): |
|
34 if code in pep8.pep8_messages_sample_args: |
|
35 message = QCoreApplication.translate("pep8", |
|
36 pep8.pep8_messages[code]).format( |
|
37 *pep8.pep8_messages_sample_args[code]) |
|
38 else: |
|
39 message = QCoreApplication.translate("pep8", |
|
40 pep8.pep8_messages[code]) |
|
41 itm = QTreeWidgetItem(self.codeTable, [code, message]) |
|
42 if code in codeList: |
|
43 itm.setSelected(True) |
|
44 codeList.remove(code) |
|
45 |
|
46 self.__extraCodes = codeList[:] |
|
47 |
|
48 def getSelectedCodes(self): |
|
49 """ |
|
50 Public method to get a comma separated list of codes selected. |
|
51 |
|
52 @return comma separated list of selected codes (string) |
|
53 """ |
|
54 selectedCodes = [] |
|
55 |
|
56 for itm in self.codeTable.selectedItems(): |
|
57 selectedCodes.append(itm.text(0)) |
|
58 |
|
59 return ", ".join(self.__extraCodes + selectedCodes) |