Refined the setup wizard a little bit. eric7

Sun, 03 Jul 2022 13:52:59 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 03 Jul 2022 13:52:59 +0200
branch
eric7
changeset 9202
81388c6065e8
parent 9201
2f1ccadee231
child 9203
b201a2ffe174

Refined the setup wizard a little bit.

eric7/APIs/Python3/eric7.api file | annotate | diff | comparison | revisions
eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
eric7/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.Plugins.PluginWizardSetup.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.html file | annotate | diff | comparison | revisions
eric7/Plugins/PluginWizardSetup.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/SetupWizard/AddProjectUrlDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui file | annotate | diff | comparison | revisions
eric7/i18n/eric7_cs.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_de.qm file | annotate | diff | comparison | revisions
eric7/i18n/eric7_de.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_empty.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_en.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_es.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_fr.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_it.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_pt.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_ru.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_tr.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/eric7/APIs/Python3/eric7.api	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/APIs/Python3/eric7.api	Sun Jul 03 13:52:59 2022 +0200
@@ -6616,7 +6616,7 @@
 eric7.Plugins.WizardPlugins.SetupWizard.SetupCfgUtilities._dict2string?5(value)
 eric7.Plugins.WizardPlugins.SetupWizard.SetupCfgUtilities._list2string?5(value)
 eric7.Plugins.WizardPlugins.SetupWizard.SetupCfgUtilities.toString?4(value)
-eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.SetupWizardDialog.getCode?4(indLevel, indString)
+eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.SetupWizardDialog.accept?4()
 eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.SetupWizardDialog.on_addEntryPointButton_clicked?4()
 eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.SetupWizardDialog.on_addExludePatternButton_clicked?4()
 eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.SetupWizardDialog.on_addModuleButton_clicked?4()
@@ -6634,7 +6634,7 @@
 eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.SetupWizardDialog.on_urlAddButton_clicked?4()
 eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.SetupWizardDialog.on_urlDeleteButton_clicked?4()
 eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.SetupWizardDialog.on_urlEditButton_clicked?4()
-eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.SetupWizardDialog?1(category, parent=None)
+eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.SetupWizardDialog?1(category, editor, parent=None)
 eric7.Preferences.ConfigurationDialog.ConfigurationDialog.accept?4()
 eric7.Preferences.ConfigurationDialog.ConfigurationDialog.getConfigurationPageName?4()
 eric7.Preferences.ConfigurationDialog.ConfigurationDialog.getExpandedEntries?4()
Binary file eric7/Documentation/Help/source.qch has changed
--- a/eric7/Documentation/Help/source.qhp	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/Documentation/Help/source.qhp	Sun Jul 03 13:52:59 2022 +0200
@@ -13614,7 +13614,6 @@
       <keyword name="SetupWizard" id="SetupWizard" ref="eric7.Plugins.PluginWizardSetup.html#SetupWizard" />
       <keyword name="SetupWizard (Constructor)" id="SetupWizard (Constructor)" ref="eric7.Plugins.PluginWizardSetup.html#SetupWizard.__init__" />
       <keyword name="SetupWizard (Package)" id="SetupWizard (Package)" ref="index-eric7.Plugins.WizardPlugins.SetupWizard.html" />
-      <keyword name="SetupWizard.__callForm" id="SetupWizard.__callForm" ref="eric7.Plugins.PluginWizardSetup.html#SetupWizard.__callForm" />
       <keyword name="SetupWizard.__handle" id="SetupWizard.__handle" ref="eric7.Plugins.PluginWizardSetup.html#SetupWizard.__handle" />
       <keyword name="SetupWizard.__initActions" id="SetupWizard.__initActions" ref="eric7.Plugins.PluginWizardSetup.html#SetupWizard.__initActions" />
       <keyword name="SetupWizard.__initMenu" id="SetupWizard.__initMenu" ref="eric7.Plugins.PluginWizardSetup.html#SetupWizard.__initMenu" />
@@ -13631,7 +13630,7 @@
       <keyword name="SetupWizardDialog.__getSetupPyCode" id="SetupWizardDialog.__getSetupPyCode" ref="eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.html#SetupWizardDialog.__getSetupPyCode" />
       <keyword name="SetupWizardDialog.__getStartDir" id="SetupWizardDialog.__getStartDir" ref="eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.html#SetupWizardDialog.__getStartDir" />
       <keyword name="SetupWizardDialog.__populateClassifiers" id="SetupWizardDialog.__populateClassifiers" ref="eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.html#SetupWizardDialog.__populateClassifiers" />
-      <keyword name="SetupWizardDialog.getCode" id="SetupWizardDialog.getCode" ref="eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.html#SetupWizardDialog.getCode" />
+      <keyword name="SetupWizardDialog.accept" id="SetupWizardDialog.accept" ref="eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.html#SetupWizardDialog.accept" />
       <keyword name="SetupWizardDialog.on_addEntryPointButton_clicked" id="SetupWizardDialog.on_addEntryPointButton_clicked" ref="eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.html#SetupWizardDialog.on_addEntryPointButton_clicked" />
       <keyword name="SetupWizardDialog.on_addExludePatternButton_clicked" id="SetupWizardDialog.on_addExludePatternButton_clicked" ref="eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.html#SetupWizardDialog.on_addExludePatternButton_clicked" />
       <keyword name="SetupWizardDialog.on_addModuleButton_clicked" id="SetupWizardDialog.on_addModuleButton_clicked" ref="eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.html#SetupWizardDialog.on_addModuleButton_clicked" />
--- a/eric7/Documentation/Source/eric7.Plugins.PluginWizardSetup.html	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.PluginWizardSetup.html	Sun Jul 03 13:52:59 2022 +0200
@@ -59,10 +59,6 @@
 <td>Constructor</td>
 </tr>
 <tr>
-<td><a href="#SetupWizard.__callForm">__callForm</a></td>
-<td>Private method to display a dialog and get the code.</td>
-</tr>
-<tr>
 <td><a href="#SetupWizard.__handle">__handle</a></td>
 <td>Private method to handle the wizards action.</td>
 </tr>
@@ -103,36 +99,6 @@
 reference to the user interface object
 </dd>
 </dl>
-<a NAME="SetupWizard.__callForm" ID="SetupWizard.__callForm"></a>
-<h4>SetupWizard.__callForm</h4>
-<b>__callForm</b>(<i>editor, category</i>)
-
-<p>
-        Private method to display a dialog and get the code.
-</p>
-<dl>
-
-<dt><i>editor</i> (Editor)</dt>
-<dd>
-reference to the current editor
-</dd>
-<dt><i>category</i> (str)</dt>
-<dd>
-category of setup file to create
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-tuple containing the generated code and a flag indicating an error
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-tuple of (str, bool)
-</dd>
-</dl>
 <a NAME="SetupWizard.__handle" ID="SetupWizard.__handle"></a>
 <h4>SetupWizard.__handle</h4>
 <b>__handle</b>(<i>category</i>)
--- a/eric7/Documentation/Source/eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.html	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.WizardPlugins.SetupWizard.SetupWizardDialog.html	Sun Jul 03 13:52:59 2022 +0200
@@ -95,8 +95,8 @@
 <td>Private method to populate the classifiers.</td>
 </tr>
 <tr>
-<td><a href="#SetupWizardDialog.getCode">getCode</a></td>
-<td>Public method to get the source code.</td>
+<td><a href="#SetupWizardDialog.accept">accept</a></td>
+<td>Public slot to handle pressing the OK button.</td>
 </tr>
 <tr>
 <td><a href="#SetupWizardDialog.on_addEntryPointButton_clicked">on_addEntryPointButton_clicked</a></td>
@@ -175,7 +175,7 @@
 
 <a NAME="SetupWizardDialog.__init__" ID="SetupWizardDialog.__init__"></a>
 <h4>SetupWizardDialog (Constructor)</h4>
-<b>SetupWizardDialog</b>(<i>category, parent=None</i>)
+<b>SetupWizardDialog</b>(<i>category, editor, parent=None</i>)
 
 <p>
         Constructor
@@ -186,6 +186,10 @@
 <dd>
 category of setup file to create
 </dd>
+<dt><i>editor</i> (Editor)</dt>
+<dd>
+reference to the editor object to receive the code
+</dd>
 <dt><i>parent</i> (QWidget (optional))</dt>
 <dd>
 reference to the parent widget (defaults to None)
@@ -332,36 +336,13 @@
 <p>
         Private method to populate the classifiers.
 </p>
-<a NAME="SetupWizardDialog.getCode" ID="SetupWizardDialog.getCode"></a>
-<h4>SetupWizardDialog.getCode</h4>
-<b>getCode</b>(<i>indLevel, indString</i>)
+<a NAME="SetupWizardDialog.accept" ID="SetupWizardDialog.accept"></a>
+<h4>SetupWizardDialog.accept</h4>
+<b>accept</b>(<i></i>)
 
 <p>
-        Public method to get the source code.
+        Public slot to handle pressing the OK button.
 </p>
-<dl>
-
-<dt><i>indLevel</i> (int)</dt>
-<dd>
-indentation level
-</dd>
-<dt><i>indString</i> (str)</dt>
-<dd>
-string used for indentation (space or tab)
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-generated code
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
 <a NAME="SetupWizardDialog.on_addEntryPointButton_clicked" ID="SetupWizardDialog.on_addEntryPointButton_clicked"></a>
 <h4>SetupWizardDialog.on_addEntryPointButton_clicked</h4>
 <b>on_addEntryPointButton_clicked</b>(<i></i>)
--- a/eric7/Plugins/PluginWizardSetup.py	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/Plugins/PluginWizardSetup.py	Sun Jul 03 13:52:59 2022 +0200
@@ -10,7 +10,6 @@
 import functools
 
 from PyQt6.QtCore import QObject
-from PyQt6.QtWidgets import QDialog
 
 from EricWidgets.EricApplication import ericApp
 from EricGui.EricAction import EricAction
@@ -140,32 +139,6 @@
         if menu:
             menu.addActions(self.__actions)
     
-    def __callForm(self, editor, category):
-        """
-        Private method to display a dialog and get the code.
-        
-        @param editor reference to the current editor
-        @type Editor
-        @param category category of setup file to create
-        @type str
-        @return tuple containing the generated code and a flag indicating an error
-        @rtype tuple of (str, bool)
-        """
-        from WizardPlugins.SetupWizard.SetupWizardDialog import (
-            SetupWizardDialog
-        )
-        dlg = SetupWizardDialog(category, self.__ui)
-        if dlg.exec() == QDialog.DialogCode.Accepted:
-            line, index = editor.getCursorPosition()
-            indLevel = editor.indentation(line) // editor.indentationWidth()
-            if editor.indentationsUseTabs():
-                indString = '\t'
-            else:
-                indString = editor.indentationWidth() * ' '
-            return (dlg.getCode(indLevel, indString), True)
-        else:
-            return ("", False)
-        
     def __handle(self, category):
         """
         Private method to handle the wizards action.
@@ -173,6 +146,10 @@
         @param category category of setup file to create
         @type str
         """
+        from WizardPlugins.SetupWizard.SetupWizardDialog import (
+            SetupWizardDialog
+        )
+        
         editor = ericApp().getObject("ViewManager").activeWindow()
         
         if editor is None:
@@ -181,13 +158,8 @@
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
         else:
-            sourceCode, ok = self.__callForm(editor, category)
-            if ok:
-                line, index = editor.getCursorPosition()
-                # It should be done this way to allow undo
-                editor.beginUndoAction()
-                editor.insertAt(sourceCode, line, index)
-                editor.endUndoAction()
+            dlg = SetupWizardDialog(category, editor, self.__ui)
+            dlg.show()
 
 #
 # eflag: noqa = M801
--- a/eric7/Plugins/WizardPlugins/SetupWizard/AddProjectUrlDialog.py	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/Plugins/WizardPlugins/SetupWizard/AddProjectUrlDialog.py	Sun Jul 03 13:52:59 2022 +0200
@@ -63,7 +63,9 @@
         Private slot to update the enabled state of the OK button.
         """
         self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(
-            bool(self.nameComboBox.currentText()) and bool(self.urlEdit.text())
+            bool(self.nameComboBox.currentText()) and
+            bool(self.urlEdit.text()) and
+            self.urlEdit.text().startswith(("http://", "https://"))
         )
     
     def getUrl(self):
--- a/eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py	Sun Jul 03 13:52:59 2022 +0200
@@ -41,12 +41,14 @@
     It displays a dialog for entering the parameters for the setup.py code
     generator.
     """
-    def __init__(self, category, parent=None):
+    def __init__(self, category, editor, parent=None):
         """
         Constructor
         
         @param category category of setup file to create
         @type str
+        @param editor reference to the editor object to receive the code
+        @type Editor
         @param parent reference to the parent widget (defaults to None)
         @type QWidget (optional)
         @exception ValueError raised for an illegal setup file category
@@ -57,8 +59,11 @@
         super().__init__(parent)
         self.setupUi(self)
         
+        self.setWindowTitle(self.tr("{0} Wizard").format(category))
+        
         self.__replies = []
         self.__category = category
+        self.__editor = editor
         
         if category != "setup.py":
             self.introCheckBox.setVisible(False)
@@ -260,7 +265,7 @@
         if self.descriptionFromFilesCheckBox.isChecked():
             sourceCode += 'def get_long_description():{0}'.format(os.linesep)
             sourceCode += '{0}descr = []{1}'.format(istring, os.linesep)
-            sourceCode += '{0}for fname in ("{1})":{2}'.format(
+            sourceCode += '{0}for fname in ("{1}"):{2}'.format(
                 istring,
                 '", "'.join(self.descriptionEdit.toPlainText().splitlines()),
                 os.linesep)
@@ -755,26 +760,36 @@
         sourceCode = tomlkit.dumps(doc)
         return sourceCode
     
-    def getCode(self, indLevel, indString):
+    @pyqtSlot()
+    def accept(self):
+        """
+        Public slot to handle pressing the OK button.
         """
-        Public method to get the source code.
+        line, index = self.__editor.getCursorPosition()
+        indLevel = self.__editor.indentation(line) // self.__editor.indentationWidth()
+        if self.__editor.indentationsUseTabs():
+            indString = '\t'
+        else:
+            indString = self.__editor.indentationWidth() * ' '
         
-        @param indLevel indentation level
-        @type int
-        @param indString string used for indentation (space or tab)
-        @type str
-        @return generated code
-        @rtype str
-        """
         if self.__category == "setup.py":
-            return self.__getSetupPyCode(indLevel, indString)
+            sourceCode = self.__getSetupPyCode(indLevel, indString)
         elif self.__category == "setup.cfg":
-            return self.__getSetupCfgCode()
+            sourceCode = self.__getSetupCfgCode()
         elif self.__category == "pyproject.toml":
-            return self.__getPyprojectCode()
+            sourceCode = self.__getPyprojectCode()
         else:
             # should not happen, but play it safe
-            return ""
+            sourceCode = ""
+        
+        if sourceCode:
+            line, index = self.__editor.getCursorPosition()
+            # It should be done this way to allow undo
+            self.__editor.beginUndoAction()
+            self.__editor.insertAt(sourceCode, line, index)
+            self.__editor.endUndoAction()
+        
+        super().accept()
     
     @pyqtSlot()
     def on_projectButton_clicked(self):
--- a/eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui	Sun Jul 03 13:52:59 2022 +0200
@@ -10,9 +10,6 @@
     <height>550</height>
    </rect>
   </property>
-  <property name="windowTitle">
-   <string>setup.py Wizard</string>
-  </property>
   <property name="sizeGripEnabled">
    <bool>true</bool>
   </property>
--- a/eric7/i18n/eric7_cs.ts	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/i18n/eric7_cs.ts	Sun Jul 03 13:52:59 2022 +0200
@@ -65724,60 +65724,60 @@
   <context>
     <name>SetupWizard</name>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="87" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="83" />
       <source>setup.py Wizard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="85" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
       <source>setup.py Wizard...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="89" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
       <source>&lt;b&gt;setup.py Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.py file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="104" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="100" />
+      <source>setup.cfg Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
+      <source>setup.cfg Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="105" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
-      <source>setup.cfg Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="102" />
-      <source>setup.cfg Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="106" />
       <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="121" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="117" />
+      <source>pyproject.toml Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
+      <source>pyproject.toml Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="122" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
-      <source>pyproject.toml Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="119" />
-      <source>pyproject.toml Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="123" />
       <source>&lt;b&gt;pyproject.toml Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a pyproject.toml file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="181" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="158" />
       <source>No current editor</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="182" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="159" />
       <source>Please open or create a file first.</source>
       <translation type="unfinished" />
     </message>
@@ -65785,37 +65785,37 @@
   <context>
     <name>SetupWizardDialog</name>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="98" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="62" />
+      <source>{0} Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="103" />
       <source>Plain Text</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="99" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="104" />
       <source>Markdown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="100" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="105" />
       <source>reStructuredText</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="905" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="920" />
       <source>Add Python Modules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="907" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="922" />
       <source>Python Files (*.py)</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
-      <source>setup.py Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
       <source>Select to include the introductory part of the setup.py code</source>
       <translation type="unfinished" />
     </message>
Binary file eric7/i18n/eric7_de.qm has changed
--- a/eric7/i18n/eric7_de.ts	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/i18n/eric7_de.ts	Sun Jul 03 13:52:59 2022 +0200
@@ -65901,60 +65901,60 @@
   <context>
     <name>SetupWizard</name>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="87" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="83" />
       <source>setup.py Wizard</source>
       <translation>setup.py Assistent</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="85" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
       <source>setup.py Wizard...</source>
       <translation>setup.py Assistent...</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="89" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
       <source>&lt;b&gt;setup.py Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.py file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation>&lt;b&gt;setup.py Assistent&lt;/b&gt;&lt;p&gt;Dieser Assistent öffnet einen Dialog zur Eingabe aller Parameter, um einen Basisinhalt einer setup.py Datei zu erzeugen. Der erzeugte Quelltext wird an die Stelle der Einfügemarke geschrieben.&lt;/p&gt;</translation>
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="104" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="100" />
+      <source>setup.cfg Wizard</source>
+      <translation>setup.cfg Assistent</translation>
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
+      <source>setup.cfg Wizard...</source>
+      <translation>setup.cfg Assistent...</translation>
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="105" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
-      <source>setup.cfg Wizard</source>
-      <translation>setup.cfg Assistent</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="102" />
-      <source>setup.cfg Wizard...</source>
-      <translation>setup.cfg Assistent...</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="106" />
       <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation>&lt;b&gt;setup.cfg Assistent&lt;/b&gt;&lt;p&gt;Dieser Assistent öffnet einen Dialog zur Eingabe aller Parameter, um einen Basisinhalt einer setup.cfg Datei zu erzeugen. Der erzeugte Quelltext wird an die Stelle der Einfügemarke geschrieben.&lt;/p&gt;</translation>
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="121" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="117" />
+      <source>pyproject.toml Wizard</source>
+      <translation>pyproject.toml Assistent</translation>
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
+      <source>pyproject.toml Wizard...</source>
+      <translation>pyproject.toml Assistent...</translation>
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="122" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
-      <source>pyproject.toml Wizard</source>
-      <translation>pyproject.toml Assistent</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="119" />
-      <source>pyproject.toml Wizard...</source>
-      <translation>pyproject.toml Assistent...</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="123" />
       <source>&lt;b&gt;pyproject.toml Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a pyproject.toml file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation>&lt;b&gt;pyproject.toml Assistent&lt;/b&gt;&lt;p&gt;Dieser Assistent öffnet einen Dialog zur Eingabe aller Parameter, um einen Basisinhalt einer pyproject.toml Datei zu erzeugen. Der erzeugte Quelltext wird an die Stelle der Einfügemarke geschrieben.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="181" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="158" />
       <source>No current editor</source>
       <translation>Kein aktueller Editor</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="182" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="159" />
       <source>Please open or create a file first.</source>
       <translation>Bitte öffnen oder erzeugen Sie zuerst eine Datei.</translation>
     </message>
@@ -65962,37 +65962,37 @@
   <context>
     <name>SetupWizardDialog</name>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="98" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="62" />
+      <source>{0} Wizard</source>
+      <translation>{0} Assistent</translation>
+    </message>
+    <message>
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="103" />
       <source>Plain Text</source>
       <translation>Normaler Text</translation>
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="99" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="104" />
       <source>Markdown</source>
       <translation>Markdown</translation>
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="100" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="105" />
       <source>reStructuredText</source>
       <translation>reStructuredText</translation>
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="905" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="920" />
       <source>Add Python Modules</source>
       <translation>Python Module hinzufügen</translation>
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="907" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="922" />
       <source>Python Files (*.py)</source>
       <translation>Python Dateien (*.py)</translation>
     </message>
     <message>
       <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
-      <source>setup.py Wizard</source>
-      <translation>setup.py Assistent</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
       <source>Select to include the introductory part of the setup.py code</source>
       <translation>Auswählen, um den einleitenden Teil des setup.py Codes einzufügen</translation>
     </message>
--- a/eric7/i18n/eric7_empty.ts	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/i18n/eric7_empty.ts	Sun Jul 03 13:52:59 2022 +0200
@@ -65457,60 +65457,60 @@
   <context>
     <name>SetupWizard</name>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="87" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="83" />
       <source>setup.py Wizard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="85" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
       <source>setup.py Wizard...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="89" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
       <source>&lt;b&gt;setup.py Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.py file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="104" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="100" />
+      <source>setup.cfg Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
+      <source>setup.cfg Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="105" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
-      <source>setup.cfg Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="102" />
-      <source>setup.cfg Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="106" />
       <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="121" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="117" />
+      <source>pyproject.toml Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
+      <source>pyproject.toml Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="122" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
-      <source>pyproject.toml Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="119" />
-      <source>pyproject.toml Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="123" />
       <source>&lt;b&gt;pyproject.toml Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a pyproject.toml file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="181" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="158" />
       <source>No current editor</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="182" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="159" />
       <source>Please open or create a file first.</source>
       <translation type="unfinished" />
     </message>
@@ -65518,37 +65518,37 @@
   <context>
     <name>SetupWizardDialog</name>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="98" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="62" />
+      <source>{0} Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="103" />
       <source>Plain Text</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="99" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="104" />
       <source>Markdown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="100" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="105" />
       <source>reStructuredText</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="905" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="920" />
       <source>Add Python Modules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="907" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="922" />
       <source>Python Files (*.py)</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
-      <source>setup.py Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
       <source>Select to include the introductory part of the setup.py code</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_en.ts	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/i18n/eric7_en.ts	Sun Jul 03 13:52:59 2022 +0200
@@ -65505,60 +65505,60 @@
   <context>
     <name>SetupWizard</name>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="87" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="83" />
       <source>setup.py Wizard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="85" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
       <source>setup.py Wizard...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="89" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
       <source>&lt;b&gt;setup.py Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.py file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="104" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="100" />
+      <source>setup.cfg Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
+      <source>setup.cfg Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="105" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
-      <source>setup.cfg Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="102" />
-      <source>setup.cfg Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="106" />
       <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="121" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="117" />
+      <source>pyproject.toml Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
+      <source>pyproject.toml Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="122" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
-      <source>pyproject.toml Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="119" />
-      <source>pyproject.toml Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="123" />
       <source>&lt;b&gt;pyproject.toml Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a pyproject.toml file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="181" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="158" />
       <source>No current editor</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="182" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="159" />
       <source>Please open or create a file first.</source>
       <translation type="unfinished" />
     </message>
@@ -65566,37 +65566,37 @@
   <context>
     <name>SetupWizardDialog</name>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="98" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="62" />
+      <source>{0} Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="103" />
       <source>Plain Text</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="99" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="104" />
       <source>Markdown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="100" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="105" />
       <source>reStructuredText</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="905" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="920" />
       <source>Add Python Modules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="907" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="922" />
       <source>Python Files (*.py)</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
-      <source>setup.py Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
       <source>Select to include the introductory part of the setup.py code</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_es.ts	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/i18n/eric7_es.ts	Sun Jul 03 13:52:59 2022 +0200
@@ -65883,60 +65883,60 @@
   <context>
     <name>SetupWizard</name>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="87" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="83" />
       <source>setup.py Wizard</source>
       <translation>Asistente de setup.py</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="85" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
       <source>setup.py Wizard...</source>
       <translation>Asistente de setup.py...</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="89" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
       <source>&lt;b&gt;setup.py Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.py file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Asistente de setup.py&lt;/b&gt;&lt;p&gt;Este asistente abre un diálogo para introducir todos los parámentros necesarios para crear los contenidos básicos de un archivo setup.py. El código generado se inserta en la posición actual del cursor.&lt;/p&gt;</translation>
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="104" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="100" />
+      <source>setup.cfg Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
+      <source>setup.cfg Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="105" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
-      <source>setup.cfg Wizard</source>
+      <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="102" />
-      <source>setup.cfg Wizard...</source>
+      <location filename="../Plugins/PluginWizardSetup.py" line="121" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="117" />
+      <source>pyproject.toml Wizard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="106" />
-      <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
+      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
+      <source>pyproject.toml Wizard...</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="122" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
-      <source>pyproject.toml Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="119" />
-      <source>pyproject.toml Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="123" />
       <source>&lt;b&gt;pyproject.toml Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a pyproject.toml file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="181" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="158" />
       <source>No current editor</source>
       <translation>No hay editor actual</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="182" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="159" />
       <source>Please open or create a file first.</source>
       <translation>Por favor, abrir o crear un archivo primero.</translation>
     </message>
@@ -65944,37 +65944,37 @@
   <context>
     <name>SetupWizardDialog</name>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="98" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="62" />
+      <source>{0} Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="103" />
       <source>Plain Text</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="99" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="104" />
       <source>Markdown</source>
       <translation type="unfinished">Markdown</translation>
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="100" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="105" />
       <source>reStructuredText</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="905" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="920" />
       <source>Add Python Modules</source>
       <translation>Añadir Módulos Python</translation>
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="907" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="922" />
       <source>Python Files (*.py)</source>
       <translation>Archivos de Python (*.py)</translation>
     </message>
     <message>
       <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
-      <source>setup.py Wizard</source>
-      <translation>Asistente setup.py</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
       <source>Select to include the introductory part of the setup.py code</source>
       <translation>Seleccionar para incluir la parte introductoria del código de setup.py</translation>
     </message>
@@ -66386,6 +66386,10 @@
       <translation>Popular a partir del Proyecto</translation>
     </message>
     <message>
+      <source>setup.py Wizard</source>
+      <translation type="vanished">Asistente setup.py</translation>
+    </message>
+    <message>
       <source>Add Scripts</source>
       <translation type="vanished">Añadir Scripts</translation>
     </message>
--- a/eric7/i18n/eric7_fr.ts	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/i18n/eric7_fr.ts	Sun Jul 03 13:52:59 2022 +0200
@@ -65815,60 +65815,60 @@
   <context>
     <name>SetupWizard</name>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="87" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="83" />
       <source>setup.py Wizard</source>
       <translation>Assistant setup.py</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="85" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
       <source>setup.py Wizard...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="89" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
       <source>&lt;b&gt;setup.py Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.py file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="104" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="100" />
+      <source>setup.cfg Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
+      <source>setup.cfg Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="105" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
-      <source>setup.cfg Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="102" />
-      <source>setup.cfg Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="106" />
       <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="121" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="117" />
+      <source>pyproject.toml Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
+      <source>pyproject.toml Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="122" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
-      <source>pyproject.toml Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="119" />
-      <source>pyproject.toml Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="123" />
       <source>&lt;b&gt;pyproject.toml Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a pyproject.toml file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="181" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="158" />
       <source>No current editor</source>
       <translation>Pas d'éditeur courant</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="182" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="159" />
       <source>Please open or create a file first.</source>
       <translation>Veuillez d'abord créer ou ouvrir un fichier.</translation>
     </message>
@@ -65876,37 +65876,37 @@
   <context>
     <name>SetupWizardDialog</name>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="98" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="62" />
+      <source>{0} Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="103" />
       <source>Plain Text</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="99" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="104" />
       <source>Markdown</source>
       <translation type="unfinished">Markdown</translation>
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="100" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="105" />
       <source>reStructuredText</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="905" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="920" />
       <source>Add Python Modules</source>
       <translation>Ajouter module Python</translation>
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="907" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="922" />
       <source>Python Files (*.py)</source>
       <translation>Fichiers Python (*.py)</translation>
     </message>
     <message>
       <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
-      <source>setup.py Wizard</source>
-      <translation>Assistant setup.py</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
       <source>Select to include the introductory part of the setup.py code</source>
       <translation type="unfinished" />
     </message>
@@ -66318,6 +66318,10 @@
       <translation type="unfinished" />
     </message>
     <message>
+      <source>setup.py Wizard</source>
+      <translation type="vanished">Assistant setup.py</translation>
+    </message>
+    <message>
       <source>Add Scripts</source>
       <translation type="vanished">Ajouter scripts</translation>
     </message>
--- a/eric7/i18n/eric7_it.ts	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/i18n/eric7_it.ts	Sun Jul 03 13:52:59 2022 +0200
@@ -65764,60 +65764,60 @@
   <context>
     <name>SetupWizard</name>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="87" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="83" />
       <source>setup.py Wizard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="85" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
       <source>setup.py Wizard...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="89" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
       <source>&lt;b&gt;setup.py Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.py file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="104" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="100" />
+      <source>setup.cfg Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
+      <source>setup.cfg Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="105" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
-      <source>setup.cfg Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="102" />
-      <source>setup.cfg Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="106" />
       <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="121" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="117" />
+      <source>pyproject.toml Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
+      <source>pyproject.toml Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="122" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
-      <source>pyproject.toml Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="119" />
-      <source>pyproject.toml Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="123" />
       <source>&lt;b&gt;pyproject.toml Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a pyproject.toml file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="181" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="158" />
       <source>No current editor</source>
       <translation type="unfinished">Nessun editor corrente</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="182" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="159" />
       <source>Please open or create a file first.</source>
       <translation type="unfinished">Per favore prima apri o crea un file.</translation>
     </message>
@@ -65825,37 +65825,37 @@
   <context>
     <name>SetupWizardDialog</name>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="98" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="62" />
+      <source>{0} Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="103" />
       <source>Plain Text</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="99" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="104" />
       <source>Markdown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="100" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="105" />
       <source>reStructuredText</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="905" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="920" />
       <source>Add Python Modules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="907" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="922" />
       <source>Python Files (*.py)</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
-      <source>setup.py Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
       <source>Select to include the introductory part of the setup.py code</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_pt.ts	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/i18n/eric7_pt.ts	Sun Jul 03 13:52:59 2022 +0200
@@ -65666,60 +65666,60 @@
   <context>
     <name>SetupWizard</name>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="87" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="83" />
       <source>setup.py Wizard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="85" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
       <source>setup.py Wizard...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="89" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
       <source>&lt;b&gt;setup.py Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.py file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="104" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="100" />
+      <source>setup.cfg Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
+      <source>setup.cfg Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="105" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
-      <source>setup.cfg Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="102" />
-      <source>setup.cfg Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="106" />
       <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="121" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="117" />
+      <source>pyproject.toml Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
+      <source>pyproject.toml Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="122" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
-      <source>pyproject.toml Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="119" />
-      <source>pyproject.toml Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="123" />
       <source>&lt;b&gt;pyproject.toml Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a pyproject.toml file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="181" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="158" />
       <source>No current editor</source>
       <translation type="unfinished">Não há um editor atual</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="182" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="159" />
       <source>Please open or create a file first.</source>
       <translation type="unfinished">Por favor, primeiro abra ou crie um ficheiro.</translation>
     </message>
@@ -65727,37 +65727,37 @@
   <context>
     <name>SetupWizardDialog</name>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="98" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="62" />
+      <source>{0} Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="103" />
       <source>Plain Text</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="99" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="104" />
       <source>Markdown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="100" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="105" />
       <source>reStructuredText</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="905" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="920" />
       <source>Add Python Modules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="907" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="922" />
       <source>Python Files (*.py)</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
-      <source>setup.py Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
       <source>Select to include the introductory part of the setup.py code</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_ru.ts	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/i18n/eric7_ru.ts	Sun Jul 03 13:52:59 2022 +0200
@@ -66043,60 +66043,60 @@
   <context>
     <name>SetupWizard</name>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="87" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="83" />
       <source>setup.py Wizard</source>
       <translation>Мастер setup.py</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="85" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
       <source>setup.py Wizard...</source>
       <translation>Мастер setup.py...</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="89" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
       <source>&lt;b&gt;setup.py Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.py file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation>&lt;b&gt;Мастер setup.py&lt;/b&gt;&lt;p&gt;Этот мастер открывает диалог для ввода всех параметров, необходимых для создания основной контент файла setup.py. Созданный код будет вставлен в текущую позицию курсора.&lt;/p&gt;</translation>
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="104" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="100" />
+      <source>setup.cfg Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
+      <source>setup.cfg Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="105" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
-      <source>setup.cfg Wizard</source>
+      <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="102" />
-      <source>setup.cfg Wizard...</source>
+      <location filename="../Plugins/PluginWizardSetup.py" line="121" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="117" />
+      <source>pyproject.toml Wizard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="106" />
-      <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
+      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
+      <source>pyproject.toml Wizard...</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="122" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
-      <source>pyproject.toml Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="119" />
-      <source>pyproject.toml Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="123" />
       <source>&lt;b&gt;pyproject.toml Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a pyproject.toml file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="181" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="158" />
       <source>No current editor</source>
       <translation>Нет текущего редактора</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="182" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="159" />
       <source>Please open or create a file first.</source>
       <translation>Пожалуйста, сначала откройте или создайте файл.</translation>
     </message>
@@ -66104,37 +66104,37 @@
   <context>
     <name>SetupWizardDialog</name>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="98" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="62" />
+      <source>{0} Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="103" />
       <source>Plain Text</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="99" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="104" />
       <source>Markdown</source>
       <translation type="unfinished">Markdown</translation>
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="100" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="105" />
       <source>reStructuredText</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="905" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="920" />
       <source>Add Python Modules</source>
       <translation>Добавить модули Python</translation>
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="907" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="922" />
       <source>Python Files (*.py)</source>
       <translation>Файлы Python (*.py)</translation>
     </message>
     <message>
       <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
-      <source>setup.py Wizard</source>
-      <translation>Мастер setup.py</translation>
-    </message>
-    <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
       <source>Select to include the introductory part of the setup.py code</source>
       <translation>Разрешить включение вводной части кода setup.py</translation>
     </message>
@@ -66546,6 +66546,10 @@
       <translation>Получить из проекта</translation>
     </message>
     <message>
+      <source>setup.py Wizard</source>
+      <translation type="vanished">Мастер setup.py</translation>
+    </message>
+    <message>
       <source>Add Scripts</source>
       <translation type="vanished">Добавить сценарии</translation>
     </message>
--- a/eric7/i18n/eric7_tr.ts	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/i18n/eric7_tr.ts	Sun Jul 03 13:52:59 2022 +0200
@@ -65615,60 +65615,60 @@
   <context>
     <name>SetupWizard</name>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="87" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="83" />
       <source>setup.py Wizard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="85" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
       <source>setup.py Wizard...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="89" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
       <source>&lt;b&gt;setup.py Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.py file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="104" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="100" />
+      <source>setup.cfg Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
+      <source>setup.cfg Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="105" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
-      <source>setup.cfg Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="102" />
-      <source>setup.cfg Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="106" />
       <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="121" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="117" />
+      <source>pyproject.toml Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
+      <source>pyproject.toml Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="122" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
-      <source>pyproject.toml Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="119" />
-      <source>pyproject.toml Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="123" />
       <source>&lt;b&gt;pyproject.toml Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a pyproject.toml file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="181" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="158" />
       <source>No current editor</source>
       <translation type="unfinished">Geçerli düzenleyici yok</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="182" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="159" />
       <source>Please open or create a file first.</source>
       <translation type="unfinished">Lütfen ilkönce bir dosya açın yada oluşturun.</translation>
     </message>
@@ -65676,37 +65676,37 @@
   <context>
     <name>SetupWizardDialog</name>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="98" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="62" />
+      <source>{0} Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="103" />
       <source>Plain Text</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="99" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="104" />
       <source>Markdown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="100" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="105" />
       <source>reStructuredText</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="905" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="920" />
       <source>Add Python Modules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="907" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="922" />
       <source>Python Files (*.py)</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
-      <source>setup.py Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
       <source>Select to include the introductory part of the setup.py code</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_zh_CN.ts	Sat Jul 02 18:53:56 2022 +0200
+++ b/eric7/i18n/eric7_zh_CN.ts	Sun Jul 03 13:52:59 2022 +0200
@@ -65720,60 +65720,60 @@
   <context>
     <name>SetupWizard</name>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="87" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="83" />
       <source>setup.py Wizard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="85" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="84" />
       <source>setup.py Wizard...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="89" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="88" />
       <source>&lt;b&gt;setup.py Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.py file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="104" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="100" />
+      <source>setup.cfg Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
+      <source>setup.cfg Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="105" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="101" />
-      <source>setup.cfg Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="102" />
-      <source>setup.cfg Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="106" />
       <source>&lt;b&gt;setup.cfg Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a setup.cfg file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="121" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="117" />
+      <source>pyproject.toml Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
+      <source>pyproject.toml Wizard...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../Plugins/PluginWizardSetup.py" line="122" />
-      <location filename="../Plugins/PluginWizardSetup.py" line="118" />
-      <source>pyproject.toml Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="119" />
-      <source>pyproject.toml Wizard...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="123" />
       <source>&lt;b&gt;pyproject.toml Wizard&lt;/b&gt;&lt;p&gt;This wizard opens a dialog for entering all the parameters needed to create the basic contents of a pyproject.toml file. The generated code is inserted at the current cursor position.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="181" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="158" />
       <source>No current editor</source>
       <translation type="unfinished">没有当前编辑器</translation>
     </message>
     <message>
-      <location filename="../Plugins/PluginWizardSetup.py" line="182" />
+      <location filename="../Plugins/PluginWizardSetup.py" line="159" />
       <source>Please open or create a file first.</source>
       <translation type="unfinished">请您先打开或创建一个文件。</translation>
     </message>
@@ -65781,37 +65781,37 @@
   <context>
     <name>SetupWizardDialog</name>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="98" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="62" />
+      <source>{0} Wizard</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="103" />
       <source>Plain Text</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="99" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="104" />
       <source>Markdown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="100" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="105" />
       <source>reStructuredText</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="905" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="920" />
       <source>Add Python Modules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="907" />
+      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py" line="922" />
       <source>Python Files (*.py)</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
-      <source>setup.py Wizard</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui" line="0" />
       <source>Select to include the introductory part of the setup.py code</source>
       <translation type="unfinished" />
     </message>

eric ide

mercurial