Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.py

changeset 832
eb5ff61f927b
child 849
996367a89673
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Plugins/CheckerPlugins/Pep8/Pep8CodeSelectionDialog.py	Sun Jan 09 18:16:46 2011 +0100
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to select PEP 8 message codes.
+"""
+
+from PyQt4.QtCore import QCoreApplication
+from PyQt4.QtGui import QDialog, QTreeWidgetItem
+
+from . import pep8
+
+from .Ui_Pep8CodeSelectionDialog import Ui_Pep8CodeSelectionDialog
+
+class Pep8CodeSelectionDialog(QDialog, Ui_Pep8CodeSelectionDialog):
+    """
+    Class implementing a dialog to select PEP 8 message codes.
+    """
+    def __init__(self, codes, parent = None):
+        """
+        Constructor
+        
+        @param codes comma separated list of selected codes (string)
+        @param parent reference to the parent widget (QWidget)
+        """
+        QDialog.__init__(self, parent)
+        self.setupUi(self)
+        
+        codeList = [code.strip() for code in codes.split(",") if code.strip()]
+        
+        for code in sorted(pep8.pep8_messages.keys(), key=lambda a: a[1:]):
+            if code in pep8.pep8_messages_sample_args:
+                message = QCoreApplication.translate("pep8", 
+                    pep8.pep8_messages[code]).format(
+                        *pep8.pep8_messages_sample_args[code])
+            else:
+                message = QCoreApplication.translate("pep8", 
+                    pep8.pep8_messages[code])
+            itm = QTreeWidgetItem(self.codeTable, [code, message])
+            if code in codeList:
+                itm.setSelected(True)
+                codeList.remove(code)
+        
+        self.__extraCodes = codeList[:]
+    
+    def getSelectedCodes(self):
+        """
+        Public method to get a comma separated list of codes selected.
+        
+        @return comma separated list of selected codes (string)
+        """
+        selectedCodes = []
+        
+        for itm in self.codeTable.selectedItems():
+            selectedCodes.append(itm.text(0))
+        
+        return ", ".join(self.__extraCodes + selectedCodes)

eric ide

mercurial