PyLint/PyLintConfigDialog.py

Mon, 26 Dec 2011 19:34:17 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 26 Dec 2011 19:34:17 +0100
changeset 4
2285b6fbf267
parent 0
1c1ac27f3cf1
child 7
cda98d0e93e7
permissions
-rw-r--r--

Updated copyright for 2012.

0
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
4
2285b6fbf267 Updated copyright for 2012.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
3 # Copyright (c) 2005 - 2012 Detlev Offenbach <detlev@die-offenbachs.de>
0
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to configure the PyLint process
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import copy
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from PyQt4.QtCore import pyqtSlot, QProcess, SIGNAL
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from PyQt4.QtGui import QDialog, QFileDialog
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from E5Gui.E5Application import e5App
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from E5Gui import E5FileDialog, E5MessageBox
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 from E5Gui.E5Completers import E5FileCompleter
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 from .Ui_PyLintConfigDialog import Ui_PyLintConfigDialog
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 import Preferences
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 import Utilities
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 class PyLintConfigDialog(QDialog, Ui_PyLintConfigDialog):
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 Class implementing a dialog to configure the PyLint process
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 def __init__(self, ppath, exe, parms=None, parent=None):
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 Constructor
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @param ppath project path (string or QString)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 Used to set the default path for the rcfile selection dialog
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @param exe name of the pylint executable (string)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 @param parms parameters to set in the dialog
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @param parent reference to the parent widget (QWidget)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 super().__init__(parent)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.setupUi(self)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.pylintProc = None
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.lint = exe
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.__initializeDefaults()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 # get a copy of the defaults to store the user settings
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.parameters = copy.deepcopy(self.defaults)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 # combine it with the values of parms
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 if parms is not None:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 for key, value in parms.items():
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.parameters[key] = parms[key]
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.configfileCompleter = E5FileCompleter(self.configfileEdit)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 self.reportfileCompleter = E5FileCompleter(self.reportfileEdit)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 # initialize general tab
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.configfileEdit.setText(self.parameters['configFile'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.txtOutputButton.setChecked(self.parameters['txtReport'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.htmlOutputButton.setChecked(self.parameters['htmlReport'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.dialogOutputButton.setChecked(self.parameters['dialogReport'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 self.reportfileEdit.setText(self.parameters['reportFile'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 # initialize checkers tab
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 self.basicCheckBox.setChecked(self.parameters['enableBasic'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 self.classesCheckBox.setChecked(self.parameters['enableClasses'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 self.designCheckBox.setChecked(self.parameters['enableDesign'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 self.exceptionsCheckBox.setChecked(self.parameters['enableExceptions'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 self.formatCheckBox.setChecked(self.parameters['enableFormat'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 self.importsCheckBox.setChecked(self.parameters['enableImports'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.metricsCheckBox.setChecked(self.parameters['enableMetrics'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self.miscellaneousCheckBox.setChecked(self.parameters['enableMiscellaneous'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 self.newstyleCheckBox.setChecked(self.parameters['enableNewstyle'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 self.similaritiesCheckBox.setChecked(self.parameters['enableSimilarities'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 self.typecheckCheckBox.setChecked(self.parameters['enableTypecheck'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 self.variablesCheckBox.setChecked(self.parameters['enableVariables'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.rpythonCheckBox.setChecked(self.parameters['enableRPython'])
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 self.ppath = ppath
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 def __initializeDefaults(self):
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 Private method to set the default values.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 These are needed later on to generate the commandline
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 parameters.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 self.defaults = {
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 # general options
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 'configFile': '',
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 'reportFile': '',
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 'txtReport': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 'htmlReport': True,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 'dialogReport': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 # enabled checkers
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 'enableBasic': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 'enableClasses': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 'enableDesign': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 'enableExceptions': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 'enableFormat': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 'enableImports': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 'enableMetrics': True,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 'enableMiscellaneous': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 'enableNewstyle': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 'enableSimilarities': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 'enableTypecheck': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 'enableVariables': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 'enableRPython': False,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 }
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 def generateParameters(self):
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 Public method that generates the commandline parameters.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 It generates a QStringList to be used
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 to set the QProcess arguments for the pylint call and
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 a list containing the non default parameters. The second
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 list can be passed back upon object generation to overwrite
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 the default settings.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 <b>Note</b>: The arguments list contains the name of the pylint executable as
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 the first parameter.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 @return a tuple of the commandline parameters and non default parameters
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 (list of strings, dictionary)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 parms = {}
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 args = []
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 # 1. the program name
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 args.append(self.lint)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 # 2. the commandline options
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 # 2.1 general options
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 if self.parameters['configFile'] != self.defaults['configFile']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 parms['configFile'] = self.parameters['configFile']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 args.append('--rcfile={0}'.format(self.parameters['configFile']))
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 parms['txtReport'] = self.parameters['txtReport']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 parms['htmlReport'] = self.parameters['htmlReport']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 parms['dialogReport'] = self.parameters['dialogReport']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 if self.parameters['htmlReport']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 args.append('--output-format=html')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 elif self.parameters['dialogReport']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 args.append('--output-format=parseable')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 args.append('--report=n')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 else:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 args.append('--output-format=text')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 if self.parameters['reportFile'] != self.defaults['reportFile']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 parms['reportFile'] = self.parameters['reportFile']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 # 2.2 checkers options
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 parms['enableBasic'] = self.parameters['enableBasic']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 parms['enableClasses'] = self.parameters['enableClasses']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 parms['enableDesign'] = self.parameters['enableDesign']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 parms['enableExceptions'] = self.parameters['enableExceptions']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 parms['enableFormat'] = self.parameters['enableFormat']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 parms['enableImports'] = self.parameters['enableImports']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 parms['enableMetrics'] = self.parameters['enableMetrics']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 parms['enableMiscellaneous'] = self.parameters['enableMiscellaneous']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 parms['enableNewstyle'] = self.parameters['enableNewstyle']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 parms['enableSimilarities'] = self.parameters['enableSimilarities']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 parms['enableTypecheck'] = self.parameters['enableTypecheck']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 parms['enableVariables'] = self.parameters['enableVariables']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 parms['enableRPython'] = self.parameters['enableRPython']
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 checkers = []
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 if self.parameters['enableBasic']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 checkers.append('basic')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 if self.parameters['enableClasses']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 checkers.append('classes')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 if self.parameters['enableDesign']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 checkers.append('design')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 if self.parameters['enableExceptions']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 checkers.append('exceptions')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 if self.parameters['enableFormat']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 checkers.append('format')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 if self.parameters['enableImports']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 checkers.append('imports')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 if self.parameters['enableMetrics']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 checkers.append('metrics')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 if self.parameters['enableMiscellaneous']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 checkers.append('miscellaneous')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 if self.parameters['enableNewstyle']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 checkers.append('newstyle')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 if self.parameters['enableSimilarities']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 checkers.append('similarities')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 if self.parameters['enableTypecheck']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 checkers.append('typecheck')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 if self.parameters['enableVariables']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 checkers.append('variables')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 if self.parameters['enableRPython']:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 checkers.append('rpython')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 args.append('--enable={0}'.format(','.join(checkers)))
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 return (args, parms)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 @pyqtSlot()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 def on_configfileButton_clicked(self):
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 Private slot to select the configuration file.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 It displays a file selection dialog to select the configuration file.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 startWith = self.configfileEdit.text()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 if startWith == "":
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 startWith = self.ppath
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 config = E5FileDialog.getOpenFileName(
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 self,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 self.trUtf8("Select configuration file"),
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 startWith,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 self.trUtf8("Configuration Files (*.cfg *.cnf *.rc);;All Files (*)"))
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 if config:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 self.configfileEdit.setText(Utilities.toNativeSeparators(config))
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 @pyqtSlot()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 def on_reportfileButton_clicked(self):
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 Private slot to select the report file.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 It displays a file selection dialog to select the report file.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 report = E5FileDialog.getSaveFileName(
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 self,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 self.trUtf8("Select report file"),
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 self.reportfileEdit.text(),
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 None,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 None,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 QFileDialog.Options(QFileDialog.DontConfirmOverwrite))
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 if report:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 self.reportfileEdit.setText(Utilities.toNativeSeparators(report))
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 def accept(self):
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 Protected slot called by the Ok button.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 It saves the values in the parameters dictionary.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 # get data of general tab
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 self.parameters['configFile'] = self.configfileEdit.text()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 self.parameters['txtReport'] = self.txtOutputButton.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 self.parameters['htmlReport'] = self.htmlOutputButton.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 self.parameters['dialogReport'] = self.dialogOutputButton.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 self.parameters['reportFile'] = self.reportfileEdit.text()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 # get data of checkers tab
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 self.parameters['enableBasic'] = self.basicCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251 self.parameters['enableClasses'] = self.classesCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 self.parameters['enableDesign'] = self.designCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 self.parameters['enableExceptions'] = self.exceptionsCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254 self.parameters['enableFormat'] = self.formatCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 self.parameters['enableImports'] = self.importsCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 self.parameters['enableMetrics'] = self.metricsCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 self.parameters['enableMiscellaneous'] = self.miscellaneousCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 self.parameters['enableNewstyle'] = self.newstyleCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 self.parameters['enableSimilarities'] = self.similaritiesCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 self.parameters['enableTypecheck'] = self.typecheckCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 self.parameters['enableVariables'] = self.variablesCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 self.parameters['enableRPython'] = self.rpythonCheckBox.isChecked()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 # call the accept slot of the base class
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 super().accept()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 ############################################################################
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 ## Methods below are needed to generate a configuration file template
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 ############################################################################
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 @pyqtSlot()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 def on_configButton_clicked(self):
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 Public slot to handle the generation of a sample configuration.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 self.buf = ""
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 self.pylintProc = QProcess()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 args = []
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 self.__ioEncoding = Preferences.getSystem("IOEncoding")
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282 args.append('--generate-rcfile')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 self.pylintProc.readyReadStandardOutput.connect(self.__readStdout)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 self.pylintProc.readyReadStandardError.connect(self.__readStderr)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 self.pylintProc.finished.connect(self.__createConfigDone)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 self.pylintProc.start(self.lint, args)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
289 procStarted = self.pylintProc.waitForStarted()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 if procStarted:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291 e5App().getObject("ViewManager").enableEditorsCheckFocusIn(False)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 else:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 E5MessageBox.critical(self,
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 self.trUtf8('Process Generation Error'),
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 self.trUtf8(
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 'Could not start {0}.<br>'
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 'Ensure that it is in the search path.'
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 ).format(self.lint))
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300 def __createConfigDone(self, exitCode, exitStatus):
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 Private slot to handle the the finished signal of the pylint process.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304 @param exitCode exit code of the process (integer)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 @param exitStatus exit status of the process (QProcess.ExitStatus)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 vm = e5App().getObject("ViewManager")
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308 vm.enableEditorsCheckFocusIn(True)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 if exitStatus == QProcess.NormalExit and exitCode == 0:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 vm.newEditor()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 aw = vm.activeWindow()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 aw.insertAt(self.buf, 0, 0)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 aw.setLanguage('dummy.rc')
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 self.reject()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 def __readStdout(self):
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 Private slot to handle the readyReadStandardOutput signal of the pylint process.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 if self.pylintProc is None:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 return
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 self.pylintProc.setReadChannel(QProcess.StandardOutput)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 while self.pylintProc and self.pylintProc.canReadLine():
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 line = str(self.pylintProc.readLine(), self.__ioEncoding, "replace").rstrip()
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 self.buf += line + os.linesep
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 def __readStderr(self):
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 Private slot to handle the readyReadStandardError signal of the pylint process.
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 """
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 if self.pylintProc is None:
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 return
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 self.pylintProc.setReadChannel(QProcess.StandardError)
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 while self.pylintProc and self.pylintProc.canReadLine():
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 s = 'pylint: ' + str(
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 self.pylintProc.readLine(), self.__ioEncoding, "replace")
1c1ac27f3cf1 Added first set of sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 e5App().getObject("UserInterface").emit(SIGNAL('appendStderr'), s)

eric ide

mercurial