PyLint/PyLintExecDialog.py

Wed, 14 Oct 2020 19:46:35 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 14 Oct 2020 19:46:35 +0200
changeset 89
8acd446fb6e6
parent 85
6124794c3ffe
child 91
9dc14465123e
permissions
-rw-r--r--

Changed code to use the 'open()' context manager.

7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1 # -*- coding: utf-8 -*-
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
2
82
5493d105d329 Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 81
diff changeset
3 # Copyright (c) 2005 - 2020 Detlev Offenbach <detlev@die-offenbachs.de>
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
4 #
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
5
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
6 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
7 Module implementing a dialog to show the results of the PyLint run.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
8 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
9
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
10 import os
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
11
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
12 from PyQt5.QtCore import QTimer, QProcess, Qt, pyqtSlot
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
13 from PyQt5.QtGui import QCursor, QTextCursor
85
6124794c3ffe Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 82
diff changeset
14 from PyQt5.QtWidgets import (
6124794c3ffe Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 82
diff changeset
15 QWidget, QHeaderView, QApplication, QDialogButtonBox, QTreeWidgetItem
6124794c3ffe Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 82
diff changeset
16 )
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
17
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
18 from E5Gui import E5MessageBox, E5FileDialog
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
19 from E5Gui.E5Application import e5App
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
20
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
21 from .Ui_PyLintExecDialog import Ui_PyLintExecDialog
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
22
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
23 import Preferences
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
24 import Utilities
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
25
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
26
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
27 class PyLintExecDialog(QWidget, Ui_PyLintExecDialog):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
28 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
29 Class implementing a dialog to show the results of the PyLint run.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
30
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
31 This class starts a QProcess and displays a dialog that
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
32 shows the results of the PyLint command process.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
33 """
11
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
34 filenameRole = Qt.UserRole + 1
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
35
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
36 def __init__(self, parent=None):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
37 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
38 Constructor
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
39
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
40 @param parent parent widget of this dialog (QWidget)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
41 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
42 QWidget.__init__(self, parent)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
43 self.setupUi(self)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
44
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
45 self.saveButton = self.buttonBox.addButton(
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
46 self.tr("Save Report..."), QDialogButtonBox.ActionRole)
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
47 self.saveButton.setToolTip(
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
48 self.tr("Press to save the report to a file"))
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
49 self.saveButton.setEnabled(False)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
50
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
51 self.refreshButton = self.buttonBox.addButton(
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
52 self.tr("Refresh"), QDialogButtonBox.ActionRole)
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
53 self.refreshButton.setToolTip(self.tr(
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
54 "Press to refresh the result display"))
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
55 self.refreshButton.setEnabled(False)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
56
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
57 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
58 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
59
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
60 self.messageList.header().setSortIndicator(0, Qt.AscendingOrder)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
61
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
62 self.process = None
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
63 self.noResults = True
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
64 self.htmlOutput = False
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
65 self.parsedOutput = False
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
66 self.__scrollPosition = -1 # illegal value
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
67
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
68 self.typeDict = {
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
69 'C': self.tr('Convention'),
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
70 'R': self.tr('Refactor'),
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
71 'W': self.tr('Warning'),
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
72 'E': self.tr('Error'),
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
73 'F': self.tr('Fatal'),
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
74 }
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
75
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
76 def start(self, args, fn, reportFile, ppath):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
77 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
78 Public slot to start PyLint.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
79
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
80 @param args commandline arguments for documentation programPyLint
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
81 (list of strings)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
82 @param fn filename or dirname to be processed by PyLint (string)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
83 @param reportFile filename of file to write the report to (string)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
84 @param ppath project path (string)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
85 @return flag indicating the successful start of the process (boolean)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
86 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
87 self.errorGroup.hide()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
88
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
89 self.args = args[:]
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
90 self.fn = fn
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
91 self.reportFile = reportFile
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
92 self.ppath = ppath
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
93
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
94 self.pathname = os.path.dirname(fn)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
95 self.filename = os.path.basename(fn)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
96
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
97 self.contents.clear()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
98 self.errors.clear()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
99 self.messageList.clear()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
100
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
101 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
102 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
103 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
104 self.saveButton.setEnabled(False)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
105 self.refreshButton.setEnabled(False)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
106
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
107 program = args[0]
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
108 del args[0]
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
109 args.append(self.filename)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
110
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
111 self.process = QProcess()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
112 self.process.setWorkingDirectory(self.pathname)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
113
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
114 self.process.readyReadStandardError.connect(self.__readStderr)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
115 self.process.finished.connect(self.__finish)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
116
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
117 self.__ioEncoding = Preferences.getSystem("IOEncoding")
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
118 if "--output-format=parseable" in args:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
119 self.reportFile = None
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
120 self.contents.hide()
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
121 self.process.readyReadStandardOutput.connect(
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
122 self.__readParseStdout)
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
123 self.parsedOutput = True
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
124 else:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
125 self.process.readyReadStandardOutput.connect(self.__readStdout)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
126 self.messageList.hide()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
127 if "--output-format=html" in args:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
128 self.contents.setAcceptRichText(True)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
129 self.contents.setHtml('<b>Processing your request...</b>')
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
130 self.htmlOutput = True
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
131 else:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
132 self.contents.setAcceptRichText(False)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
133 self.contents.setCurrentFont(
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
134 Preferences.getEditorOtherFonts("MonospacedFont"))
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
135 self.htmlOutput = False
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
136 self.parsedOutput = False
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
137 self.noResults = True
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
138
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
139 self.buf = ""
11
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
140 self.__lastFileItem = None
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
141
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
142 self.process.start(program, args)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
143 procStarted = self.process.waitForStarted()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
144 if not procStarted:
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
145 E5MessageBox.critical(
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
146 self,
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
147 self.tr('Process Generation Error'),
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
148 self.tr(
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
149 'The process {0} could not be started. '
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
150 'Ensure, that it is in the search path.'
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
151 ).format(program))
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
152 else:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
153 self.setCursor(QCursor(Qt.WaitCursor))
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
154 return procStarted
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
155
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
156 def on_buttonBox_clicked(self, button):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
157 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
158 Private slot called by a button of the button box clicked.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
159
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
160 @param button button that was clicked (QAbstractButton)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
161 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
162 if button == self.buttonBox.button(QDialogButtonBox.Close):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
163 self.close()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
164 elif button == self.buttonBox.button(QDialogButtonBox.Cancel):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
165 self.__finish()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
166 elif button == self.saveButton:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
167 self.on_saveButton_clicked()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
168 elif button == self.refreshButton:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
169 self.on_refreshButton_clicked()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
170
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
171 def __finish(self):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
172 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
173 Private slot called when the process finished.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
174
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
175 It is called when the process finished or
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
176 the user pressed the button.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
177 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
178 self.unsetCursor()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
179
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
180 if self.htmlOutput:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
181 self.contents.setHtml(self.buf)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
182 else:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
183 cursor = self.contents.textCursor()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
184 cursor.movePosition(QTextCursor.Start)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
185 self.contents.setTextCursor(cursor)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
186
85
6124794c3ffe Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 82
diff changeset
187 if (
6124794c3ffe Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 82
diff changeset
188 self.process is not None and
6124794c3ffe Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 82
diff changeset
189 self.process.state() != QProcess.NotRunning
6124794c3ffe Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 82
diff changeset
190 ):
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
191 self.process.terminate()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
192 QTimer.singleShot(2000, self.process.kill)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
193 self.process.waitForFinished(3000)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
194
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
195 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
196 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
197 self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
198 self.refreshButton.setEnabled(True)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
199 if self.parsedOutput:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
200 QApplication.processEvents()
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
201 self.messageList.sortItems(
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
202 self.messageList.sortColumn(),
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
203 self.messageList.header().sortIndicatorOrder())
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
204 self.messageList.header().resizeSections(
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
205 QHeaderView.ResizeToContents)
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
206 self.messageList.header().setStretchLastSection(True)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
207 else:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
208 if self.__scrollPosition != -1:
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
209 self.contents.verticalScrollBar().setValue(
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
210 self.__scrollPosition)
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
211
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
212 self.process = None
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
213
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
214 if self.reportFile:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
215 self.__writeReport()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
216 elif not self.parsedOutput:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
217 self.saveButton.setEnabled(True)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
218
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
219 if self.noResults:
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
220 self.__createItem(
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
221 self.tr('No PyLint errors found.'), "", "", "")
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
222
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
223 @pyqtSlot()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
224 def on_refreshButton_clicked(self):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
225 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
226 Private slot to refresh the status display.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
227 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
228 self.__scrollPosition = self.contents.verticalScrollBar().value()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
229 self.start(self.args, self.fn, self.reportFile, self.ppath)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
230
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
231 def __readStdout(self):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
232 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
233 Private slot to handle the readyReadStandardOutput signal.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
234
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
235 It reads the output of the process, formats it and inserts it into
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
236 the contents pane.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
237 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
238 self.process.setReadChannel(QProcess.StandardOutput)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
239
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
240 while self.process.canReadLine():
16
ea2cd48d7338 Fixed a bug causing a traceback because of a forgotten conversion from QByteArray to str.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 15
diff changeset
241 s = str(self.process.readLine(), self.__ioEncoding, 'replace')
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
242 self.buf += s + os.linesep
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
243 if not self.htmlOutput:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
244 self.contents.insertPlainText(s)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
245 self.contents.ensureCursorVisible()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
246
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
247 def __createItem(self, file, line, type_, message):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
248 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
249 Private method to create an entry in the message list.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
250
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
251 @param file filename of file (string)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
252 @param line linenumber of message (integer or string)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
253 @param type_ type of message (string)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
254 @param message message text (string)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
255 """
11
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
256 if self.__lastFileItem is None or self.__lastFileItem.text(0) != file:
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
257 matchFlags = Qt.MatchFixedString
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
258 if not Utilities.isWindowsPlatform():
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
259 matchFlags |= Qt.MatchCaseSensitive
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
260
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
261 itmList = self.messageList.findItems(file, matchFlags)
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
262 if itmList:
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
263 self.__lastFileItem = itmList[0]
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
264 else:
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
265 # It's a new file
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
266 self.__lastFileItem = QTreeWidgetItem(self.messageList, [file])
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
267 self.__lastFileItem.setFirstColumnSpanned(True)
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
268 self.__lastFileItem.setExpanded(True)
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
269 self.__lastFileItem.setData(0, self.filenameRole, file)
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
270
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
271 itm = QTreeWidgetItem(self.__lastFileItem, [str(line), type_, message])
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
272 itm.setTextAlignment(0, Qt.AlignRight)
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
273 itm.setTextAlignment(1, Qt.AlignHCenter)
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
274 itm.setData(0, self.filenameRole, file)
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
275
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
276 def __readParseStdout(self):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
277 """
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
278 Private slot to handle the readyReadStandardOutput signal for
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
279 parseable output.
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
280
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
281 It reads the output of the process, formats it and inserts it into
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
282 the message list pane.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
283 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
284 self.process.setReadChannel(QProcess.StandardOutput)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
285
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
286 while self.process.canReadLine():
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
287 s = str(self.process.readLine(), self.__ioEncoding, 'replace')
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
288 if s:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
289 try:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
290 if Utilities.isWindowsPlatform():
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
291 drive, s = os.path.splitdrive(s)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
292 fname, lineno, fullmessage = s.split(':')
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
293 fname = drive + fname
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
294 else:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
295 fname, lineno, fullmessage = s.split(':')
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
296 type_, message = fullmessage.strip().split(']', 1)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
297 type_ = type_.strip()[1:].split(',', 1)[0]
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
298 message = message.strip()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
299 if type_ and type_[0] in self.typeDict:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
300 if len(type_) == 1:
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
301 self.__createItem(
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
302 fname, lineno, self.typeDict[type_], message)
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
303 else:
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
304 self.__createItem(
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
305 fname, lineno, "{0} {1}".format(
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
306 self.typeDict[type_[0]], type_[1:]),
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
307 message)
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
308 self.noResults = False
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
309 except ValueError:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
310 continue
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
311
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
312 def __readStderr(self):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
313 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
314 Private slot to handle the readyReadStandardError signal.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
315
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
316 It reads the error output of the process and inserts it into the
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
317 error pane.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
318 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
319 self.process.setReadChannel(QProcess.StandardError)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
320
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
321 while self.process.canReadLine():
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
322 self.errorGroup.show()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
323 s = str(self.process.readLine(), self.__ioEncoding, 'replace')
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
324 self.errors.insertPlainText(s)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
325 self.errors.ensureCursorVisible()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
326
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
327 def on_messageList_itemActivated(self, itm, column):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
328 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
329 Private slot to handle the itemActivated signal of the message list.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
330
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
331 @param itm The message item that was activated (QTreeWidgetItem)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
332 @param column column the item was activated in (integer)
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
333 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
334 if self.noResults:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
335 return
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
336
11
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
337 if itm.parent():
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
338 fn = os.path.join(self.pathname, itm.data(0, self.filenameRole))
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
339 lineno = int(itm.text(0))
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
340
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
341 vm = e5App().getObject("ViewManager")
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
342 vm.openSourceFile(fn, lineno)
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
343 editor = vm.getOpenEditor(fn)
33
b4cb9692bd3d Fixed a bug causing a traceback when double clicking an entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
344 editor.toggleWarning(
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
345 lineno, 0, True,
11
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
346 "{0} | {1}".format(itm.text(1), itm.text(2)))
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
347 else:
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
348 fn = os.path.join(self.pathname, itm.data(0, self.filenameRole))
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
349 vm = e5App().getObject("ViewManager")
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
350 vm.openSourceFile(fn)
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
351 editor = vm.getOpenEditor(fn)
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
352 for index in range(itm.childCount()):
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
353 citm = itm.child(index)
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
354 lineno = int(citm.text(0))
33
b4cb9692bd3d Fixed a bug causing a traceback when double clicking an entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
355 editor.toggleWarning(
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
356 lineno, 0, True,
11
a8e908641c20 Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
357 "{0} | {1}".format(citm.text(1), citm.text(2)))
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
358
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
359 def __writeReport(self):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
360 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
361 Private slot to write the report to a report file.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
362 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
363 self.reportFile = self.reportFile
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
364 if os.path.exists(self.reportFile):
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
365 res = E5MessageBox.warning(
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
366 self,
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
367 self.tr("PyLint Report"),
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
368 self.tr(
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
369 """<p>The PyLint report file <b>{0}</b> already"""
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
370 """ exists.</p>""")
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
371 .format(self.reportFile),
20
8ca799e4b7e4 Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
372 E5MessageBox.StandardButtons(
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
373 E5MessageBox.Cancel |
20
8ca799e4b7e4 Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
374 E5MessageBox.Ignore),
8ca799e4b7e4 Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
375 E5MessageBox.Cancel)
8ca799e4b7e4 Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
376 if res == E5MessageBox.Cancel:
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
377 return
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
378
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
379 try:
22
68beeb22dade Py2 compatibility, pylint script based on project language.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 20
diff changeset
380 import codecs
89
8acd446fb6e6 Changed code to use the 'open()' context manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
381 with open(self.reportFile, 'wb') as f:
8acd446fb6e6 Changed code to use the 'open()' context manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
382 f.write(codecs.BOM_UTF8)
8acd446fb6e6 Changed code to use the 'open()' context manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
383 f.write(self.buf.encode('utf-8'))
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
384 except IOError as why:
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
385 E5MessageBox.critical(
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
386 self, self.tr('PyLint Report'),
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
387 self.tr('<p>The PyLint report file <b>{0}</b> could not'
60
971dd1b69f5b Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 59
diff changeset
388 ' be written.<br>Reason: {1}</p>')
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
389 .format(self.reportFile, str(why)))
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
390
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
391 @pyqtSlot()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
392 def on_saveButton_clicked(self):
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
393 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
394 Private slot to save the report to a file.
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
395 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
396 if self.htmlOutput:
60
971dd1b69f5b Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 59
diff changeset
397 fileFilter = self.tr("HTML Files (*.html);;All Files (*)")
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
398 else:
60
971dd1b69f5b Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 59
diff changeset
399 fileFilter = self.tr("Text Files (*.txt);;All Files (*)")
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
400
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
401 self.reportFile = E5FileDialog.getSaveFileName(
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
402 self,
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
403 self.tr("PyLint Report"),
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
404 self.ppath,
60
971dd1b69f5b Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 59
diff changeset
405 fileFilter,
20
8ca799e4b7e4 Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 16
diff changeset
406 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
407 if self.reportFile:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
408 self.__writeReport()

eric ide

mercurial