Ported the plug-in to PyQt6 for eric7. eric7

Tue, 01 Jun 2021 18:45:45 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 01 Jun 2021 18:45:45 +0200
branch
eric7
changeset 51
318d7ebbdce2
parent 50
face142f8fa5
child 52
d2119f1dd5b3

Ported the plug-in to PyQt6 for eric7.

.hgignore file | annotate | diff | comparison | revisions
ChangeLog file | annotate | diff | comparison | revisions
PluginSelectionEncloser.py file | annotate | diff | comparison | revisions
PluginSelectionEncloser.zip file | annotate | diff | comparison | revisions
SelectionEncloser.e4p file | annotate | diff | comparison | revisions
SelectionEncloser.epj file | annotate | diff | comparison | revisions
SelectionEncloser/ConfigurationPage/SelectionEncloserEditDialog.py file | annotate | diff | comparison | revisions
SelectionEncloser/ConfigurationPage/SelectionEncloserEditDialog.ui file | annotate | diff | comparison | revisions
SelectionEncloser/ConfigurationPage/SelectionEncloserPage.py file | annotate | diff | comparison | revisions
SelectionEncloser/Documentation/source/Plugin_Tools_Selection_Encloser.PluginSelectionEncloser.html file | annotate | diff | comparison | revisions
SelectionEncloser/Documentation/source/Plugin_Tools_Selection_Encloser.SelectionEncloser.ConfigurationPage.SelectionEncloserEditDialog.html file | annotate | diff | comparison | revisions
SelectionEncloser/Documentation/source/Plugin_Tools_Selection_Encloser.SelectionEncloser.ConfigurationPage.SelectionEncloserPage.html file | annotate | diff | comparison | revisions
SelectionEncloser/i18n/selectionencloser_de.qm file | annotate | diff | comparison | revisions
SelectionEncloser/i18n/selectionencloser_de.ts file | annotate | diff | comparison | revisions
SelectionEncloser/i18n/selectionencloser_en.qm file | annotate | diff | comparison | revisions
SelectionEncloser/i18n/selectionencloser_en.ts file | annotate | diff | comparison | revisions
SelectionEncloser/i18n/selectionencloser_es.qm file | annotate | diff | comparison | revisions
SelectionEncloser/i18n/selectionencloser_es.ts file | annotate | diff | comparison | revisions
SelectionEncloser/i18n/selectionencloser_ru.qm file | annotate | diff | comparison | revisions
SelectionEncloser/i18n/selectionencloser_ru.ts file | annotate | diff | comparison | revisions
--- a/.hgignore	Tue Jun 01 18:01:14 2021 +0200
+++ b/.hgignore	Tue Jun 01 18:45:45 2021 +0200
@@ -1,11 +1,6 @@
+glob:.eric7project
 glob:.eric6project
-glob:_eric6project
-glob:.eric5project
-glob:_eric5project
-glob:.eric4project
-glob:_eric4project
 glob:.ropeproject
-glob:_ropeproject
 glob:.directory
 glob:**.pyc
 glob:**.pyo
--- a/ChangeLog	Tue Jun 01 18:01:14 2021 +0200
+++ b/ChangeLog	Tue Jun 01 18:45:45 2021 +0200
@@ -1,5 +1,10 @@
 ChangeLog
 ---------
+Version 1.0.0:
+- first release of the eric7 variant
+
+************************************************************
+
 Version 3.2.1:
 - bug fixes
 
--- a/PluginSelectionEncloser.py	Tue Jun 01 18:01:14 2021 +0200
+++ b/PluginSelectionEncloser.py	Tue Jun 01 18:45:45 2021 +0200
@@ -11,10 +11,11 @@
 import os
 import json
 
-from PyQt5.QtCore import QObject, QTranslator, QCoreApplication
-from PyQt5.QtWidgets import QAction, QMenu
+from PyQt6.QtCore import pyqtSlot, QObject, QTranslator, QCoreApplication
+from PyQt6.QtGui import QAction
+from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Application import e5App
+from EricWidgets.EricApplication import ericApp
 
 import Preferences
 
@@ -23,7 +24,7 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "3.2.1"
+version = "1.0.0"
 className = "SelectionEncloserPlugin"
 packageName = "SelectionEncloser"
 shortDescription = "Enclose the selection with a string."
@@ -46,7 +47,9 @@
     Module function to create the Selection Encloser configuration page.
     
     @param configDlg reference to the configuration dialog
+    @type ConfigurationWidget
     @return reference to the configuration page
+    @rtype SelectionEncloserPage
     """
     global selectionEncloserPluginObject
     from SelectionEncloser.ConfigurationPage.SelectionEncloserPage import (
@@ -60,15 +63,9 @@
     Module function returning data as required by the configuration dialog.
     
     @return dictionary containing the relevant data
+    @rtype dict
     """
-    try:
-        usesDarkPalette = e5App().usesDarkPalette()
-    except AttributeError:
-        # for eric6 < 20.4
-        from PyQt5.QtGui import QPalette
-        palette = e5App().palette()
-        lightness = palette.color(QPalette.Window).lightness()
-        usesDarkPalette = lightness <= 128
+    usesDarkPalette = ericApp().usesDarkPalette()
     iconSuffix = "dark" if usesDarkPalette else "light"
     
     return {
@@ -98,7 +95,8 @@
         """
         Constructor
         
-        @param ui reference to the user interface object (UI.UserInterface)
+        @param ui reference to the user interface object
+        @type UserInterface
         """
         super().__init__(ui)
         self.__ui = ui
@@ -140,7 +138,8 @@
         """
         Public method to activate this plugin.
         
-        @return tuple of None and activation status (boolean)
+        @return tuple of None and activation status
+        @rtype (None, bool)
         """
         global error
         error = ""     # clear previous error
@@ -158,12 +157,12 @@
             act = menu.addMenu(self.__menu)
             self.__mainActions.append(act)
         
-        e5App().getObject("ViewManager").editorOpenedEd.connect(
+        ericApp().getObject("ViewManager").editorOpenedEd.connect(
             self.__editorOpened)
-        e5App().getObject("ViewManager").editorClosedEd.connect(
+        ericApp().getObject("ViewManager").editorClosedEd.connect(
             self.__editorClosed)
         
-        for editor in e5App().getObject("ViewManager").getOpenEditors():
+        for editor in ericApp().getObject("ViewManager").getOpenEditors():
             self.__editorOpened(editor)
         
         return None, True
@@ -180,9 +179,9 @@
                 menu.removeAction(act)
         self.__mainActions = []
 
-        e5App().getObject("ViewManager").editorOpenedEd.disconnect(
+        ericApp().getObject("ViewManager").editorOpenedEd.disconnect(
             self.__editorOpened)
-        e5App().getObject("ViewManager").editorClosedEd.disconnect(
+        ericApp().getObject("ViewManager").editorClosedEd.disconnect(
             self.__editorClosed)
         
         for editor, acts in self.__editors.items():
@@ -207,7 +206,7 @@
                 loaded = translator.load(translation, locale_dir)
                 if loaded:
                     self.__translator = translator
-                    e5App().installTranslator(self.__translator)
+                    ericApp().installTranslator(self.__translator)
                 else:
                     print("Warning: translation file '{0}' could not be"
                           " loaded.".format(translation))
@@ -217,8 +216,10 @@
         """
         Public method to retrieve the various settings.
         
-        @param key the key of the value to get (string)
-        @return the requested setting
+        @param key key of the value to get
+        @type str
+        @return value of the requested setting
+        @rtype Any
         """
         if key in ["MenuHierarchy"]:
             return json.loads(
@@ -232,8 +233,10 @@
         """
         Public method to store the various settings.
         
-        @param key the key of the setting to be set (string)
-        @param value the value to be set
+        @param key key of the setting to be set
+        @type str
+        @param value value to be set
+        @type Any
         """
         if key in ["MenuHierarchy"]:
             Preferences.Prefs.settings.setValue(
@@ -254,13 +257,15 @@
         """
         Private slot to populate the tools menu with our entry.
         
-        @param name name of the menu (string)
-        @param menu reference to the menu to be populated (QMenu)
+        @param name name of the menu
+        @type str
+        @param menu reference to the menu to be populated
+        @type QMenu
         """
         if name not in ["Tools", "PluginTools"]:
             return
         
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         
         if name == "Tools":
             if not menu.isEmpty():
@@ -275,7 +280,8 @@
         """
         Private slot called, when a new editor was opened.
         
-        @param editor reference to the new editor (QScintilla.Editor)
+        @param editor reference to the new editor
+        @type Editor
         """
         menu = editor.getMenu("Tools")
         if menu is not None:
@@ -292,7 +298,8 @@
         """
         Private slot called, when an editor was closed.
         
-        @param editor reference to the editor (QScintilla.Editor)
+        @param editor reference to the editor
+        @type Editor
         """
         with contextlib.suppress(KeyError):
             del self.__editors[editor]
@@ -304,9 +311,12 @@
         Private slot called, when the the editor context menu or a submenu is
         about to be shown.
         
-        @param menuName name of the menu to be shown (string)
-        @param menu reference to the menu (QMenu)
+        @param menuName name of the menu to be shown
+        @type str
+        @param menu reference to the menu
+        @type QMenu
         @param editor reference to the editor
+        @type Editor
         """
         if menuName == "Tools":
             if self.__menu.menuAction() not in menu.actions():
@@ -335,35 +345,39 @@
                     if title == '--Separator--':
                         submenu.addSeparator()
                     else:
-                        act = submenu.addAction(title, self.__encloseSelection)
+                        act = submenu.addAction(title)
                         act.setData(encString)
+                submenu.triggered.connect(self.__encloseSelection)
                 self.__menu.addMenu(submenu)
     
-    def __encloseSelection(self):
+    @pyqtSlot(QAction)
+    def __encloseSelection(self, act):
         """
         Private slot to enclose the selection with the selected string.
+        
+        @param act action that triggered
+        @type QAction
         """
-        act = self.sender()
-        if act is None or not isinstance(act, QAction):
+        if act is None:
             return
         
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         if editor is None:
             return
         
         if not editor.hasSelectedText():
             return
         
-        string = act.data()
-        if not string:
+        encloseString = act.data()
+        if not encloseString:
             return
         
-        if '%s' in string:
-            newText = string % editor.selectedText()
-        elif '{0}' in string:
-            newText = string.format(editor.selectedText())
+        if '%s' in encloseString:
+            newText = encloseString % editor.selectedText()
+        elif '{0}' in encloseString or '{}' in encloseString:
+            newText = encloseString.format(editor.selectedText())
         else:
-            newText = string + editor.selectedText() + string
+            newText = encloseString + editor.selectedText() + encloseString
         editor.beginUndoAction()
         editor.replaceSelectedText(newText)
         editor.endUndoAction()
Binary file PluginSelectionEncloser.zip has changed
--- a/SelectionEncloser.e4p	Tue Jun 01 18:01:14 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,520 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
-<!-- eric project file for project SelectionEncloser -->
-<!-- Copyright (C) 2020 Detlev Offenbach, detlev@die-offenbachs.de -->
-<Project version="5.1">
-  <Language>en_US</Language>
-  <Hash>91f365d0cd272c85920259a5767cf6213841f57c</Hash>
-  <ProgLanguage mixed="0">Python3</ProgLanguage>
-  <ProjectType>E6Plugin</ProjectType>
-  <Description>Plug-in to enclose the selection of the current editor in a selectable and configurable string.</Description>
-  <Version>2.x</Version>
-  <Author>Detlev Offenbach</Author>
-  <Email>detlev@die-offenbachs.de</Email>
-  <TranslationPattern>SelectionEncloser/i18n/selectionencloser_%language%.ts</TranslationPattern>
-  <Sources>
-    <Source>PluginSelectionEncloser.py</Source>
-    <Source>SelectionEncloser/ConfigurationPage/SelectionEncloserEditDialog.py</Source>
-    <Source>SelectionEncloser/ConfigurationPage/SelectionEncloserPage.py</Source>
-    <Source>SelectionEncloser/ConfigurationPage/__init__.py</Source>
-    <Source>SelectionEncloser/__init__.py</Source>
-    <Source>__init__.py</Source>
-  </Sources>
-  <Forms>
-    <Form>SelectionEncloser/ConfigurationPage/SelectionEncloserEditDialog.ui</Form>
-    <Form>SelectionEncloser/ConfigurationPage/SelectionEncloserPage.ui</Form>
-  </Forms>
-  <Translations>
-    <Translation>SelectionEncloser/i18n/selectionencloser_de.qm</Translation>
-    <Translation>SelectionEncloser/i18n/selectionencloser_de.ts</Translation>
-    <Translation>SelectionEncloser/i18n/selectionencloser_en.qm</Translation>
-    <Translation>SelectionEncloser/i18n/selectionencloser_en.ts</Translation>
-    <Translation>SelectionEncloser/i18n/selectionencloser_es.qm</Translation>
-    <Translation>SelectionEncloser/i18n/selectionencloser_es.ts</Translation>
-    <Translation>SelectionEncloser/i18n/selectionencloser_ru.qm</Translation>
-    <Translation>SelectionEncloser/i18n/selectionencloser_ru.ts</Translation>
-  </Translations>
-  <Others>
-    <Other>.hgignore</Other>
-    <Other>ChangeLog</Other>
-    <Other>PKGLIST</Other>
-    <Other>PluginSelectionEncloser.zip</Other>
-    <Other>SelectionEncloser.e4p</Other>
-    <Other>SelectionEncloser/Documentation/LICENSE.GPL3</Other>
-    <Other>SelectionEncloser/Documentation/source</Other>
-    <Other>SelectionEncloser/icons/edit-dark.svg</Other>
-    <Other>SelectionEncloser/icons/edit-light.svg</Other>
-    <Other>SelectionEncloser/icons/selectionEncloser-dark.svg</Other>
-    <Other>SelectionEncloser/icons/selectionEncloser-light.svg</Other>
-    <Other>SelectionEncloser/icons/separatorAdd-dark.svg</Other>
-    <Other>SelectionEncloser/icons/separatorAdd-light.svg</Other>
-    <Other>SelectionEncloser/icons/topAdd-dark.svg</Other>
-    <Other>SelectionEncloser/icons/topAdd-light.svg</Other>
-  </Others>
-  <MainScript>PluginSelectionEncloser.py</MainScript>
-  <Vcs>
-    <VcsType>Mercurial</VcsType>
-    <VcsOptions>
-      <dict>
-        <key>
-          <string>add</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>checkout</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>commit</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>diff</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>export</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>global</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>history</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>log</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>remove</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>status</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>tag</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-        <key>
-          <string>update</string>
-        </key>
-        <value>
-          <list>
-            <string></string>
-          </list>
-        </value>
-      </dict>
-    </VcsOptions>
-  </Vcs>
-  <FiletypeAssociations>
-    <FiletypeAssociation pattern="*.idl" type="INTERFACES"/>
-    <FiletypeAssociation pattern="*.py" type="SOURCES"/>
-    <FiletypeAssociation pattern="*.py3" type="SOURCES"/>
-    <FiletypeAssociation pattern="*.pyw" type="SOURCES"/>
-    <FiletypeAssociation pattern="*.pyw3" type="SOURCES"/>
-    <FiletypeAssociation pattern="*.qm" type="TRANSLATIONS"/>
-    <FiletypeAssociation pattern="*.qrc" type="RESOURCES"/>
-    <FiletypeAssociation pattern="*.ts" type="TRANSLATIONS"/>
-    <FiletypeAssociation pattern="*.ui" type="FORMS"/>
-    <FiletypeAssociation pattern="*.ui.h" type="FORMS"/>
-    <FiletypeAssociation pattern="Ui_*.py" type="__IGNORE__"/>
-  </FiletypeAssociations>
-  <Documentation>
-    <DocumentationParams>
-      <dict>
-        <key>
-          <string>ERIC4DOC</string>
-        </key>
-        <value>
-          <dict>
-            <key>
-              <string>cssFile</string>
-            </key>
-            <value>
-              <string>%PYTHON%/eric6/CSSs/default.css</string>
-            </value>
-            <key>
-              <string>ignoreDirectories</string>
-            </key>
-            <value>
-              <list>
-                <string>.eric5project</string>
-                <string>.ropeproject</string>
-                <string>.hg</string>
-                <string>_ropeproject</string>
-                <string>_eric5project</string>
-                <string>.eric6project</string>
-                <string>_eric6project</string>
-              </list>
-            </value>
-            <key>
-              <string>ignoreFilePatterns</string>
-            </key>
-            <value>
-              <list>
-                <string>Ui_*.py</string>
-              </list>
-            </value>
-            <key>
-              <string>outputDirectory</string>
-            </key>
-            <value>
-              <string>SelectionEncloser/Documentation/source</string>
-            </value>
-            <key>
-              <string>qtHelpEnabled</string>
-            </key>
-            <value>
-              <bool>False</bool>
-            </value>
-            <key>
-              <string>useRecursion</string>
-            </key>
-            <value>
-              <bool>True</bool>
-            </value>
-          </dict>
-        </value>
-      </dict>
-    </DocumentationParams>
-  </Documentation>
-  <Checkers>
-    <CheckersParams>
-      <dict>
-        <key>
-          <string>Pep8Checker</string>
-        </key>
-        <value>
-          <dict>
-            <key>
-              <string>AnnotationsChecker</string>
-            </key>
-            <value>
-              <dict>
-                <key>
-                  <string>MaximumComplexity</string>
-                </key>
-                <value>
-                  <int>3</int>
-                </value>
-                <key>
-                  <string>MinimumCoverage</string>
-                </key>
-                <value>
-                  <int>75</int>
-                </value>
-              </dict>
-            </value>
-            <key>
-              <string>BlankLines</string>
-            </key>
-            <value>
-              <tuple>
-                <int>2</int>
-                <int>1</int>
-              </tuple>
-            </value>
-            <key>
-              <string>BuiltinsChecker</string>
-            </key>
-            <value>
-              <dict>
-                <key>
-                  <string>bytes</string>
-                </key>
-                <value>
-                  <list>
-                    <string>unicode</string>
-                  </list>
-                </value>
-                <key>
-                  <string>chr</string>
-                </key>
-                <value>
-                  <list>
-                    <string>unichr</string>
-                  </list>
-                </value>
-                <key>
-                  <string>str</string>
-                </key>
-                <value>
-                  <list>
-                    <string>unicode</string>
-                  </list>
-                </value>
-              </dict>
-            </value>
-            <key>
-              <string>CommentedCodeChecker</string>
-            </key>
-            <value>
-              <dict>
-                <key>
-                  <string>Aggressive</string>
-                </key>
-                <value>
-                  <bool>False</bool>
-                </value>
-              </dict>
-            </value>
-            <key>
-              <string>CopyrightAuthor</string>
-            </key>
-            <value>
-              <string></string>
-            </value>
-            <key>
-              <string>CopyrightMinFileSize</string>
-            </key>
-            <value>
-              <int>0</int>
-            </value>
-            <key>
-              <string>DocstringType</string>
-            </key>
-            <value>
-              <string>eric</string>
-            </value>
-            <key>
-              <string>EnabledCheckerCategories</string>
-            </key>
-            <value>
-              <string>C, D, E, M, N, S, W</string>
-            </value>
-            <key>
-              <string>ExcludeFiles</string>
-            </key>
-            <value>
-              <string>*/Ui_*.py, */*_rc.py</string>
-            </value>
-            <key>
-              <string>ExcludeMessages</string>
-            </key>
-            <value>
-              <string>C101,E265,E266,E305,E402,M811,N802,N803,N807,N808,N821,W293,W504</string>
-            </value>
-            <key>
-              <string>FixCodes</string>
-            </key>
-            <value>
-              <string></string>
-            </value>
-            <key>
-              <string>FixIssues</string>
-            </key>
-            <value>
-              <bool>False</bool>
-            </value>
-            <key>
-              <string>FutureChecker</string>
-            </key>
-            <value>
-              <string></string>
-            </value>
-            <key>
-              <string>HangClosing</string>
-            </key>
-            <value>
-              <bool>False</bool>
-            </value>
-            <key>
-              <string>IncludeMessages</string>
-            </key>
-            <value>
-              <string></string>
-            </value>
-            <key>
-              <string>LineComplexity</string>
-            </key>
-            <value>
-              <int>20</int>
-            </value>
-            <key>
-              <string>LineComplexityScore</string>
-            </key>
-            <value>
-              <int>10</int>
-            </value>
-            <key>
-              <string>MaxCodeComplexity</string>
-            </key>
-            <value>
-              <int>10</int>
-            </value>
-            <key>
-              <string>MaxDocLineLength</string>
-            </key>
-            <value>
-              <int>79</int>
-            </value>
-            <key>
-              <string>MaxLineLength</string>
-            </key>
-            <value>
-              <int>79</int>
-            </value>
-            <key>
-              <string>NoFixCodes</string>
-            </key>
-            <value>
-              <string>E501</string>
-            </value>
-            <key>
-              <string>RepeatMessages</string>
-            </key>
-            <value>
-              <bool>True</bool>
-            </value>
-            <key>
-              <string>SecurityChecker</string>
-            </key>
-            <value>
-              <dict>
-                <key>
-                  <string>CheckTypedException</string>
-                </key>
-                <value>
-                  <bool>False</bool>
-                </value>
-                <key>
-                  <string>HardcodedTmpDirectories</string>
-                </key>
-                <value>
-                  <list>
-                    <string>/tmp</string>
-                    <string>/var/tmp</string>
-                    <string>/dev/shm</string>
-                    <string>~/tmp</string>
-                  </list>
-                </value>
-                <key>
-                  <string>InsecureHashes</string>
-                </key>
-                <value>
-                  <list>
-                    <string>md4</string>
-                    <string>md5</string>
-                    <string>sha</string>
-                    <string>sha1</string>
-                  </list>
-                </value>
-                <key>
-                  <string>InsecureSslProtocolVersions</string>
-                </key>
-                <value>
-                  <list>
-                    <string>PROTOCOL_SSLv2</string>
-                    <string>SSLv2_METHOD</string>
-                    <string>SSLv23_METHOD</string>
-                    <string>PROTOCOL_SSLv3</string>
-                    <string>PROTOCOL_TLSv1</string>
-                    <string>SSLv3_METHOD</string>
-                    <string>TLSv1_METHOD</string>
-                  </list>
-                </value>
-                <key>
-                  <string>WeakKeySizeDsaHigh</string>
-                </key>
-                <value>
-                  <string>1024</string>
-                </value>
-                <key>
-                  <string>WeakKeySizeDsaMedium</string>
-                </key>
-                <value>
-                  <string>2048</string>
-                </value>
-                <key>
-                  <string>WeakKeySizeEcHigh</string>
-                </key>
-                <value>
-                  <string>160</string>
-                </value>
-                <key>
-                  <string>WeakKeySizeEcMedium</string>
-                </key>
-                <value>
-                  <string>224</string>
-                </value>
-                <key>
-                  <string>WeakKeySizeRsaHigh</string>
-                </key>
-                <value>
-                  <string>1024</string>
-                </value>
-                <key>
-                  <string>WeakKeySizeRsaMedium</string>
-                </key>
-                <value>
-                  <string>2048</string>
-                </value>
-              </dict>
-            </value>
-            <key>
-              <string>ShowIgnored</string>
-            </key>
-            <value>
-              <bool>False</bool>
-            </value>
-            <key>
-              <string>ValidEncodings</string>
-            </key>
-            <value>
-              <string>latin-1, utf-8</string>
-            </value>
-          </dict>
-        </value>
-      </dict>
-    </CheckersParams>
-  </Checkers>
-</Project>
--- a/SelectionEncloser.epj	Tue Jun 01 18:01:14 2021 +0200
+++ b/SelectionEncloser.epj	Tue Jun 01 18:45:45 2021 +0200
@@ -113,15 +113,12 @@
     "DOCSTRING": "",
     "DOCUMENTATIONPARMS": {
       "ERIC4DOC": {
-        "cssFile": "%PYTHON%/eric6/CSSs/default.css",
+        "cssFile": "%PYTHON%/eric7/CSSs/default.css",
         "ignoreDirectories": [
-          ".eric5project",
           ".ropeproject",
           ".hg",
-          "_ropeproject",
-          "_eric5project",
           ".eric6project",
-          "_eric6project"
+          ".eric7project"
         ],
         "ignoreFilePatterns": [
           "Ui_*.py"
@@ -134,17 +131,25 @@
     "EMAIL": "detlev@die-offenbachs.de",
     "EOL": -1,
     "FILETYPES": {
+      "*.epj": "OTHERS",
       "*.idl": "INTERFACES",
+      "*.md": "OTHERS",
+      "*.proto": "PROTOCOLS",
       "*.py": "SOURCES",
       "*.py3": "SOURCES",
       "*.pyw": "SOURCES",
       "*.pyw3": "SOURCES",
       "*.qm": "TRANSLATIONS",
-      "*.qrc": "RESOURCES",
+      "*.rst": "OTHERS",
       "*.ts": "TRANSLATIONS",
+      "*.txt": "OTHERS",
       "*.ui": "FORMS",
-      "*.ui.h": "FORMS",
-      "Ui_*.py": "__IGNORE__"
+      "GNUmakefile": "OTHERS",
+      "Makefile": "OTHERS",
+      "README": "OTHERS",
+      "README.*": "OTHERS",
+      "Ui_*.py": "__IGNORE__",
+      "makefile": "OTHERS"
     },
     "FORMS": [
       "SelectionEncloser/ConfigurationPage/SelectionEncloserEditDialog.ui",
@@ -173,7 +178,6 @@
       "ChangeLog",
       "PKGLIST",
       "PluginSelectionEncloser.zip",
-      "SelectionEncloser.e4p",
       "SelectionEncloser/Documentation/LICENSE.GPL3",
       "SelectionEncloser/Documentation/source",
       "SelectionEncloser/icons/edit-dark.svg",
@@ -189,7 +193,7 @@
     "OTHERTOOLSPARMS": {},
     "PACKAGERSPARMS": {},
     "PROGLANGUAGE": "Python3",
-    "PROJECTTYPE": "E6Plugin",
+    "PROJECTTYPE": "E7Plugin",
     "PROJECTTYPESPECIFICDATA": {},
     "PROTOCOLS": [],
     "RCCPARAMS": {
@@ -268,6 +272,6 @@
       ]
     },
     "VCSOTHERDATA": {},
-    "VERSION": "2.x"
+    "VERSION": ""
   }
 }
\ No newline at end of file
--- a/SelectionEncloser/ConfigurationPage/SelectionEncloserEditDialog.py	Tue Jun 01 18:01:14 2021 +0200
+++ b/SelectionEncloser/ConfigurationPage/SelectionEncloserEditDialog.py	Tue Jun 01 18:45:45 2021 +0200
@@ -7,8 +7,8 @@
 Module implementing a dialog to edit an enclosing menu entry.
 """
 
-from PyQt5.QtCore import pyqtSlot
-from PyQt5.QtWidgets import QDialog, QDialogButtonBox
+from PyQt6.QtCore import pyqtSlot
+from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
 from .Ui_SelectionEncloserEditDialog import Ui_SelectionEncloserEditDialog
 
@@ -21,9 +21,12 @@
         """
         Constructor
         
-        @param title menu entry title (string)
-        @param string enclosing string or string format expression (string)
-        @param parent reference to the parent widget (QWidget)
+        @param title menu entry title
+        @type str
+        @param string enclosing string or string format expression
+        @type str
+        @param parent reference to the parent widget
+        @type QWidget
         """
         super().__init__(parent)
         self.setupUi(self)
@@ -40,7 +43,7 @@
         """
         Private slot to set the status of the OK button.
         """
-        self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(
+        self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(
             bool(self.titleEdit.text()) and bool(self.stringEdit.text()))
     
     @pyqtSlot(str)
@@ -48,7 +51,8 @@
         """
         Private slot to react on changes of the title.
         
-        @param txt title text (string)
+        @param txt title text
+        @type str
         """
         self.__updateOkButton()
     
@@ -57,7 +61,8 @@
         """
         Private slot to react on changes of the string.
         
-        @param txt enclosing string (string)
+        @param txt enclosing string
+        @type str
         """
         self.__updateOkButton()
     
@@ -65,7 +70,8 @@
         """
         Public method to get the dialog data.
         
-        @return tuple with menu entry title (string) and enclosing string
-            or string format expression (string)
+        @return tuple with menu entry title and enclosing string or string
+            format expression
+        @rtype tuple of (str, str)
         """
         return self.titleEdit.text(), self.stringEdit.text()
--- a/SelectionEncloser/ConfigurationPage/SelectionEncloserEditDialog.ui	Tue Jun 01 18:01:14 2021 +0200
+++ b/SelectionEncloser/ConfigurationPage/SelectionEncloserEditDialog.ui	Tue Jun 01 18:45:45 2021 +0200
@@ -29,6 +29,9 @@
      <property name="toolTip">
       <string>Enter the menu entry title</string>
      </property>
+     <property name="clearButtonEnabled">
+      <bool>true</bool>
+     </property>
     </widget>
    </item>
    <item row="1" column="0">
@@ -43,12 +46,15 @@
      <property name="toolTip">
       <string>Enter the enclosing string or string format expression</string>
      </property>
+     <property name="clearButtonEnabled">
+      <bool>true</bool>
+     </property>
     </widget>
    </item>
    <item row="2" column="0" colspan="2">
     <widget class="QLabel" name="label_3">
      <property name="text">
-      <string>&lt;b&gt;Note&lt;/b&gt;: '%s' or '{0}' is replace by the selected text</string>
+      <string>&lt;b&gt;Note&lt;/b&gt;: '%s', '{0}' or '{}' is replace by the selected text</string>
      </property>
     </widget>
    </item>
--- a/SelectionEncloser/ConfigurationPage/SelectionEncloserPage.py	Tue Jun 01 18:01:14 2021 +0200
+++ b/SelectionEncloser/ConfigurationPage/SelectionEncloserPage.py	Tue Jun 01 18:45:45 2021 +0200
@@ -9,10 +9,10 @@
 
 import os
 
-from PyQt5.QtCore import pyqtSlot, Qt
-from PyQt5.QtWidgets import QTreeWidgetItem, QInputDialog, QLineEdit, QDialog
+from PyQt6.QtCore import pyqtSlot, Qt
+from PyQt6.QtWidgets import QTreeWidgetItem, QInputDialog, QLineEdit, QDialog
 
-from E5Gui.E5Application import e5App
+from EricWidgets.EricApplication import ericApp
 
 from Preferences.ConfigurationPages.ConfigurationPageBase import (
     ConfigurationPageBase
@@ -31,19 +31,13 @@
         Constructor
         
         @param plugin reference to the plugin object
+        @type SelectionEncloserPlugin
         """
         super().__init__()
         self.setupUi(self)
         self.setObjectName("SelectionEncloserPage")
         
-        try:
-            usesDarkPalette = e5App().usesDarkPalette()
-        except AttributeError:
-            # for eric6 < 20.4
-            from PyQt5.QtGui import QPalette
-            palette = e5App().palette()
-            lightness = palette.color(QPalette.Window).lightness()
-            usesDarkPalette = lightness <= 128
+        usesDarkPalette = ericApp().usesDarkPalette()
         iconSuffix = "dark" if usesDarkPalette else "light"
         
         self.editButton.setIcon(UI.PixmapCache.getIcon(
@@ -79,7 +73,7 @@
                 if title == '--Separator--':
                     title = self.tr('--Separator--')
                 itm = QTreeWidgetItem(top, [title])
-                itm.setData(0, Qt.UserRole, encString)
+                itm.setData(0, Qt.ItemDataRole.UserRole, encString)
             top.setExpanded(True)
     
     def save(self):
@@ -98,7 +92,9 @@
                 title = itm.text(0)
                 if title == self.tr('--Separator--'):
                     title = '--Separator--'
-                topEntry[1].append([title, itm.data(0, Qt.UserRole)])
+                topEntry[1].append(
+                    [title, itm.data(0, Qt.ItemDataRole.UserRole)]
+                )
             hierarchy.append(topEntry)
         self.__plugin.setPreferences("MenuHierarchy", hierarchy)
     
@@ -111,7 +107,7 @@
             self,
             self.tr("Menu Title"),
             self.tr("Enter menu title:"),
-            QLineEdit.Normal)
+            QLineEdit.EchoMode.Normal)
         if ok and menuTitle:
             top = QTreeWidgetItem(self.menuTree, [menuTitle])
             top.setExpanded(True)
@@ -123,10 +119,10 @@
         """
         from .SelectionEncloserEditDialog import SelectionEncloserEditDialog
         dlg = SelectionEncloserEditDialog(parent=self)
-        if dlg.exec() == QDialog.Accepted:
+        if dlg.exec() == QDialog.DialogCode.Accepted:
             title, encString = dlg.getData()
             itm = QTreeWidgetItem(self.menuTree.selectedItems()[0], [title])
-            itm.setData(0, Qt.UserRole, encString)
+            itm.setData(0, Qt.ItemDataRole.UserRole, encString)
     
     @pyqtSlot()
     def on_addSeparatorButton_clicked(self):
@@ -178,7 +174,8 @@
         """
         Private method to move the selected entry up or down.
         
-        @param moveUp flag indicating to move the entry up (boolean)
+        @param moveUp flag indicating to move the entry up
+        @type bool
         """
         itm = self.menuTree.selectedItems()[0]
         parent = itm.parent()
@@ -211,7 +208,7 @@
                 self,
                 self.tr("Menu Entry"),
                 self.tr("Enter menu entry text:"),
-                QLineEdit.Normal,
+                QLineEdit.EchoMode.Normal,
                 itm.text(0))
             if ok and menuTitle:
                 itm.setText(0, menuTitle)
@@ -220,11 +217,11 @@
                 SelectionEncloserEditDialog
             )
             dlg = SelectionEncloserEditDialog(
-                itm.text(0), itm.data(0, Qt.UserRole), self)
-            if dlg.exec() == QDialog.Accepted:
+                itm.text(0), itm.data(0, Qt.ItemDataRole.UserRole), self)
+            if dlg.exec() == QDialog.DialogCode.Accepted:
                 title, encString = dlg.getData()
                 itm.setText(0, title)
-                itm.setData(0, Qt.UserRole, encString)
+                itm.setData(0, Qt.ItemDataRole.UserRole, encString)
     
     @pyqtSlot()
     def on_menuTree_itemSelectionChanged(self):
--- a/SelectionEncloser/Documentation/source/Plugin_Tools_Selection_Encloser.PluginSelectionEncloser.html	Tue Jun 01 18:01:14 2021 +0200
+++ b/SelectionEncloser/Documentation/source/Plugin_Tools_Selection_Encloser.PluginSelectionEncloser.html	Tue Jun 01 18:45:45 2021 +0200
@@ -148,9 +148,9 @@
 </p>
 <dl>
 
-<dt><i>ui</i></dt>
+<dt><i>ui</i> (UserInterface)</dt>
 <dd>
-reference to the user interface object (UI.UserInterface)
+reference to the user interface object
 </dd>
 </dl>
 <a NAME="SelectionEncloserPlugin.__editorClosed" ID="SelectionEncloserPlugin.__editorClosed"></a>
@@ -162,9 +162,9 @@
 </p>
 <dl>
 
-<dt><i>editor</i></dt>
+<dt><i>editor</i> (Editor)</dt>
 <dd>
-reference to the editor (QScintilla.Editor)
+reference to the editor
 </dd>
 </dl>
 <a NAME="SelectionEncloserPlugin.__editorOpened" ID="SelectionEncloserPlugin.__editorOpened"></a>
@@ -176,9 +176,9 @@
 </p>
 <dl>
 
-<dt><i>editor</i></dt>
+<dt><i>editor</i> (Editor)</dt>
 <dd>
-reference to the new editor (QScintilla.Editor)
+reference to the new editor
 </dd>
 </dl>
 <a NAME="SelectionEncloserPlugin.__editorShowMenu" ID="SelectionEncloserPlugin.__editorShowMenu"></a>
@@ -191,26 +191,33 @@
 </p>
 <dl>
 
-<dt><i>menuName</i></dt>
+<dt><i>menuName</i> (str)</dt>
 <dd>
-name of the menu to be shown (string)
+name of the menu to be shown
 </dd>
-<dt><i>menu</i></dt>
+<dt><i>menu</i> (QMenu)</dt>
 <dd>
-reference to the menu (QMenu)
+reference to the menu
 </dd>
-<dt><i>editor</i></dt>
+<dt><i>editor</i> (Editor)</dt>
 <dd>
 reference to the editor
 </dd>
 </dl>
 <a NAME="SelectionEncloserPlugin.__encloseSelection" ID="SelectionEncloserPlugin.__encloseSelection"></a>
 <h4>SelectionEncloserPlugin.__encloseSelection</h4>
-<b>__encloseSelection</b>(<i></i>)
+<b>__encloseSelection</b>(<i>act</i>)
 
 <p>
         Private slot to enclose the selection with the selected string.
 </p>
+<dl>
+
+<dt><i>act</i> (QAction)</dt>
+<dd>
+action that triggered
+</dd>
+</dl>
 <a NAME="SelectionEncloserPlugin.__initMenu" ID="SelectionEncloserPlugin.__initMenu"></a>
 <h4>SelectionEncloserPlugin.__initMenu</h4>
 <b>__initMenu</b>(<i></i>)
@@ -234,13 +241,13 @@
 </p>
 <dl>
 
-<dt><i>name</i></dt>
+<dt><i>name</i> (str)</dt>
 <dd>
-name of the menu (string)
+name of the menu
 </dd>
-<dt><i>menu</i></dt>
+<dt><i>menu</i> (QMenu)</dt>
 <dd>
-reference to the menu to be populated (QMenu)
+reference to the menu to be populated
 </dd>
 </dl>
 <a NAME="SelectionEncloserPlugin.__showMenu" ID="SelectionEncloserPlugin.__showMenu"></a>
@@ -260,7 +267,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-tuple of None and activation status (boolean)
+tuple of None and activation status
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+(None, bool)
 </dd>
 </dl>
 <a NAME="SelectionEncloserPlugin.deactivate" ID="SelectionEncloserPlugin.deactivate"></a>
@@ -279,15 +292,21 @@
 </p>
 <dl>
 
-<dt><i>key</i></dt>
+<dt><i>key</i> (str)</dt>
 <dd>
-the key of the value to get (string)
+key of the value to get
 </dd>
 </dl>
 <dl>
 <dt>Return:</dt>
 <dd>
-the requested setting
+value of the requested setting
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+Any
 </dd>
 </dl>
 <a NAME="SelectionEncloserPlugin.setPreferences" ID="SelectionEncloserPlugin.setPreferences"></a>
@@ -299,13 +318,13 @@
 </p>
 <dl>
 
-<dt><i>key</i></dt>
+<dt><i>key</i> (str)</dt>
 <dd>
-the key of the setting to be set (string)
+key of the setting to be set
 </dd>
-<dt><i>value</i></dt>
+<dt><i>value</i> (Any)</dt>
 <dd>
-the value to be set
+value to be set
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -320,7 +339,7 @@
 </p>
 <dl>
 
-<dt><i>configDlg</i></dt>
+<dt><i>configDlg</i> (ConfigurationWidget)</dt>
 <dd>
 reference to the configuration dialog
 </dd>
@@ -331,6 +350,12 @@
 reference to the configuration page
 </dd>
 </dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+SelectionEncloserPage
+</dd>
+</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
@@ -347,6 +372,12 @@
 dictionary containing the relevant data
 </dd>
 </dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
--- a/SelectionEncloser/Documentation/source/Plugin_Tools_Selection_Encloser.SelectionEncloser.ConfigurationPage.SelectionEncloserEditDialog.html	Tue Jun 01 18:01:14 2021 +0200
+++ b/SelectionEncloser/Documentation/source/Plugin_Tools_Selection_Encloser.SelectionEncloser.ConfigurationPage.SelectionEncloserEditDialog.html	Tue Jun 01 18:45:45 2021 +0200
@@ -104,17 +104,17 @@
 </p>
 <dl>
 
-<dt><i>title</i></dt>
+<dt><i>title</i> (str)</dt>
 <dd>
-menu entry title (string)
+menu entry title
 </dd>
-<dt><i>string</i></dt>
+<dt><i>string</i> (str)</dt>
 <dd>
-enclosing string or string format expression (string)
+enclosing string or string format expression
 </dd>
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
+reference to the parent widget
 </dd>
 </dl>
 <a NAME="SelectionEncloserEditDialog.__updateOkButton" ID="SelectionEncloserEditDialog.__updateOkButton"></a>
@@ -134,8 +134,14 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-tuple with menu entry title (string) and enclosing string
-            or string format expression (string)
+tuple with menu entry title and enclosing string or string
+            format expression
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, str)
 </dd>
 </dl>
 <a NAME="SelectionEncloserEditDialog.on_stringEdit_textChanged" ID="SelectionEncloserEditDialog.on_stringEdit_textChanged"></a>
@@ -147,9 +153,9 @@
 </p>
 <dl>
 
-<dt><i>txt</i></dt>
+<dt><i>txt</i> (str)</dt>
 <dd>
-enclosing string (string)
+enclosing string
 </dd>
 </dl>
 <a NAME="SelectionEncloserEditDialog.on_titleEdit_textChanged" ID="SelectionEncloserEditDialog.on_titleEdit_textChanged"></a>
@@ -161,9 +167,9 @@
 </p>
 <dl>
 
-<dt><i>txt</i></dt>
+<dt><i>txt</i> (str)</dt>
 <dd>
-title text (string)
+title text
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/SelectionEncloser/Documentation/source/Plugin_Tools_Selection_Encloser.SelectionEncloser.ConfigurationPage.SelectionEncloserPage.html	Tue Jun 01 18:01:14 2021 +0200
+++ b/SelectionEncloser/Documentation/source/Plugin_Tools_Selection_Encloser.SelectionEncloser.ConfigurationPage.SelectionEncloserPage.html	Tue Jun 01 18:45:45 2021 +0200
@@ -128,7 +128,7 @@
 </p>
 <dl>
 
-<dt><i>plugin</i></dt>
+<dt><i>plugin</i> (SelectionEncloserPlugin)</dt>
 <dd>
 reference to the plugin object
 </dd>
@@ -142,9 +142,9 @@
 </p>
 <dl>
 
-<dt><i>moveUp</i></dt>
+<dt><i>moveUp</i> (bool)</dt>
 <dd>
-flag indicating to move the entry up (boolean)
+flag indicating to move the entry up
 </dd>
 </dl>
 <a NAME="SelectionEncloserPage.on_addButton_clicked" ID="SelectionEncloserPage.on_addButton_clicked"></a>
Binary file SelectionEncloser/i18n/selectionencloser_de.qm has changed
--- a/SelectionEncloser/i18n/selectionencloser_de.ts	Tue Jun 01 18:01:14 2021 +0200
+++ b/SelectionEncloser/i18n/selectionencloser_de.ts	Tue Jun 01 18:45:45 2021 +0200
@@ -1,127 +1,133 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="de_DE" sourcelanguage="">
-<context>
+<!DOCTYPE TS>
+<TS version="2.1" language="de_DE">
+  <context>
     <name>SelectionEncloserEditDialog</name>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="14"/>
-        <source>Menu Entry</source>
-        <translation>Menüeintrag</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Menu Entry</source>
+      <translation>Menüeintrag</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="23"/>
-        <source>Title:</source>
-        <translation>Titel:</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Title:</source>
+      <translation>Titel:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="30"/>
-        <source>Enter the menu entry title</source>
-        <translation>Gib den Titel des Menüeintrages ein</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Enter the menu entry title</source>
+      <translation>Gib den Titel des Menüeintrages ein</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="37"/>
-        <source>String:</source>
-        <translation>Zeichenkette:</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>String:</source>
+      <translation>Zeichenkette:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="44"/>
-        <source>Enter the enclosing string or string format expression</source>
-        <translation>Gib die einschließende Zeichenkette oder die Zeichenkettenformatierung ein</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Enter the enclosing string or string format expression</source>
+      <translation>Gib die einschließende Zeichenkette oder die Zeichenkettenformatierung ein</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="51"/>
-        <source>&lt;b&gt;Note&lt;/b&gt;: &apos;%s&apos; or &apos;{0}&apos; is replace by the selected text</source>
-        <translation>&lt;b&gt;Hinweis&lt;/b&gt;: &apos;%s&apos; oder &apos;{0}&apos; werden mit dem ausgewählten Text ersetzt</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>&lt;b&gt;Note&lt;/b&gt;: '%s', '{0}' or '{}' is replace by the selected text</source>
+      <translation>&lt;b&gt;Hinweis&lt;/b&gt;: '%s', '{0}' oder '{}' werden mit dem ausgewählten Text ersetzt</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>SelectionEncloserPage</name>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="17"/>
-        <source>&lt;b&gt;Configure Selection Encloser&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Auswahlumschließung konfigurieren&lt;/b&gt;</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>&lt;b&gt;Configure Selection Encloser&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Auswahlumschließung konfigurieren&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="37"/>
-        <source>Menu Hierarchy:</source>
-        <translation>Menühierarchie:</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Menu Hierarchy:</source>
+      <translation>Menühierarchie:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="61"/>
-        <source>Press to edit the selected entry</source>
-        <translation>Drücken, um den ausgewählten Eintrag zu editieren</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to edit the selected entry</source>
+      <translation>Drücken, um den ausgewählten Eintrag zu editieren</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="68"/>
-        <source>Press to add a new top level menu item</source>
-        <translation>Drücken, um einen neuen Hauptmenüeintrag zu erstellen</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to add a new top level menu item</source>
+      <translation>Drücken, um einen neuen Hauptmenüeintrag zu erstellen</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="75"/>
-        <source>Press to add a new menu item</source>
-        <translation>Drücken, um einen neuen Menüeintrag zu erstellen</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to add a new menu item</source>
+      <translation>Drücken, um einen neuen Menüeintrag zu erstellen</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="89"/>
-        <source>Press to delete the selected item</source>
-        <translation>Drücken, um den ausgewählten Eintrag zu löschen</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to add a separator entry below the selected entry</source>
+      <translation>Drücken, um eine Trennlinie nach dem ausgewählten Eintrag einzufügen</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="96"/>
-        <source>Press to move the selected entry up</source>
-        <translation>Drücken, um den ausgewählten Eintrag nach oben zu verschieben</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to delete the selected item</source>
+      <translation>Drücken, um den ausgewählten Eintrag zu löschen</translation>
+    </message>
+    <message>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to move the selected entry up</source>
+      <translation>Drücken, um den ausgewählten Eintrag nach oben zu verschieben</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="103"/>
-        <source>Press to move the selected entry down</source>
-        <translation>Drücken, um den ausgewählten Eintrag nach unten zu verschieben</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to move the selected entry down</source>
+      <translation>Drücken, um den ausgewählten Eintrag nach unten zu verschieben</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="112"/>
-        <source>Menu Title</source>
-        <translation>Menutitel</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="265" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="134" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="93" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="87" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="74" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="70" />
+      <source>--Separator--</source>
+      <translation>--Trennlinie--</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="112"/>
-        <source>Enter menu title:</source>
-        <translation>Gib den Menütitel ein:</translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="212"/>
-        <source>Menu Entry</source>
-        <translation>Menüeintrag</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="108" />
+      <source>Menu Title</source>
+      <translation>Menutitel</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="212"/>
-        <source>Enter menu entry text:</source>
-        <translation>Gib den Menüeintrag ein:</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="109" />
+      <source>Enter menu title:</source>
+      <translation>Gib den Menütitel ein:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="82"/>
-        <source>Press to add a separator entry below the selected entry</source>
-        <translation>Drücken, um eine Trennlinie nach dem ausgewählten Eintrag einzufügen</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="209" />
+      <source>Menu Entry</source>
+      <translation>Menüeintrag</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="270"/>
-        <source>--Separator--</source>
-        <translation>--Trennlinie--</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="210" />
+      <source>Enter menu entry text:</source>
+      <translation>Gib den Menüeintrag ein:</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>SelectionEncloserPlugin</name>
     <message>
-        <location filename="../../PluginSelectionEncloser.py" line="77"/>
-        <source>Selection Encloser</source>
-        <translation>Auswahlumschließung</translation>
+      <location filename="../../PluginSelectionEncloser.py" line="73" />
+      <source>Selection Encloser</source>
+      <translation>Auswahlumschließung</translation>
     </message>
     <message>
-        <location filename="../../PluginSelectionEncloser.py" line="112"/>
-        <source>Quotes</source>
-        <translation>Anführungszeichen</translation>
+      <location filename="../../PluginSelectionEncloser.py" line="109" />
+      <source>Quotes</source>
+      <translation>Anführungszeichen</translation>
     </message>
     <message>
-        <location filename="../../PluginSelectionEncloser.py" line="118"/>
-        <source>HTML</source>
-        <translation>HTML</translation>
+      <location filename="../../PluginSelectionEncloser.py" line="115" />
+      <source>HTML</source>
+      <translation>HTML</translation>
     </message>
-</context>
+  </context>
 </TS>
Binary file SelectionEncloser/i18n/selectionencloser_en.qm has changed
--- a/SelectionEncloser/i18n/selectionencloser_en.ts	Tue Jun 01 18:01:14 2021 +0200
+++ b/SelectionEncloser/i18n/selectionencloser_en.ts	Tue Jun 01 18:45:45 2021 +0200
@@ -1,127 +1,133 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="en_US" sourcelanguage="">
-<context>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US" sourcelanguage="">
+  <context>
     <name>SelectionEncloserEditDialog</name>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="14"/>
-        <source>Menu Entry</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Menu Entry</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="23"/>
-        <source>Title:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Title:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="30"/>
-        <source>Enter the menu entry title</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Enter the menu entry title</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="37"/>
-        <source>String:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>String:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="44"/>
-        <source>Enter the enclosing string or string format expression</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Enter the enclosing string or string format expression</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="51"/>
-        <source>&lt;b&gt;Note&lt;/b&gt;: &apos;%s&apos; or &apos;{0}&apos; is replace by the selected text</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>&lt;b&gt;Note&lt;/b&gt;: '%s', '{0}' or '{}' is replace by the selected text</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>SelectionEncloserPage</name>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="17"/>
-        <source>&lt;b&gt;Configure Selection Encloser&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>&lt;b&gt;Configure Selection Encloser&lt;/b&gt;</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="37"/>
-        <source>Menu Hierarchy:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Menu Hierarchy:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="61"/>
-        <source>Press to edit the selected entry</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to edit the selected entry</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="68"/>
-        <source>Press to add a new top level menu item</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to add a new top level menu item</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="75"/>
-        <source>Press to add a new menu item</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to add a new menu item</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="89"/>
-        <source>Press to delete the selected item</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to add a separator entry below the selected entry</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="96"/>
-        <source>Press to move the selected entry up</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to delete the selected item</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to move the selected entry up</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="103"/>
-        <source>Press to move the selected entry down</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to move the selected entry down</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="112"/>
-        <source>Menu Title</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="265" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="134" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="93" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="87" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="74" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="70" />
+      <source>--Separator--</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="112"/>
-        <source>Enter menu title:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="212"/>
-        <source>Menu Entry</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="108" />
+      <source>Menu Title</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="212"/>
-        <source>Enter menu entry text:</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="109" />
+      <source>Enter menu title:</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="82"/>
-        <source>Press to add a separator entry below the selected entry</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="209" />
+      <source>Menu Entry</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="270"/>
-        <source>--Separator--</source>
-        <translation type="unfinished"></translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="210" />
+      <source>Enter menu entry text:</source>
+      <translation type="unfinished" />
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>SelectionEncloserPlugin</name>
     <message>
-        <location filename="../../PluginSelectionEncloser.py" line="77"/>
-        <source>Selection Encloser</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginSelectionEncloser.py" line="73" />
+      <source>Selection Encloser</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginSelectionEncloser.py" line="112"/>
-        <source>Quotes</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginSelectionEncloser.py" line="109" />
+      <source>Quotes</source>
+      <translation type="unfinished" />
     </message>
     <message>
-        <location filename="../../PluginSelectionEncloser.py" line="118"/>
-        <source>HTML</source>
-        <translation type="unfinished"></translation>
+      <location filename="../../PluginSelectionEncloser.py" line="115" />
+      <source>HTML</source>
+      <translation type="unfinished" />
     </message>
-</context>
+  </context>
 </TS>
Binary file SelectionEncloser/i18n/selectionencloser_es.qm has changed
--- a/SelectionEncloser/i18n/selectionencloser_es.ts	Tue Jun 01 18:01:14 2021 +0200
+++ b/SelectionEncloser/i18n/selectionencloser_es.ts	Tue Jun 01 18:45:45 2021 +0200
@@ -1,127 +1,133 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="es_ES" sourcelanguage="">
-<context>
+<!DOCTYPE TS>
+<TS version="2.1" language="es_ES">
+  <context>
     <name>SelectionEncloserEditDialog</name>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="14"/>
-        <source>Menu Entry</source>
-        <translation>Entrada de Menú</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Menu Entry</source>
+      <translation>Entrada de Menú</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="23"/>
-        <source>Title:</source>
-        <translation>Título:</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Title:</source>
+      <translation>Título:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="30"/>
-        <source>Enter the menu entry title</source>
-        <translation>Introducir el título de la entrada de menú</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Enter the menu entry title</source>
+      <translation>Introducir el título de la entrada de menú</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="37"/>
-        <source>String:</source>
-        <translation>Cadena:</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>String:</source>
+      <translation>Cadena:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="44"/>
-        <source>Enter the enclosing string or string format expression</source>
-        <translation>Introducir la cadena de cierre o la expresión de formato de cadena</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Enter the enclosing string or string format expression</source>
+      <translation>Introducir la cadena de cierre o la expresión de formato de cadena</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="51"/>
-        <source>&lt;b&gt;Note&lt;/b&gt;: &apos;%s&apos; or &apos;{0}&apos; is replace by the selected text</source>
-        <translation>&lt;b&gt;Nota&lt;/b&gt;: &apos;%s&apos; o &apos;{0}&apos; se reemplaza por el texto seleccionado</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>&lt;b&gt;Note&lt;/b&gt;: '%s', '{0}' or '{}' is replace by the selected text</source>
+      <translation>&lt;b&gt;Nota&lt;/b&gt;: '%s', '{0}' o '{}' se reemplaza por el texto seleccionado</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>SelectionEncloserPage</name>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="17"/>
-        <source>&lt;b&gt;Configure Selection Encloser&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Configurar Cierre de Selección&lt;/b&gt;</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>&lt;b&gt;Configure Selection Encloser&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Configurar Cierre de Selección&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="37"/>
-        <source>Menu Hierarchy:</source>
-        <translation>Jerarquía de Menú:</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Menu Hierarchy:</source>
+      <translation>Jerarquía de Menú:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="61"/>
-        <source>Press to edit the selected entry</source>
-        <translation>Pulsar para editar la entrada seleccinada</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to edit the selected entry</source>
+      <translation>Pulsar para editar la entrada seleccinada</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="68"/>
-        <source>Press to add a new top level menu item</source>
-        <translation>Pulsar para añadir un nuevo elemento de menú de nivel superior</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to add a new top level menu item</source>
+      <translation>Pulsar para añadir un nuevo elemento de menú de nivel superior</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="75"/>
-        <source>Press to add a new menu item</source>
-        <translation>Pulsar para añadir un nuevo elemento de menú</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to add a new menu item</source>
+      <translation>Pulsar para añadir un nuevo elemento de menú</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="89"/>
-        <source>Press to delete the selected item</source>
-        <translation>Pulsar para borrar el elemento seleccinado</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to add a separator entry below the selected entry</source>
+      <translation>Pulsar para añadir una entrada de separador bajo la entrada seleccionada</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="96"/>
-        <source>Press to move the selected entry up</source>
-        <translation>Pulsar para mover la entrada seleccionada hacia arriba</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to delete the selected item</source>
+      <translation>Pulsar para borrar el elemento seleccinado</translation>
+    </message>
+    <message>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to move the selected entry up</source>
+      <translation>Pulsar para mover la entrada seleccionada hacia arriba</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="103"/>
-        <source>Press to move the selected entry down</source>
-        <translation>Pulsar para mover la entrada seleccionada hacia abajo</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to move the selected entry down</source>
+      <translation>Pulsar para mover la entrada seleccionada hacia abajo</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="112"/>
-        <source>Menu Title</source>
-        <translation>Título de Menú</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="265" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="134" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="93" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="87" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="74" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="70" />
+      <source>--Separator--</source>
+      <translation>--Separador--</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="112"/>
-        <source>Enter menu title:</source>
-        <translation>Introducir el título del menú:</translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="212"/>
-        <source>Menu Entry</source>
-        <translation>Entrada de Menú</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="108" />
+      <source>Menu Title</source>
+      <translation>Título de Menú</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="212"/>
-        <source>Enter menu entry text:</source>
-        <translation>Introducir el texto de la entrada de menú:</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="109" />
+      <source>Enter menu title:</source>
+      <translation>Introducir el título del menú:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="82"/>
-        <source>Press to add a separator entry below the selected entry</source>
-        <translation>Pulsar para añadir una entrada de separador bajo la entrada seleccionada</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="209" />
+      <source>Menu Entry</source>
+      <translation>Entrada de Menú</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="270"/>
-        <source>--Separator--</source>
-        <translation>--Separador--</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="210" />
+      <source>Enter menu entry text:</source>
+      <translation>Introducir el texto de la entrada de menú:</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>SelectionEncloserPlugin</name>
     <message>
-        <location filename="../../PluginSelectionEncloser.py" line="77"/>
-        <source>Selection Encloser</source>
-        <translation>Cierre de Selección</translation>
+      <location filename="../../PluginSelectionEncloser.py" line="73" />
+      <source>Selection Encloser</source>
+      <translation>Cierre de Selección</translation>
     </message>
     <message>
-        <location filename="../../PluginSelectionEncloser.py" line="112"/>
-        <source>Quotes</source>
-        <translation>Comillas</translation>
+      <location filename="../../PluginSelectionEncloser.py" line="109" />
+      <source>Quotes</source>
+      <translation>Comillas</translation>
     </message>
     <message>
-        <location filename="../../PluginSelectionEncloser.py" line="118"/>
-        <source>HTML</source>
-        <translation>HTML</translation>
+      <location filename="../../PluginSelectionEncloser.py" line="115" />
+      <source>HTML</source>
+      <translation>HTML</translation>
     </message>
-</context>
+  </context>
 </TS>
Binary file SelectionEncloser/i18n/selectionencloser_ru.qm has changed
--- a/SelectionEncloser/i18n/selectionencloser_ru.ts	Tue Jun 01 18:01:14 2021 +0200
+++ b/SelectionEncloser/i18n/selectionencloser_ru.ts	Tue Jun 01 18:45:45 2021 +0200
@@ -1,127 +1,133 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="ru_RU" sourcelanguage="">
-<context>
+<!DOCTYPE TS>
+<TS version="2.1" language="ru_RU">
+  <context>
     <name>SelectionEncloserEditDialog</name>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="14"/>
-        <source>Menu Entry</source>
-        <translation>Пункт меню</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Menu Entry</source>
+      <translation>Пункт меню</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="23"/>
-        <source>Title:</source>
-        <translation>Заголовок:</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Title:</source>
+      <translation>Заголовок:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="30"/>
-        <source>Enter the menu entry title</source>
-        <translation>Введите заголовок пункта меню</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Enter the menu entry title</source>
+      <translation>Введите заголовок пункта меню</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="37"/>
-        <source>String:</source>
-        <translation>Строка:</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>String:</source>
+      <translation>Строка:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="44"/>
-        <source>Enter the enclosing string or string format expression</source>
-        <translation>Введите выражение встраиваемой строки или строки форматирования</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>Enter the enclosing string or string format expression</source>
+      <translation>Введите выражение встраиваемой строки или строки форматирования</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="51"/>
-        <source>&lt;b&gt;Note&lt;/b&gt;: &apos;%s&apos; or &apos;{0}&apos; is replace by the selected text</source>
-        <translation>&lt;b&gt;Примечание&lt;/b&gt;: выражения &apos;%s&apos; или &apos;{0}&apos; заменяются выделенным текстом</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserEditDialog.ui" line="0" />
+      <source>&lt;b&gt;Note&lt;/b&gt;: '%s', '{0}' or '{}' is replace by the selected text</source>
+      <translation>&lt;b&gt;Примечание&lt;/b&gt;: выражения '%s', '{0}' или '{}' заменяются выделенным текстом</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>SelectionEncloserPage</name>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="17"/>
-        <source>&lt;b&gt;Configure Selection Encloser&lt;/b&gt;</source>
-        <translation>&lt;b&gt;Настройка встраивания выделенного текста&lt;/b&gt;</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>&lt;b&gt;Configure Selection Encloser&lt;/b&gt;</source>
+      <translation>&lt;b&gt;Настройка встраивания выделенного текста&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="37"/>
-        <source>Menu Hierarchy:</source>
-        <translation>Иерархическое меню:</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Menu Hierarchy:</source>
+      <translation>Иерархическое меню:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="61"/>
-        <source>Press to edit the selected entry</source>
-        <translation>Правка выбранного пункта меню</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to edit the selected entry</source>
+      <translation>Правка выбранного пункта меню</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="68"/>
-        <source>Press to add a new top level menu item</source>
-        <translation>Добавить новый пункт меню верхнего уровня</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to add a new top level menu item</source>
+      <translation>Добавить новый пункт меню верхнего уровня</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="75"/>
-        <source>Press to add a new menu item</source>
-        <translation>Добавить новый пункт меню</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to add a new menu item</source>
+      <translation>Добавить новый пункт меню</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="89"/>
-        <source>Press to delete the selected item</source>
-        <translation>Удалить выбранный пункт</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to add a separator entry below the selected entry</source>
+      <translation>Добавить разделитель ниже выбранного пункта</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="96"/>
-        <source>Press to move the selected entry up</source>
-        <translation>Переместить выбранный пункт вверх</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to delete the selected item</source>
+      <translation>Удалить выбранный пункт</translation>
+    </message>
+    <message>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to move the selected entry up</source>
+      <translation>Переместить выбранный пункт вверх</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="103"/>
-        <source>Press to move the selected entry down</source>
-        <translation>Переместить выбранный пункт вниз</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="0" />
+      <source>Press to move the selected entry down</source>
+      <translation>Переместить выбранный пункт вниз</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="112"/>
-        <source>Menu Title</source>
-        <translation>Заголовок меню</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="265" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="134" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="93" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="87" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="74" />
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="70" />
+      <source>--Separator--</source>
+      <translation>--Separator--</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="112"/>
-        <source>Enter menu title:</source>
-        <translation>Введите заголовок меню:</translation>
-    </message>
-    <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="212"/>
-        <source>Menu Entry</source>
-        <translation>Пункт меню</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="108" />
+      <source>Menu Title</source>
+      <translation>Заголовок меню</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="212"/>
-        <source>Enter menu entry text:</source>
-        <translation>Введите текст пункта меню:</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="109" />
+      <source>Enter menu title:</source>
+      <translation>Введите заголовок меню:</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.ui" line="82"/>
-        <source>Press to add a separator entry below the selected entry</source>
-        <translation>Добавить разделитель ниже выбранного пункта</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="209" />
+      <source>Menu Entry</source>
+      <translation>Пункт меню</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="270"/>
-        <source>--Separator--</source>
-        <translation>--Separator--</translation>
+      <location filename="../ConfigurationPage/SelectionEncloserPage.py" line="210" />
+      <source>Enter menu entry text:</source>
+      <translation>Введите текст пункта меню:</translation>
     </message>
-</context>
-<context>
+  </context>
+  <context>
     <name>SelectionEncloserPlugin</name>
     <message>
-        <location filename="../../PluginSelectionEncloser.py" line="77"/>
-        <source>Selection Encloser</source>
-        <translation>Selection Encloser</translation>
+      <location filename="../../PluginSelectionEncloser.py" line="73" />
+      <source>Selection Encloser</source>
+      <translation>Selection Encloser</translation>
     </message>
     <message>
-        <location filename="../../PluginSelectionEncloser.py" line="112"/>
-        <source>Quotes</source>
-        <translation>Кавычки</translation>
+      <location filename="../../PluginSelectionEncloser.py" line="109" />
+      <source>Quotes</source>
+      <translation>Кавычки</translation>
     </message>
     <message>
-        <location filename="../../PluginSelectionEncloser.py" line="118"/>
-        <source>HTML</source>
-        <translation>HTML</translation>
+      <location filename="../../PluginSelectionEncloser.py" line="115" />
+      <source>HTML</source>
+      <translation>HTML</translation>
     </message>
-</context>
+  </context>
 </TS>

eric ide

mercurial