PluginMetricsRadon.py

Sun, 22 Nov 2020 16:19:47 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 22 Nov 2020 16:19:47 +0100
changeset 73
4613ae4283ed
parent 71
1e69db534be1
child 75
e7ed383ac6a7
permissions
-rw-r--r--

Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.

2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1 # -*- coding: utf-8 -*-
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
2
68
69445de59a30 Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 63
diff changeset
3 # Copyright (c) 2015 - 2020 Detlev Offenbach <detlev@die-offenbachs.de>
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
4 #
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
5
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
6 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
7 Module implementing the radon code metrics plug-in.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
8 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
9
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
10 import os
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
11
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
12 from PyQt5.QtCore import pyqtSignal, QObject, QTranslator
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
13 from PyQt5.QtWidgets import QAction
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
14
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
15 from E5Gui.E5Application import e5App
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
16 from E5Gui.E5Action import E5Action
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
17 from E5Gui import E5MessageBox
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
18
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
19 from Project.ProjectBrowserModel import ProjectBrowserFileItem
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
20
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
21 import Preferences
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
22 from Utilities import determinePythonVersion
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
23
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
24 # Start-Of-Header
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
25 name = "Radon Metrics Plugin"
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
26 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
27 autoactivate = True
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
28 deactivateable = True
73
4613ae4283ed Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 71
diff changeset
29 version = "3.0.2"
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
30 className = "RadonMetricsPlugin"
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
31 packageName = "RadonMetrics"
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
32 shortDescription = "Code metrics plugin using radon package"
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
33 longDescription = (
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
34 """This plug-in implements dialogs to show various code metrics. These"""
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
35 """ are determined using the radon code metrics package. 'Raw code"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
36 """ metrics', 'Maintainability Index' and 'McCabe Complexity' can be"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
37 """ requested through different dialogs for one file or the whole"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
38 """ project."""
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
39 )
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
40 needsRestart = False
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
41 pyqtApi = 2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
42 # End-Of-Header
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
43
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
44 error = ""
42
04457b4ceda5 Updated copyright for 2017.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 40
diff changeset
45
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
46
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
47 class RadonMetricsPlugin(QObject):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
48 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
49 Class implementing the radon code metrics plug-in.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
50
4
9ac53bf21182 Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
51 @signal metricsDone(str, dict) emitted when the code metrics were
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
52 determined for a file
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
53 @signal maintainabilityIndexDone(str, dict) emitted when the
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
54 maintainability index was determined for a file
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
55 @signal complexityDone(str, dict) emitted when the
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
56 cyclomatic complexity was determined for a file
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
57 @signal error(str, str, str) emitted in case of an error
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
58 @signal batchFinished(str) emitted when a code metrics batch is done
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
59 """
4
9ac53bf21182 Continued implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
60 metricsDone = pyqtSignal(str, dict)
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
61 maintainabilityIndexDone = pyqtSignal(str, dict)
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
62 complexityDone = pyqtSignal(str, dict)
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
63 error = pyqtSignal(str, str, str)
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
64 batchFinished = pyqtSignal(str)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
65
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
66 def __init__(self, ui):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
67 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
68 Constructor
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
69
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
70 @param ui reference to the user interface object
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
71 @type UI.UserInterface
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
72 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
73 super(RadonMetricsPlugin, self).__init__(ui)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
74 self.__ui = ui
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
75 self.__initialize()
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
76
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
77 self.backgroundService = e5App().getObject("BackgroundService")
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
78
3
7150ed890fd5 Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
79 path = os.path.join(os.path.dirname(__file__), packageName)
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
80
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
81 # raw code metrics calculation
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
82 self.backgroundService.serviceConnect(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
83 'radon_raw', 'Python3', path, 'CodeMetricsCalculator',
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
84 lambda fn, res: self.metricsCalculationDone("raw", fn, res),
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
85 onErrorCallback=lambda fx, lang, fn, msg: self.serviceErrorPy3(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
86 "raw", fx, lang, fn, msg),
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
87 onBatchDone=lambda fx, lang: self.batchJobDone(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
88 "raw", fx, lang))
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
89
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
90 # maintainability index calculation
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
91 self.backgroundService.serviceConnect(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
92 'radon_mi', 'Python3', path, 'MaintainabilityIndexCalculator',
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
93 lambda fn, res: self.metricsCalculationDone("mi", fn, res),
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
94 onErrorCallback=lambda fx, lang, fn, msg: self.serviceErrorPy3(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
95 "mi", fx, lang, fn, msg),
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
96 onBatchDone=lambda fx, lang: self.batchJobDone(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
97 "mi", fx, lang))
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
98
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
99 # cyclomatic complexity
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
100 self.backgroundService.serviceConnect(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
101 'radon_cc', 'Python3', path, 'CyclomaticComplexityCalculator',
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
102 lambda fn, res: self.metricsCalculationDone("cc", fn, res),
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
103 onErrorCallback=lambda fx, lang, fn, msg: self.serviceErrorPy3(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
104 "cc", fx, lang, fn, msg),
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
105 onBatchDone=lambda fx, lang: self.batchJobDone(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
106 "cc", fx, lang))
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
107
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
108 self.queuedBatches = {
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
109 "raw": [],
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
110 "mi": [],
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
111 "cc": [],
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
112 }
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
113 self.batchesFinished = {
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
114 "raw": True,
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
115 "mi": True,
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
116 "cc": True,
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
117 }
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
118
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
119 self.__translator = None
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
120 self.__loadTranslator()
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
121
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
122 def __serviceError(self, type_, fn, msg):
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
123 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
124 Private slot handling service errors.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
125
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
126 @param type_ type of the calculated metrics
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
127 @type str, one of ["raw", "mi", "cc"]
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
128 @param fn file name
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
129 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
130 @param msg message text
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
131 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
132 """
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
133 self.error.emit(type_, fn, msg)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
134
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
135 def serviceErrorPy3(self, type_, fx, lang, fn, msg):
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
136 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
137 Public slot handling service errors for Python 3.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
138
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
139 @param type_ type of the calculated metrics
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
140 @type str, one of ["raw", "mi", "cc"]
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
141 @param fx service name
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
142 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
143 @param lang language
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
144 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
145 @param fn file name
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
146 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
147 @param msg message text
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
148 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
149 """
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
150 if fx in ['radon_' + type_, 'batch_radon_' + type_]:
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
151 if fx == 'radon_' + type_:
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
152 self.__serviceError(type_, fn, msg)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
153 else:
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
154 self.__serviceError(type_, self.tr("Python 3 batch job"), msg)
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
155 self.batchJobDone(type_, fx, lang)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
156
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
157 def batchJobDone(self, type_, fx, lang):
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
158 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
159 Public slot handling the completion of a batch job.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
160
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
161 @param type_ type of the calculated metrics
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
162 @type str, one of ["raw", "mi", "cc"]
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
163 @param fx service name
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
164 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
165 @param lang language
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
166 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
167 """
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
168 if fx in ['radon_' + type_, 'batch_radon_' + type_]:
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
169 if lang in self.queuedBatches[type_]:
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
170 self.queuedBatches[type_].remove(lang)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
171 # prevent sending the signal multiple times
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
172 if (
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
173 len(self.queuedBatches[type_]) == 0 and
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
174 not self.batchesFinished[type_]
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
175 ):
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
176 self.batchFinished.emit(type_)
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
177 self.batchesFinished[type_] = True
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
178
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
179 def metricsCalculationDone(self, type_, filename, result):
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
180 """
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
181 Public slot to dispatch the result.
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
182
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
183 @param type_ type of the calculated metrics
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
184 @type str, one of ["raw", "mi", "cc"]
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
185 @param filename name of the file the results belong to
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
186 @type str
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
187 @param result result dictionary
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
188 @type dict
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
189 """
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
190 if type_ == "raw":
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
191 self.metricsDone.emit(filename, result)
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
192 elif type_ == "mi":
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
193 self.maintainabilityIndexDone.emit(filename, result)
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
194 elif type_ == "cc":
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
195 self.complexityDone.emit(filename, result)
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
196 else:
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
197 self.error.emit(
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
198 type_,
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
199 filename,
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
200 self.tr("Unknown metrics result received ({0}).").format(
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
201 type_)
9
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
202 )
7f6e04213998 Continued implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
203
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
204 def __initialize(self):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
205 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
206 Private slot to (re)initialize the plugin.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
207 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
208 self.__projectRawMetricsDialog = None
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
209 self.__projectMIDialog = None
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
210 self.__projectCCDialog = None
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
211 self.__projectMetricsActs = []
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
212 self.__projectSeparatorActs = []
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
213
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
214 self.__projectBrowserRawMetricsDialog = None
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
215 self.__projectBrowserMIDialog = None
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
216 self.__projectBrowserCCDialog = None
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
217 self.__projectBrowserMenu = None
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
218 self.__projectBrowserMetricsActs = []
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
219 self.__projectBrowserSeparatorActs = []
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
220
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
221 self.__editors = []
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
222 self.__editorRawMetricsDialog = None
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
223 self.__editorMIDialog = None
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
224 self.__editorCCDialog = None
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
225 self.__editorMetricsActs = []
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
226 self.__editorSeparatorActs = []
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
227
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
228 def rawMetrics(self, lang, filename, source):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
229 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
230 Public method to prepare raw code metrics calculation on one Python
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
231 source file.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
232
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
233 @param lang language of the file or None to determine by internal
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
234 algorithm
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
235 @type str or None
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
236 @param filename source filename
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
237 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
238 @param source string containing the code
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
239 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
240 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
241 if lang is None:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
242 lang = 'Python{0}'.format(determinePythonVersion(filename, source))
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
243 if lang == 'Python3':
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
244 self.backgroundService.enqueueRequest(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
245 'radon_raw', lang, filename, [source])
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
246
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
247 def rawMetricsBatch(self, argumentsList):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
248 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
249 Public method to prepare raw code metrics calculation on multiple
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
250 Python source files.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
251
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
252 @param argumentsList list of arguments tuples with each tuple
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
253 containing filename and source
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
254 @type (str, str)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
255 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
256 data = {
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
257 "Python3": [],
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
258 }
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
259 for filename, source in argumentsList:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
260 lang = 'Python{0}'.format(determinePythonVersion(filename, source))
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
261 if lang == 'Python3':
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
262 data[lang].append((filename, source))
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
263
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
264 self.queuedBatches["raw"] = []
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
265 if data[lang]:
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
266 self.queuedBatches["raw"].append('Python3')
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
267 self.backgroundService.enqueueRequest(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
268 'batch_radon_raw', 'Python3', "", data['Python3'])
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
269 self.batchesFinished["raw"] = False
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
270
3
7150ed890fd5 Started implementing the raw code metrics stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
271 def cancelRawMetricsBatch(self):
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
272 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
273 Public method to cancel all batch jobs.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
274 """
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
275 self.backgroundService.requestCancel('batch_radon_raw', 'Python3')
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
276
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
277 def maintainabilityIndex(self, lang, filename, source):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
278 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
279 Public method to prepare maintainability index calculation on one
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
280 Python source file.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
281
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
282 @param lang language of the file or None to determine by internal
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
283 algorithm
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
284 @type str or None
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
285 @param filename source filename
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
286 @type str
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
287 @param source string containing the code
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
288 @type str
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
289 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
290 if lang is None:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
291 lang = 'Python{0}'.format(determinePythonVersion(filename, source))
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
292 if lang == 'Python3':
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
293 self.backgroundService.enqueueRequest(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
294 'radon_mi', lang, filename, [source])
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
295
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
296 def maintainabilityIndexBatch(self, argumentsList):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
297 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
298 Public method to prepare maintainability index calculation on multiple
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
299 Python source files.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
300
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
301 @param argumentsList list of arguments tuples with each tuple
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
302 containing filename and source
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
303 @type (str, str)
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
304 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
305 data = {
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
306 "Python3": [],
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
307 }
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
308 for filename, source in argumentsList:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
309 lang = 'Python{0}'.format(determinePythonVersion(filename, source))
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
310 if lang == 'Python3':
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
311 data[lang].append((filename, source))
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
312
10
8b1920a22df3 Changed the logic for the various code metrics calculations to be separate services and fine tuned the dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9
diff changeset
313 self.queuedBatches["mi"] = []
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
314 if data['Python3']:
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
315 self.queuedBatches["mi"].append('Python3')
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
316 self.backgroundService.enqueueRequest(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
317 'batch_radon_mi', 'Python3', "", data['Python3'])
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
318 self.batchesFinished["mi"] = False
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
319
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
320 def cancelMaintainabilityIndexBatch(self):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
321 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
322 Public method to cancel all batch jobs.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
323 """
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
324 self.backgroundService.requestCancel('batch_radon_mi', 'Python3')
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
325
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
326 def cyclomaticComplexity(self, lang, filename, source):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
327 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
328 Public method to prepare cyclomatic complexity calculation on one
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
329 Python source file.
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
330
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
331 @param lang language of the file or None to determine by internal
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
332 algorithm
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
333 @type str or None
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
334 @param filename source filename
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
335 @type str
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
336 @param source string containing the code
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
337 @type str
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
338 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
339 if lang is None:
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
340 lang = 'Python{0}'.format(determinePythonVersion(filename, source))
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
341 if lang == 'Python3':
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
342 self.backgroundService.enqueueRequest(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
343 'radon_cc', lang, filename, [source])
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
344
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
345 def cyclomaticComplexityBatch(self, argumentsList):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
346 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
347 Public method to prepare cyclomatic complexity calculation on multiple
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
348 Python source files.
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
349
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
350 @param argumentsList list of arguments tuples with each tuple
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
351 containing filename and source
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
352 @type (str, str)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
353 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
354 data = {
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
355 "Python3": [],
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
356 }
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
357 for filename, source in argumentsList:
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
358 lang = 'Python{0}'.format(determinePythonVersion(filename, source))
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
359 if lang == 'Python3':
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
360 data[lang].append((filename, source))
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
361
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
362 self.queuedBatches["raw"] = []
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
363 if data['Python3']:
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
364 self.queuedBatches["cc"].append('Python3')
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
365 self.backgroundService.enqueueRequest(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
366 'batch_radon_cc', 'Python3', "", data['Python3'])
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
367 self.batchesFinished["cc"] = False
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
368
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
369 def cancelComplexityBatch(self):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
370 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
371 Public method to cancel all batch jobs.
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
372 """
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
373 self.backgroundService.requestCancel('batch_radon_cc', 'Python3')
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
374
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
375 def activate(self):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
376 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
377 Public method to activate this plug-in.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
378
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
379 @return tuple of None and activation status
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
380 @rtype (None, bool)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
381 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
382 global error
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
383 error = "" # clear previous error
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
384
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
385 # Project menu actions
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
386 menu = e5App().getObject("Project").getMenu("Show")
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
387 if menu:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
388 if not menu.isEmpty():
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
389 act = menu.addSeparator()
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
390 self.__projectSeparatorActs.append(act)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
391
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
392 # header action
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
393 act = QAction(self.tr("Radon"), self)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
394 font = act.font()
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
395 font.setBold(True)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
396 act.setFont(font)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
397 act.triggered.connect(self.__showRadonVersion)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
398 menu.addAction(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
399 self.__projectMetricsActs.append(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
400
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
401 act = E5Action(
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
402 self.tr('Code Metrics'),
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
403 self.tr('Code &Metrics...'), 0, 0,
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
404 self, 'project_show_radon_raw')
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
405 act.setStatusTip(
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
406 self.tr('Show raw code metrics.'))
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
407 act.setWhatsThis(self.tr(
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
408 """<b>Code Metrics...</b>"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
409 """<p>This calculates raw code metrics of Python files"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
410 """ and shows the amount of lines of code, logical lines"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
411 """ of code, source lines of code, comment lines,"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
412 """ multi-line strings and blank lines.</p>"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
413 ))
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
414 act.triggered.connect(self.__projectRawMetrics)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
415 menu.addAction(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
416 self.__projectMetricsActs.append(act)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
417
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
418 act = E5Action(
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
419 self.tr('Maintainability Index'),
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
420 self.tr('Maintainability &Index...'), 0, 0,
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
421 self, 'project_show_radon_mi')
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
422 act.setStatusTip(
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
423 self.tr('Show the maintainability index for Python files.'))
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
424 act.setWhatsThis(self.tr(
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
425 """<b>Maintainability Index...</b>"""
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
426 """<p>This calculates the maintainability index of Python"""
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
427 """ files and shows it together with a ranking.</p>"""
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
428 ))
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
429 act.triggered.connect(self.__projectMaintainabilityIndex)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
430 menu.addAction(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
431 self.__projectMetricsActs.append(act)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
432
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
433 act = E5Action(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
434 self.tr('Cyclomatic Complexity'),
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
435 self.tr('Cyclomatic &Complexity...'), 0, 0,
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
436 self, 'project_show_radon_cc')
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
437 act.setStatusTip(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
438 self.tr('Show the cyclomatic complexity for Python files.'))
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
439 act.setWhatsThis(self.tr(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
440 """<b>Cyclomatic Complexity...</b>"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
441 """<p>This calculates the cyclomatic complexity of Python"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
442 """ files and shows it together with a ranking.</p>"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
443 ))
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
444 act.triggered.connect(self.__projectCyclomaticComplexity)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
445 menu.addAction(act)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
446 self.__projectMetricsActs.append(act)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
447
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
448 act = menu.addSeparator()
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
449 self.__projectSeparatorActs.append(act)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
450
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
451 e5App().getObject("Project").addE5Actions(
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
452 self.__projectMetricsActs[1:])
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
453
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
454 # Editor menu actions
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
455 act = QAction(self)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
456 act.setSeparator(True)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
457 self.__editorSeparatorActs.append(act)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
458 act = QAction(self)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
459 act.setSeparator(True)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
460 self.__editorSeparatorActs.append(act)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
461
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
462 # header action
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
463 act = QAction(self.tr("Radon"), self)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
464 font = act.font()
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
465 font.setBold(True)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
466 act.setFont(font)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
467 act.triggered.connect(self.__showRadonVersion)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
468 self.__editorMetricsActs.append(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
469
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
470 act = E5Action(
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
471 self.tr('Code Metrics'),
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
472 self.tr('Code &Metrics...'), 0, 0,
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
473 self, "")
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
474 act.setStatusTip(
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
475 self.tr('Show raw code metrics.'))
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
476 act.setWhatsThis(self.tr(
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
477 """<b>Code Metrics...</b>"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
478 """<p>This calculates raw code metrics of Python files"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
479 """ and shows the amount of lines of code, logical lines"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
480 """ of code, source lines of code, comment lines,"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
481 """ multi-line strings and blank lines.</p>"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
482 ))
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
483 act.triggered.connect(self.__editorRawMetrics)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
484 self.__editorMetricsActs.append(act)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
485
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
486 act = E5Action(
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
487 self.tr('Maintainability Index'),
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
488 self.tr('Maintainability &Index...'), 0, 0,
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
489 self, "")
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
490 act.setStatusTip(
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
491 self.tr('Show the maintainability index for Python files.'))
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
492 act.setWhatsThis(self.tr(
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
493 """<b>Maintainability Index...</b>"""
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
494 """<p>This calculates the maintainability index of Python"""
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
495 """ files and shows it together with a ranking.</p>"""
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
496 ))
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
497 act.triggered.connect(self.__editorMaintainabilityIndex)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
498 self.__editorMetricsActs.append(act)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
499
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
500 act = E5Action(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
501 self.tr('Cyclomatic Complexity'),
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
502 self.tr('Cyclomatic &Complexity...'), 0, 0,
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
503 self, '')
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
504 act.setStatusTip(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
505 self.tr('Show the cyclomatic complexity for Python files.'))
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
506 act.setWhatsThis(self.tr(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
507 """<b>Cyclomatic Complexity...</b>"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
508 """<p>This calculates the cyclomatic complexity of Python"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
509 """ files and shows it together with a ranking.</p>"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
510 ))
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
511 act.triggered.connect(self.__editorCyclomaticComplexity)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
512 self.__editorMetricsActs.append(act)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
513
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
514 e5App().getObject("Project").showMenu.connect(self.__projectShowMenu)
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
515 e5App().getObject("Project").projectClosed.connect(
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
516 self.__projectClosed)
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
517 e5App().getObject("ProjectBrowser").getProjectBrowser(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
518 "sources").showMenu.connect(self.__projectBrowserShowMenu)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
519 e5App().getObject("ViewManager").editorOpenedEd.connect(
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
520 self.__editorOpened)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
521 e5App().getObject("ViewManager").editorClosedEd.connect(
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
522 self.__editorClosed)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
523
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
524 for editor in e5App().getObject("ViewManager").getOpenEditors():
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
525 self.__editorOpened(editor)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
526
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
527 return None, True
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
528
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
529 def deactivate(self):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
530 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
531 Public method to deactivate this plug-in.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
532 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
533 e5App().getObject("Project").showMenu.disconnect(
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
534 self.__projectShowMenu)
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
535 e5App().getObject("Project").projectClosed.disconnect(
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
536 self.__projectClosed)
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
537 e5App().getObject("ProjectBrowser").getProjectBrowser(
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
538 "sources").showMenu.disconnect(self.__projectBrowserShowMenu)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
539 e5App().getObject("ViewManager").editorOpenedEd.disconnect(
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
540 self.__editorOpened)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
541 e5App().getObject("ViewManager").editorClosedEd.disconnect(
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
542 self.__editorClosed)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
543
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
544 menu = e5App().getObject("Project").getMenu("Show")
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
545 if menu:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
546 for sep in self.__projectSeparatorActs:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
547 menu.removeAction(sep)
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
548 for act in self.__projectMetricsActs:
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
549 menu.removeAction(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
550 e5App().getObject("Project").removeE5Actions(
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
551 self.__projectMetricsActs[1:])
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
552
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
553 if self.__projectBrowserMenu:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
554 for sep in self.__projectBrowserSeparatorActs:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
555 self.__projectBrowserMenu.removeAction(sep)
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
556 for act in self.__projectBrowserMetricsActs:
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
557 self.__projectBrowserMenu.removeAction(act)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
558
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
559 for editor in self.__editors:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
560 editor.showMenu.disconnect(self.__editorShowMenu)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
561 menu = editor.getMenu("Show")
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
562 if menu is not None:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
563 for sep in self.__editorSeparatorActs:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
564 menu.removeAction(sep)
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
565 for act in self.__editorMetricsActs:
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
566 menu.removeAction(act)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
567
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
568 self.__initialize()
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
569
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
570 def __loadTranslator(self):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
571 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
572 Private method to load the translation file.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
573 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
574 if self.__ui is not None:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
575 loc = self.__ui.getLocale()
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
576 if loc and loc != "C":
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
577 locale_dir = os.path.join(
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
578 os.path.dirname(__file__), "RadonMetrics", "i18n")
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
579 translation = "radon_{0}".format(loc)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
580 translator = QTranslator(None)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
581 loaded = translator.load(translation, locale_dir)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
582 if loaded:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
583 self.__translator = translator
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
584 e5App().installTranslator(self.__translator)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
585 else:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
586 print("Warning: translation file '{0}' could not be"
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
587 " loaded.".format(translation))
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
588 print("Using default.")
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
589
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
590 def __projectShowMenu(self, menuName, menu):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
591 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
592 Private slot called, when the the project menu or a submenu is
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
593 about to be shown.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
594
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
595 @param menuName name of the menu to be shown
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
596 @type str
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
597 @param menu reference to the menu
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
598 @type QMenu
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
599 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
600 if menuName == "Show":
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
601 for act in self.__projectMetricsActs[1:]:
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
602 act.setEnabled(
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
603 e5App().getObject("Project").getProjectLanguage() ==
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
604 "Python3")
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
605
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
606 def __projectBrowserShowMenu(self, menuName, menu):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
607 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
608 Private slot called, when the the project browser context menu or a
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
609 submenu is about to be shown.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
610
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
611 @param menuName name of the menu to be shown (string)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
612 @param menu reference to the menu (QMenu)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
613 """
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
614 if (
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
615 menuName == "Show" and
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
616 e5App().getObject("Project").getProjectLanguage() == "Python3"
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
617 ):
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
618 if self.__projectBrowserMenu is None:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
619 self.__projectBrowserMenu = menu
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
620
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
621 act = menu.addSeparator()
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
622 self.__projectBrowserSeparatorActs.append(act)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
623
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
624 # header action
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
625 act = QAction(self.tr("Radon"), self)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
626 font = act.font()
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
627 font.setBold(True)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
628 act.setFont(font)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
629 act.triggered.connect(self.__showRadonVersion)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
630 menu.addAction(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
631 self.__projectBrowserMetricsActs.append(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
632
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
633 act = E5Action(
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
634 self.tr('Code Metrics'),
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
635 self.tr('Code &Metrics...'), 0, 0,
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
636 self, '')
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
637 act.setStatusTip(self.tr(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
638 'Show raw code metrics.'))
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
639 act.setWhatsThis(self.tr(
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
640 """<b>Code Metrics...</b>"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
641 """<p>This calculates raw code metrics of Python files"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
642 """ and shows the amount of lines of code, logical lines"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
643 """ of code, source lines of code, comment lines,"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
644 """ multi-line strings and blank lines.</p>"""
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
645 ))
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
646 act.triggered.connect(self.__projectBrowserRawMetrics)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
647 menu.addAction(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
648 self.__projectBrowserMetricsActs.append(act)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
649
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
650 act = E5Action(
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
651 self.tr('Maintainability Index'),
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
652 self.tr('Maintainability &Index...'), 0, 0,
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
653 self, '')
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
654 act.setStatusTip(self.tr(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
655 'Show the maintainability index for Python files.'))
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
656 act.setWhatsThis(self.tr(
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
657 """<b>Maintainability Index...</b>"""
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
658 """<p>This calculates the maintainability index of"""
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
659 """ Python files and shows it together with a ranking."""
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
660 """</p>"""
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
661 ))
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
662 act.triggered.connect(
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
663 self.__projectBrowserMaintainabilityIndex)
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
664 menu.addAction(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
665 self.__projectBrowserMetricsActs.append(act)
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
666
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
667 act = E5Action(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
668 self.tr('Cyclomatic Complexity'),
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
669 self.tr('Cyclomatic &Complexity...'), 0, 0,
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
670 self, '')
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
671 act.setStatusTip(self.tr(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
672 'Show the cyclomatic complexity for Python files.'))
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
673 act.setWhatsThis(self.tr(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
674 """<b>Cyclomatic Complexity...</b>"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
675 """<p>This calculates the cyclomatic complexity of"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
676 """ Python files and shows it together with a ranking."""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
677 """</p>"""
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
678 ))
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
679 act.triggered.connect(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
680 self.__projectBrowserCyclomaticComplexity)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
681 menu.addAction(act)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
682 self.__projectBrowserMetricsActs.append(act)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
683
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
684 act = menu.addSeparator()
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
685 self.__projectBrowserSeparatorActs.append(act)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
686
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
687 def __editorOpened(self, editor):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
688 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
689 Private slot called, when a new editor was opened.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
690
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
691 @param editor reference to the new editor
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
692 @type QScintilla.Editor
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
693 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
694 menu = editor.getMenu("Show")
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
695 if menu is not None:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
696 menu.addAction(self.__editorSeparatorActs[0])
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
697 menu.addActions(self.__editorMetricsActs)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
698 menu.addAction(self.__editorSeparatorActs[1])
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
699 editor.showMenu.connect(self.__editorShowMenu)
55
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
700 editor.editorRenamed.connect(lambda: self.__editorRenamed(editor))
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
701 self.__editors.append(editor)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
702
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
703 def __editorClosed(self, editor):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
704 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
705 Private slot called, when an editor was closed.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
706
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
707 @param editor reference to the editor (QScintilla.Editor)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
708 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
709 try:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
710 self.__editors.remove(editor)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
711 except ValueError:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
712 pass
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
713
55
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
714 def __editorRenamed(self, editor):
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
715 """
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
716 Private slot called, when an editor was renamed.
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
717
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
718 @param editor reference to the renamed editor
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
719 @type QScintilla.Editor
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
720 """
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
721 menu = editor.getMenu("Show")
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
722 if menu is not None:
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
723 menu.addAction(self.__editorSeparatorActs[0])
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
724 menu.addActions(self.__editorMetricsActs)
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
725 menu.addAction(self.__editorSeparatorActs[1])
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
726
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
727 def __editorShowMenu(self, menuName, menu, editor):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
728 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
729 Private slot called, when the the editor context menu or a submenu is
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
730 about to be shown.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
731
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
732 @param menuName name of the menu to be shown (string)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
733 @param menu reference to the menu (QMenu)
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
734 @param editor reference to the editor
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
735 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
736 if menuName == "Show":
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
737 enable = editor.isPyFile()
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
738 for act in self.__editorMetricsActs:
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
739 act.setEnabled(enable)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
740
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
741 ##################################################################
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
742 ## Raw code metrics calculations
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
743 ##################################################################
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
744
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
745 def __projectRawMetrics(self):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
746 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
747 Private slot used to calculate raw code metrics for the project.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
748 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
749 project = e5App().getObject("Project")
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
750 project.saveAllScripts()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
751 ppath = project.getProjectPath()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
752 files = [os.path.join(ppath, file)
38
75d13fd03888 Eliminated direct access to the pdata structure of the Project class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 37
diff changeset
753 for file in project.getSources()
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
754 if file.endswith(
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
755 tuple(Preferences.getPython("Python3Extensions")) +
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
756 tuple(Preferences.getPython("PythonExtensions")))]
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
757
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
758 if self.__projectRawMetricsDialog is None:
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
759 from RadonMetrics.RawMetricsDialog import RawMetricsDialog
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
760 self.__projectRawMetricsDialog = RawMetricsDialog(self)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
761 self.__projectRawMetricsDialog.show()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
762 self.__projectRawMetricsDialog.prepare(files, project)
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
763
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
764 def __projectBrowserRawMetrics(self):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
765 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
766 Private method to handle the code metrics context menu action of the
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
767 project sources browser.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
768 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
769 browser = e5App().getObject("ProjectBrowser").getProjectBrowser(
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
770 "sources")
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
771 if browser.getSelectedItemsCount([ProjectBrowserFileItem]) > 1:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
772 fn = []
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
773 for itm in browser.getSelectedItems([ProjectBrowserFileItem]):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
774 fn.append(itm.fileName())
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
775 else:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
776 itm = browser.model().item(browser.currentIndex())
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
777 try:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
778 fn = itm.fileName()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
779 except AttributeError:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
780 fn = itm.dirName()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
781
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
782 if self.__projectBrowserRawMetricsDialog is None:
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
783 from RadonMetrics.RawMetricsDialog import RawMetricsDialog
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
784 self.__projectBrowserRawMetricsDialog = RawMetricsDialog(self)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
785 self.__projectBrowserRawMetricsDialog.show()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
786 self.__projectBrowserRawMetricsDialog.start(fn)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
787
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
788 def __editorRawMetrics(self):
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
789 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
790 Private slot to handle the raw code metrics action of the editor show
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
791 menu.
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
792 """
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
793 editor = e5App().getObject("ViewManager").activeWindow()
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
794 if editor is not None:
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
795 if editor.checkDirty() and editor.getFileName() is not None:
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
796 if self.__editorRawMetricsDialog is None:
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
797 from RadonMetrics.RawMetricsDialog import RawMetricsDialog
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
798 self.__editorRawMetricsDialog = RawMetricsDialog(self)
2
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
799 self.__editorRawMetricsDialog.show()
1ad320a50a01 Implemented the main plug-in script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
800 self.__editorRawMetricsDialog.start(editor.getFileName())
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
801
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
802 ##################################################################
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
803 ## Maintainability index calculations
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
804 ##################################################################
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
805
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
806 def __projectMaintainabilityIndex(self):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
807 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
808 Private slot used to calculate the maintainability indexes for the
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
809 project.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
810 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
811 project = e5App().getObject("Project")
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
812 project.saveAllScripts()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
813 ppath = project.getProjectPath()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
814 files = [os.path.join(ppath, file)
38
75d13fd03888 Eliminated direct access to the pdata structure of the Project class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 37
diff changeset
815 for file in project.getSources()
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
816 if file.endswith(
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
817 tuple(Preferences.getPython("Python3Extensions")) +
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
818 tuple(Preferences.getPython("PythonExtensions")))]
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
819
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
820 if self.__projectMIDialog is None:
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
821 from RadonMetrics.MaintainabilityIndexDialog import (
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
822 MaintainabilityIndexDialog
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
823 )
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
824 self.__projectMIDialog = MaintainabilityIndexDialog(self)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
825 self.__projectMIDialog.show()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
826 self.__projectMIDialog.prepare(files, project)
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
827
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
828 def __projectBrowserMaintainabilityIndex(self):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
829 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
830 Private method to handle the maintainability index context menu action
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
831 of the project sources browser.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
832 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
833 browser = e5App().getObject("ProjectBrowser").getProjectBrowser(
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
834 "sources")
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
835 if browser.getSelectedItemsCount([ProjectBrowserFileItem]) > 1:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
836 fn = []
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
837 for itm in browser.getSelectedItems([ProjectBrowserFileItem]):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
838 fn.append(itm.fileName())
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
839 else:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
840 itm = browser.model().item(browser.currentIndex())
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
841 try:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
842 fn = itm.fileName()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
843 except AttributeError:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
844 fn = itm.dirName()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
845
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
846 if self.__projectBrowserMIDialog is None:
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
847 from RadonMetrics.MaintainabilityIndexDialog import (
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
848 MaintainabilityIndexDialog
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
849 )
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
850 self.__projectBrowserMIDialog = MaintainabilityIndexDialog(self)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
851 self.__projectBrowserMIDialog.show()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
852 self.__projectBrowserMIDialog.start(fn)
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
853
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
854 def __editorMaintainabilityIndex(self):
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
855 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
856 Private slot to handle the maintainability index action of the editor
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
857 show menu.
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
858 """
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
859 editor = e5App().getObject("ViewManager").activeWindow()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
860 if editor is not None:
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
861 if editor.checkDirty() and editor.getFileName() is not None:
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
862 if self.__editorMIDialog is None:
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
863 from RadonMetrics.MaintainabilityIndexDialog import (
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
864 MaintainabilityIndexDialog
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
865 )
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
866 self.__editorMIDialog = MaintainabilityIndexDialog(self)
6
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
867 self.__editorMIDialog.show()
13e9698a9981 Started implementing the maintainability index stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
868 self.__editorMIDialog.start(editor.getFileName())
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
869
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
870 ##################################################################
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
871 ## Cyclomatic complexity calculations
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
872 ##################################################################
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
873
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
874 def __projectCyclomaticComplexity(self):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
875 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
876 Private slot used to calculate the cyclomatic complexity for the
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
877 project.
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
878 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
879 project = e5App().getObject("Project")
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
880 project.saveAllScripts()
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
881 ppath = project.getProjectPath()
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
882 files = [os.path.join(ppath, file)
38
75d13fd03888 Eliminated direct access to the pdata structure of the Project class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 37
diff changeset
883 for file in project.getSources()
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
884 if file.endswith(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
885 tuple(Preferences.getPython("Python3Extensions")) +
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
886 tuple(Preferences.getPython("PythonExtensions")))]
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
887
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
888 if self.__projectCCDialog is None:
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
889 from RadonMetrics.CyclomaticComplexityDialog import (
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
890 CyclomaticComplexityDialog
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
891 )
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
892 self.__projectCCDialog = CyclomaticComplexityDialog(self)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
893 self.__projectCCDialog.show()
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
894 self.__projectCCDialog.prepare(files, project)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
895
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
896 def __projectBrowserCyclomaticComplexity(self):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
897 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
898 Private method to handle the cyclomatic complexity context menu action
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
899 of the project sources browser.
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
900 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
901 browser = e5App().getObject("ProjectBrowser").getProjectBrowser(
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
902 "sources")
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
903 if browser.getSelectedItemsCount([ProjectBrowserFileItem]) > 1:
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
904 fn = []
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
905 for itm in browser.getSelectedItems([ProjectBrowserFileItem]):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
906 fn.append(itm.fileName())
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
907 else:
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
908 itm = browser.model().item(browser.currentIndex())
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
909 try:
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
910 fn = itm.fileName()
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
911 except AttributeError:
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
912 fn = itm.dirName()
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
913
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
914 if self.__projectBrowserCCDialog is None:
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
915 from RadonMetrics.CyclomaticComplexityDialog import (
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
916 CyclomaticComplexityDialog
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
917 )
55
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
918 self.__projectBrowserCCDialog = CyclomaticComplexityDialog(
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
919 self, isSingle=True)
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
920 self.__projectBrowserCCDialog.show()
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
921 self.__projectBrowserCCDialog.start(fn)
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
922
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
923 def __editorCyclomaticComplexity(self):
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
924 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
925 Private slot to handle the cyclomatic complexity action of the editor
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
926 show menu.
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
927 """
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
928 editor = e5App().getObject("ViewManager").activeWindow()
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
929 if editor is not None:
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
930 if editor.checkDirty() and editor.getFileName() is not None:
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
931 if self.__editorCCDialog is None:
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
932 from RadonMetrics.CyclomaticComplexityDialog import (
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
933 CyclomaticComplexityDialog
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
934 )
55
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
935 self.__editorCCDialog = CyclomaticComplexityDialog(
755bc8e1485a Upgraded the embedded Radon library to version 2.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
936 self, isSingle=True)
13
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
937 self.__editorCCDialog.show()
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
938 self.__editorCCDialog.start(editor.getFileName())
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
939
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
940 ##################################################################
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
941 ## Radon info display
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
942 ##################################################################
22bc345844e7 Implemented the cyclomatic complexity stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
943
12
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
944 def __showRadonVersion(self):
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
945 """
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
946 Private slot to show the version number of the used radon library.
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
947 """
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
948 from RadonMetrics.radon import __version__
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
949 E5MessageBox.information(
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
950 None,
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
951 self.tr("Radon"),
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
952 self.tr(
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
953 """<p><b>Radon Version {0}</b></p>"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
954 """<p>Radon is a Python tool that computes various metrics"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
955 """ from the source code. Radon can compute:"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
956 """<ul>"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
957 """<li><b>Raw</b> metrics (these include SLOC, comment"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
958 """ lines, blank lines, multi line strings, ...)</li>"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
959 """<li><b>Maintainability Index</b> (the one used in Visual"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
960 """ Studio)</li>"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
961 """<li><b>McCabe's complexity</b>, i.e. cyclomatic"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
962 """ complexity</li>"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
963 """</ul></p>"""
32a3c9d62e90 Added a 'Radon' header action showing some info about radon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
964 ).format(__version__))
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
965
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
966 ##################################################################
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
967 ## Project handling methods
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
968 ##################################################################
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
969
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
970 def __projectClosed(self):
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
971 """
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
972 Private slot to handle closing a project.
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
973 """
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
974 self.__projectCCDialog and self.__projectCCDialog.clear()
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
975 self.__projectMIDialog and self.__projectMIDialog.clear()
69
cdf51e6abaee Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 68
diff changeset
976 if self.__projectRawMetricsDialog:
18
58ce8a433422 Fixed a few bugs and added an 'activated' action to the various result lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
977 self.__projectRawMetricsDialog.clear()
43
53dbd4f4d6c2 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
978
53dbd4f4d6c2 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
979 #
53dbd4f4d6c2 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
980 # eflag: noqa = M801

eric ide

mercurial