PyLintInterface/PyLintExecDialog.py

Tue, 10 Dec 2024 15:48:50 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:48:50 +0100
branch
eric7
changeset 119
ebb5306aeb60
parent 116
71d3a2e48265
permissions
-rw-r--r--

Updated copyright for 2025.

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
119
ebb5306aeb60 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 116
diff changeset
3 # Copyright (c) 2005 - 2025 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
112
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
12 from PyQt6.QtCore import QProcess, Qt, QTimer, pyqtSlot
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
13 from PyQt6.QtGui import QTextCursor
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
14 from PyQt6.QtWidgets import (
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
15 QApplication,
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
16 QDialogButtonBox,
112
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
17 QHeaderView,
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
18 QTreeWidgetItem,
112
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
19 QWidget,
85
6124794c3ffe Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 82
diff changeset
20 )
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
21
112
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
22 from eric7 import Preferences
108
b452f300e6c7 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
23 from eric7.EricGui.EricOverrideCursor import EricOverrideCursorProcess
112
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
24 from eric7.EricWidgets import EricFileDialog, EricMessageBox
108
b452f300e6c7 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 107
diff changeset
25 from eric7.EricWidgets.EricApplication import ericApp
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
26
112
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
27 try:
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
28 from eric7.SystemUtilities.OSUtilities import isWindowsPlatform
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
29 except ImportError:
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
30 # imports for eric < 23.1
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
31 from eric7.Utilities import isWindowsPlatform
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
32
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
33 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
34
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
35
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
36 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
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 Class implementing a dialog to show the results of the PyLint run.
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
39
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
40 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
41 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
42 """
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
43
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
44 filenameRole = Qt.ItemDataRole.UserRole + 1
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
45
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
46 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
47 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
48 Constructor
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
49
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
50 @param parent parent widget of this dialog
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
51 @type QWidget
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
52 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
53 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
54 self.setupUi(self)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
55
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
56 self.saveButton = self.buttonBox.addButton(
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
57 self.tr("Save Report..."), QDialogButtonBox.ButtonRole.ActionRole
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
58 )
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
59 self.saveButton.setToolTip(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
60 self.saveButton.setEnabled(False)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
61
7
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.refreshButton = self.buttonBox.addButton(
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
63 self.tr("Refresh"), QDialogButtonBox.ButtonRole.ActionRole
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
64 )
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
65 self.refreshButton.setToolTip(self.tr("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
66 self.refreshButton.setEnabled(False)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
67
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
68 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(False)
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
69 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setDefault(True)
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
70
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
71 self.messageList.header().setSortIndicator(0, Qt.SortOrder.AscendingOrder)
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
72
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
73 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
74 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
75 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
76 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
77 self.__scrollPosition = -1 # illegal value
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
78
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
79 self.typeDict = {
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
80 "C": self.tr("Convention"),
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
81 "R": self.tr("Refactor"),
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
82 "W": self.tr("Warning"),
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
83 "E": self.tr("Error"),
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
84 "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
85 }
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
86
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
87 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
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 Public slot to start PyLint.
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
90
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
91 @param args commandline arguments for documentation programPyLint
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
92 @type list of str
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
93 @param fn filename or dirname to be processed by PyLint
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
94 @type str
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
95 @param reportFile filename of file to write the report to
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
96 @type str
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
97 @param ppath project path
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
98 @type str
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
99 @return flag indicating the successful start of the process
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
100 @rtype bool
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
101 """
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.errorGroup.hide()
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
103
7
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.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
105 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
106 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
107 self.ppath = ppath
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
108
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
109 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
110 self.filename = os.path.basename(fn)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
111
7
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.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
113 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
114 self.messageList.clear()
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
115
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
116 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(False)
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
117 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(True)
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
118 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setDefault(True)
7
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.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
120 self.refreshButton.setEnabled(False)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
121
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
122 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
123 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
124 args.append(self.filename)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
125
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
126 self.process = EricOverrideCursorProcess()
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
127 self.process.setWorkingDirectory(self.pathname)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
128
7
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.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
130 self.process.finished.connect(self.__finish)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
131
7
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.__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
133 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
134 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
135 self.contents.hide()
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
136 self.process.readyReadStandardOutput.connect(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
137 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
138 else:
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.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
140 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
141 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
142 self.contents.setAcceptRichText(True)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
143 self.contents.setHtml("<b>Processing your request...</b>")
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
144 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
145 else:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
146 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
147 self.contents.setCurrentFont(
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
148 Preferences.getEditorOtherFonts("MonospacedFont")
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
149 )
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
150 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
151 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
152 self.noResults = True
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
153
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
154 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
155 self.__lastFileItem = None
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
156
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
157 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
158 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
159 if not procStarted:
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
160 EricMessageBox.critical(
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
161 self,
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
162 self.tr("Process Generation Error"),
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
163 self.tr(
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
164 "The process {0} could not be started. "
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
165 "Ensure, that it is in the search path."
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
166 ).format(program),
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
167 )
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
168 return procStarted
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
169
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
170 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
171 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
172 Private slot called by a button of the button box clicked.
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
173
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
174 @param button button that was clicked
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
175 @type QAbstractButton
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
176 """
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
177 if button == self.buttonBox.button(QDialogButtonBox.StandardButton.Close):
7
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.close()
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
179 elif button == self.buttonBox.button(QDialogButtonBox.StandardButton.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
180 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
181 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
182 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
183 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
184 self.on_refreshButton_clicked()
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
185
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
186 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
187 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
188 Private slot called when the process finished.
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
189
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
190 It is called when the process finished or the user pressed the button.
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 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
192 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
193 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
194 else:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
195 cursor = self.contents.textCursor()
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
196 cursor.movePosition(QTextCursor.MoveOperation.Start)
7
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.contents.setTextCursor(cursor)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
198
85
6124794c3ffe Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 82
diff changeset
199 if (
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
200 self.process is not None
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
201 and self.process.state() != QProcess.ProcessState.NotRunning
85
6124794c3ffe Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 82
diff changeset
202 ):
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
203 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
204 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
205 self.process.waitForFinished(3000)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
206
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
207 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(True)
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
208 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(False)
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
209 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True)
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
210 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
211 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
212 QApplication.processEvents()
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
213 self.messageList.sortItems(
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
214 self.messageList.sortColumn(),
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
215 self.messageList.header().sortIndicatorOrder(),
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
216 )
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
217 self.messageList.header().resizeSections(
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
218 QHeaderView.ResizeMode.ResizeToContents
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
219 )
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
220 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
221 else:
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
222 if self.__scrollPosition != -1:
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
223 self.contents.verticalScrollBar().setValue(self.__scrollPosition)
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
224
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
225 self.process = None
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
226
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
227 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
228 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
229 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
230 self.saveButton.setEnabled(True)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
231
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
232 if self.noResults:
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
233 self.__createItem(self.tr("No PyLint errors found."), "", "", "")
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
234
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
235 @pyqtSlot()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
236 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
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 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
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 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
241 self.start(self.args, self.fn, self.reportFile, self.ppath)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
242
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
243 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
244 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
245 Private slot to handle the readyReadStandardOutput signal.
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
246
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
247 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
248 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
249 """
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
250 self.process.setReadChannel(QProcess.ProcessChannel.StandardOutput)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
251
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
252 while self.process.canReadLine():
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
253 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
254 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
255 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
256 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
257 self.contents.ensureCursorVisible()
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
258
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
259 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
260 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
261 Private method to create an entry in the message list.
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
262
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
263 @param file filename of file
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
264 @type str
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
265 @param line linenumber of message
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
266 @type int or str
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
267 @param type_ type of message
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
268 @type str
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
269 @param message message text
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
270 @type str
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
271 """
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
272 if self.__lastFileItem is None or self.__lastFileItem.text(0) != file:
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
273 matchFlags = Qt.MatchFlag.MatchFixedString
112
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
274 if not isWindowsPlatform():
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
275 matchFlags |= Qt.MatchFlag.MatchCaseSensitive
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
276
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
277 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
278 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
279 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
280 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
281 # 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
282 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
283 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
284 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
285 self.__lastFileItem.setData(0, self.filenameRole, file)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
286
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
287 itm = QTreeWidgetItem(self.__lastFileItem, [str(line), type_, message])
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
288 itm.setTextAlignment(0, Qt.AlignmentFlag.AlignRight)
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
289 itm.setTextAlignment(1, Qt.AlignmentFlag.AlignHCenter)
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
290 itm.setData(0, self.filenameRole, file)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
291
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
292 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
293 """
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
294 Private slot to handle the readyReadStandardOutput signal for
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
295 parseable output.
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
296
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
297 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
298 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
299 """
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
300 self.process.setReadChannel(QProcess.ProcessChannel.StandardOutput)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
301
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
302 while self.process.canReadLine():
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
303 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
304 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
305 try:
112
7ece4ae4b274 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 108
diff changeset
306 if isWindowsPlatform():
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
307 drive, s = os.path.splitdrive(s)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
308 fname, lineno, fullmessage = s.split(":")
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
309 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
310 else:
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
311 fname, lineno, fullmessage = s.split(":")
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
312 type_, message = fullmessage.strip().split("]", 1)
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
313 type_ = type_.strip()[1:].split(",", 1)[0]
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
314 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
315 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
316 if len(type_) == 1:
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
317 self.__createItem(
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
318 fname, lineno, self.typeDict[type_], message
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
319 )
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
320 else:
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
321 self.__createItem(
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
322 fname,
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
323 lineno,
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
324 "{0} {1}".format(self.typeDict[type_[0]], type_[1:]),
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
325 message,
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
326 )
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
327 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
328 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
329 continue
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
330
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
331 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
332 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
333 Private slot to handle the readyReadStandardError signal.
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
334
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
335 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
336 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
337 """
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
338 self.process.setReadChannel(QProcess.ProcessChannel.StandardError)
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
339
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
340 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
341 self.errorGroup.show()
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
342 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
343 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
344 self.errors.ensureCursorVisible()
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
345
116
71d3a2e48265 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 115
diff changeset
346 def on_messageList_itemActivated(self, itm, column): # noqa: U100
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
347 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
348 Private slot to handle the itemActivated signal of the message list.
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
349
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
350 @param itm The message item that was activated
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
351 @type QTreeWidgetItem
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
352 @param column column the item was activated in
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
353 @type int
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
354 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
355 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
356 return
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
357
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
358 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
359 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
360 lineno = int(itm.text(0))
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
361
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
362 vm = ericApp().getObject("ViewManager")
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
363 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
364 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
365 editor.toggleWarning(
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
366 lineno, 0, True, "{0} | {1}".format(itm.text(1), itm.text(2))
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
367 )
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
368 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
369 fn = os.path.join(self.pathname, itm.data(0, self.filenameRole))
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
370 vm = ericApp().getObject("ViewManager")
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
371 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
372 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
373 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
374 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
375 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
376 editor.toggleWarning(
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
377 lineno, 0, True, "{0} | {1}".format(citm.text(1), citm.text(2))
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
378 )
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
379
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
380 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
381 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
382 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
383 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
384 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
385 if os.path.exists(self.reportFile):
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
386 res = EricMessageBox.warning(
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
387 self,
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
388 self.tr("PyLint Report"),
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
389 self.tr(
28
1dae294006e8 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 24
diff changeset
390 """<p>The PyLint report file <b>{0}</b> already"""
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
391 """ exists.</p>"""
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
392 ).format(self.reportFile),
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
393 EricMessageBox.Cancel | EricMessageBox.Ignore,
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
394 EricMessageBox.Cancel,
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
395 )
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
396 if res == EricMessageBox.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
397 return
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
398
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
399 try:
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
400 with open(self.reportFile, "w") as f:
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
401 f.write(self.buf)
93
5415a36586c7 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 91
diff changeset
402 except OSError as why:
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
403 EricMessageBox.critical(
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
404 self,
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
405 self.tr("PyLint Report"),
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
406 self.tr(
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
407 "<p>The PyLint report file <b>{0}</b> could not"
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
408 " be written.<br>Reason: {1}</p>"
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
409 ).format(self.reportFile, str(why)),
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
410 )
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
411
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
412 @pyqtSlot()
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
413 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
414 """
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
415 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
416 """
95
50eba81e4a9f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
417 fileFilter = (
50eba81e4a9f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
418 self.tr("HTML Files (*.html);;All Files (*)")
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
419 if self.htmlOutput
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
420 else self.tr("Report Files (*.rpt);;Text Files (*.txt);;All Files (*)")
95
50eba81e4a9f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
421 )
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
422
98
ab4aabca55ec Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 95
diff changeset
423 self.reportFile = EricFileDialog.getSaveFileName(
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
424 self,
38
bf234b8941d9 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 33
diff changeset
425 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
426 self.ppath,
60
971dd1b69f5b Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 59
diff changeset
427 fileFilter,
107
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
428 EricFileDialog.DontConfirmOverwrite,
3bd2806a6ada Reformatted sources with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 101
diff changeset
429 )
7
cda98d0e93e7 Added a page to the config dialog to enable and diable messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
430 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
431 self.__writeReport()

eric ide

mercurial