Added missing close event handlers and removed some unused method arguments. eric7 release-10.2.1

Sat, 27 May 2023 15:33:58 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 27 May 2023 15:33:58 +0200
branch
eric7
changeset 107
0843dd7239f6
parent 106
6422943b388f
child 108
19970127c936

Added missing close event handlers and removed some unused method arguments.

ChangeLog file | annotate | diff | comparison | revisions
PluginMetricsRadon.epj file | annotate | diff | comparison | revisions
PluginMetricsRadon.py file | annotate | diff | comparison | revisions
PluginMetricsRadon.zip file | annotate | diff | comparison | revisions
RadonMetrics/CodeMetricsCalculator.py file | annotate | diff | comparison | revisions
RadonMetrics/CyclomaticComplexityCalculator.py file | annotate | diff | comparison | revisions
RadonMetrics/CyclomaticComplexityDialog.py file | annotate | diff | comparison | revisions
RadonMetrics/CyclomaticComplexityDialog.ui file | annotate | diff | comparison | revisions
RadonMetrics/Documentation/source/Plugin_Metrics_Radon.PluginMetricsRadon.html file | annotate | diff | comparison | revisions
RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.CodeMetricsCalculator.html file | annotate | diff | comparison | revisions
RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.CyclomaticComplexityCalculator.html file | annotate | diff | comparison | revisions
RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.CyclomaticComplexityDialog.html file | annotate | diff | comparison | revisions
RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.MaintainabilityIndexCalculator.html file | annotate | diff | comparison | revisions
RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.MaintainabilityIndexDialog.html file | annotate | diff | comparison | revisions
RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.RawMetricsDialog.html file | annotate | diff | comparison | revisions
RadonMetrics/MaintainabilityIndexCalculator.py file | annotate | diff | comparison | revisions
RadonMetrics/MaintainabilityIndexDialog.py file | annotate | diff | comparison | revisions
RadonMetrics/RawMetricsDialog.py file | annotate | diff | comparison | revisions
RadonMetrics/i18n/radon_de.qm file | annotate | diff | comparison | revisions
RadonMetrics/i18n/radon_de.ts file | annotate | diff | comparison | revisions
RadonMetrics/i18n/radon_en.ts file | annotate | diff | comparison | revisions
RadonMetrics/i18n/radon_es.qm file | annotate | diff | comparison | revisions
RadonMetrics/i18n/radon_es.ts file | annotate | diff | comparison | revisions
RadonMetrics/i18n/radon_ru.qm file | annotate | diff | comparison | revisions
RadonMetrics/i18n/radon_ru.ts file | annotate | diff | comparison | revisions
--- a/ChangeLog	Sat Dec 31 16:27:44 2022 +0100
+++ b/ChangeLog	Sat May 27 15:33:58 2023 +0200
@@ -1,5 +1,8 @@
 ChangeLog
 ---------
+Version 10.2.1:
+- bug fixes
+
 Version 10.2.0
 - adapted some import statements to eric 23.1 and newer
 
--- a/PluginMetricsRadon.epj	Sat Dec 31 16:27:44 2022 +0100
+++ b/PluginMetricsRadon.epj	Sat May 27 15:33:58 2023 +0200
@@ -1,7 +1,7 @@
 {
   "header": {
     "comment": "eric project file for project PluginMetricsRadon",
-    "copyright": "Copyright (C) 2022 Detlev Offenbach, detlev@die-offenbachs.de"
+    "copyright": "Copyright (C) 2023 Detlev Offenbach, detlev@die-offenbachs.de"
   },
   "project": {
     "AUTHOR": "Detlev Offenbach",
@@ -11,6 +11,7 @@
           "AllowStarArgAny": false,
           "AllowUntypedDefs": false,
           "AllowUntypedNested": false,
+          "CheckFutureAnnotations": false,
           "DispatchDecorators": [
             "singledispatch",
             "singledispatchmethod"
@@ -62,9 +63,9 @@
         "CopyrightAuthor": "",
         "CopyrightMinFileSize": 0,
         "DocstringType": "eric_black",
-        "EnabledCheckerCategories": "C, D, E, M, N, S, Y, W",
+        "EnabledCheckerCategories": "C, D, E, M, N, S, Y, U, W",
         "ExcludeFiles": "*/Ui_*.py, */*_rc.py",
-        "ExcludeMessages": "C101,E265,E266,E305,E402,M201,M301,M302,M303,M304,M305,M306,M307,M308,M311,M312,M313,M314,M315,M321,M701,M702,M811,M834,N802,N803,N807,N808,N821,W293,W503,Y119,Y401,Y402",
+        "ExcludeMessages": "C101,E265,E266,E305,E402,M201,M301,M302,M303,M304,M305,M306,M307,M308,M311,M312,M313,M314,M315,M321,M701,M702,M811,M834,N802,N803,N807,N808,N821,U200,W293,W503,Y119,Y401,Y402",
         "FixCodes": "",
         "FixIssues": false,
         "FutureChecker": "",
@@ -80,6 +81,14 @@
         "MaxCodeComplexity": 10,
         "MaxDocLineLength": 88,
         "MaxLineLength": 88,
+        "NameOrderChecker": {
+          "ApplicationPackageNames": [],
+          "CombinedAsImports": false,
+          "SortCaseSensitive": false,
+          "SortFromFirst": false,
+          "SortIgnoringStyle": false,
+          "SortOrder": "natural"
+        },
         "NoFixCodes": "E501",
         "RepeatMessages": true,
         "SecurityChecker": {
@@ -113,7 +122,24 @@
           "WeakKeySizeRsaMedium": "2048"
         },
         "ShowIgnored": false,
+        "UnusedChecker": {
+          "IgnoreAbstract": true,
+          "IgnoreDunderGlobals": true,
+          "IgnoreDunderMethods": true,
+          "IgnoreEventHandlerMethods": true,
+          "IgnoreLambdas": false,
+          "IgnoreNestedFunctions": false,
+          "IgnoreOverload": true,
+          "IgnoreOverride": true,
+          "IgnoreSlotMethods": true,
+          "IgnoreStubs": true,
+          "IgnoreVariadicNames": false
+        },
         "ValidEncodings": "latin-1, utf-8"
+      },
+      "SyntaxChecker": {
+        "AdditionalBuiltins": "",
+        "ExcludeFiles": "*Ui_*.py"
       }
     },
     "DESCRIPTION": "This plugin implements dialogs for various code metrics determined using the radon library.",
@@ -198,7 +224,7 @@
     ],
     "OTHERTOOLSPARMS": {
       "Black": {
-        "exclude": "/(\\.direnv|\\.eggs|\\.git|\\.hg|\\.mypy_cache|\\.nox|\\.tox|\\.venv|venv|\\.svn|_build|buck-out|build|dist|__pypackages__)/",
+        "exclude": "/(\\.direnv|\\.eggs|\\.git|\\.hg|\\.mypy_cache|\\.nox|\\.tox|\\.venv|venv|\\.svn|\\.ipynb_checkpoints|_build|buck-out|build|dist|__pypackages__)/",
         "extend-exclude": "",
         "force-exclude": "",
         "line-length": 88,
--- a/PluginMetricsRadon.py	Sat Dec 31 16:27:44 2022 +0100
+++ b/PluginMetricsRadon.py	Sat May 27 15:33:58 2023 +0200
@@ -30,7 +30,7 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "10.2.0"
+version = "10.2.1"
 className = "RadonMetricsPlugin"
 packageName = "RadonMetrics"
 shortDescription = "Code metrics plugin using radon package"
@@ -631,7 +631,7 @@
                     )
                     print("Using default.")
 
-    def __projectShowMenu(self, menuName, menu):
+    def __projectShowMenu(self, menuName, menu):  # noqa: U100
         """
         Private slot called, when the the project menu or a submenu is
         about to be shown.
@@ -781,7 +781,7 @@
             menu.addActions(self.__editorMetricsActs)
             menu.addAction(self.__editorSeparatorActs[1])
 
-    def __editorShowMenu(self, menuName, menu, editor):
+    def __editorShowMenu(self, menuName, menu, editor):  # noqa: U100
         """
         Private slot called, when the the editor context menu or a submenu is
         about to be shown.
Binary file PluginMetricsRadon.zip has changed
--- a/RadonMetrics/CodeMetricsCalculator.py	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/CodeMetricsCalculator.py	Sat May 27 15:33:58 2023 +0200
@@ -29,7 +29,7 @@
     return batchRawCodeMetrics
 
 
-def rawCodeMetrics(file, text=""):
+def rawCodeMetrics(file, text=""):  # noqa: U100
     """
     Private function to calculate the raw code metrics of one file.
 
@@ -40,7 +40,7 @@
     @return tuple containing the result dictionary
     @rtype (tuple of dict)
     """
-    return __rawCodeMetrics(file, text)
+    return __rawCodeMetrics(text)
 
 
 def batchRawCodeMetrics(argumentsList, send, fx, cancelled, maxProcesses=0):
@@ -131,16 +131,14 @@
     @type multiprocessing.Queue
     """
     for filename, source in iter(inputQueue.get, "STOP"):
-        result = __rawCodeMetrics(filename, source)
+        result = __rawCodeMetrics(source)
         outputQueue.put((filename, result))
 
 
-def __rawCodeMetrics(file, text=""):
+def __rawCodeMetrics(text):
     """
     Private function to calculate the raw code metrics for one Python file.
 
-    @param file source filename
-    @type str
     @param text source text
     @type str
     @return tuple containing the result dictionary
--- a/RadonMetrics/CyclomaticComplexityCalculator.py	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/CyclomaticComplexityCalculator.py	Sat May 27 15:33:58 2023 +0200
@@ -29,7 +29,7 @@
     return batchCyclomaticComplexity
 
 
-def cyclomaticComplexity(file, text=""):
+def cyclomaticComplexity(file, text=""):  # noqa: U100
     """
     Private function to calculate the cyclomatic complexity of one file.
 
@@ -40,7 +40,7 @@
     @return tuple containing the result dictionary
     @rtype (tuple of dict)
     """
-    return __cyclomaticComplexity(file, text)
+    return __cyclomaticComplexity(text)
 
 
 def batchCyclomaticComplexity(argumentsList, send, fx, cancelled, maxProcesses=0):
@@ -133,17 +133,15 @@
     @type multiprocessing.Queue
     """
     for filename, source in iter(inputQueue.get, "STOP"):
-        result = __cyclomaticComplexity(filename, source)
+        result = __cyclomaticComplexity(source)
         outputQueue.put((filename, result))
 
 
-def __cyclomaticComplexity(file, text=""):
+def __cyclomaticComplexity(text):
     """
     Private function to calculate the cyclomatic complexity for one Python
     file.
 
-    @param file source filename
-    @type str
     @param text source text
     @type str
     @return tuple containing the result dictionary
--- a/RadonMetrics/CyclomaticComplexityDialog.py	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/CyclomaticComplexityDialog.py	Sat May 27 15:33:58 2023 +0200
@@ -74,6 +74,7 @@
         self.radonService.batchFinished.connect(self.__batchFinished)
 
         self.__isSingle = isSingle
+        self.__batch = False
         self.cancelled = False
 
         self.__project = ericApp().getObject("Project")
@@ -84,10 +85,11 @@
         self.__fileList = []
         self.filterFrame.setVisible(False)
 
+        self.summaryHeader.setText(self.tr("<b>Summary:</b>"))
+        self.explanationHeader.setText(self.tr("<b>Ranking:</b>"))
         self.explanationLabel.setText(
             self.tr(
                 "<table>"
-                "<tr><td colspan=3><b>Ranking:</b></td></tr>"
                 "<tr><td><b>A</b></td><td>1 - 5</td>"
                 "<td>(low risk - simple block)</td></tr>"
                 "<tr><td><b>B</b></td><td>6 - 10</td>"
@@ -103,10 +105,10 @@
                 "</table>"
             )
         )
+        self.typeHeader.setText(self.tr("<b>Type:</b>"))
         self.typeLabel.setText(
             self.tr(
                 "<table>"
-                "<tr><td colspan=2><b>Type:</b></td></tr>"
                 "<tr><td><b>C</b></td><td>Class</td></tr>"
                 "<tr><td><b>F</b></td><td>Function</td></tr>"
                 "<tr><td><b>M</b></td><td>Method</td></tr>"
@@ -271,15 +273,13 @@
             self.rankComboBox.findText(self.__minimumRank)
         )
 
-    def start(self, fn, minRank="D"):
+    def start(self, fn):
         """
         Public slot to start the cyclomatic complexity determination.
 
         @param fn file or list of files or directory to show
             the cyclomatic complexity for
         @type str or list of str
-        @param minRank minimum rank of entries to be shown
-        @type str (one character out of A - F)
         """
         self.cancelled = False
         self.__errorItem = None
@@ -324,8 +324,6 @@
         self.__minimumRank = self.rankComboBox.currentText()
 
         if len(self.files) > 0:
-            # disable updates of the list for speed
-            self.resultList.setUpdatesEnabled(False)
             self.resultList.setSortingEnabled(False)
 
             self.checkProgress.setMaximum(len(self.files))
@@ -341,15 +339,12 @@
                 self.__batch = True
                 self.cyclomaticComplexityBatch()
 
-    def cyclomaticComplexity(self, codestring=""):
+    def cyclomaticComplexity(self):
         """
         Public method to start a cyclomatic complexity calculation for one
         Python file.
 
         The results are reported to the __processResult slot.
-
-        @param codestring optional sourcestring
-        @type str
         """
         if not self.files:
             self.checkProgress.setMaximum(1)
@@ -359,7 +354,6 @@
 
         self.filename = self.files.pop(0)
         self.checkProgress.setValue(self.progress)
-        QApplication.processEvents()
 
         if self.cancelled:
             return
@@ -388,7 +382,6 @@
         argumentsList = []
         for progress, filename in enumerate(self.files, start=1):
             self.checkProgress.setValue(progress)
-            QApplication.processEvents()
 
             try:
                 source = Utilities.readEncodedFile(filename)[0]
@@ -401,7 +394,6 @@
 
         # reset the progress bar to the checked files
         self.checkProgress.setValue(self.progress)
-        QApplication.processEvents()
 
         self.__finished = False
         self.radonService.cyclomaticComplexityBatch(argumentsList)
@@ -470,9 +462,7 @@
                 self.__summary[rank] += result["summary"][rank]
 
         self.progress += 1
-
         self.checkProgress.setValue(self.progress)
-        QApplication.processEvents()
 
         if not self.__batch:
             self.cyclomaticComplexity()
@@ -486,11 +476,9 @@
         if not self.__finished:
             self.__finished = True
 
-            # re-enable updates of the list
             self.resultList.setSortingEnabled(True)
             self.resultList.sortItems(0, Qt.SortOrder.AscendingOrder)
             self.resultList.sortItems(1, Qt.SortOrder.AscendingOrder)
-            self.resultList.setUpdatesEnabled(True)
 
             self.cancelled = True
             self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(
@@ -516,7 +504,6 @@
 
             self.summaryLabel.setText(
                 self.tr(
-                    "<b>Summary:</b><br/>"
                     "{0} blocks (classes, functions, methods) analyzed.<br/>"
                     "Average complexity: {7} ({8})"
                     "<table>"
@@ -548,6 +535,25 @@
 
             self.checkProgress.setVisible(False)
 
+    def __cancel(self):
+        """
+        Private method to cancel the current check run.
+        """
+        if self.__batch:
+            self.radonService.cancelComplexityBatch()
+            QTimer.singleShot(1000, self.__finish)
+        else:
+            self.__finish()
+
+    def closeEvent(self, evt):
+        """
+        Protected method to handle a close event.
+
+        @param evt reference to the close event
+        @type QCloseEvent
+        """
+        self.__cancel()
+
     @pyqtSlot(QAbstractButton)
     def on_buttonBox_clicked(self, button):
         """
@@ -559,11 +565,7 @@
         if button == self.buttonBox.button(QDialogButtonBox.StandardButton.Close):
             self.close()
         elif button == self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel):
-            if self.__batch:
-                self.radonService.cancelComplexityBatch()
-                QTimer.singleShot(1000, self.__finish)
-            else:
-                self.__finish()
+            self.__cancel()
 
     @pyqtSlot()
     def on_startButton_clicked(self):
@@ -644,12 +646,12 @@
             vm = ericApp().getObject("ViewManager")
             vm.openSourceFile(filename, lineno)
 
-    @pyqtSlot(str)
-    def on_rankComboBox_activated(self, rank):
+    @pyqtSlot(int)
+    def on_rankComboBox_activated(self, index):
         """
         Private slot to handle the selection of a minimum rank.
 
-        @param rank selected minimum rank
+        @param index index of the selected minimum rank
         @type str
         """
         if self.__isSingle:
--- a/RadonMetrics/CyclomaticComplexityDialog.ui	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/CyclomaticComplexityDialog.ui	Sat May 27 15:33:58 2023 +0200
@@ -158,8 +158,44 @@
     </widget>
    </item>
    <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="0" column="0">
+      <widget class="QLabel" name="summaryHeader">
+       <property name="alignment">
+        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+       </property>
+       <property name="wordWrap">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLabel" name="typeHeader">
+       <property name="maximumSize">
+        <size>
+         <width>200</width>
+         <height>16777215</height>
+        </size>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+       </property>
+       <property name="wordWrap">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="2">
+      <widget class="QLabel" name="explanationHeader">
+       <property name="alignment">
+        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+       </property>
+       <property name="wordWrap">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
       <widget class="QLabel" name="summaryLabel">
        <property name="alignment">
         <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@@ -169,7 +205,7 @@
        </property>
       </widget>
      </item>
-     <item>
+     <item row="1" column="1">
       <widget class="QLabel" name="typeLabel">
        <property name="maximumSize">
         <size>
@@ -185,7 +221,7 @@
        </property>
       </widget>
      </item>
-     <item>
+     <item row="1" column="2">
       <widget class="QLabel" name="explanationLabel">
        <property name="alignment">
         <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
--- a/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.PluginMetricsRadon.html	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.PluginMetricsRadon.html	Sat May 27 15:33:58 2023 +0200
@@ -115,7 +115,7 @@
 </tr>
 <tr>
 <td><a href="#RadonMetricsPlugin.__editorShowMenu">__editorShowMenu</a></td>
-<td>Private slot called, when the the editor context menu or a submenu is about to be shown.</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#RadonMetricsPlugin.__initialize">__initialize</a></td>
@@ -159,7 +159,7 @@
 </tr>
 <tr>
 <td><a href="#RadonMetricsPlugin.__projectShowMenu">__projectShowMenu</a></td>
-<td>Private slot called, when the the project menu or a submenu is about to be shown.</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#RadonMetricsPlugin.__serviceError">__serviceError</a></td>
@@ -316,25 +316,6 @@
 <h4>RadonMetricsPlugin.__editorShowMenu</h4>
 <b>__editorShowMenu</b>(<i>menuName, menu, editor</i>)
 
-<p>
-        Private slot called, when the the editor context menu or a submenu is
-        about to be shown.
-</p>
-<dl>
-
-<dt><i>menuName</i> (str)</dt>
-<dd>
-name of the menu to be shown
-</dd>
-<dt><i>menu</i> (QMenu)</dt>
-<dd>
-reference to the menu
-</dd>
-<dt><i>editor</i> (Editor)</dt>
-<dd>
-reference to the editor
-</dd>
-</dl>
 <a NAME="RadonMetricsPlugin.__initialize" ID="RadonMetricsPlugin.__initialize"></a>
 <h4>RadonMetricsPlugin.__initialize</h4>
 <b>__initialize</b>(<i></i>)
@@ -426,21 +407,6 @@
 <h4>RadonMetricsPlugin.__projectShowMenu</h4>
 <b>__projectShowMenu</b>(<i>menuName, menu</i>)
 
-<p>
-        Private slot called, when the the project menu or a submenu is
-        about to be shown.
-</p>
-<dl>
-
-<dt><i>menuName</i> (str)</dt>
-<dd>
-name of the menu to be shown
-</dd>
-<dt><i>menu</i> (QMenu)</dt>
-<dd>
-reference to the menu
-</dd>
-</dl>
 <a NAME="RadonMetricsPlugin.__serviceError" ID="RadonMetricsPlugin.__serviceError"></a>
 <h4>RadonMetricsPlugin.__serviceError</h4>
 <b>__serviceError</b>(<i>type_, fn, msg</i>)
--- a/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.CodeMetricsCalculator.html	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.CodeMetricsCalculator.html	Sat May 27 15:33:58 2023 +0200
@@ -47,7 +47,7 @@
 </tr>
 <tr>
 <td><a href="#rawCodeMetrics">rawCodeMetrics</a></td>
-<td>Private function to calculate the raw code metrics of one file.</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#workerTask">workerTask</a></td>
@@ -88,17 +88,13 @@
 <hr />
 <a NAME="__rawCodeMetrics" ID="__rawCodeMetrics"></a>
 <h2>__rawCodeMetrics</h2>
-<b>__rawCodeMetrics</b>(<i>file, text=""</i>)
+<b>__rawCodeMetrics</b>(<i>text</i>)
 
 <p>
     Private function to calculate the raw code metrics for one Python file.
 </p>
 <dl>
 
-<dt><i>file</i> (str)</dt>
-<dd>
-source filename
-</dd>
 <dt><i>text</i> (str)</dt>
 <dd>
 source text
@@ -188,32 +184,6 @@
 <h2>rawCodeMetrics</h2>
 <b>rawCodeMetrics</b>(<i>file, text=""</i>)
 
-<p>
-    Private function to calculate the raw code metrics of one file.
-</p>
-<dl>
-
-<dt><i>file</i> (str)</dt>
-<dd>
-source filename
-</dd>
-<dt><i>text</i> (str)</dt>
-<dd>
-source text
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-tuple containing the result dictionary
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-(tuple of dict)
-</dd>
-</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
--- a/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.CyclomaticComplexityCalculator.html	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.CyclomaticComplexityCalculator.html	Sat May 27 15:33:58 2023 +0200
@@ -43,7 +43,7 @@
 </tr>
 <tr>
 <td><a href="#cyclomaticComplexity">cyclomaticComplexity</a></td>
-<td>Private function to calculate the cyclomatic complexity of one file.</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#initBatchService">initBatchService</a></td>
@@ -92,7 +92,7 @@
 <hr />
 <a NAME="__cyclomaticComplexity" ID="__cyclomaticComplexity"></a>
 <h2>__cyclomaticComplexity</h2>
-<b>__cyclomaticComplexity</b>(<i>file, text=""</i>)
+<b>__cyclomaticComplexity</b>(<i>text</i>)
 
 <p>
     Private function to calculate the cyclomatic complexity for one Python
@@ -100,10 +100,6 @@
 </p>
 <dl>
 
-<dt><i>file</i> (str)</dt>
-<dd>
-source filename
-</dd>
 <dt><i>text</i> (str)</dt>
 <dd>
 source text
@@ -192,32 +188,6 @@
 <h2>cyclomaticComplexity</h2>
 <b>cyclomaticComplexity</b>(<i>file, text=""</i>)
 
-<p>
-    Private function to calculate the cyclomatic complexity of one file.
-</p>
-<dl>
-
-<dt><i>file</i> (str)</dt>
-<dd>
-source filename
-</dd>
-<dt><i>text</i> (str)</dt>
-<dd>
-source text
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-tuple containing the result dictionary
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-(tuple of dict)
-</dd>
-</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
--- a/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.CyclomaticComplexityDialog.html	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.CyclomaticComplexityDialog.html	Sat May 27 15:33:58 2023 +0200
@@ -65,6 +65,10 @@
 <td>Private slot handling the completion of a batch job.</td>
 </tr>
 <tr>
+<td><a href="#CyclomaticComplexityDialog.__cancel">__cancel</a></td>
+<td>Private method to cancel the current check run.</td>
+</tr>
+<tr>
 <td><a href="#CyclomaticComplexityDialog.__createErrorItem">__createErrorItem</a></td>
 <td>Private slot to create a new error item in the result list.</td>
 </tr>
@@ -109,6 +113,10 @@
 <td>Public method to clear all results.</td>
 </tr>
 <tr>
+<td><a href="#CyclomaticComplexityDialog.closeEvent">closeEvent</a></td>
+<td>Protected method to handle a close event.</td>
+</tr>
+<tr>
 <td><a href="#CyclomaticComplexityDialog.cyclomaticComplexity">cyclomaticComplexity</a></td>
 <td>Public method to start a cyclomatic complexity calculation for one Python file.</td>
 </tr>
@@ -183,6 +191,13 @@
 type of the calculated metrics
 </dd>
 </dl>
+<a NAME="CyclomaticComplexityDialog.__cancel" ID="CyclomaticComplexityDialog.__cancel"></a>
+<h4>CyclomaticComplexityDialog.__cancel</h4>
+<b>__cancel</b>(<i></i>)
+
+<p>
+        Private method to cancel the current check run.
+</p>
 <a NAME="CyclomaticComplexityDialog.__createErrorItem" ID="CyclomaticComplexityDialog.__createErrorItem"></a>
 <h4>CyclomaticComplexityDialog.__createErrorItem</h4>
 <b>__createErrorItem</b>(<i>filename, message</i>)
@@ -335,9 +350,23 @@
 <p>
         Public method to clear all results.
 </p>
+<a NAME="CyclomaticComplexityDialog.closeEvent" ID="CyclomaticComplexityDialog.closeEvent"></a>
+<h4>CyclomaticComplexityDialog.closeEvent</h4>
+<b>closeEvent</b>(<i>evt</i>)
+
+<p>
+        Protected method to handle a close event.
+</p>
+<dl>
+
+<dt><i>evt</i> (QCloseEvent)</dt>
+<dd>
+reference to the close event
+</dd>
+</dl>
 <a NAME="CyclomaticComplexityDialog.cyclomaticComplexity" ID="CyclomaticComplexityDialog.cyclomaticComplexity"></a>
 <h4>CyclomaticComplexityDialog.cyclomaticComplexity</h4>
-<b>cyclomaticComplexity</b>(<i>codestring=""</i>)
+<b>cyclomaticComplexity</b>(<i></i>)
 
 <p>
         Public method to start a cyclomatic complexity calculation for one
@@ -346,13 +375,6 @@
 <p>
         The results are reported to the __processResult slot.
 </p>
-<dl>
-
-<dt><i>codestring</i> (str)</dt>
-<dd>
-optional sourcestring
-</dd>
-</dl>
 <a NAME="CyclomaticComplexityDialog.cyclomaticComplexityBatch" ID="CyclomaticComplexityDialog.cyclomaticComplexityBatch"></a>
 <h4>CyclomaticComplexityDialog.cyclomaticComplexityBatch</h4>
 <b>cyclomaticComplexityBatch</b>(<i></i>)
@@ -379,16 +401,16 @@
 </dl>
 <a NAME="CyclomaticComplexityDialog.on_rankComboBox_activated" ID="CyclomaticComplexityDialog.on_rankComboBox_activated"></a>
 <h4>CyclomaticComplexityDialog.on_rankComboBox_activated</h4>
-<b>on_rankComboBox_activated</b>(<i>rank</i>)
+<b>on_rankComboBox_activated</b>(<i>index</i>)
 
 <p>
         Private slot to handle the selection of a minimum rank.
 </p>
 <dl>
 
-<dt><i>rank</i> (str)</dt>
+<dt><i>index</i> (str)</dt>
 <dd>
-selected minimum rank
+index of the selected minimum rank
 </dd>
 </dl>
 <a NAME="CyclomaticComplexityDialog.on_resultList_itemActivated" ID="CyclomaticComplexityDialog.on_resultList_itemActivated"></a>
@@ -436,7 +458,7 @@
 </dl>
 <a NAME="CyclomaticComplexityDialog.start" ID="CyclomaticComplexityDialog.start"></a>
 <h4>CyclomaticComplexityDialog.start</h4>
-<b>start</b>(<i>fn, minRank="D"</i>)
+<b>start</b>(<i>fn</i>)
 
 <p>
         Public slot to start the cyclomatic complexity determination.
@@ -448,10 +470,6 @@
 file or list of files or directory to show
             the cyclomatic complexity for
 </dd>
-<dt><i>minRank</i> (str (one character out of A - F))</dt>
-<dd>
-minimum rank of entries to be shown
-</dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
--- a/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.MaintainabilityIndexCalculator.html	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.MaintainabilityIndexCalculator.html	Sat May 27 15:33:58 2023 +0200
@@ -43,7 +43,7 @@
 </tr>
 <tr>
 <td><a href="#maintainabilityIndex">maintainabilityIndex</a></td>
-<td>Private function to calculate the maintainability index of one file.</td>
+<td></td>
 </tr>
 <tr>
 <td><a href="#workerTask">workerTask</a></td>
@@ -54,7 +54,7 @@
 <hr />
 <a NAME="__maintainabilityIndex" ID="__maintainabilityIndex"></a>
 <h2>__maintainabilityIndex</h2>
-<b>__maintainabilityIndex</b>(<i>file, text=""</i>)
+<b>__maintainabilityIndex</b>(<i>text</i>)
 
 <p>
     Private function to calculate the maintainability index for one Python
@@ -62,10 +62,6 @@
 </p>
 <dl>
 
-<dt><i>file</i> (str)</dt>
-<dd>
-source filename
-</dd>
 <dt><i>text</i> (str)</dt>
 <dd>
 source text
@@ -157,32 +153,6 @@
 <h2>maintainabilityIndex</h2>
 <b>maintainabilityIndex</b>(<i>file, text=""</i>)
 
-<p>
-    Private function to calculate the maintainability index of one file.
-</p>
-<dl>
-
-<dt><i>file</i> (str)</dt>
-<dd>
-source filename
-</dd>
-<dt><i>text</i> (str)</dt>
-<dd>
-source text
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-tuple containing the result dictionary
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-(tuple of dict)
-</dd>
-</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
--- a/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.MaintainabilityIndexDialog.html	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.MaintainabilityIndexDialog.html	Sat May 27 15:33:58 2023 +0200
@@ -63,6 +63,10 @@
 <td>Private slot handling the completion of a batch job.</td>
 </tr>
 <tr>
+<td><a href="#MaintainabilityIndexDialog.__cancel">__cancel</a></td>
+<td>Private method to cancel the current check run.</td>
+</tr>
+<tr>
 <td><a href="#MaintainabilityIndexDialog.__createErrorItem">__createErrorItem</a></td>
 <td>Private slot to create a new error item in the result list.</td>
 </tr>
@@ -91,6 +95,10 @@
 <td>Public method to clear all results.</td>
 </tr>
 <tr>
+<td><a href="#MaintainabilityIndexDialog.closeEvent">closeEvent</a></td>
+<td>Protected method to handle a close event.</td>
+</tr>
+<tr>
 <td><a href="#MaintainabilityIndexDialog.maintainabilityIndex">maintainabilityIndex</a></td>
 <td>Public method to start a maintainability index calculation for one Python file.</td>
 </tr>
@@ -157,6 +165,13 @@
 type of the calculated metrics
 </dd>
 </dl>
+<a NAME="MaintainabilityIndexDialog.__cancel" ID="MaintainabilityIndexDialog.__cancel"></a>
+<h4>MaintainabilityIndexDialog.__cancel</h4>
+<b>__cancel</b>(<i></i>)
+
+<p>
+        Private method to cancel the current check run.
+</p>
 <a NAME="MaintainabilityIndexDialog.__createErrorItem" ID="MaintainabilityIndexDialog.__createErrorItem"></a>
 <h4>MaintainabilityIndexDialog.__createErrorItem</h4>
 <b>__createErrorItem</b>(<i>filename, message</i>)
@@ -255,9 +270,23 @@
 <p>
         Public method to clear all results.
 </p>
+<a NAME="MaintainabilityIndexDialog.closeEvent" ID="MaintainabilityIndexDialog.closeEvent"></a>
+<h4>MaintainabilityIndexDialog.closeEvent</h4>
+<b>closeEvent</b>(<i>evt</i>)
+
+<p>
+        Protected method to handle a close event.
+</p>
+<dl>
+
+<dt><i>evt</i> (QCloseEvent)</dt>
+<dd>
+reference to the close event
+</dd>
+</dl>
 <a NAME="MaintainabilityIndexDialog.maintainabilityIndex" ID="MaintainabilityIndexDialog.maintainabilityIndex"></a>
 <h4>MaintainabilityIndexDialog.maintainabilityIndex</h4>
-<b>maintainabilityIndex</b>(<i>codestring=""</i>)
+<b>maintainabilityIndex</b>(<i></i>)
 
 <p>
         Public method to start a maintainability index calculation for one
@@ -266,13 +295,6 @@
 <p>
         The results are reported to the __processResult slot.
 </p>
-<dl>
-
-<dt><i>codestring</i> (str)</dt>
-<dd>
-optional sourcestring
-</dd>
-</dl>
 <a NAME="MaintainabilityIndexDialog.maintainabilityIndexBatch" ID="MaintainabilityIndexDialog.maintainabilityIndexBatch"></a>
 <h4>MaintainabilityIndexDialog.maintainabilityIndexBatch</h4>
 <b>maintainabilityIndexBatch</b>(<i></i>)
--- a/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.RawMetricsDialog.html	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/Documentation/source/Plugin_Metrics_Radon.RadonMetrics.RawMetricsDialog.html	Sat May 27 15:33:58 2023 +0200
@@ -63,6 +63,10 @@
 <td>Private slot handling the completion of a batch job.</td>
 </tr>
 <tr>
+<td><a href="#RawMetricsDialog.__cancel">__cancel</a></td>
+<td>Private method to cancel the current check run.</td>
+</tr>
+<tr>
 <td><a href="#RawMetricsDialog.__createErrorItem">__createErrorItem</a></td>
 <td>Private slot to create a new error item in the result list.</td>
 </tr>
@@ -103,6 +107,10 @@
 <td>Public method to clear all results.</td>
 </tr>
 <tr>
+<td><a href="#RawMetricsDialog.closeEvent">closeEvent</a></td>
+<td>Protected method to handle a close event.</td>
+</tr>
+<tr>
 <td><a href="#RawMetricsDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td>
 <td>Private slot called by a button of the button box clicked.</td>
 </tr>
@@ -169,6 +177,13 @@
 type of the calculated metrics
 </dd>
 </dl>
+<a NAME="RawMetricsDialog.__cancel" ID="RawMetricsDialog.__cancel"></a>
+<h4>RawMetricsDialog.__cancel</h4>
+<b>__cancel</b>(<i></i>)
+
+<p>
+        Private method to cancel the current check run.
+</p>
 <a NAME="RawMetricsDialog.__createErrorItem" ID="RawMetricsDialog.__createErrorItem"></a>
 <h4>RawMetricsDialog.__createErrorItem</h4>
 <b>__createErrorItem</b>(<i>filename, message</i>)
@@ -318,6 +333,20 @@
 <p>
         Public method to clear all results.
 </p>
+<a NAME="RawMetricsDialog.closeEvent" ID="RawMetricsDialog.closeEvent"></a>
+<h4>RawMetricsDialog.closeEvent</h4>
+<b>closeEvent</b>(<i>evt</i>)
+
+<p>
+        Protected method to handle a close event.
+</p>
+<dl>
+
+<dt><i>evt</i> (QCloseEvent)</dt>
+<dd>
+reference to the close event
+</dd>
+</dl>
 <a NAME="RawMetricsDialog.on_buttonBox_clicked" ID="RawMetricsDialog.on_buttonBox_clicked"></a>
 <h4>RawMetricsDialog.on_buttonBox_clicked</h4>
 <b>on_buttonBox_clicked</b>(<i>button</i>)
@@ -377,7 +406,7 @@
 </dl>
 <a NAME="RawMetricsDialog.rawMetrics" ID="RawMetricsDialog.rawMetrics"></a>
 <h4>RawMetricsDialog.rawMetrics</h4>
-<b>rawMetrics</b>(<i>codestring=""</i>)
+<b>rawMetrics</b>(<i></i>)
 
 <p>
         Public method to start a code metrics calculation for one Python file.
@@ -385,13 +414,6 @@
 <p>
         The results are reported to the __processResult slot.
 </p>
-<dl>
-
-<dt><i>codestring</i> (str)</dt>
-<dd>
-optional sourcestring
-</dd>
-</dl>
 <a NAME="RawMetricsDialog.rawMetricsBatch" ID="RawMetricsDialog.rawMetricsBatch"></a>
 <h4>RawMetricsDialog.rawMetricsBatch</h4>
 <b>rawMetricsBatch</b>(<i></i>)
--- a/RadonMetrics/MaintainabilityIndexCalculator.py	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/MaintainabilityIndexCalculator.py	Sat May 27 15:33:58 2023 +0200
@@ -29,7 +29,7 @@
     return batchMaintainabilityIndex
 
 
-def maintainabilityIndex(file, text=""):
+def maintainabilityIndex(file, text=""):  # noqa: U100
     """
     Private function to calculate the maintainability index of one file.
 
@@ -40,7 +40,7 @@
     @return tuple containing the result dictionary
     @rtype (tuple of dict)
     """
-    return __maintainabilityIndex(file, text)
+    return __maintainabilityIndex(text)
 
 
 def batchMaintainabilityIndex(argumentsList, send, fx, cancelled, maxProcesses=0):
@@ -133,17 +133,15 @@
     @type multiprocessing.Queue
     """
     for filename, source in iter(inputQueue.get, "STOP"):
-        result = __maintainabilityIndex(filename, source)
+        result = __maintainabilityIndex(source)
         outputQueue.put((filename, result))
 
 
-def __maintainabilityIndex(file, text=""):
+def __maintainabilityIndex(text):
     """
     Private function to calculate the maintainability index for one Python
     file.
 
-    @param file source filename
-    @type str
     @param text source text
     @type str
     @return tuple containing the result dictionary
--- a/RadonMetrics/MaintainabilityIndexDialog.py	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/MaintainabilityIndexDialog.py	Sat May 27 15:33:58 2023 +0200
@@ -63,6 +63,7 @@
         self.radonService.error.connect(self.__processError)
         self.radonService.batchFinished.connect(self.__batchFinished)
 
+        self.__batch = False
         self.cancelled = False
 
         self.__project = ericApp().getObject("Project")
@@ -226,8 +227,6 @@
         }
 
         if len(self.files) > 0:
-            # disable updates of the list for speed
-            self.resultList.setUpdatesEnabled(False)
             self.resultList.setSortingEnabled(False)
 
             self.checkProgress.setMaximum(len(self.files))
@@ -243,15 +242,12 @@
                 self.__batch = True
                 self.maintainabilityIndexBatch()
 
-    def maintainabilityIndex(self, codestring=""):
+    def maintainabilityIndex(self):
         """
         Public method to start a maintainability index calculation for one
         Python file.
 
         The results are reported to the __processResult slot.
-
-        @param codestring optional sourcestring
-        @type str
         """
         if not self.files:
             self.checkProgress.setMaximum(1)
@@ -261,7 +257,6 @@
 
         self.filename = self.files.pop(0)
         self.checkProgress.setValue(self.progress)
-        QApplication.processEvents()
 
         if self.cancelled:
             return
@@ -290,7 +285,6 @@
         argumentsList = []
         for progress, filename in enumerate(self.files, start=1):
             self.checkProgress.setValue(progress)
-            QApplication.processEvents()
 
             try:
                 source = Utilities.readEncodedFile(filename)[0]
@@ -303,7 +297,6 @@
 
         # reset the progress bar to the checked files
         self.checkProgress.setValue(self.progress)
-        QApplication.processEvents()
 
         self.__finished = False
         self.radonService.maintainabilityIndexBatch(argumentsList)
@@ -360,9 +353,7 @@
             self.__createResultItem(fn, result)
 
         self.progress += 1
-
         self.checkProgress.setValue(self.progress)
-        QApplication.processEvents()
 
         if not self.__batch:
             self.maintainabilityIndex()
@@ -374,10 +365,8 @@
         if not self.__finished:
             self.__finished = True
 
-            # reenable updates of the list
             self.resultList.setSortingEnabled(True)
             self.resultList.sortItems(0, Qt.SortOrder.AscendingOrder)
-            self.resultList.setUpdatesEnabled(True)
 
             self.cancelled = True
             self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(
@@ -415,6 +404,25 @@
 
             self.checkProgress.setVisible(False)
 
+    def __cancel(self):
+        """
+        Private method to cancel the current check run.
+        """
+        if self.__batch:
+            self.radonService.cancelMaintainabilityIndexBatch()
+            QTimer.singleShot(1000, self.__finish)
+        else:
+            self.__finish()
+
+    def closeEvent(self, evt):
+        """
+        Protected method to handle a close event.
+
+        @param evt reference to the close event
+        @type QCloseEvent
+        """
+        self.__cancel()
+
     @pyqtSlot(QAbstractButton)
     def on_buttonBox_clicked(self, button):
         """
@@ -426,11 +434,7 @@
         if button == self.buttonBox.button(QDialogButtonBox.StandardButton.Close):
             self.close()
         elif button == self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel):
-            if self.__batch:
-                self.radonService.cancelMaintainabilityIndexBatch()
-                QTimer.singleShot(1000, self.__finish)
-            else:
-                self.__finish()
+            self.__cancel()
 
     @pyqtSlot()
     def on_startButton_clicked(self):
--- a/RadonMetrics/RawMetricsDialog.py	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/RawMetricsDialog.py	Sat May 27 15:33:58 2023 +0200
@@ -66,6 +66,7 @@
         self.radonService.error.connect(self.__processError)
         self.radonService.batchFinished.connect(self.__batchFinished)
 
+        self.__batch = False
         self.cancelled = False
 
         self.__project = ericApp().getObject("Project")
@@ -235,8 +236,6 @@
             self.__summary[key] = 0
 
         if len(self.files) > 0:
-            # disable updates of the list for speed
-            self.resultList.setUpdatesEnabled(False)
             self.resultList.setSortingEnabled(False)
 
             self.checkProgress.setMaximum(len(self.files))
@@ -252,14 +251,11 @@
                 self.__batch = True
                 self.rawMetricsBatch()
 
-    def rawMetrics(self, codestring=""):
+    def rawMetrics(self):
         """
         Public method to start a code metrics calculation for one Python file.
 
         The results are reported to the __processResult slot.
-
-        @param codestring optional sourcestring
-        @type str
         """
         if not self.files:
             self.checkProgress.setMaximum(1)
@@ -269,7 +265,6 @@
 
         self.filename = self.files.pop(0)
         self.checkProgress.setValue(self.progress)
-        QApplication.processEvents()
 
         if self.cancelled:
             return
@@ -298,7 +293,6 @@
         argumentsList = []
         for progress, filename in enumerate(self.files, start=1):
             self.checkProgress.setValue(progress)
-            QApplication.processEvents()
 
             try:
                 source = Utilities.readEncodedFile(filename)[0]
@@ -311,7 +305,6 @@
 
         # reset the progress bar to the checked files
         self.checkProgress.setValue(self.progress)
-        QApplication.processEvents()
 
         self.__finished = False
         self.radonService.rawMetricsBatch(argumentsList)
@@ -368,9 +361,7 @@
             self.__createResultItem(fn, result)
 
         self.progress += 1
-
         self.checkProgress.setValue(self.progress)
-        QApplication.processEvents()
 
         if not self.__batch:
             self.rawMetrics()
@@ -410,10 +401,8 @@
         if not self.__finished:
             self.__finished = True
 
-            # reenable updates of the list
             self.resultList.setSortingEnabled(True)
             self.resultList.sortItems(0, Qt.SortOrder.AscendingOrder)
-            self.resultList.setUpdatesEnabled(True)
 
             self.__createSummary()
 
@@ -512,6 +501,25 @@
         itm = QTreeWidgetItem(self.summaryList, [col0, col1])
         itm.setTextAlignment(1, Qt.AlignmentFlag.AlignRight)
 
+    def __cancel(self):
+        """
+        Private method to cancel the current check run.
+        """
+        if self.__batch:
+            self.radonService.cancelRawMetricsBatch()
+            QTimer.singleShot(1000, self.__finish)
+        else:
+            self.__finish()
+
+    def closeEvent(self, evt):
+        """
+        Protected method to handle a close event.
+
+        @param evt reference to the close event
+        @type QCloseEvent
+        """
+        self.__cancel()
+
     @pyqtSlot(QAbstractButton)
     def on_buttonBox_clicked(self, button):
         """
@@ -523,11 +531,7 @@
         if button == self.buttonBox.button(QDialogButtonBox.StandardButton.Close):
             self.close()
         elif button == self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel):
-            if self.__batch:
-                self.radonService.cancelRawMetricsBatch()
-                QTimer.singleShot(1000, self.__finish)
-            else:
-                self.__finish()
+            self.__cancel()
 
     @pyqtSlot()
     def on_startButton_clicked(self):
Binary file RadonMetrics/i18n/radon_de.qm has changed
--- a/RadonMetrics/i18n/radon_de.ts	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/i18n/radon_de.ts	Sat May 27 15:33:58 2023 +0200
@@ -1,37 +1,52 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
-<TS version="2.0" language="de_DE" sourcelanguage="">
+<TS version="2.1" language="de_DE">
   <context>
     <name>CyclomaticComplexityDialog</name>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="83" />
-      <source>&lt;table&gt;&lt;tr&gt;&lt;td colspan=3&gt;&lt;b&gt;Ranking:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(low risk - simple block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(low risk - well structured and stable block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(moderate risk - slightly complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(more than moderate risk - more complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(high risk - complex block, alarming)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(very high risk - error-prone, unstable block)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation>&lt;table&gt;&lt;tr&gt;&lt;td colspan=3&gt;&lt;b&gt;Bewertung:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(geringes Risiko - einfacher Block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(geringes Risika - gut strukturierter und stabiler Block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(moderates Risiko - etwas komplexerer Block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(mehr als moderates Risiko - komplexerer Block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(hohes Risiko - komplexer Block, alarmierend)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(sehr hohes Risiko - fehleranfälliger, instabiler Block)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+      <location filename="../CyclomaticComplexityDialog.py" line="87" />
+      <source>&lt;b&gt;Summary:&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Zusammenfassung:&lt;/b&gt;</translation>
+    </message>
+    <message>
+      <location filename="../CyclomaticComplexityDialog.py" line="88" />
+      <source>&lt;b&gt;Ranking:&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Bewertung:&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="102" />
-      <source>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Type:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Class&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Function&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Method&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Typ:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Klasse&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Funktion&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Methode&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+      <location filename="../CyclomaticComplexityDialog.py" line="90" />
+      <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(low risk - simple block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(low risk - well structured and stable block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(moderate risk - slightly complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(more than moderate risk - more complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(high risk - complex block, alarming)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(very high risk - error-prone, unstable block)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(geringes Risiko - einfacher Block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(geringes Risika - gut strukturierter und stabiler Block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(moderates Risiko - etwas komplexerer Block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(mehr als moderates Risiko - komplexerer Block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(hohes Risiko - komplexer Block, alarmierend)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(sehr hohes Risiko - fehleranfälliger, instabiler Block)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="156" />
+      <location filename="../CyclomaticComplexityDialog.py" line="107" />
+      <source>&lt;b&gt;Type:&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Typ:&lt;/b</translation>
+    </message>
+    <message>
+      <location filename="../CyclomaticComplexityDialog.py" line="109" />
+      <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Class&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Function&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Method&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Klasse&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Funktion&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Methode&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+      <location filename="../CyclomaticComplexityDialog.py" line="162" />
       <source>Collapse all</source>
       <translation>Alle Zuklappen</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="157" />
+      <location filename="../CyclomaticComplexityDialog.py" line="163" />
       <source>Expand all</source>
       <translation>Alle Aufklappen</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="230" />
+      <location filename="../CyclomaticComplexityDialog.py" line="236" />
       <source>Errors</source>
       <translation>Fehler</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="513" />
-      <source>&lt;b&gt;Summary:&lt;/b&gt;&lt;br/&gt;{0} blocks (classes, functions, methods) analyzed.&lt;br/&gt;Average complexity: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} blocks&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation>&lt;b&gt;Zusammenfassung:&lt;/b&gt;&lt;br/&gt;{0} Blöcke (Klassen, Funktionen, Methoden) analysiert.&lt;br/&gt;Mittlere Komplexität: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} Blöcke&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} Blöcke&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} Blöcke&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} Blöcke&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} Blöcke&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} Blöcke&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+      <location filename="../CyclomaticComplexityDialog.py" line="510" />
+      <source>{0} blocks (classes, functions, methods) analyzed.&lt;br/&gt;Average complexity: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} blocks&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation>{0} Blöcke (Klassen, Funktionen, Methoden) analysiert.&lt;br/&gt;Mittlere Komplexität: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} Blöcke&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} Blöcke&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} Blöcke&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} Blöcke&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} Blöcke&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} Blöcke&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
       <location filename="../CyclomaticComplexityDialog.ui" line="0" />
@@ -114,17 +129,17 @@
   <context>
     <name>MaintainabilityIndexDialog</name>
     <message>
-      <location filename="../MaintainabilityIndexDialog.py" line="72" />
+      <location filename="../MaintainabilityIndexDialog.py" line="77" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Rank&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;MI Score&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Maintainability&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;100 - 20&lt;/td&gt;&lt;td&gt;very high&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;19 - 10&lt;/td&gt;&lt;td&gt;medium&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;9 - 0&lt;/td&gt;&lt;td&gt;extremely low&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Rang&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Wert&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Wartbarkeit&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;100 - 20&lt;/td&gt;&lt;td&gt;sehr hoch&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;19 - 10&lt;/td&gt;&lt;td&gt;mittel&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;9 - 0&lt;/td&gt;&lt;td&gt;extrem niedrig&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MaintainabilityIndexDialog.py" line="150" />
+      <location filename="../MaintainabilityIndexDialog.py" line="155" />
       <source>Errors</source>
       <translation>Fehler</translation>
     </message>
     <message>
-      <location filename="../MaintainabilityIndexDialog.py" line="397" />
+      <location filename="../MaintainabilityIndexDialog.py" line="393" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Summary:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{0} files&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} files&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} files&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Zusammenfassung:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{0} Dateien&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} Dateien&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} Dateien&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
@@ -189,109 +204,109 @@
   <context>
     <name>RadonMetricsPlugin</name>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="169" />
+      <location filename="../../PluginMetricsRadon.py" line="171" />
       <source>Python 3 batch job</source>
       <translation>Python 3 Stapelprüfung</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="212" />
+      <location filename="../../PluginMetricsRadon.py" line="214" />
       <source>Unknown metrics result received ({0}).</source>
       <translation>Unbekannte Metrik empfangen ({0}).</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="1025" />
-      <location filename="../../PluginMetricsRadon.py" line="669" />
-      <location filename="../../PluginMetricsRadon.py" line="492" />
-      <location filename="../../PluginMetricsRadon.py" line="404" />
+      <location filename="../../PluginMetricsRadon.py" line="1027" />
+      <location filename="../../PluginMetricsRadon.py" line="671" />
+      <location filename="../../PluginMetricsRadon.py" line="494" />
+      <location filename="../../PluginMetricsRadon.py" line="406" />
       <source>Radon</source>
       <translation>Radon</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="678" />
-      <location filename="../../PluginMetricsRadon.py" line="500" />
-      <location filename="../../PluginMetricsRadon.py" line="413" />
+      <location filename="../../PluginMetricsRadon.py" line="680" />
+      <location filename="../../PluginMetricsRadon.py" line="502" />
+      <location filename="../../PluginMetricsRadon.py" line="415" />
       <source>Code Metrics</source>
       <translation>Quelltextmetriken</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="678" />
-      <location filename="../../PluginMetricsRadon.py" line="500" />
-      <location filename="../../PluginMetricsRadon.py" line="414" />
+      <location filename="../../PluginMetricsRadon.py" line="680" />
+      <location filename="../../PluginMetricsRadon.py" line="502" />
+      <location filename="../../PluginMetricsRadon.py" line="416" />
       <source>Code &amp;Metrics...</source>
       <translation>Quelltext&amp;metriken...</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="680" />
-      <location filename="../../PluginMetricsRadon.py" line="502" />
-      <location filename="../../PluginMetricsRadon.py" line="420" />
-      <source>Show raw code metrics.</source>
-      <translation>Zeige einige Quelltextmetriken an.</translation>
-    </message>
-    <message>
       <location filename="../../PluginMetricsRadon.py" line="682" />
       <location filename="../../PluginMetricsRadon.py" line="504" />
       <location filename="../../PluginMetricsRadon.py" line="422" />
+      <source>Show raw code metrics.</source>
+      <translation>Zeige einige Quelltextmetriken an.</translation>
+    </message>
+    <message>
+      <location filename="../../PluginMetricsRadon.py" line="684" />
+      <location filename="../../PluginMetricsRadon.py" line="506" />
+      <location filename="../../PluginMetricsRadon.py" line="424" />
       <source>&lt;b&gt;Code Metrics...&lt;/b&gt;&lt;p&gt;This calculates raw code metrics of Python files and shows the amount of lines of code, logical lines of code, source lines of code, comment lines, multi-line strings and blank lines.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Quelltextmetriken...&lt;/b&gt;&lt;p&gt;Dies ermittelt einige Quelltextmetriken für Python Dateien und zeigt die Anzahl der Textzeilen, logischen Quelltextzeilen, Quelltextzeilen, Kommentarzeilen, mehrzeiligen Zeichenketten und Lerrzeilen.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="695" />
-      <location filename="../../PluginMetricsRadon.py" line="516" />
-      <location filename="../../PluginMetricsRadon.py" line="435" />
+      <location filename="../../PluginMetricsRadon.py" line="697" />
+      <location filename="../../PluginMetricsRadon.py" line="518" />
+      <location filename="../../PluginMetricsRadon.py" line="437" />
       <source>Maintainability Index</source>
       <translation>Wartbarkeitsindex</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="696" />
-      <location filename="../../PluginMetricsRadon.py" line="517" />
-      <location filename="../../PluginMetricsRadon.py" line="436" />
+      <location filename="../../PluginMetricsRadon.py" line="698" />
+      <location filename="../../PluginMetricsRadon.py" line="519" />
+      <location filename="../../PluginMetricsRadon.py" line="438" />
       <source>Maintainability &amp;Index...</source>
       <translation>Wartbarkeits&amp;index...</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="703" />
-      <location filename="../../PluginMetricsRadon.py" line="523" />
-      <location filename="../../PluginMetricsRadon.py" line="443" />
+      <location filename="../../PluginMetricsRadon.py" line="705" />
+      <location filename="../../PluginMetricsRadon.py" line="525" />
+      <location filename="../../PluginMetricsRadon.py" line="445" />
       <source>Show the maintainability index for Python files.</source>
       <translation>Zeigt den Wartbarkeitsindex für Python Dateien an.</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="706" />
-      <location filename="../../PluginMetricsRadon.py" line="525" />
-      <location filename="../../PluginMetricsRadon.py" line="446" />
+      <location filename="../../PluginMetricsRadon.py" line="708" />
+      <location filename="../../PluginMetricsRadon.py" line="527" />
+      <location filename="../../PluginMetricsRadon.py" line="448" />
       <source>&lt;b&gt;Maintainability Index...&lt;/b&gt;&lt;p&gt;This calculates the maintainability index of Python files and shows it together with a ranking.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Wartbarkeitsindex...&lt;/b&gt;&lt;p&gt;Dies ermittelt den Wartbarkeitsindex für Python Dateien und zeigt ihn zusammen mit einer Bewertung an.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="718" />
-      <location filename="../../PluginMetricsRadon.py" line="535" />
-      <location filename="../../PluginMetricsRadon.py" line="457" />
+      <location filename="../../PluginMetricsRadon.py" line="720" />
+      <location filename="../../PluginMetricsRadon.py" line="537" />
+      <location filename="../../PluginMetricsRadon.py" line="459" />
       <source>Cyclomatic Complexity</source>
       <translation>Zyklomatische Komplexität</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="719" />
-      <location filename="../../PluginMetricsRadon.py" line="536" />
-      <location filename="../../PluginMetricsRadon.py" line="458" />
+      <location filename="../../PluginMetricsRadon.py" line="721" />
+      <location filename="../../PluginMetricsRadon.py" line="538" />
+      <location filename="../../PluginMetricsRadon.py" line="460" />
       <source>Cyclomatic &amp;Complexity...</source>
       <translation>Zyklomatische &amp;Komplexität...</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="726" />
-      <location filename="../../PluginMetricsRadon.py" line="542" />
-      <location filename="../../PluginMetricsRadon.py" line="465" />
+      <location filename="../../PluginMetricsRadon.py" line="728" />
+      <location filename="../../PluginMetricsRadon.py" line="544" />
+      <location filename="../../PluginMetricsRadon.py" line="467" />
       <source>Show the cyclomatic complexity for Python files.</source>
       <translation>Zeigt die zyklomatische Komplexität für Python Dateien an.</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="729" />
-      <location filename="../../PluginMetricsRadon.py" line="544" />
-      <location filename="../../PluginMetricsRadon.py" line="468" />
+      <location filename="../../PluginMetricsRadon.py" line="731" />
+      <location filename="../../PluginMetricsRadon.py" line="546" />
+      <location filename="../../PluginMetricsRadon.py" line="470" />
       <source>&lt;b&gt;Cyclomatic Complexity...&lt;/b&gt;&lt;p&gt;This calculates the cyclomatic complexity of Python files and shows it together with a ranking.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Zyklomatische Komplexität...&lt;/b&gt;&lt;p&gt;Dies ermittelt die zyklomatische Komplexität von Python Dateien und zeigt sie zusammen mit einer Bewertung an.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="1026" />
+      <location filename="../../PluginMetricsRadon.py" line="1028" />
       <source>&lt;p&gt;&lt;b&gt;Radon Version {0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Radon is a Python tool that computes various metrics from the source code. Radon can compute:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Raw&lt;/b&gt; metrics (these include SLOC, comment lines, blank lines, multi line strings, ...)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Maintainability Index&lt;/b&gt; (the one used in Visual Studio)&lt;/li&gt;&lt;li&gt;&lt;b&gt;McCabe's complexity&lt;/b&gt;, i.e. cyclomatic complexity&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;Radon Version {0}&lt;/b&gt;&lt;p&gt;Radon ist ein Werkzeug, das verschiedene Metriken für Python Quelltexte ermittelt. Radon kann die folgenden Metriken ermitteln:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Quelltext&lt;/b&gt;metrik (dies beinhaltet Quelltextzeilen, Kommentarzeilen, Leerzeilen, mehrzeilige Zeichenketten, ...)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Wartbarkeitsindex&lt;/b&gt; (wie von Visual Studio)&lt;/li&gt;&lt;li&gt;&lt;b&gt;McCabe Komplexität&lt;/b&gt;, d.h. zyklomatische Komplexität&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</translation>
     </message>
@@ -299,74 +314,74 @@
   <context>
     <name>RawMetricsDialog</name>
     <message>
-      <location filename="../RawMetricsDialog.py" line="76" />
+      <location filename="../RawMetricsDialog.py" line="80" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Source lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Logical lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Comments&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comment lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Empty&amp;nbsp;Comments&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comment lines not containing code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Multi&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Lines in multi line strings&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Empty&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Blank lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Comment Statistics:&lt;/b&gt;&lt;/td&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comments to lines ratio&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C % S&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comments to source lines ratio&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C + M % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comments plus multi line strings to lines ratio&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Textzeilen&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Quelltextzeilen&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Logische Quelltextzeilen&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Kommentare&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Kommentarzeilen&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;b&gt;Leere&amp;nbsp;Kommentare&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Kommentarzeilen ohne Inhalt&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Mehrfach&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Zeilen in mehrzeiligen Zeichenketten&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Leer&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Leerzeilen&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Kommentarstatistiken:&lt;/b&gt;&lt;/td&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;K % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Verhältnis Kommentare zu Textzeilen&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;K % S&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Verhältnis Kommentare zu Quelltextzeilen&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;K + M % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Verhältnis der Summe aus Kommentaren und mehrzeiliger Zeichenketten zu Textzeilen&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="154" />
+      <location filename="../RawMetricsDialog.py" line="158" />
       <source>Errors</source>
       <translation>Fehler</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="442" />
+      <location filename="../RawMetricsDialog.py" line="437" />
       <source>Files</source>
       <translation>Dateien</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="445" />
+      <location filename="../RawMetricsDialog.py" line="440" />
       <source>LOC</source>
       <translation>LOC</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="448" />
+      <location filename="../RawMetricsDialog.py" line="443" />
       <source>SLOC</source>
       <translation>SLOC</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="451" />
+      <location filename="../RawMetricsDialog.py" line="446" />
       <source>LLOC</source>
       <translation>LLOC</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="454" />
+      <location filename="../RawMetricsDialog.py" line="449" />
       <source>Comment Lines</source>
       <translation>Kommentarzeilen</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="457" />
+      <location filename="../RawMetricsDialog.py" line="452" />
       <source>Empty Comments</source>
       <translation>Leere Kommentare</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="461" />
+      <location filename="../RawMetricsDialog.py" line="456" />
       <source>Multiline Strings</source>
       <translation>Mehrzeiligen Zeichenketten</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="465" />
+      <location filename="../RawMetricsDialog.py" line="460" />
       <source>Empty Lines</source>
       <translation>Leerzeilen</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="468" />
+      <location filename="../RawMetricsDialog.py" line="463" />
       <source>C % L</source>
       <translation>K % L</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="477" />
+      <location filename="../RawMetricsDialog.py" line="472" />
       <source>C % S</source>
       <translation>K % S</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="486" />
+      <location filename="../RawMetricsDialog.py" line="481" />
       <source>C + M % L</source>
       <translation>K + M % L</translation>
     </message>
--- a/RadonMetrics/i18n/radon_en.ts	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/i18n/radon_en.ts	Sat May 27 15:33:58 2023 +0200
@@ -4,33 +4,48 @@
   <context>
     <name>CyclomaticComplexityDialog</name>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="83" />
-      <source>&lt;table&gt;&lt;tr&gt;&lt;td colspan=3&gt;&lt;b&gt;Ranking:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(low risk - simple block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(low risk - well structured and stable block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(moderate risk - slightly complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(more than moderate risk - more complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(high risk - complex block, alarming)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(very high risk - error-prone, unstable block)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <location filename="../CyclomaticComplexityDialog.py" line="87" />
+      <source>&lt;b&gt;Summary:&lt;/b&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CyclomaticComplexityDialog.py" line="88" />
+      <source>&lt;b&gt;Ranking:&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="102" />
-      <source>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Type:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Class&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Function&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Method&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <location filename="../CyclomaticComplexityDialog.py" line="90" />
+      <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(low risk - simple block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(low risk - well structured and stable block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(moderate risk - slightly complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(more than moderate risk - more complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(high risk - complex block, alarming)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(very high risk - error-prone, unstable block)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="156" />
+      <location filename="../CyclomaticComplexityDialog.py" line="107" />
+      <source>&lt;b&gt;Type:&lt;/b&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CyclomaticComplexityDialog.py" line="109" />
+      <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Class&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Function&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Method&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../CyclomaticComplexityDialog.py" line="162" />
       <source>Collapse all</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="157" />
+      <location filename="../CyclomaticComplexityDialog.py" line="163" />
       <source>Expand all</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="230" />
+      <location filename="../CyclomaticComplexityDialog.py" line="236" />
       <source>Errors</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="513" />
-      <source>&lt;b&gt;Summary:&lt;/b&gt;&lt;br/&gt;{0} blocks (classes, functions, methods) analyzed.&lt;br/&gt;Average complexity: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} blocks&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <location filename="../CyclomaticComplexityDialog.py" line="510" />
+      <source>{0} blocks (classes, functions, methods) analyzed.&lt;br/&gt;Average complexity: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} blocks&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
@@ -113,17 +128,17 @@
   <context>
     <name>MaintainabilityIndexDialog</name>
     <message>
-      <location filename="../MaintainabilityIndexDialog.py" line="72" />
+      <location filename="../MaintainabilityIndexDialog.py" line="77" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Rank&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;MI Score&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Maintainability&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;100 - 20&lt;/td&gt;&lt;td&gt;very high&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;19 - 10&lt;/td&gt;&lt;td&gt;medium&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;9 - 0&lt;/td&gt;&lt;td&gt;extremely low&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MaintainabilityIndexDialog.py" line="150" />
+      <location filename="../MaintainabilityIndexDialog.py" line="155" />
       <source>Errors</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MaintainabilityIndexDialog.py" line="397" />
+      <location filename="../MaintainabilityIndexDialog.py" line="393" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Summary:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{0} files&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} files&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} files&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -187,109 +202,109 @@
   <context>
     <name>RadonMetricsPlugin</name>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="169" />
+      <location filename="../../PluginMetricsRadon.py" line="171" />
       <source>Python 3 batch job</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="212" />
+      <location filename="../../PluginMetricsRadon.py" line="214" />
       <source>Unknown metrics result received ({0}).</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="1025" />
-      <location filename="../../PluginMetricsRadon.py" line="669" />
-      <location filename="../../PluginMetricsRadon.py" line="492" />
-      <location filename="../../PluginMetricsRadon.py" line="404" />
+      <location filename="../../PluginMetricsRadon.py" line="1027" />
+      <location filename="../../PluginMetricsRadon.py" line="671" />
+      <location filename="../../PluginMetricsRadon.py" line="494" />
+      <location filename="../../PluginMetricsRadon.py" line="406" />
       <source>Radon</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="678" />
-      <location filename="../../PluginMetricsRadon.py" line="500" />
-      <location filename="../../PluginMetricsRadon.py" line="413" />
-      <source>Code Metrics</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../../PluginMetricsRadon.py" line="678" />
-      <location filename="../../PluginMetricsRadon.py" line="500" />
-      <location filename="../../PluginMetricsRadon.py" line="414" />
-      <source>Code &amp;Metrics...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../../PluginMetricsRadon.py" line="680" />
       <location filename="../../PluginMetricsRadon.py" line="502" />
-      <location filename="../../PluginMetricsRadon.py" line="420" />
-      <source>Show raw code metrics.</source>
+      <location filename="../../PluginMetricsRadon.py" line="415" />
+      <source>Code Metrics</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../../PluginMetricsRadon.py" line="680" />
+      <location filename="../../PluginMetricsRadon.py" line="502" />
+      <location filename="../../PluginMetricsRadon.py" line="416" />
+      <source>Code &amp;Metrics...</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../../PluginMetricsRadon.py" line="682" />
       <location filename="../../PluginMetricsRadon.py" line="504" />
       <location filename="../../PluginMetricsRadon.py" line="422" />
+      <source>Show raw code metrics.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../../PluginMetricsRadon.py" line="684" />
+      <location filename="../../PluginMetricsRadon.py" line="506" />
+      <location filename="../../PluginMetricsRadon.py" line="424" />
       <source>&lt;b&gt;Code Metrics...&lt;/b&gt;&lt;p&gt;This calculates raw code metrics of Python files and shows the amount of lines of code, logical lines of code, source lines of code, comment lines, multi-line strings and blank lines.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="695" />
-      <location filename="../../PluginMetricsRadon.py" line="516" />
-      <location filename="../../PluginMetricsRadon.py" line="435" />
+      <location filename="../../PluginMetricsRadon.py" line="697" />
+      <location filename="../../PluginMetricsRadon.py" line="518" />
+      <location filename="../../PluginMetricsRadon.py" line="437" />
       <source>Maintainability Index</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="696" />
-      <location filename="../../PluginMetricsRadon.py" line="517" />
-      <location filename="../../PluginMetricsRadon.py" line="436" />
+      <location filename="../../PluginMetricsRadon.py" line="698" />
+      <location filename="../../PluginMetricsRadon.py" line="519" />
+      <location filename="../../PluginMetricsRadon.py" line="438" />
       <source>Maintainability &amp;Index...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="703" />
-      <location filename="../../PluginMetricsRadon.py" line="523" />
-      <location filename="../../PluginMetricsRadon.py" line="443" />
+      <location filename="../../PluginMetricsRadon.py" line="705" />
+      <location filename="../../PluginMetricsRadon.py" line="525" />
+      <location filename="../../PluginMetricsRadon.py" line="445" />
       <source>Show the maintainability index for Python files.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="706" />
-      <location filename="../../PluginMetricsRadon.py" line="525" />
-      <location filename="../../PluginMetricsRadon.py" line="446" />
+      <location filename="../../PluginMetricsRadon.py" line="708" />
+      <location filename="../../PluginMetricsRadon.py" line="527" />
+      <location filename="../../PluginMetricsRadon.py" line="448" />
       <source>&lt;b&gt;Maintainability Index...&lt;/b&gt;&lt;p&gt;This calculates the maintainability index of Python files and shows it together with a ranking.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="718" />
-      <location filename="../../PluginMetricsRadon.py" line="535" />
-      <location filename="../../PluginMetricsRadon.py" line="457" />
+      <location filename="../../PluginMetricsRadon.py" line="720" />
+      <location filename="../../PluginMetricsRadon.py" line="537" />
+      <location filename="../../PluginMetricsRadon.py" line="459" />
       <source>Cyclomatic Complexity</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="719" />
-      <location filename="../../PluginMetricsRadon.py" line="536" />
-      <location filename="../../PluginMetricsRadon.py" line="458" />
+      <location filename="../../PluginMetricsRadon.py" line="721" />
+      <location filename="../../PluginMetricsRadon.py" line="538" />
+      <location filename="../../PluginMetricsRadon.py" line="460" />
       <source>Cyclomatic &amp;Complexity...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="726" />
-      <location filename="../../PluginMetricsRadon.py" line="542" />
-      <location filename="../../PluginMetricsRadon.py" line="465" />
+      <location filename="../../PluginMetricsRadon.py" line="728" />
+      <location filename="../../PluginMetricsRadon.py" line="544" />
+      <location filename="../../PluginMetricsRadon.py" line="467" />
       <source>Show the cyclomatic complexity for Python files.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="729" />
-      <location filename="../../PluginMetricsRadon.py" line="544" />
-      <location filename="../../PluginMetricsRadon.py" line="468" />
+      <location filename="../../PluginMetricsRadon.py" line="731" />
+      <location filename="../../PluginMetricsRadon.py" line="546" />
+      <location filename="../../PluginMetricsRadon.py" line="470" />
       <source>&lt;b&gt;Cyclomatic Complexity...&lt;/b&gt;&lt;p&gt;This calculates the cyclomatic complexity of Python files and shows it together with a ranking.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="1026" />
+      <location filename="../../PluginMetricsRadon.py" line="1028" />
       <source>&lt;p&gt;&lt;b&gt;Radon Version {0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Radon is a Python tool that computes various metrics from the source code. Radon can compute:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Raw&lt;/b&gt; metrics (these include SLOC, comment lines, blank lines, multi line strings, ...)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Maintainability Index&lt;/b&gt; (the one used in Visual Studio)&lt;/li&gt;&lt;li&gt;&lt;b&gt;McCabe's complexity&lt;/b&gt;, i.e. cyclomatic complexity&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -297,74 +312,74 @@
   <context>
     <name>RawMetricsDialog</name>
     <message>
-      <location filename="../RawMetricsDialog.py" line="76" />
+      <location filename="../RawMetricsDialog.py" line="80" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Source lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Logical lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Comments&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comment lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Empty&amp;nbsp;Comments&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comment lines not containing code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Multi&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Lines in multi line strings&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Empty&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Blank lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Comment Statistics:&lt;/b&gt;&lt;/td&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comments to lines ratio&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C % S&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comments to source lines ratio&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C + M % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comments plus multi line strings to lines ratio&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="154" />
+      <location filename="../RawMetricsDialog.py" line="158" />
       <source>Errors</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="442" />
+      <location filename="../RawMetricsDialog.py" line="437" />
       <source>Files</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="445" />
+      <location filename="../RawMetricsDialog.py" line="440" />
       <source>LOC</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="448" />
+      <location filename="../RawMetricsDialog.py" line="443" />
       <source>SLOC</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="451" />
+      <location filename="../RawMetricsDialog.py" line="446" />
       <source>LLOC</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="454" />
+      <location filename="../RawMetricsDialog.py" line="449" />
       <source>Comment Lines</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="457" />
+      <location filename="../RawMetricsDialog.py" line="452" />
       <source>Empty Comments</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="461" />
+      <location filename="../RawMetricsDialog.py" line="456" />
       <source>Multiline Strings</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="465" />
+      <location filename="../RawMetricsDialog.py" line="460" />
       <source>Empty Lines</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="468" />
+      <location filename="../RawMetricsDialog.py" line="463" />
       <source>C % L</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="477" />
+      <location filename="../RawMetricsDialog.py" line="472" />
       <source>C % S</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="486" />
+      <location filename="../RawMetricsDialog.py" line="481" />
       <source>C + M % L</source>
       <translation type="unfinished" />
     </message>
Binary file RadonMetrics/i18n/radon_es.qm has changed
--- a/RadonMetrics/i18n/radon_es.ts	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/i18n/radon_es.ts	Sat May 27 15:33:58 2023 +0200
@@ -4,34 +4,49 @@
   <context>
     <name>CyclomaticComplexityDialog</name>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="83" />
-      <source>&lt;table&gt;&lt;tr&gt;&lt;td colspan=3&gt;&lt;b&gt;Ranking:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(low risk - simple block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(low risk - well structured and stable block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(moderate risk - slightly complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(more than moderate risk - more complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(high risk - complex block, alarming)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(very high risk - error-prone, unstable block)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation>&lt;table&gt;&lt;tr&gt;&lt;td colspan=3&gt;&lt;b&gt;Ranking:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(riesgo bajo - bloque simple)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(riesgo bajo - bloque estable y bién estructurado)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(riesgo moderado - bloque ligeramente complejo)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(riesgo más que moderado- bloque más complejo)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(riesgo alto- bloque complejo, alarmante)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(riesgo muy alto, - propenso a errores, bloque inestable)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+      <location filename="../CyclomaticComplexityDialog.py" line="87" />
+      <source>&lt;b&gt;Summary:&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Resumen:&lt;/b&gt;</translation>
+    </message>
+    <message>
+      <location filename="../CyclomaticComplexityDialog.py" line="88" />
+      <source>&lt;b&gt;Ranking:&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Ranking:&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="102" />
-      <source>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Type:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Class&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Function&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Method&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Type:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Clase&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Función&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Método&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+      <location filename="../CyclomaticComplexityDialog.py" line="90" />
+      <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(low risk - simple block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(low risk - well structured and stable block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(moderate risk - slightly complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(more than moderate risk - more complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(high risk - complex block, alarming)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(very high risk - error-prone, unstable block)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(riesgo bajo - bloque simple)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(riesgo bajo - bloque estable y bién estructurado)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(riesgo moderado - bloque ligeramente complejo)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(riesgo más que moderado- bloque más complejo)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(riesgo alto- bloque complejo, alarmante)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(riesgo muy alto, - propenso a errores, bloque inestable)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="156" />
+      <location filename="../CyclomaticComplexityDialog.py" line="107" />
+      <source>&lt;b&gt;Type:&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Type:&lt;/b&gt;</translation>
+    </message>
+    <message>
+      <location filename="../CyclomaticComplexityDialog.py" line="109" />
+      <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Class&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Function&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Method&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Clase&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Función&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Método&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+      <location filename="../CyclomaticComplexityDialog.py" line="162" />
       <source>Collapse all</source>
       <translation>Contraer todos</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="157" />
+      <location filename="../CyclomaticComplexityDialog.py" line="163" />
       <source>Expand all</source>
       <translation>Expandir todos</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="230" />
+      <location filename="../CyclomaticComplexityDialog.py" line="236" />
       <source>Errors</source>
       <translation>Errores</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="513" />
-      <source>&lt;b&gt;Summary:&lt;/b&gt;&lt;br/&gt;{0} blocks (classes, functions, methods) analyzed.&lt;br/&gt;Average complexity: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} blocks&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation>&lt;b&gt;Resumen:&lt;/b&gt;&lt;br/&gt;{0} bloques (clases, funciones, métodos) analyzed.&lt;br/&gt;Complejidad media: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} bloques&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} bloques&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} bloques&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} bloques&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} bloques&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} bloques&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+      <location filename="../CyclomaticComplexityDialog.py" line="510" />
+      <source>{0} blocks (classes, functions, methods) analyzed.&lt;br/&gt;Average complexity: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} blocks&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation>{0} bloques (clases, funciones, métodos) analyzed.&lt;br/&gt;Complejidad media: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} bloques&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} bloques&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} bloques&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} bloques&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} bloques&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} bloques&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
       <location filename="../CyclomaticComplexityDialog.ui" line="0" />
@@ -114,17 +129,17 @@
   <context>
     <name>MaintainabilityIndexDialog</name>
     <message>
-      <location filename="../MaintainabilityIndexDialog.py" line="72" />
+      <location filename="../MaintainabilityIndexDialog.py" line="77" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Rank&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;MI Score&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Maintainability&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;100 - 20&lt;/td&gt;&lt;td&gt;very high&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;19 - 10&lt;/td&gt;&lt;td&gt;medium&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;9 - 0&lt;/td&gt;&lt;td&gt;extremely low&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Rango&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Puntuación MI&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Mantenibilidad&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;100 - 20&lt;/td&gt;&lt;td&gt;muy alta&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;19 - 10&lt;/td&gt;&lt;td&gt;media&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;9 - 0&lt;/td&gt;&lt;td&gt;extremadamente baja&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MaintainabilityIndexDialog.py" line="150" />
+      <location filename="../MaintainabilityIndexDialog.py" line="155" />
       <source>Errors</source>
       <translation>Errores</translation>
     </message>
     <message>
-      <location filename="../MaintainabilityIndexDialog.py" line="397" />
+      <location filename="../MaintainabilityIndexDialog.py" line="393" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Summary:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{0} files&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} files&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} files&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Resumen:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{0} archivos&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} archivos&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} archivos&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
@@ -189,109 +204,109 @@
   <context>
     <name>RadonMetricsPlugin</name>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="169" />
+      <location filename="../../PluginMetricsRadon.py" line="171" />
       <source>Python 3 batch job</source>
       <translation>Trabajo por lotes de Python 3</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="212" />
+      <location filename="../../PluginMetricsRadon.py" line="214" />
       <source>Unknown metrics result received ({0}).</source>
       <translation>Recibido resultado de métricas desconocidas ({0}).</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="1025" />
-      <location filename="../../PluginMetricsRadon.py" line="669" />
-      <location filename="../../PluginMetricsRadon.py" line="492" />
-      <location filename="../../PluginMetricsRadon.py" line="404" />
+      <location filename="../../PluginMetricsRadon.py" line="1027" />
+      <location filename="../../PluginMetricsRadon.py" line="671" />
+      <location filename="../../PluginMetricsRadon.py" line="494" />
+      <location filename="../../PluginMetricsRadon.py" line="406" />
       <source>Radon</source>
       <translation>Radon</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="678" />
-      <location filename="../../PluginMetricsRadon.py" line="500" />
-      <location filename="../../PluginMetricsRadon.py" line="413" />
+      <location filename="../../PluginMetricsRadon.py" line="680" />
+      <location filename="../../PluginMetricsRadon.py" line="502" />
+      <location filename="../../PluginMetricsRadon.py" line="415" />
       <source>Code Metrics</source>
       <translation>Métricas de Código</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="678" />
-      <location filename="../../PluginMetricsRadon.py" line="500" />
-      <location filename="../../PluginMetricsRadon.py" line="414" />
+      <location filename="../../PluginMetricsRadon.py" line="680" />
+      <location filename="../../PluginMetricsRadon.py" line="502" />
+      <location filename="../../PluginMetricsRadon.py" line="416" />
       <source>Code &amp;Metrics...</source>
       <translation>&amp;Métricas de Código...</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="680" />
-      <location filename="../../PluginMetricsRadon.py" line="502" />
-      <location filename="../../PluginMetricsRadon.py" line="420" />
-      <source>Show raw code metrics.</source>
-      <translation>Mostrar métricas de código en bruto.</translation>
-    </message>
-    <message>
       <location filename="../../PluginMetricsRadon.py" line="682" />
       <location filename="../../PluginMetricsRadon.py" line="504" />
       <location filename="../../PluginMetricsRadon.py" line="422" />
+      <source>Show raw code metrics.</source>
+      <translation>Mostrar métricas de código en bruto.</translation>
+    </message>
+    <message>
+      <location filename="../../PluginMetricsRadon.py" line="684" />
+      <location filename="../../PluginMetricsRadon.py" line="506" />
+      <location filename="../../PluginMetricsRadon.py" line="424" />
       <source>&lt;b&gt;Code Metrics...&lt;/b&gt;&lt;p&gt;This calculates raw code metrics of Python files and shows the amount of lines of code, logical lines of code, source lines of code, comment lines, multi-line strings and blank lines.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Métricas de Código...&lt;b&gt;&lt;p&gt;Calcula las métricas de código en bruto de archivos Python y muestra el número de líneas de código, líneas lógicas de código, líneas fuente de código, líneas en comentarios, cadenas multilínea y líneas en blanco.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="695" />
-      <location filename="../../PluginMetricsRadon.py" line="516" />
-      <location filename="../../PluginMetricsRadon.py" line="435" />
+      <location filename="../../PluginMetricsRadon.py" line="697" />
+      <location filename="../../PluginMetricsRadon.py" line="518" />
+      <location filename="../../PluginMetricsRadon.py" line="437" />
       <source>Maintainability Index</source>
       <translation>Índice de Mantenibilidad</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="696" />
-      <location filename="../../PluginMetricsRadon.py" line="517" />
-      <location filename="../../PluginMetricsRadon.py" line="436" />
+      <location filename="../../PluginMetricsRadon.py" line="698" />
+      <location filename="../../PluginMetricsRadon.py" line="519" />
+      <location filename="../../PluginMetricsRadon.py" line="438" />
       <source>Maintainability &amp;Index...</source>
       <translation>&amp;Índice de Mantenibilidad...</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="703" />
-      <location filename="../../PluginMetricsRadon.py" line="523" />
-      <location filename="../../PluginMetricsRadon.py" line="443" />
+      <location filename="../../PluginMetricsRadon.py" line="705" />
+      <location filename="../../PluginMetricsRadon.py" line="525" />
+      <location filename="../../PluginMetricsRadon.py" line="445" />
       <source>Show the maintainability index for Python files.</source>
       <translation>Muestra el índice de mantenibilidad para archivos Python.</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="706" />
-      <location filename="../../PluginMetricsRadon.py" line="525" />
-      <location filename="../../PluginMetricsRadon.py" line="446" />
+      <location filename="../../PluginMetricsRadon.py" line="708" />
+      <location filename="../../PluginMetricsRadon.py" line="527" />
+      <location filename="../../PluginMetricsRadon.py" line="448" />
       <source>&lt;b&gt;Maintainability Index...&lt;/b&gt;&lt;p&gt;This calculates the maintainability index of Python files and shows it together with a ranking.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Índice de Mantenibilidad...&lt;/b&gt;&lt;p&gt;Calcula el índice de mantenibilidad de archivos Python y lo muestra con un ranking.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="718" />
-      <location filename="../../PluginMetricsRadon.py" line="535" />
-      <location filename="../../PluginMetricsRadon.py" line="457" />
+      <location filename="../../PluginMetricsRadon.py" line="720" />
+      <location filename="../../PluginMetricsRadon.py" line="537" />
+      <location filename="../../PluginMetricsRadon.py" line="459" />
       <source>Cyclomatic Complexity</source>
       <translation>Complejidad Ciclomática</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="719" />
-      <location filename="../../PluginMetricsRadon.py" line="536" />
-      <location filename="../../PluginMetricsRadon.py" line="458" />
+      <location filename="../../PluginMetricsRadon.py" line="721" />
+      <location filename="../../PluginMetricsRadon.py" line="538" />
+      <location filename="../../PluginMetricsRadon.py" line="460" />
       <source>Cyclomatic &amp;Complexity...</source>
       <translation>Complejidad &amp;Ciclomática...</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="726" />
-      <location filename="../../PluginMetricsRadon.py" line="542" />
-      <location filename="../../PluginMetricsRadon.py" line="465" />
+      <location filename="../../PluginMetricsRadon.py" line="728" />
+      <location filename="../../PluginMetricsRadon.py" line="544" />
+      <location filename="../../PluginMetricsRadon.py" line="467" />
       <source>Show the cyclomatic complexity for Python files.</source>
       <translation>Muestra la complejidad ciclomática para archivos Python.</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="729" />
-      <location filename="../../PluginMetricsRadon.py" line="544" />
-      <location filename="../../PluginMetricsRadon.py" line="468" />
+      <location filename="../../PluginMetricsRadon.py" line="731" />
+      <location filename="../../PluginMetricsRadon.py" line="546" />
+      <location filename="../../PluginMetricsRadon.py" line="470" />
       <source>&lt;b&gt;Cyclomatic Complexity...&lt;/b&gt;&lt;p&gt;This calculates the cyclomatic complexity of Python files and shows it together with a ranking.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Complejidad Ciclomática...&lt;/b&gt;&lt;p&gt;Calcula la complejidad ciclomática de archivos Python y lo muestra con un ranking.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="1026" />
+      <location filename="../../PluginMetricsRadon.py" line="1028" />
       <source>&lt;p&gt;&lt;b&gt;Radon Version {0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Radon is a Python tool that computes various metrics from the source code. Radon can compute:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Raw&lt;/b&gt; metrics (these include SLOC, comment lines, blank lines, multi line strings, ...)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Maintainability Index&lt;/b&gt; (the one used in Visual Studio)&lt;/li&gt;&lt;li&gt;&lt;b&gt;McCabe's complexity&lt;/b&gt;, i.e. cyclomatic complexity&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;Radon Versión {0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Radon es una herramienta de Python que calcula varias métricas a partir del código fuente. Radon puede calcular:&lt;ul&gt;&lt;li&gt;Métricas &lt;b&gt;en bruto&lt;/b&gt; (incluyen SLOC -líneas de código fuente-, líneas de comentarios, líneas en blanco, cadenas multilínea, ...)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Índice de Mantenibilidad&lt;/b&gt; (el que se utiliza en Visual Studio)&lt;/li&gt;&lt;li&gt;&lt;b&gt;complejidad de McCabe&lt;/b&gt;, complejidad ciclomática&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</translation>
     </message>
@@ -299,74 +314,74 @@
   <context>
     <name>RawMetricsDialog</name>
     <message>
-      <location filename="../RawMetricsDialog.py" line="76" />
+      <location filename="../RawMetricsDialog.py" line="80" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Source lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Logical lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Comments&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comment lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Empty&amp;nbsp;Comments&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comment lines not containing code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Multi&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Lines in multi line strings&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Empty&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Blank lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Comment Statistics:&lt;/b&gt;&lt;/td&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comments to lines ratio&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C % S&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comments to source lines ratio&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C + M % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comments plus multi line strings to lines ratio&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Líneas de código&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Líneas de código fuente&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Líneas logicas de código&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Comentarios&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Líneas de comentarios&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Multi&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Líneas en cadenas multilínea&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Vacío&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Líneas en blanco&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Estadísticas de Comentarios:&lt;/b&gt;&lt;/td&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Ratio entre comentarios y líneas&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C % S&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Ratio entre comentarios y líneas de código fuente&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C + M % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Ratio entre comentarios más cadenas multilínea y líneas&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="154" />
+      <location filename="../RawMetricsDialog.py" line="158" />
       <source>Errors</source>
       <translation>Errores</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="442" />
+      <location filename="../RawMetricsDialog.py" line="437" />
       <source>Files</source>
       <translation>Archivos</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="445" />
+      <location filename="../RawMetricsDialog.py" line="440" />
       <source>LOC</source>
       <translation>LOC</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="448" />
+      <location filename="../RawMetricsDialog.py" line="443" />
       <source>SLOC</source>
       <translation>SLOC</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="451" />
+      <location filename="../RawMetricsDialog.py" line="446" />
       <source>LLOC</source>
       <translation>LLOC</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="454" />
+      <location filename="../RawMetricsDialog.py" line="449" />
       <source>Comment Lines</source>
       <translation>Líneas de Comentarios</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="457" />
+      <location filename="../RawMetricsDialog.py" line="452" />
       <source>Empty Comments</source>
       <translation>Comentarios Vacíos</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="461" />
+      <location filename="../RawMetricsDialog.py" line="456" />
       <source>Multiline Strings</source>
       <translation>Cadenas Multilínea</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="465" />
+      <location filename="../RawMetricsDialog.py" line="460" />
       <source>Empty Lines</source>
       <translation>Líneas en Blanco</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="468" />
+      <location filename="../RawMetricsDialog.py" line="463" />
       <source>C % L</source>
       <translation>C % L</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="477" />
+      <location filename="../RawMetricsDialog.py" line="472" />
       <source>C % S</source>
       <translation>C % S</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="486" />
+      <location filename="../RawMetricsDialog.py" line="481" />
       <source>C + M % L</source>
       <translation>C + M % L</translation>
     </message>
Binary file RadonMetrics/i18n/radon_ru.qm has changed
--- a/RadonMetrics/i18n/radon_ru.ts	Sat Dec 31 16:27:44 2022 +0100
+++ b/RadonMetrics/i18n/radon_ru.ts	Sat May 27 15:33:58 2023 +0200
@@ -4,34 +4,49 @@
   <context>
     <name>CyclomaticComplexityDialog</name>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="83" />
-      <source>&lt;table&gt;&lt;tr&gt;&lt;td colspan=3&gt;&lt;b&gt;Ranking:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(low risk - simple block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(low risk - well structured and stable block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(moderate risk - slightly complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(more than moderate risk - more complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(high risk - complex block, alarming)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(very high risk - error-prone, unstable block)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation>&lt;table&gt;&lt;tr&gt;&lt;td colspan=3&gt;&lt;b&gt;Ранжирование:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(низкий риск - простой блок)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(низкий риск - хорошо структурированный стабильный блок)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(умеренный риск - немного сложный блок)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(более чем умеренный риск - более сложный блок)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(высокий риск - сложный, аварийный блок)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(очень высокий риск - нестабильный блок, подвержен ошибкам)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+      <location filename="../CyclomaticComplexityDialog.py" line="87" />
+      <source>&lt;b&gt;Summary:&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Сводка:&lt;/b&gt;</translation>
+    </message>
+    <message>
+      <location filename="../CyclomaticComplexityDialog.py" line="88" />
+      <source>&lt;b&gt;Ranking:&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Ранжирование:&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="102" />
-      <source>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Type:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Class&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Function&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Method&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Тип:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Класс&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Функция&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Метод&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+      <location filename="../CyclomaticComplexityDialog.py" line="90" />
+      <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(low risk - simple block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(low risk - well structured and stable block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(moderate risk - slightly complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(more than moderate risk - more complex block)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(high risk - complex block, alarming)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(very high risk - error-prone, unstable block)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;(низкий риск - простой блок)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6 - 10&lt;/td&gt;&lt;td&gt;(низкий риск - хорошо структурированный стабильный блок)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;11 - 20&lt;/td&gt;&lt;td&gt;(умеренный риск - немного сложный блок)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td&gt;21 - 30&lt;/td&gt;&lt;td&gt;(более чем умеренный риск - более сложный блок)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td&gt;31 - 40&lt;/td&gt;&lt;td&gt;(высокий риск - сложный, аварийный блок)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;gt; 40&lt;/td&gt;&lt;td&gt;(очень высокий риск - нестабильный блок, подвержен ошибкам)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="156" />
+      <location filename="../CyclomaticComplexityDialog.py" line="107" />
+      <source>&lt;b&gt;Type:&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Тип:&lt;/b&gt;</translation>
+    </message>
+    <message>
+      <location filename="../CyclomaticComplexityDialog.py" line="109" />
+      <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Class&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Function&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Method&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Класс&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Функция&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;M&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Метод&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+      <location filename="../CyclomaticComplexityDialog.py" line="162" />
       <source>Collapse all</source>
       <translation>Свернуть все</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="157" />
+      <location filename="../CyclomaticComplexityDialog.py" line="163" />
       <source>Expand all</source>
       <translation>Развернуть все</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="230" />
+      <location filename="../CyclomaticComplexityDialog.py" line="236" />
       <source>Errors</source>
       <translation>Ошибки</translation>
     </message>
     <message>
-      <location filename="../CyclomaticComplexityDialog.py" line="513" />
-      <source>&lt;b&gt;Summary:&lt;/b&gt;&lt;br/&gt;{0} blocks (classes, functions, methods) analyzed.&lt;br/&gt;Average complexity: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} blocks&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation>&lt;b&gt;Сводка:&lt;/b&gt;&lt;br/&gt;{0} блоков (классов, функций, методов) проанализировано.&lt;br/&gt;Средняя сложность: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} блоков&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} блоков&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} блоков&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} блоков&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} блоков&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} блоков&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+      <location filename="../CyclomaticComplexityDialog.py" line="510" />
+      <source>{0} blocks (classes, functions, methods) analyzed.&lt;br/&gt;Average complexity: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} blocks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} blocks&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation>{0} блоков (классов, функций, методов) проанализировано.&lt;br/&gt;Средняя сложность: {7} ({8})&lt;table&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} блоков&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} блоков&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{3} блоков&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;D&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{4} блоков&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;E&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{5} блоков&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=30&gt;&lt;b&gt;F&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{6} блоков&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
       <location filename="../CyclomaticComplexityDialog.ui" line="0" />
@@ -114,17 +129,17 @@
   <context>
     <name>MaintainabilityIndexDialog</name>
     <message>
-      <location filename="../MaintainabilityIndexDialog.py" line="72" />
+      <location filename="../MaintainabilityIndexDialog.py" line="77" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Rank&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;MI Score&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Maintainability&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;100 - 20&lt;/td&gt;&lt;td&gt;very high&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;19 - 10&lt;/td&gt;&lt;td&gt;medium&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;9 - 0&lt;/td&gt;&lt;td&gt;extremely low&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Уровень&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;MI оценка&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Сложность поддержки&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td&gt;100 - 20&lt;/td&gt;&lt;td&gt;очень высокая&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td&gt;19 - 10&lt;/td&gt;&lt;td&gt;средняя&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td&gt;9 - 0&lt;/td&gt;&lt;td&gt;крайне низкая&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MaintainabilityIndexDialog.py" line="150" />
+      <location filename="../MaintainabilityIndexDialog.py" line="155" />
       <source>Errors</source>
       <translation>Ошибки</translation>
     </message>
     <message>
-      <location filename="../MaintainabilityIndexDialog.py" line="397" />
+      <location filename="../MaintainabilityIndexDialog.py" line="393" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Summary:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{0} files&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} files&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} files&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Сводка:&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{0} файлов&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;B&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{1} файлов&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C&lt;/b&gt;&lt;/td&gt;&lt;td align='right'&gt;{2} файлов&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
@@ -189,109 +204,109 @@
   <context>
     <name>RadonMetricsPlugin</name>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="169" />
+      <location filename="../../PluginMetricsRadon.py" line="171" />
       <source>Python 3 batch job</source>
       <translation>Пакетное задание Python 3</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="212" />
+      <location filename="../../PluginMetricsRadon.py" line="214" />
       <source>Unknown metrics result received ({0}).</source>
       <translation>Получено ({0}) оценок неизвестной метрики.</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="1025" />
-      <location filename="../../PluginMetricsRadon.py" line="669" />
-      <location filename="../../PluginMetricsRadon.py" line="492" />
-      <location filename="../../PluginMetricsRadon.py" line="404" />
+      <location filename="../../PluginMetricsRadon.py" line="1027" />
+      <location filename="../../PluginMetricsRadon.py" line="671" />
+      <location filename="../../PluginMetricsRadon.py" line="494" />
+      <location filename="../../PluginMetricsRadon.py" line="406" />
       <source>Radon</source>
       <translation>Radon</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="678" />
-      <location filename="../../PluginMetricsRadon.py" line="500" />
-      <location filename="../../PluginMetricsRadon.py" line="413" />
+      <location filename="../../PluginMetricsRadon.py" line="680" />
+      <location filename="../../PluginMetricsRadon.py" line="502" />
+      <location filename="../../PluginMetricsRadon.py" line="415" />
       <source>Code Metrics</source>
       <translation>Метрики кода</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="678" />
-      <location filename="../../PluginMetricsRadon.py" line="500" />
-      <location filename="../../PluginMetricsRadon.py" line="414" />
+      <location filename="../../PluginMetricsRadon.py" line="680" />
+      <location filename="../../PluginMetricsRadon.py" line="502" />
+      <location filename="../../PluginMetricsRadon.py" line="416" />
       <source>Code &amp;Metrics...</source>
       <translation>&amp;Метрики кода...</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="680" />
-      <location filename="../../PluginMetricsRadon.py" line="502" />
-      <location filename="../../PluginMetricsRadon.py" line="420" />
-      <source>Show raw code metrics.</source>
-      <translation>Отображение raw метрики кода.</translation>
-    </message>
-    <message>
       <location filename="../../PluginMetricsRadon.py" line="682" />
       <location filename="../../PluginMetricsRadon.py" line="504" />
       <location filename="../../PluginMetricsRadon.py" line="422" />
+      <source>Show raw code metrics.</source>
+      <translation>Отображение raw метрики кода.</translation>
+    </message>
+    <message>
+      <location filename="../../PluginMetricsRadon.py" line="684" />
+      <location filename="../../PluginMetricsRadon.py" line="506" />
+      <location filename="../../PluginMetricsRadon.py" line="424" />
       <source>&lt;b&gt;Code Metrics...&lt;/b&gt;&lt;p&gt;This calculates raw code metrics of Python files and shows the amount of lines of code, logical lines of code, source lines of code, comment lines, multi-line strings and blank lines.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Метрики кода...&lt;/b&gt;&lt;p&gt;Это вычисление raw-метрик кода файлов Python и и показ количества строк кода, строк ветвления кода, строк исходного кода, строк комментариев, строк многострочного текста и пустых строк.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="695" />
-      <location filename="../../PluginMetricsRadon.py" line="516" />
-      <location filename="../../PluginMetricsRadon.py" line="435" />
+      <location filename="../../PluginMetricsRadon.py" line="697" />
+      <location filename="../../PluginMetricsRadon.py" line="518" />
+      <location filename="../../PluginMetricsRadon.py" line="437" />
       <source>Maintainability Index</source>
       <translation>Индекс сложности поддержки</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="696" />
-      <location filename="../../PluginMetricsRadon.py" line="517" />
-      <location filename="../../PluginMetricsRadon.py" line="436" />
+      <location filename="../../PluginMetricsRadon.py" line="698" />
+      <location filename="../../PluginMetricsRadon.py" line="519" />
+      <location filename="../../PluginMetricsRadon.py" line="438" />
       <source>Maintainability &amp;Index...</source>
       <translation>&amp;Индекс поддерживаемости...</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="703" />
-      <location filename="../../PluginMetricsRadon.py" line="523" />
-      <location filename="../../PluginMetricsRadon.py" line="443" />
+      <location filename="../../PluginMetricsRadon.py" line="705" />
+      <location filename="../../PluginMetricsRadon.py" line="525" />
+      <location filename="../../PluginMetricsRadon.py" line="445" />
       <source>Show the maintainability index for Python files.</source>
       <translation>Отображение индекса сложности поддержки файлов Python.</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="706" />
-      <location filename="../../PluginMetricsRadon.py" line="525" />
-      <location filename="../../PluginMetricsRadon.py" line="446" />
+      <location filename="../../PluginMetricsRadon.py" line="708" />
+      <location filename="../../PluginMetricsRadon.py" line="527" />
+      <location filename="../../PluginMetricsRadon.py" line="448" />
       <source>&lt;b&gt;Maintainability Index...&lt;/b&gt;&lt;p&gt;This calculates the maintainability index of Python files and shows it together with a ranking.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Индекс сложности поддержки кода...&lt;/b&gt;&lt;p&gt;Вычисляет индекс поддерживаемости файлов Python и показывает его значение и уровень.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="718" />
-      <location filename="../../PluginMetricsRadon.py" line="535" />
-      <location filename="../../PluginMetricsRadon.py" line="457" />
+      <location filename="../../PluginMetricsRadon.py" line="720" />
+      <location filename="../../PluginMetricsRadon.py" line="537" />
+      <location filename="../../PluginMetricsRadon.py" line="459" />
       <source>Cyclomatic Complexity</source>
       <translation>Цикломатическая сложность</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="719" />
-      <location filename="../../PluginMetricsRadon.py" line="536" />
-      <location filename="../../PluginMetricsRadon.py" line="458" />
+      <location filename="../../PluginMetricsRadon.py" line="721" />
+      <location filename="../../PluginMetricsRadon.py" line="538" />
+      <location filename="../../PluginMetricsRadon.py" line="460" />
       <source>Cyclomatic &amp;Complexity...</source>
       <translation>Цикломатическая &amp;сложность...</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="726" />
-      <location filename="../../PluginMetricsRadon.py" line="542" />
-      <location filename="../../PluginMetricsRadon.py" line="465" />
+      <location filename="../../PluginMetricsRadon.py" line="728" />
+      <location filename="../../PluginMetricsRadon.py" line="544" />
+      <location filename="../../PluginMetricsRadon.py" line="467" />
       <source>Show the cyclomatic complexity for Python files.</source>
       <translation>Отображение цикломатической сложности файлов Python.</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="729" />
-      <location filename="../../PluginMetricsRadon.py" line="544" />
-      <location filename="../../PluginMetricsRadon.py" line="468" />
+      <location filename="../../PluginMetricsRadon.py" line="731" />
+      <location filename="../../PluginMetricsRadon.py" line="546" />
+      <location filename="../../PluginMetricsRadon.py" line="470" />
       <source>&lt;b&gt;Cyclomatic Complexity...&lt;/b&gt;&lt;p&gt;This calculates the cyclomatic complexity of Python files and shows it together with a ranking.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Цикломатическая сложность...&lt;/b&gt;&lt;p&gt;Вычисляет цикломатическую сложность файлов Python и показывает ее уровень.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../../PluginMetricsRadon.py" line="1026" />
+      <location filename="../../PluginMetricsRadon.py" line="1028" />
       <source>&lt;p&gt;&lt;b&gt;Radon Version {0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Radon is a Python tool that computes various metrics from the source code. Radon can compute:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Raw&lt;/b&gt; metrics (these include SLOC, comment lines, blank lines, multi line strings, ...)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Maintainability Index&lt;/b&gt; (the one used in Visual Studio)&lt;/li&gt;&lt;li&gt;&lt;b&gt;McCabe's complexity&lt;/b&gt;, i.e. cyclomatic complexity&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;Версия Radon {0}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Radon является инструментом Python, позволяющим вычислять различные метрики исходного кода. Radon позволяет оценить:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Raw&lt;/b&gt; метрики (к их числу  относятся  SLOC, строки коментариев, пустые строки, многострочный текст, ...)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Индекс сложности поддержки (качества кода)&lt;/b&gt; (применяется в Visual Studio)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Мак-Кейба сложность&lt;/b&gt;, то есть цикломатическая сложность&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</translation>
     </message>
@@ -299,74 +314,74 @@
   <context>
     <name>RawMetricsDialog</name>
     <message>
-      <location filename="../RawMetricsDialog.py" line="76" />
+      <location filename="../RawMetricsDialog.py" line="80" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Source lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Logical lines of code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Comments&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comment lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Empty&amp;nbsp;Comments&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comment lines not containing code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Multi&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Lines in multi line strings&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Empty&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Blank lines&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Comment Statistics:&lt;/b&gt;&lt;/td&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comments to lines ratio&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C % S&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comments to source lines ratio&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C + M % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Comments plus multi line strings to lines ratio&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Количество строк кода&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;SLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Количество исходных строк кода&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LLOC&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Количество логических строк кода&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Comments&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Количество строк комментариев&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Empty&amp;nbsp;Comments&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Количество строк комментариев не содержащих код&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Multi&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Количество строк многострочного текста&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Empty&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Количество пустых строк&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=2&gt;&lt;b&gt;Статистика коментариев::&lt;/b&gt;&lt;/td&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Процент строк комментариев к общему числу строк&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C % S&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Процент строк комментариев к числу строк исходного кода&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;C + M % L&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Процент строк комментариев + многострочного текста к  общему числу строк&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="154" />
+      <location filename="../RawMetricsDialog.py" line="158" />
       <source>Errors</source>
       <translation>Ошибки</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="442" />
+      <location filename="../RawMetricsDialog.py" line="437" />
       <source>Files</source>
       <translation>Файлы</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="445" />
+      <location filename="../RawMetricsDialog.py" line="440" />
       <source>LOC</source>
       <translation>LOC</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="448" />
+      <location filename="../RawMetricsDialog.py" line="443" />
       <source>SLOC</source>
       <translation>SLOC</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="451" />
+      <location filename="../RawMetricsDialog.py" line="446" />
       <source>LLOC</source>
       <translation>LLOC</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="454" />
+      <location filename="../RawMetricsDialog.py" line="449" />
       <source>Comment Lines</source>
       <translation>Comment Lines</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="457" />
+      <location filename="../RawMetricsDialog.py" line="452" />
       <source>Empty Comments</source>
       <translation>Empty Comments</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="461" />
+      <location filename="../RawMetricsDialog.py" line="456" />
       <source>Multiline Strings</source>
       <translation>Multiline Strings</translation>
     </message>
     <message>
-      <location filename="../RawMetricsDialog.py" line="465" />
+      <location filename="../RawMetricsDialog.py" line="460" />
       <source>Empty Lines</source>
       <translation>Empty Lines</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="468" />
+      <location filename="../RawMetricsDialog.py" line="463" />
       <source>C % L</source>
       <translation>C % L</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="477" />
+      <location filename="../RawMetricsDialog.py" line="472" />
       <source>C % S</source>
       <translation>C % S</translation>
     </message>
     <message>
       <location filename="../RawMetricsDialog.ui" line="0" />
-      <location filename="../RawMetricsDialog.py" line="486" />
+      <location filename="../RawMetricsDialog.py" line="481" />
       <source>C + M % L</source>
       <translation>C + M % L</translation>
     </message>

eric ide

mercurial