Merged with branch 'eric7' in order to prepare a new release. eric7-maintenance release-22.05

Mon, 02 May 2022 15:52:33 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 02 May 2022 15:52:33 +0200
branch
eric7-maintenance
changeset 9048
59b4315a4f62
parent 9011
429cc091bf0e (current diff)
parent 9047
a9401b11b74c (diff)
child 9049
2b9bd8f97576

Merged with branch 'eric7' in order to prepare a new release.

eric7/i18n/eric7_es.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_ru.qm file | annotate | diff | comparison | revisions
eric7/i18n/eric7_ru.ts file | annotate | diff | comparison | revisions
--- a/docs/changelog	Sat Apr 02 11:23:41 2022 +0200
+++ b/docs/changelog	Mon May 02 15:52:33 2022 +0200
@@ -1,5 +1,16 @@
 Change Log
 ----------
+Version 22.5:
+- bug fixes
+- General
+  -- added configuration options to disable the embedded "Find/Replace In
+     Files" and "Find File" tools and use dialog based variants instead
+- Mercurial Interface
+  -- added capability to enter a revset expression when defining a revision
+     to operate on
+- pip Interface
+  -- added the capability to save the licenses overview as a CSV file
+
 Version 22.4:
 - bug fixes
 - General
--- a/eric7.epj	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7.epj	Mon May 02 15:52:33 2022 +0200
@@ -289,12 +289,30 @@
       "eric7/Debugger/StartRunDialog.ui",
       "eric7/Debugger/VariableDetailDialog.ui",
       "eric7/Debugger/VariablesFilterDialog.ui",
+      "eric7/EricNetwork/EricSslCertificateSelectionDialog.ui",
+      "eric7/EricNetwork/EricSslCertificatesDialog.ui",
+      "eric7/EricNetwork/EricSslCertificatesInfoDialog.ui",
+      "eric7/EricNetwork/EricSslCertificatesInfoWidget.ui",
+      "eric7/EricWidgets/EricComboSelectionDialog.ui",
+      "eric7/EricWidgets/EricErrorMessageFilterDialog.ui",
+      "eric7/EricWidgets/EricListSelectionDialog.ui",
+      "eric7/EricWidgets/EricPlainTextDialog.ui",
+      "eric7/EricWidgets/EricProcessDialog.ui",
+      "eric7/EricWidgets/EricSimpleHelpDialog.ui",
+      "eric7/EricWidgets/EricStringListEditWidget.ui",
+      "eric7/EricWidgets/EricToolBarDialog.ui",
+      "eric7/EricWidgets/EricZoomWidget.ui",
       "eric7/Graphics/UMLSceneSizeDialog.ui",
+      "eric7/HelpViewer/HelpBookmarkPropertiesDialog.ui",
+      "eric7/HelpViewer/HelpBookmarksImportDialog.ui",
       "eric7/HexEdit/HexEditGotoWidget.ui",
       "eric7/HexEdit/HexEditReplaceWidget.ui",
       "eric7/HexEdit/HexEditSearchWidget.ui",
       "eric7/IconEditor/IconSizeDialog.ui",
+      "eric7/JediInterface/RefactoringPreviewDialog.ui",
       "eric7/MicroPython/AddEditDevicesDialog.ui",
+      "eric7/MicroPython/BoardDataDialog.ui",
+      "eric7/MicroPython/ConnectionSelectionDialog.ui",
       "eric7/MicroPython/EspBackupRestoreFirmwareDialog.ui",
       "eric7/MicroPython/EspFirmwareSelectionDialog.ui",
       "eric7/MicroPython/IgnoredDevicesDialog.ui",
@@ -316,6 +334,7 @@
       "eric7/PipInterface/PipDialog.ui",
       "eric7/PipInterface/PipFileSelectionDialog.ui",
       "eric7/PipInterface/PipFreezeDialog.ui",
+      "eric7/PipInterface/PipLicensesDialog.ui",
       "eric7/PipInterface/PipPackageDetailsDialog.ui",
       "eric7/PipInterface/PipPackagesInputDialog.ui",
       "eric7/PipInterface/PipPackagesWidget.ui",
@@ -494,8 +513,10 @@
       "eric7/Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.ui",
       "eric7/Plugins/WizardPlugins/DotDesktopWizard/DotDesktopListSelectionDialog.ui",
       "eric7/Plugins/WizardPlugins/DotDesktopWizard/DotDesktopWizardDialog.ui",
+      "eric7/Plugins/WizardPlugins/EricMessageBoxWizard/EricMessageBoxWizardDialog.ui",
       "eric7/Plugins/WizardPlugins/EricPluginWizard/PluginWizardDialog.ui",
       "eric7/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.ui",
+      "eric7/Plugins/WizardPlugins/FontDialogWizard/FontDialogOptionsDialog.ui",
       "eric7/Plugins/WizardPlugins/FontDialogWizard/FontDialogWizardDialog.ui",
       "eric7/Plugins/WizardPlugins/InputDialogWizard/InputDialogWizardDialog.ui",
       "eric7/Plugins/WizardPlugins/MessageBoxWizard/MessageBoxWizardDialog.ui",
@@ -514,8 +535,10 @@
       "eric7/Preferences/ConfigurationPages/DebuggerPython3Page.ui",
       "eric7/Preferences/ConfigurationPages/DiffColoursPage.ui",
       "eric7/Preferences/ConfigurationPages/EditorAPIsPage.ui",
+      "eric7/Preferences/ConfigurationPages/EditorAutoCompletionJediPage.ui",
       "eric7/Preferences/ConfigurationPages/EditorAutocompletionPage.ui",
       "eric7/Preferences/ConfigurationPages/EditorAutocompletionQScintillaPage.ui",
+      "eric7/Preferences/ConfigurationPages/EditorCallTipsJediPage.ui",
       "eric7/Preferences/ConfigurationPages/EditorCalltipsPage.ui",
       "eric7/Preferences/ConfigurationPages/EditorCalltipsQScintillaPage.ui",
       "eric7/Preferences/ConfigurationPages/EditorDocViewerPage.ui",
@@ -527,6 +550,7 @@
       "eric7/Preferences/ConfigurationPages/EditorHighlightingStylesSelectionDialog.ui",
       "eric7/Preferences/ConfigurationPages/EditorKeywordsPage.ui",
       "eric7/Preferences/ConfigurationPages/EditorLanguageTabIndentOverrideDialog.ui",
+      "eric7/Preferences/ConfigurationPages/EditorMouseClickHandlerJediPage.ui",
       "eric7/Preferences/ConfigurationPages/EditorMouseClickHandlerPage.ui",
       "eric7/Preferences/ConfigurationPages/EditorPropertiesPage.ui",
       "eric7/Preferences/ConfigurationPages/EditorSearchPage.ui",
@@ -541,6 +565,7 @@
       "eric7/Preferences/ConfigurationPages/HexEditorPage.ui",
       "eric7/Preferences/ConfigurationPages/IconsPage.ui",
       "eric7/Preferences/ConfigurationPages/IconsPreviewDialog.ui",
+      "eric7/Preferences/ConfigurationPages/InterfaceLightPage.ui",
       "eric7/Preferences/ConfigurationPages/InterfacePage.ui",
       "eric7/Preferences/ConfigurationPages/IrcPage.ui",
       "eric7/Preferences/ConfigurationPages/LogViewerPage.ui",
@@ -600,6 +625,7 @@
       "eric7/Project/UserPropertiesDialog.ui",
       "eric7/PyUnit/UnittestDialog.ui",
       "eric7/PyUnit/UnittestStacktraceDialog.ui",
+      "eric7/QScintilla/EditorOutlineSizesDialog.ui",
       "eric7/QScintilla/GotoDialog.ui",
       "eric7/QScintilla/MarkupProviders/HyperlinkMarkupDialog.ui",
       "eric7/QScintilla/MarkupProviders/ImageMarkupDialog.ui",
@@ -624,6 +650,8 @@
       "eric7/UI/DiffDialog.ui",
       "eric7/UI/EmailDialog.ui",
       "eric7/UI/ErrorLogDialog.ui",
+      "eric7/UI/FindFileWidget.ui",
+      "eric7/UI/FindLocationWidget.ui",
       "eric7/UI/InstallInfoDialog.ui",
       "eric7/UI/NotificationFrame.ui",
       "eric7/UI/NumbersWidget.ui",
@@ -632,6 +660,7 @@
       "eric7/UI/SearchWidget.ui",
       "eric7/UI/SearchWidgetLine.ui",
       "eric7/UI/SymbolsWidget.ui",
+      "eric7/UI/VersionsDialog.ui",
       "eric7/VCS/CommandOptionsDialog.ui",
       "eric7/VCS/RepositoryInfoDialog.ui",
       "eric7/ViewManager/BookmarkedFilesDialog.ui",
@@ -639,6 +668,7 @@
       "eric7/VirtualEnv/VirtualenvConfigurationDialog.ui",
       "eric7/VirtualEnv/VirtualenvExecDialog.ui",
       "eric7/VirtualEnv/VirtualenvInterpreterSelectionDialog.ui",
+      "eric7/VirtualEnv/VirtualenvManagerWidget.ui",
       "eric7/VirtualEnv/VirtualenvNameDialog.ui",
       "eric7/WebBrowser/AdBlock/AdBlockDialog.ui",
       "eric7/WebBrowser/AdBlock/AdBlockExceptionsDialog.ui",
@@ -670,7 +700,9 @@
       "eric7/WebBrowser/Passwords/PasswordsDialog.ui",
       "eric7/WebBrowser/PersonalInformationManager/PersonalDataDialog.ui",
       "eric7/WebBrowser/QtHelp/HelpTopicDialog.ui",
+      "eric7/WebBrowser/QtHelp/QtHelpDocumentationConfigurationDialog.ui",
       "eric7/WebBrowser/QtHelp/QtHelpDocumentationSelectionDialog.ui",
+      "eric7/WebBrowser/QtHelp/QtHelpDocumentationSettingsWidget.ui",
       "eric7/WebBrowser/SafeBrowsing/SafeBrowsingDialog.ui",
       "eric7/WebBrowser/SearchWidget.ui",
       "eric7/WebBrowser/Session/SessionManagerDialog.ui",
@@ -693,39 +725,7 @@
       "eric7/WebBrowser/VirusTotal/VirusTotalWhoisDialog.ui",
       "eric7/WebBrowser/WebBrowserClearPrivateDataDialog.ui",
       "eric7/WebBrowser/WebBrowserLanguagesDialog.ui",
-      "eric7/WebBrowser/ZoomManager/ZoomValuesDialog.ui",
-      "eric7/MicroPython/ConnectionSelectionDialog.ui",
-      "eric7/EricNetwork/EricSslCertificateSelectionDialog.ui",
-      "eric7/EricNetwork/EricSslCertificatesDialog.ui",
-      "eric7/EricNetwork/EricSslCertificatesInfoDialog.ui",
-      "eric7/EricNetwork/EricSslCertificatesInfoWidget.ui",
-      "eric7/EricWidgets/EricComboSelectionDialog.ui",
-      "eric7/EricWidgets/EricErrorMessageFilterDialog.ui",
-      "eric7/EricWidgets/EricListSelectionDialog.ui",
-      "eric7/EricWidgets/EricPlainTextDialog.ui",
-      "eric7/EricWidgets/EricProcessDialog.ui",
-      "eric7/EricWidgets/EricSimpleHelpDialog.ui",
-      "eric7/EricWidgets/EricStringListEditWidget.ui",
-      "eric7/EricWidgets/EricToolBarDialog.ui",
-      "eric7/EricWidgets/EricZoomWidget.ui",
-      "eric7/Plugins/WizardPlugins/EricMessageBoxWizard/EricMessageBoxWizardDialog.ui",
-      "eric7/Plugins/WizardPlugins/FontDialogWizard/FontDialogOptionsDialog.ui",
-      "eric7/WebBrowser/QtHelp/QtHelpDocumentationSettingsWidget.ui",
-      "eric7/WebBrowser/QtHelp/QtHelpDocumentationConfigurationDialog.ui",
-      "eric7/Preferences/ConfigurationPages/EditorAutoCompletionJediPage.ui",
-      "eric7/Preferences/ConfigurationPages/EditorCallTipsJediPage.ui",
-      "eric7/Preferences/ConfigurationPages/EditorMouseClickHandlerJediPage.ui",
-      "eric7/VirtualEnv/VirtualenvManagerWidget.ui",
-      "eric7/UI/FindFileWidget.ui",
-      "eric7/UI/FindLocationWidget.ui",
-      "eric7/JediInterface/RefactoringPreviewDialog.ui",
-      "eric7/QScintilla/EditorOutlineSizesDialog.ui",
-      "eric7/Preferences/ConfigurationPages/InterfaceLightPage.ui",
-      "eric7/HelpViewer/HelpBookmarkPropertiesDialog.ui",
-      "eric7/HelpViewer/HelpBookmarksImportDialog.ui",
-      "eric7/MicroPython/BoardDataDialog.ui",
-      "eric7/UI/VersionsDialog.ui",
-      "eric7/PipInterface/PipLicensesDialog.ui"
+      "eric7/WebBrowser/ZoomManager/ZoomValuesDialog.ui"
     ],
     "HASH": "df7daa8781250f7664e6ecaeaf1361fa2efd39ee",
     "IDLPARAMS": {
@@ -750,16 +750,16 @@
       "Dictionaries",
       "MANIFEST.in",
       "docs/LICENSE.GPL3",
+      "docs/README-ChromeOS.rst",
       "docs/README-MacOSX.rst",
+      "docs/README-eric7-doc.rst",
       "docs/README-i18n.rst",
       "docs/README-passive-debugging.rst",
       "docs/README.rst",
       "docs/THANKS",
       "docs/changelog",
-      "others/default.e4k",
-      "others/default.ekj",
-      "others/default_Mac.e4k",
-      "others/pylint.rc",
+      "docs/eric7-plugin.odt",
+      "docs/eric7-plugin.pdf",
       "eric7.epj",
       "eric7/APIs/MicroPython/calliope.api",
       "eric7/APIs/MicroPython/circuitpython.api",
@@ -768,13 +768,29 @@
       "eric7/APIs/Python/zope-2.10.7.api",
       "eric7/APIs/Python/zope-2.11.2.api",
       "eric7/APIs/Python/zope-3.3.1.api",
+      "eric7/APIs/Python3/eric7.api",
+      "eric7/APIs/Python3/eric7.bas",
       "eric7/APIs/QSS/qss.api",
       "eric7/CSSs",
       "eric7/CodeTemplates",
       "eric7/DebugClients/Python/coverage/doc",
+      "eric7/DebugClients/Python/coverage/doc/CHANGES.rst",
+      "eric7/DebugClients/Python/coverage/doc/CONTRIBUTORS.txt",
+      "eric7/DebugClients/Python/coverage/doc/LICENSE.txt",
+      "eric7/DebugClients/Python/coverage/doc/README.rst",
+      "eric7/DebugClients/Python/coverage/htmlfiles/coverage_html.js",
+      "eric7/DebugClients/Python/coverage/htmlfiles/favicon_32.png",
+      "eric7/DebugClients/Python/coverage/htmlfiles/index.html",
+      "eric7/DebugClients/Python/coverage/htmlfiles/keybd_closed.png",
+      "eric7/DebugClients/Python/coverage/htmlfiles/keybd_open.png",
+      "eric7/DebugClients/Python/coverage/htmlfiles/pyfile.html",
+      "eric7/DebugClients/Python/coverage/htmlfiles/style.css",
+      "eric7/DebugClients/Python/coverage/htmlfiles/style.scss",
       "eric7/DesignerTemplates",
       "eric7/Documentation/Help",
       "eric7/Documentation/Source",
+      "eric7/EricNetwork/data/effective_tld_names.dat",
+      "eric7/EricNetwork/data/test_psl.txt",
       "eric7/IconEditor/cursors/aim-cursor.xpm",
       "eric7/IconEditor/cursors/colorpicker-cursor.xpm",
       "eric7/IconEditor/cursors/eraser-cursor.xpm",
@@ -848,6 +864,7 @@
       "eric7/Plugins/UiExtensionPlugins/Translator/icons/flags/zh-TW.svg",
       "eric7/Plugins/UiExtensionPlugins/Translator/icons/pronounce-dark.svg",
       "eric7/Plugins/UiExtensionPlugins/Translator/icons/pronounce-light.svg",
+      "eric7/Plugins/UiExtensionPlugins/Translator/icons/sbTranslator96.svg",
       "eric7/Plugins/UiExtensionPlugins/Translator/icons/swap-dark.svg",
       "eric7/Plugins/UiExtensionPlugins/Translator/icons/swap-light.svg",
       "eric7/Plugins/UiExtensionPlugins/Translator/icons/translate-dark.svg",
@@ -871,6 +888,7 @@
       "eric7/Plugins/ViewManagerPlugins/Tabview/preview.png",
       "eric7/Plugins/WizardPlugins/SetupWizard/data/trove_classifiers.txt",
       "eric7/Styles",
+      "eric7/Themes",
       "eric7/ThirdParty/Jasy/jasy/license.md",
       "eric7/UI/data/documentViewerStyle-dark.css",
       "eric7/UI/data/documentViewerStyle-light.css",
@@ -927,28 +945,10 @@
       "linux/eric7.desktop.in",
       "linux/eric7_browser.desktop",
       "linux/eric7_browser.desktop.in",
-      "docs/README-eric7-doc.rst",
-      "eric7/APIs/Python3/eric7.api",
-      "eric7/APIs/Python3/eric7.bas",
-      "docs/eric7-plugin.odt",
-      "docs/eric7-plugin.pdf",
-      "eric7/DebugClients/Python/coverage/doc/CHANGES.rst",
-      "eric7/DebugClients/Python/coverage/doc/LICENSE.txt",
-      "eric7/DebugClients/Python/coverage/doc/CONTRIBUTORS.txt",
-      "eric7/DebugClients/Python/coverage/doc/README.rst",
-      "eric7/EricNetwork/data/effective_tld_names.dat",
-      "eric7/EricNetwork/data/test_psl.txt",
-      "docs/README-ChromeOS.rst",
-      "eric7/Plugins/UiExtensionPlugins/Translator/icons/sbTranslator96.svg",
-      "eric7/DebugClients/Python/coverage/htmlfiles/coverage_html.js",
-      "eric7/DebugClients/Python/coverage/htmlfiles/favicon_32.png",
-      "eric7/DebugClients/Python/coverage/htmlfiles/index.html",
-      "eric7/DebugClients/Python/coverage/htmlfiles/keybd_closed.png",
-      "eric7/DebugClients/Python/coverage/htmlfiles/keybd_open.png",
-      "eric7/DebugClients/Python/coverage/htmlfiles/pyfile.html",
-      "eric7/DebugClients/Python/coverage/htmlfiles/style.css",
-      "eric7/DebugClients/Python/coverage/htmlfiles/style.scss",
-      "eric7/Themes"
+      "others/default.e4k",
+      "others/default.ekj",
+      "others/default_Mac.e4k",
+      "others/pylint.rc"
     ],
     "OTHERTOOLSPARMS": {
       "CodeMetrics": {
@@ -973,15 +973,6 @@
     "SOURCES": [
       "Examples/hallo.py",
       "Examples/rhallo.py",
-      "scripts/cleanupSource.py",
-      "scripts/compileUiFiles.py",
-      "scripts/create_windows_links.py",
-      "scripts/install-debugclients.py",
-      "scripts/install-i18n.py",
-      "scripts/install.py",
-      "scripts/uninstall-debugclients.py",
-      "scripts/uninstall.py",
-      "setup.py",
       "eric7/CondaInterface/Conda.py",
       "eric7/CondaInterface/CondaExecDialog.py",
       "eric7/CondaInterface/CondaExportDialog.py",
@@ -1032,11 +1023,13 @@
       "eric7/DebugClients/Python/coverage/debug.py",
       "eric7/DebugClients/Python/coverage/disposition.py",
       "eric7/DebugClients/Python/coverage/env.py",
+      "eric7/DebugClients/Python/coverage/exceptions.py",
       "eric7/DebugClients/Python/coverage/execfile.py",
       "eric7/DebugClients/Python/coverage/files.py",
       "eric7/DebugClients/Python/coverage/html.py",
       "eric7/DebugClients/Python/coverage/inorout.py",
       "eric7/DebugClients/Python/coverage/jsonreport.py",
+      "eric7/DebugClients/Python/coverage/lcovreport.py",
       "eric7/DebugClients/Python/coverage/misc.py",
       "eric7/DebugClients/Python/coverage/multiproc.py",
       "eric7/DebugClients/Python/coverage/numbits.py",
@@ -1054,6 +1047,7 @@
       "eric7/DebugClients/Python/coverage/tomlconfig.py",
       "eric7/DebugClients/Python/coverage/version.py",
       "eric7/DebugClients/Python/coverage/xmlreport.py",
+      "eric7/DebugClients/Python/eric7dbgstub.py",
       "eric7/DebugClients/Python/getpass.py",
       "eric7/DebugClients/__init__.py",
       "eric7/Debugger/BreakPointModel.py",
@@ -1086,6 +1080,98 @@
       "eric7/DocumentationTools/QtHelpGenerator.py",
       "eric7/DocumentationTools/TemplatesListsStyleCSS.py",
       "eric7/DocumentationTools/__init__.py",
+      "eric7/EricCore/EricTreeSortFilterProxyModel.py",
+      "eric7/EricCore/__init__.py",
+      "eric7/EricGraphics/EricArrowItem.py",
+      "eric7/EricGraphics/EricGraphicsView.py",
+      "eric7/EricGraphics/__init__.py",
+      "eric7/EricGui/EricAction.py",
+      "eric7/EricGui/EricGenericDiffHighlighter.py",
+      "eric7/EricGui/EricOverrideCursor.py",
+      "eric7/EricGui/__init__.py",
+      "eric7/EricNetwork/EricFtp.py",
+      "eric7/EricNetwork/EricGoogleMail.py",
+      "eric7/EricNetwork/EricGoogleMailHelpers.py",
+      "eric7/EricNetwork/EricJsonClient.py",
+      "eric7/EricNetwork/EricJsonServer.py",
+      "eric7/EricNetwork/EricNetworkIcon.py",
+      "eric7/EricNetwork/EricNetworkProxyFactory.py",
+      "eric7/EricNetwork/EricSslCertificateSelectionDialog.py",
+      "eric7/EricNetwork/EricSslCertificatesDialog.py",
+      "eric7/EricNetwork/EricSslCertificatesInfoDialog.py",
+      "eric7/EricNetwork/EricSslCertificatesInfoWidget.py",
+      "eric7/EricNetwork/EricSslErrorHandler.py",
+      "eric7/EricNetwork/EricSslInfoWidget.py",
+      "eric7/EricNetwork/EricSslUtilities.py",
+      "eric7/EricNetwork/EricTldExtractor.py",
+      "eric7/EricNetwork/EricUrlInfo.py",
+      "eric7/EricNetwork/__init__.py",
+      "eric7/EricNetwork/data/__init__.py",
+      "eric7/EricUtilities/EricCache.py",
+      "eric7/EricUtilities/EricMutexLocker.py",
+      "eric7/EricUtilities/__init__.py",
+      "eric7/EricWidgets/EricAnimatedLabel.py",
+      "eric7/EricWidgets/EricAnimatedWidget.py",
+      "eric7/EricWidgets/EricApplication.py",
+      "eric7/EricWidgets/EricClickableLabel.py",
+      "eric7/EricWidgets/EricComboSelectionDialog.py",
+      "eric7/EricWidgets/EricCompleters.py",
+      "eric7/EricWidgets/EricDirFileDialog.py",
+      "eric7/EricWidgets/EricErrorMessage.py",
+      "eric7/EricWidgets/EricErrorMessageFilterDialog.py",
+      "eric7/EricWidgets/EricFileDialog.py",
+      "eric7/EricWidgets/EricFileSaveConfirmDialog.py",
+      "eric7/EricWidgets/EricIconBar.py",
+      "eric7/EricWidgets/EricLed.py",
+      "eric7/EricWidgets/EricLineEdit.py",
+      "eric7/EricWidgets/EricLineEditButton.py",
+      "eric7/EricWidgets/EricListSelectionDialog.py",
+      "eric7/EricWidgets/EricListView.py",
+      "eric7/EricWidgets/EricMainWindow.py",
+      "eric7/EricWidgets/EricMapWidget.py",
+      "eric7/EricWidgets/EricMessageBox.py",
+      "eric7/EricWidgets/EricModelMenu.py",
+      "eric7/EricWidgets/EricModelToolBar.py",
+      "eric7/EricWidgets/EricPassivePopup.py",
+      "eric7/EricWidgets/EricPasswordMeter.py",
+      "eric7/EricWidgets/EricPathPicker.py",
+      "eric7/EricWidgets/EricPathPickerDialog.py",
+      "eric7/EricWidgets/EricPlainTextDialog.py",
+      "eric7/EricWidgets/EricProcessDialog.py",
+      "eric7/EricWidgets/EricProgressDialog.py",
+      "eric7/EricWidgets/EricSideBar.py",
+      "eric7/EricWidgets/EricSimpleHelpDialog.py",
+      "eric7/EricWidgets/EricSingleApplication.py",
+      "eric7/EricWidgets/EricSpellCheckedTextEdit.py",
+      "eric7/EricWidgets/EricSqueezeLabels.py",
+      "eric7/EricWidgets/EricStringListEditWidget.py",
+      "eric7/EricWidgets/EricTabWidget.py",
+      "eric7/EricWidgets/EricTableView.py",
+      "eric7/EricWidgets/EricTextEditSearchWidget.py",
+      "eric7/EricWidgets/EricTextInputDialog.py",
+      "eric7/EricWidgets/EricTextSpinBox.py",
+      "eric7/EricWidgets/EricToolBarDialog.py",
+      "eric7/EricWidgets/EricToolBarManager.py",
+      "eric7/EricWidgets/EricToolBox.py",
+      "eric7/EricWidgets/EricToolButton.py",
+      "eric7/EricWidgets/EricTreeView.py",
+      "eric7/EricWidgets/EricTreeWidget.py",
+      "eric7/EricWidgets/EricZoomWidget.py",
+      "eric7/EricWidgets/__init__.py",
+      "eric7/EricXML/Config.py",
+      "eric7/EricXML/DebuggerPropertiesReader.py",
+      "eric7/EricXML/HighlightingStylesReader.py",
+      "eric7/EricXML/MultiProjectReader.py",
+      "eric7/EricXML/PluginRepositoryReader.py",
+      "eric7/EricXML/ProjectReader.py",
+      "eric7/EricXML/SessionReader.py",
+      "eric7/EricXML/ShortcutsReader.py",
+      "eric7/EricXML/SpellCheckDictionariesReader.py",
+      "eric7/EricXML/TasksReader.py",
+      "eric7/EricXML/TemplatesReader.py",
+      "eric7/EricXML/UserProjectReader.py",
+      "eric7/EricXML/XMLStreamReaderBase.py",
+      "eric7/EricXML/__init__.py",
       "eric7/Globals/AppInfo.py",
       "eric7/Globals/__init__.py",
       "eric7/Graphics/ApplicationDiagramBuilder.py",
@@ -1105,6 +1191,15 @@
       "eric7/Graphics/UMLItem.py",
       "eric7/Graphics/UMLSceneSizeDialog.py",
       "eric7/Graphics/__init__.py",
+      "eric7/HelpViewer/HelpBookmarkPropertiesDialog.py",
+      "eric7/HelpViewer/HelpBookmarksImportDialog.py",
+      "eric7/HelpViewer/HelpBookmarksWidget.py",
+      "eric7/HelpViewer/HelpViewerImpl.py",
+      "eric7/HelpViewer/HelpViewerImplQTB.py",
+      "eric7/HelpViewer/HelpViewerImplQWE.py",
+      "eric7/HelpViewer/HelpViewerWidget.py",
+      "eric7/HelpViewer/OpenPagesWidget.py",
+      "eric7/HelpViewer/__init__.py",
       "eric7/HexEdit/HexEditChunks.py",
       "eric7/HexEdit/HexEditGotoWidget.py",
       "eric7/HexEdit/HexEditMainWindow.py",
@@ -1118,8 +1213,15 @@
       "eric7/IconEditor/IconSizeDialog.py",
       "eric7/IconEditor/__init__.py",
       "eric7/IconEditor/cursors/__init__.py",
+      "eric7/JediInterface/AssistantJedi.py",
+      "eric7/JediInterface/JediClient.py",
+      "eric7/JediInterface/JediServer.py",
+      "eric7/JediInterface/RefactoringPreviewDialog.py",
+      "eric7/JediInterface/__init__.py",
       "eric7/MicroPython/AddEditDevicesDialog.py",
+      "eric7/MicroPython/BoardDataDialog.py",
       "eric7/MicroPython/CircuitPythonDevices.py",
+      "eric7/MicroPython/ConnectionSelectionDialog.py",
       "eric7/MicroPython/EspBackupRestoreFirmwareDialog.py",
       "eric7/MicroPython/EspDevices.py",
       "eric7/MicroPython/EspFirmwareSelectionDialog.py",
@@ -1136,6 +1238,7 @@
       "eric7/MicroPython/MicroPythonWidget.py",
       "eric7/MicroPython/MicrobitDevices.py",
       "eric7/MicroPython/PyBoardDevices.py",
+      "eric7/MicroPython/RP2040Devices.py",
       "eric7/MicroPython/UF2FlashDialog.py",
       "eric7/MicroPython/UnknownDevicesDialog.py",
       "eric7/MicroPython/__init__.py",
@@ -1162,10 +1265,13 @@
       "eric7/PipInterface/PipDialog.py",
       "eric7/PipInterface/PipFileSelectionDialog.py",
       "eric7/PipInterface/PipFreezeDialog.py",
+      "eric7/PipInterface/PipLicensesDialog.py",
       "eric7/PipInterface/PipPackageDetailsDialog.py",
       "eric7/PipInterface/PipPackagesInputDialog.py",
       "eric7/PipInterface/PipPackagesWidget.py",
+      "eric7/PipInterface/PipVulnerabilityChecker.py",
       "eric7/PipInterface/__init__.py",
+      "eric7/PipInterface/piplicenses.py",
       "eric7/PluginManager/PluginDetailsDialog.py",
       "eric7/PluginManager/PluginExceptions.py",
       "eric7/PluginManager/PluginInfoDialog.py",
@@ -1177,28 +1283,44 @@
       "eric7/Plugins/AboutPlugin/AboutDialog.py",
       "eric7/Plugins/AboutPlugin/__init__.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Annotations/AnnotationsChecker.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Annotations/AnnotationsCheckerDefaults.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Annotations/AnnotationsEnums.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Annotations/AnnotationsFunctionVisitor.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Annotations/AnnotationsFutureVisitor.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Annotations/__init__.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Annotations/translations.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/AstUtilities.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleAddBuiltinIgnoreDialog.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleChecker.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerUtilities.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCodeSelectionDialog.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleStatisticsDialog.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Complexity/ComplexityChecker.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Complexity/__init__.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Complexity/mccabe.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Complexity/translations.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/DocStyle/DocStyleChecker.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/DocStyle/__init__.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/DocStyle/translations.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportNode.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportsChecker.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportsEnums.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/LocalImportVisitor.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/__init__.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/translations.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/MiscellaneousChecker.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/MiscellaneousDefaults.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/__init__.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/eradicate.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Naming/NamingStyleChecker.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Naming/__init__.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Naming/translations.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/PathLib/PathlibChecker.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/PathLib/__init__.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/PathLib/translations.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Security/Checks/__init__.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Security/Checks/assert.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Security/Checks/awsHardcodedPassword.py",
@@ -1232,6 +1354,11 @@
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Security/SecurityUtils.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Security/__init__.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/SimplifyChecker.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/SimplifyNodeVisitor.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/__init__.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/ast_unparse.py",
+      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/__init__.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/pycodestyle.py",
       "eric7/Plugins/CheckerPlugins/CodeStyleChecker/translations.py",
@@ -1268,6 +1395,7 @@
       "eric7/Plugins/PluginVmListspace.py",
       "eric7/Plugins/PluginVmTabview.py",
       "eric7/Plugins/PluginWizardDotDesktop.py",
+      "eric7/Plugins/PluginWizardEricMessageBox.py",
       "eric7/Plugins/PluginWizardEricPlugin.py",
       "eric7/Plugins/PluginWizardPyRegExp.py",
       "eric7/Plugins/PluginWizardQColorDialog.py",
@@ -1538,11 +1666,14 @@
       "eric7/Plugins/WizardPlugins/DotDesktopWizard/DotDesktopListSelectionDialog.py",
       "eric7/Plugins/WizardPlugins/DotDesktopWizard/DotDesktopWizardDialog.py",
       "eric7/Plugins/WizardPlugins/DotDesktopWizard/__init__.py",
+      "eric7/Plugins/WizardPlugins/EricMessageBoxWizard/EricMessageBoxWizardDialog.py",
+      "eric7/Plugins/WizardPlugins/EricMessageBoxWizard/__init__.py",
       "eric7/Plugins/WizardPlugins/EricPluginWizard/PluginWizardDialog.py",
       "eric7/Plugins/WizardPlugins/EricPluginWizard/Templates.py",
       "eric7/Plugins/WizardPlugins/EricPluginWizard/__init__.py",
       "eric7/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py",
       "eric7/Plugins/WizardPlugins/FileDialogWizard/__init__.py",
+      "eric7/Plugins/WizardPlugins/FontDialogWizard/FontDialogOptionsDialog.py",
       "eric7/Plugins/WizardPlugins/FontDialogWizard/FontDialogWizardDialog.py",
       "eric7/Plugins/WizardPlugins/FontDialogWizard/__init__.py",
       "eric7/Plugins/WizardPlugins/InputDialogWizard/InputDialogWizardDialog.py",
@@ -1572,8 +1703,10 @@
       "eric7/Preferences/ConfigurationPages/DebuggerPython3Page.py",
       "eric7/Preferences/ConfigurationPages/DiffColoursPage.py",
       "eric7/Preferences/ConfigurationPages/EditorAPIsPage.py",
+      "eric7/Preferences/ConfigurationPages/EditorAutoCompletionJediPage.py",
       "eric7/Preferences/ConfigurationPages/EditorAutocompletionPage.py",
       "eric7/Preferences/ConfigurationPages/EditorAutocompletionQScintillaPage.py",
+      "eric7/Preferences/ConfigurationPages/EditorCallTipsJediPage.py",
       "eric7/Preferences/ConfigurationPages/EditorCalltipsPage.py",
       "eric7/Preferences/ConfigurationPages/EditorCalltipsQScintillaPage.py",
       "eric7/Preferences/ConfigurationPages/EditorDocViewerPage.py",
@@ -1585,6 +1718,7 @@
       "eric7/Preferences/ConfigurationPages/EditorHighlightingStylesSelectionDialog.py",
       "eric7/Preferences/ConfigurationPages/EditorKeywordsPage.py",
       "eric7/Preferences/ConfigurationPages/EditorLanguageTabIndentOverrideDialog.py",
+      "eric7/Preferences/ConfigurationPages/EditorMouseClickHandlerJediPage.py",
       "eric7/Preferences/ConfigurationPages/EditorMouseClickHandlerPage.py",
       "eric7/Preferences/ConfigurationPages/EditorPropertiesPage.py",
       "eric7/Preferences/ConfigurationPages/EditorSearchPage.py",
@@ -1599,6 +1733,7 @@
       "eric7/Preferences/ConfigurationPages/HexEditorPage.py",
       "eric7/Preferences/ConfigurationPages/IconsPage.py",
       "eric7/Preferences/ConfigurationPages/IconsPreviewDialog.py",
+      "eric7/Preferences/ConfigurationPages/InterfaceLightPage.py",
       "eric7/Preferences/ConfigurationPages/InterfacePage.py",
       "eric7/Preferences/ConfigurationPages/IrcPage.py",
       "eric7/Preferences/ConfigurationPages/LogViewerPage.py",
@@ -1637,6 +1772,7 @@
       "eric7/Preferences/ShortcutsDialog.py",
       "eric7/Preferences/ShortcutsFile.py",
       "eric7/Preferences/SubstyleDefinitionDialog.py",
+      "eric7/Preferences/ThemeManager.py",
       "eric7/Preferences/ToolConfigurationDialog.py",
       "eric7/Preferences/ToolGroupConfigurationDialog.py",
       "eric7/Preferences/ViewProfileDialog.py",
@@ -1696,6 +1832,7 @@
       "eric7/QScintilla/EditorMarkerMap.py",
       "eric7/QScintilla/EditorOutline.py",
       "eric7/QScintilla/EditorOutlineModel.py",
+      "eric7/QScintilla/EditorOutlineSizesDialog.py",
       "eric7/QScintilla/Exporters/ExporterBase.py",
       "eric7/QScintilla/Exporters/ExporterHTML.py",
       "eric7/QScintilla/Exporters/ExporterODT.py",
@@ -1846,6 +1983,8 @@
       "eric7/UI/DiffHighlighter.py",
       "eric7/UI/EmailDialog.py",
       "eric7/UI/ErrorLogDialog.py",
+      "eric7/UI/FindFileWidget.py",
+      "eric7/UI/FindLocationWidget.py",
       "eric7/UI/Info.py",
       "eric7/UI/InstallInfoDialog.py",
       "eric7/UI/LogView.py",
@@ -1864,8 +2003,10 @@
       "eric7/UI/SplashScreen.py",
       "eric7/UI/SymbolsWidget.py",
       "eric7/UI/UserInterface.py",
+      "eric7/UI/VersionsDialog.py",
       "eric7/UI/__init__.py",
       "eric7/UI/data/__init__.py",
+      "eric7/UI/upgrader.py",
       "eric7/Utilities/AutoSaver.py",
       "eric7/Utilities/BackgroundClient.py",
       "eric7/Utilities/BackgroundService.py",
@@ -1894,6 +2035,7 @@
       "eric7/VCS/RepositoryInfoDialog.py",
       "eric7/VCS/StatusMonitorLed.py",
       "eric7/VCS/StatusMonitorThread.py",
+      "eric7/VCS/StatusWidget.py",
       "eric7/VCS/VersionControl.py",
       "eric7/VCS/__init__.py",
       "eric7/ViewManager/BookmarkedFilesDialog.py",
@@ -1904,6 +2046,7 @@
       "eric7/VirtualEnv/VirtualenvExecDialog.py",
       "eric7/VirtualEnv/VirtualenvInterpreterSelectionDialog.py",
       "eric7/VirtualEnv/VirtualenvManager.py",
+      "eric7/VirtualEnv/VirtualenvManagerWidgets.py",
       "eric7/VirtualEnv/VirtualenvNameDialog.py",
       "eric7/VirtualEnv/__init__.py",
       "eric7/WebBrowser/AdBlock/AdBlockDialog.py",
@@ -2032,7 +2175,10 @@
       "eric7/WebBrowser/QtHelp/HelpSearchWidget.py",
       "eric7/WebBrowser/QtHelp/HelpTocWidget.py",
       "eric7/WebBrowser/QtHelp/HelpTopicDialog.py",
+      "eric7/WebBrowser/QtHelp/QtHelpDocumentationConfigurationDialog.py",
       "eric7/WebBrowser/QtHelp/QtHelpDocumentationSelectionDialog.py",
+      "eric7/WebBrowser/QtHelp/QtHelpDocumentationSettings.py",
+      "eric7/WebBrowser/QtHelp/QtHelpDocumentationSettingsWidget.py",
       "eric7/WebBrowser/QtHelp/__init__.py",
       "eric7/WebBrowser/SafeBrowsing/SafeBrowsingAPIClient.py",
       "eric7/WebBrowser/SafeBrowsing/SafeBrowsingCache.py",
@@ -2125,23 +2271,9 @@
       "eric7/WebBrowser/__init__.py",
       "eric7/WebBrowser/data/__init__.py",
       "eric7/__init__.py",
+      "eric7/__main__.py",
       "eric7/eric7.py",
       "eric7/eric7.pyw",
-      "eric7/MicroPython/RP2040Devices.py",
-      "eric7/MicroPython/ConnectionSelectionDialog.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/PathLib/__init__.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/PathLib/PathlibChecker.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/PathLib/translations.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/eradicate.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Complexity/mccabe.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/__init__.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/ast_unparse.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/SimplifyChecker.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/SimplifyNodeVisitor.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Annotations/AnnotationsFunctionVisitor.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Annotations/AnnotationsEnums.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Annotations/AnnotationsCheckerDefaults.py",
       "eric7/eric7_api.py",
       "eric7/eric7_browser.py",
       "eric7/eric7_browser.pyw",
@@ -2183,151 +2315,19 @@
       "eric7/eric7_uipreviewer.pyw",
       "eric7/eric7_unittest.py",
       "eric7/eric7_unittest.pyw",
-      "eric7/eric7config.py",
-      "eric7/DebugClients/Python/eric7dbgstub.py",
-      "eric7/EricGraphics/__init__.py",
-      "eric7/EricGraphics/EricArrowItem.py",
-      "eric7/EricGraphics/EricGraphicsView.py",
-      "eric7/EricXML/Config.py",
-      "eric7/EricXML/DebuggerPropertiesReader.py",
-      "eric7/EricXML/HighlightingStylesReader.py",
-      "eric7/EricXML/MultiProjectReader.py",
-      "eric7/EricXML/PluginRepositoryReader.py",
-      "eric7/EricXML/ProjectReader.py",
-      "eric7/EricXML/SessionReader.py",
-      "eric7/EricXML/ShortcutsReader.py",
-      "eric7/EricXML/SpellCheckDictionariesReader.py",
-      "eric7/EricXML/TasksReader.py",
-      "eric7/EricXML/TemplatesReader.py",
-      "eric7/EricXML/UserProjectReader.py",
-      "eric7/EricXML/XMLStreamReaderBase.py",
-      "eric7/EricXML/__init__.py",
-      "eric7/EricUtilities/__init__.py",
-      "eric7/EricUtilities/EricMutexLocker.py",
-      "eric7/EricUtilities/EricCache.py",
-      "eric7/EricNetwork/__init__.py",
-      "eric7/EricNetwork/data/__init__.py",
-      "eric7/EricNetwork/EricFtp.py",
-      "eric7/EricNetwork/EricGoogleMail.py",
-      "eric7/EricNetwork/EricGoogleMailHelpers.py",
-      "eric7/EricNetwork/EricJsonClient.py",
-      "eric7/EricNetwork/EricJsonServer.py",
-      "eric7/EricNetwork/EricNetworkProxyFactory.py",
-      "eric7/EricNetwork/EricSslCertificateSelectionDialog.py",
-      "eric7/EricNetwork/EricSslCertificatesDialog.py",
-      "eric7/EricNetwork/EricSslCertificatesInfoDialog.py",
-      "eric7/EricNetwork/EricSslCertificatesInfoWidget.py",
-      "eric7/EricNetwork/EricSslErrorHandler.py",
-      "eric7/EricNetwork/EricSslInfoWidget.py",
-      "eric7/EricNetwork/EricSslUtilities.py",
-      "eric7/EricNetwork/EricTldExtractor.py",
-      "eric7/EricNetwork/EricUrlInfo.py",
-      "eric7/EricCore/__init__.py",
-      "eric7/EricCore/EricTreeSortFilterProxyModel.py",
-      "eric7/EricGui/__init__.py",
-      "eric7/EricGui/EricAction.py",
-      "eric7/EricGui/EricGenericDiffHighlighter.py",
-      "eric7/EricGui/EricOverrideCursor.py",
-      "eric7/EricWidgets/__init__.py",
-      "eric7/EricWidgets/EricAnimatedLabel.py",
-      "eric7/EricWidgets/EricAnimatedWidget.py",
-      "eric7/EricWidgets/EricApplication.py",
-      "eric7/EricWidgets/EricClickableLabel.py",
-      "eric7/EricWidgets/EricComboSelectionDialog.py",
-      "eric7/EricWidgets/EricCompleters.py",
-      "eric7/EricWidgets/EricErrorMessage.py",
-      "eric7/EricWidgets/EricErrorMessageFilterDialog.py",
-      "eric7/EricWidgets/EricFileDialog.py",
-      "eric7/EricWidgets/EricFileSaveConfirmDialog.py",
-      "eric7/EricWidgets/EricLed.py",
-      "eric7/EricWidgets/EricLineEdit.py",
-      "eric7/EricWidgets/EricLineEditButton.py",
-      "eric7/EricWidgets/EricListSelectionDialog.py",
-      "eric7/EricWidgets/EricListView.py",
-      "eric7/EricWidgets/EricMainWindow.py",
-      "eric7/EricWidgets/EricMapWidget.py",
-      "eric7/EricWidgets/EricMessageBox.py",
-      "eric7/EricWidgets/EricModelMenu.py",
-      "eric7/EricWidgets/EricModelToolBar.py",
-      "eric7/EricWidgets/EricPassivePopup.py",
-      "eric7/EricWidgets/EricPasswordMeter.py",
-      "eric7/EricWidgets/EricPathPicker.py",
-      "eric7/EricWidgets/EricPathPickerDialog.py",
-      "eric7/EricWidgets/EricPlainTextDialog.py",
-      "eric7/EricWidgets/EricProcessDialog.py",
-      "eric7/EricWidgets/EricProgressDialog.py",
-      "eric7/EricWidgets/EricSideBar.py",
-      "eric7/EricWidgets/EricSimpleHelpDialog.py",
-      "eric7/EricWidgets/EricSingleApplication.py",
-      "eric7/EricWidgets/EricSqueezeLabels.py",
-      "eric7/EricWidgets/EricStringListEditWidget.py",
-      "eric7/EricWidgets/EricTabWidget.py",
-      "eric7/EricWidgets/EricTableView.py",
-      "eric7/EricWidgets/EricTextEditSearchWidget.py",
-      "eric7/EricWidgets/EricTextInputDialog.py",
-      "eric7/EricWidgets/EricTextSpinBox.py",
-      "eric7/EricWidgets/EricToolBarDialog.py",
-      "eric7/EricWidgets/EricToolBarManager.py",
-      "eric7/EricWidgets/EricToolBox.py",
-      "eric7/EricWidgets/EricToolButton.py",
-      "eric7/EricWidgets/EricTreeView.py",
-      "eric7/EricWidgets/EricTreeWidget.py",
-      "eric7/EricWidgets/EricZoomWidget.py",
-      "eric7/Plugins/WizardPlugins/EricMessageBoxWizard/__init__.py",
-      "eric7/Plugins/WizardPlugins/EricMessageBoxWizard/EricMessageBoxWizardDialog.py",
-      "eric7/Plugins/PluginWizardEricMessageBox.py",
-      "eric7/EricWidgets/EricDirFileDialog.py",
-      "eric7/Plugins/WizardPlugins/FontDialogWizard/FontDialogOptionsDialog.py",
-      "eric7/WebBrowser/QtHelp/QtHelpDocumentationSettings.py",
-      "eric7/WebBrowser/QtHelp/QtHelpDocumentationSettingsWidget.py",
-      "eric7/WebBrowser/QtHelp/QtHelpDocumentationConfigurationDialog.py",
-      "eric7/EricWidgets/EricSpellCheckedTextEdit.py",
-      "eric7/EricNetwork/EricNetworkIcon.py",
-      "eric7/EricWidgets/EricIconBar.py",
-      "eric7/JediInterface/__init__.py",
-      "eric7/JediInterface/AssistantJedi.py",
-      "eric7/JediInterface/JediClient.py",
-      "eric7/JediInterface/JediServer.py",
-      "eric7/Preferences/ConfigurationPages/EditorAutoCompletionJediPage.py",
-      "eric7/Preferences/ConfigurationPages/EditorCallTipsJediPage.py",
-      "eric7/Preferences/ConfigurationPages/EditorMouseClickHandlerJediPage.py",
-      "eric7/VirtualEnv/VirtualenvManagerWidgets.py",
       "eric7/eric7_virtualenv.py",
       "eric7/eric7_virtualenv.pyw",
-      "eric7/UI/FindFileWidget.py",
-      "eric7/VCS/StatusWidget.py",
-      "eric7/UI/FindLocationWidget.py",
-      "eric7/JediInterface/RefactoringPreviewDialog.py",
-      "eric7/HelpViewer/__init__.py",
-      "eric7/HelpViewer/HelpViewerWidget.py",
-      "eric7/HelpViewer/OpenPagesWidget.py",
-      "eric7/HelpViewer/HelpViewerImpl.py",
-      "eric7/HelpViewer/HelpViewerImplQTB.py",
-      "eric7/HelpViewer/HelpViewerImplQWE.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Annotations/AnnotationsFutureVisitor.py",
-      "eric7/DebugClients/Python/coverage/exceptions.py",
-      "eric7/QScintilla/EditorOutlineSizesDialog.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/__init__.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportsChecker.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/translations.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerUtilities.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/LocalImportVisitor.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportsEnums.py",
-      "eric7/Plugins/CheckerPlugins/CodeStyleChecker/Imports/ImportNode.py",
-      "eric7/Preferences/ThemeManager.py",
-      "eric7/Preferences/ConfigurationPages/InterfaceLightPage.py",
-      "eric7/HelpViewer/HelpBookmarksWidget.py",
-      "eric7/HelpViewer/HelpBookmarkPropertiesDialog.py",
-      "eric7/HelpViewer/HelpBookmarksImportDialog.py",
-      "eric7/MicroPython/BoardDataDialog.py",
-      "eric7/__main__.py",
-      "eric7/UI/VersionsDialog.py",
-      "eric7/UI/upgrader.py",
-      "eric7/PipInterface/PipVulnerabilityChecker.py",
+      "eric7/eric7config.py",
+      "scripts/cleanupSource.py",
+      "scripts/compileUiFiles.py",
+      "scripts/create_windows_links.py",
+      "scripts/install-debugclients.py",
       "scripts/install-dependencies.py",
-      "eric7/DebugClients/Python/coverage/lcovreport.py",
-      "eric7/PipInterface/PipLicensesDialog.py",
-      "eric7/PipInterface/piplicenses.py"
+      "scripts/install-i18n.py",
+      "scripts/install.py",
+      "scripts/uninstall-debugclients.py",
+      "scripts/uninstall.py",
+      "setup.py"
     ],
     "SPELLEXCLUDES": "Dictionaries/excludes.dic",
     "SPELLLANGUAGE": "en_US",
--- a/eric7/APIs/Python3/eric7.api	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/APIs/Python3/eric7.api	Mon May 02 15:52:33 2022 +0200
@@ -1520,6 +1520,7 @@
 eric7.EricWidgets.EricPathPicker.EricPathPickerBase.pickerButtonClicked?7
 eric7.EricWidgets.EricPathPicker.EricPathPickerBase.setButtonToolTip?4(tooltip)
 eric7.EricWidgets.EricPathPicker.EricPathPickerBase.setCurrentIndex?4(index)
+eric7.EricWidgets.EricPathPicker.EricPathPickerBase.setCurrentText?4(text)
 eric7.EricWidgets.EricPathPicker.EricPathPickerBase.setDefaultDirectory?4(directory)
 eric7.EricWidgets.EricPathPicker.EricPathPickerBase.setEditText?4(path, toNative=True)
 eric7.EricWidgets.EricPathPicker.EricPathPickerBase.setEditorEnabled?4(enable)
@@ -1897,6 +1898,7 @@
 eric7.Globals.getInstallInfoFilePath?4()
 eric7.Globals.getPyQt6ModulesDirectory?4()
 eric7.Globals.getPyQtToolsPath?4(version=5)
+eric7.Globals.getPythonExecutable?4()
 eric7.Globals.getPythonLibraryDirectory?4()
 eric7.Globals.getQtBinariesPath?4()
 eric7.Globals.getWebBrowserSupport?4()
@@ -3246,6 +3248,7 @@
 eric7.PluginManager.PluginManager.PluginManager.deactivatePlugin?4(name, onDemand=False)
 eric7.PluginManager.PluginManager.PluginManager.deactivateVcsPlugins?4()
 eric7.PluginManager.PluginManager.PluginManager.doShutdown?4()
+eric7.PluginManager.PluginManager.PluginManager.downLoadRepositoryFile?4(url=None)
 eric7.PluginManager.PluginManager.PluginManager.finalizeSetup?4()
 eric7.PluginManager.PluginManager.PluginManager.getPluginApiFiles?4(language)
 eric7.PluginManager.PluginManager.PluginManager.getPluginConfigData?4()
@@ -3272,6 +3275,7 @@
 eric7.PluginManager.PluginManager.PluginManager.pluginAboutToBeDeactivated?7
 eric7.PluginManager.PluginManager.PluginManager.pluginActivated?7
 eric7.PluginManager.PluginManager.PluginManager.pluginDeactivated?7
+eric7.PluginManager.PluginManager.PluginManager.pluginRepositoryFileDownloaded?7
 eric7.PluginManager.PluginManager.PluginManager.preferencesChanged?4()
 eric7.PluginManager.PluginManager.PluginManager.removePluginFromSysModules?4(pluginName, package, internalPackages)
 eric7.PluginManager.PluginManager.PluginManager.shutdown?7
@@ -3297,7 +3301,7 @@
 eric7.PluginManager.PluginRepositoryDialog.PluginRepositoryWidget.on_repositoryList_customContextMenuRequested?4(pos)
 eric7.PluginManager.PluginRepositoryDialog.PluginRepositoryWidget.on_repositoryList_itemSelectionChanged?4()
 eric7.PluginManager.PluginRepositoryDialog.PluginRepositoryWidget.on_repositoryUrlEditButton_toggled?4(checked)
-eric7.PluginManager.PluginRepositoryDialog.PluginRepositoryWidget.updateList?4()
+eric7.PluginManager.PluginRepositoryDialog.PluginRepositoryWidget.reloadList?4()
 eric7.PluginManager.PluginRepositoryDialog.PluginRepositoryWidget?1(pluginManager, integrated=False, parent=None)
 eric7.PluginManager.PluginRepositoryDialog.PluginRepositoryWindow?1(parent=None)
 eric7.PluginManager.PluginRepositoryDialog.registerPlugin?4(name, short, description, url, author, version, filename, status)
@@ -5230,14 +5234,6 @@
 eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.MercurialPage.save?4()
 eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.MercurialPage?1(plugin)
 eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.HgGpgSignDialog.getData?4()
-eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.HgGpgSignDialog.on_bookmarkButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.HgGpgSignDialog.on_bookmarkCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.HgGpgSignDialog.on_branchButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.HgGpgSignDialog.on_branchCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.HgGpgSignDialog.on_idButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.HgGpgSignDialog.on_idEdit_textChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.HgGpgSignDialog.on_tagButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.HgGpgSignDialog.on_tagCombo_editTextChanged?4(txt)
 eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.HgGpgSignDialog?1(tagsList, branchesList, bookmarksList=None, parent=None)
 eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignaturesDialog.HgGpgSignaturesDialog.closeEvent?4(e)
 eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignaturesDialog.HgGpgSignaturesDialog.on_buttonBox_clicked?4(button)
@@ -5270,29 +5266,10 @@
 eric7.Plugins.VcsPlugins.vcsMercurial.HgArchiveDialog.HgArchiveDialog.on_typeComboBox_activated?4(index)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgArchiveDialog.HgArchiveDialog?1(vcs, parent=None)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.HgBackoutDialog.getParameters?4()
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.HgBackoutDialog.on_bookmarkButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.HgBackoutDialog.on_bookmarkCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.HgBackoutDialog.on_branchButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.HgBackoutDialog.on_branchCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.HgBackoutDialog.on_idButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.HgBackoutDialog.on_idEdit_textChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.HgBackoutDialog.on_noneButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.HgBackoutDialog.on_tagButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.HgBackoutDialog.on_tagCombo_editTextChanged?4(txt)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.HgBackoutDialog?1(tagsList, branchesList, bookmarksList=None, parent=None)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.DEFINE_MODE?7
 eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.MOVE_MODE?7
 eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.getData?4()
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.on_bookmarkButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.on_bookmarkCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.on_branchButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.on_branchCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.on_idButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.on_idEdit_textChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.on_nameCombo_activated?4(index)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.on_nameEdit_textChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.on_tagButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog.on_tagCombo_editTextChanged?4(txt)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.HgBookmarkDialog?1(mode, tagsList, branchesList, bookmarksList, parent=None)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkRenameDialog.HgBookmarkRenameDialog.getData?4()
 eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkRenameDialog.HgBookmarkRenameDialog.on_bookmarkCombo_editTextChanged?4(txt)
@@ -5466,14 +5443,6 @@
 eric7.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog?1(vcs, mode="", parent=None)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.LIGHTCOLORS?7
 eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.HgMergeDialog.getParameters?4()
-eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.HgMergeDialog.on_bookmarkButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.HgMergeDialog.on_bookmarkCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.HgMergeDialog.on_branchButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.HgMergeDialog.on_branchCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.HgMergeDialog.on_idButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.HgMergeDialog.on_idEdit_textChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.HgMergeDialog.on_tagButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.HgMergeDialog.on_tagCombo_editTextChanged?4(txt)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.HgMergeDialog?1(tagsList, branchesList, bookmarksList=None, parent=None)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.HgNewProjectOptionsDialog.getData?4()
 eric7.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.HgNewProjectOptionsDialog.on_vcsProjectDirPicker_textChanged?4(txt)
@@ -5495,33 +5464,9 @@
 eric7.Plugins.VcsPlugins.vcsMercurial.HgRepoConfigDataDialog.HgRepoConfigDataDialog.on_defaultPushShowPasswordButton_clicked?4(checked)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgRepoConfigDataDialog.HgRepoConfigDataDialog.on_defaultShowPasswordButton_clicked?4(checked)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgRepoConfigDataDialog.HgRepoConfigDataDialog?1(withLargefiles=False, largefilesData=None, parent=None)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog.getRevision?4(revset=True)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog.on_bookmarkButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog.on_bookmarkCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog.on_branchButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog.on_branchCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog.on_idButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog.on_idEdit_textChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog.on_tagButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog.on_tagCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog?1(tagsList, branchesList, bookmarksList=None, noneLabel="", parent=None)
+eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog.getRevision?4()
+eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog?1(tagsList, branchesList, bookmarksList=None, noneLabel="", revset=True, parent=None)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.getRevisions?4()
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_bookmark1Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_bookmark1Combo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_bookmark2Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_bookmark2Combo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_branch1Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_branch1Combo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_branch2Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_branch2Combo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_id1Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_id1Edit_textChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_id2Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_id2Edit_textChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_tag1Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_tag1Combo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_tag2Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.on_tag2Combo_editTextChanged?4(txt)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog?1(tagsList, branchesList, bookmarksList=None, parent=None)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgServeDialog.HgServeDialog.closeEvent?4(e)
 eric7.Plugins.VcsPlugins.vcsMercurial.HgServeDialog.HgServeDialog?1(vcs, path, parent=None)
@@ -5589,18 +5534,6 @@
 eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditCommitEditor.HgHisteditCommitEditor.on_recentComboBox_activated?4(index)
 eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditCommitEditor.HgHisteditCommitEditor?1(fileName, parent=None)
 eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.getData?4()
-eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.on_bookmarkButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.on_bookmarkCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.on_branch1Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.on_branchCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.on_defaultButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.on_idButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.on_idEdit_textChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.on_numberSpinBox_valueChanged?4(val)
-eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.on_outgoingButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.on_revisionButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.on_tagButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog.on_tagCombo_editTextChanged?4(txt)
 eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.HgHisteditConfigDialog?1(tagsList, branchesList, bookmarksList=None, rev="", parent=None)
 eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditEditor.createMainWidget?4(argv)
 eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditEditor.main?4()
@@ -5766,22 +5699,6 @@
 eric7.Plugins.VcsPlugins.vcsMercurial.QueuesExtension.queues.Queues.shutdown?4()
 eric7.Plugins.VcsPlugins.vcsMercurial.QueuesExtension.queues.Queues?1(vcs)
 eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.getData?4()
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_bookmark1Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_bookmark1Combo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_bookmark2Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_bookmark2Combo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_branch1Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_branch1Combo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_branch2Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_branch2Combo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_id1Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_id1Edit_textChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_id2Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_id2Edit_textChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_tag1Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_tag1Combo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_tag2Button_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog.on_tag2Combo_editTextChanged?4(txt)
 eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.HgRebaseDialog?1(tagsList, branchesList, bookmarksList, version, parent=None)
 eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.ProjectHelper.RebaseProjectHelper.initActions?4()
 eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.ProjectHelper.RebaseProjectHelper.initMenu?4(mainMenu)
@@ -5827,14 +5744,6 @@
 eric7.Plugins.VcsPlugins.vcsMercurial.ShelveExtension.shelve.Shelve.shutdown?4()
 eric7.Plugins.VcsPlugins.vcsMercurial.ShelveExtension.shelve.Shelve?1(vcs)
 eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.HgStripDialog.getData?4()
-eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.HgStripDialog.on_branchButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.HgStripDialog.on_branchCombo_editTextChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.HgStripDialog.on_idButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.HgStripDialog.on_idEdit_textChanged?4(txt)
-eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.HgStripDialog.on_numberButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.HgStripDialog.on_numberSpinBox_valueChanged?4(val)
-eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.HgStripDialog.on_tagButton_toggled?4(checked)
-eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.HgStripDialog.on_tagCombo_editTextChanged?4(txt)
 eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.HgStripDialog?1(tagsList, branchesList, bookmarksList=None, rev="", parent=None)
 eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.ProjectHelper.StripProjectHelper.initActions?4()
 eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.ProjectHelper.StripProjectHelper.initMenu?4(mainMenu)
@@ -9646,6 +9555,15 @@
 eric7.UI.ErrorLogDialog.ErrorLogDialog.on_emailButton_clicked?4()
 eric7.UI.ErrorLogDialog.ErrorLogDialog.on_keepButton_clicked?4()
 eric7.UI.ErrorLogDialog.ErrorLogDialog?1(logFile, showMode, parent=None)
+eric7.UI.FindFileWidget.FindFileDialog.activate?4(replaceMode=False, txt="", searchDir="", openFiles=False)
+eric7.UI.FindFileWidget.FindFileDialog.designerFile?7
+eric7.UI.FindFileWidget.FindFileDialog.linguistFile?7
+eric7.UI.FindFileWidget.FindFileDialog.pixmapFile?7
+eric7.UI.FindFileWidget.FindFileDialog.sourceFile?7
+eric7.UI.FindFileWidget.FindFileDialog.svgFile?7
+eric7.UI.FindFileWidget.FindFileDialog.trpreview?7
+eric7.UI.FindFileWidget.FindFileDialog.umlFile?7
+eric7.UI.FindFileWidget.FindFileDialog?1(project, parent=None)
 eric7.UI.FindFileWidget.FindFileWidget.activate?4(replaceMode=False, txt="", searchDir="", openFiles=False)
 eric7.UI.FindFileWidget.FindFileWidget.designerFile?7
 eric7.UI.FindFileWidget.FindFileWidget.endRole?7
@@ -9664,14 +9582,21 @@
 eric7.UI.FindFileWidget.FindFileWidget.on_replacetextCombo_editTextChanged?4(text)
 eric7.UI.FindFileWidget.FindFileWidget.pixmapFile?7
 eric7.UI.FindFileWidget.FindFileWidget.replaceRole?7
-eric7.UI.FindFileWidget.FindFileWidget.setOpenFiles?4()
-eric7.UI.FindFileWidget.FindFileWidget.setSearchDirectory?4(searchDir)
 eric7.UI.FindFileWidget.FindFileWidget.sourceFile?7
 eric7.UI.FindFileWidget.FindFileWidget.startRole?7
 eric7.UI.FindFileWidget.FindFileWidget.svgFile?7
 eric7.UI.FindFileWidget.FindFileWidget.trpreview?7
 eric7.UI.FindFileWidget.FindFileWidget.umlFile?7
 eric7.UI.FindFileWidget.FindFileWidget?1(project, parent=None)
+eric7.UI.FindLocationWidget.FindLocationDialog.activate?4()
+eric7.UI.FindLocationWidget.FindLocationDialog.designerFile?7
+eric7.UI.FindLocationWidget.FindLocationDialog.linguistFile?7
+eric7.UI.FindLocationWidget.FindLocationDialog.pixmapFile?7
+eric7.UI.FindLocationWidget.FindLocationDialog.sourceFile?7
+eric7.UI.FindLocationWidget.FindLocationDialog.svgFile?7
+eric7.UI.FindLocationWidget.FindLocationDialog.trpreview?7
+eric7.UI.FindLocationWidget.FindLocationDialog.umlFile?7
+eric7.UI.FindLocationWidget.FindLocationDialog?1(project, parent=None)
 eric7.UI.FindLocationWidget.FindLocationWidget.activate?4()
 eric7.UI.FindLocationWidget.FindLocationWidget.checkStop?4()
 eric7.UI.FindLocationWidget.FindLocationWidget.designerFile?7
--- a/eric7/APIs/Python3/eric7.bas	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/APIs/Python3/eric7.bas	Mon May 02 15:52:33 2022 +0200
@@ -332,7 +332,9 @@
 FileDialogWizardDialog QDialog Ui_FileDialogWizardDialog
 FileReport BaseReport
 FiletypeAssociationDialog QDialog Ui_FiletypeAssociationDialog
+FindFileDialog QDialog
 FindFileWidget QWidget Ui_FindFileWidget
+FindLocationDialog QDialog
 FindLocationWidget QWidget Ui_FindLocationWidget
 FirefoxImporter BookmarksImporter
 FontDialogOptionsDialog QDialog Ui_FontDialogOptionsDialog
--- a/eric7/Debugger/DebuggerInterfacePython.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Debugger/DebuggerInterfacePython.py	Mon May 02 15:52:33 2022 +0200
@@ -22,6 +22,7 @@
 
 from . import DebugClientCapabilities
 
+import Globals
 import Preferences
 import Utilities
 
@@ -185,7 +186,7 @@
         execPath = venvManager.getVirtualenvExecPath(venvName)
         if interpreter == "":
             # use the interpreter used to run eric for identical variants
-            interpreter = sys.executable.replace("w.exe", ".exe")
+            interpreter = Globals.getPythonExecutable()
         if interpreter == "":
             EricMessageBox.critical(
                 None,
@@ -390,7 +391,7 @@
             interpreter == "" and
             project.getProjectLanguage().startswith("Python")
         ):
-            interpreter = sys.executable.replace("w.exe", ".exe")
+            interpreter = Globals.getPythonExecutable()
         if interpreter == "":
             EricMessageBox.critical(
                 None,
Binary file eric7/Documentation/Help/source.qch has changed
--- a/eric7/Documentation/Help/source.qhp	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Help/source.qhp	Mon May 02 15:52:33 2022 +0200
@@ -5272,6 +5272,7 @@
       <keyword name="EricPathPickerBase.paths" id="EricPathPickerBase.paths" ref="eric7.EricWidgets.EricPathPicker.html#EricPathPickerBase.paths" />
       <keyword name="EricPathPickerBase.setButtonToolTip" id="EricPathPickerBase.setButtonToolTip" ref="eric7.EricWidgets.EricPathPicker.html#EricPathPickerBase.setButtonToolTip" />
       <keyword name="EricPathPickerBase.setCurrentIndex" id="EricPathPickerBase.setCurrentIndex" ref="eric7.EricWidgets.EricPathPicker.html#EricPathPickerBase.setCurrentIndex" />
+      <keyword name="EricPathPickerBase.setCurrentText" id="EricPathPickerBase.setCurrentText" ref="eric7.EricWidgets.EricPathPicker.html#EricPathPickerBase.setCurrentText" />
       <keyword name="EricPathPickerBase.setDefaultDirectory" id="EricPathPickerBase.setDefaultDirectory" ref="eric7.EricWidgets.EricPathPicker.html#EricPathPickerBase.setDefaultDirectory" />
       <keyword name="EricPathPickerBase.setEditText" id="EricPathPickerBase.setEditText" ref="eric7.EricWidgets.EricPathPicker.html#EricPathPickerBase.setEditText" />
       <keyword name="EricPathPickerBase.setEditorEnabled" id="EricPathPickerBase.setEditorEnabled" ref="eric7.EricWidgets.EricPathPicker.html#EricPathPickerBase.setEditorEnabled" />
@@ -6022,6 +6023,9 @@
       <keyword name="FiletypeAssociationDialog.on_filePatternEdit_textChanged" id="FiletypeAssociationDialog.on_filePatternEdit_textChanged" ref="eric7.Project.FiletypeAssociationDialog.html#FiletypeAssociationDialog.on_filePatternEdit_textChanged" />
       <keyword name="FiletypeAssociationDialog.on_filetypeAssociationList_currentItemChanged" id="FiletypeAssociationDialog.on_filetypeAssociationList_currentItemChanged" ref="eric7.Project.FiletypeAssociationDialog.html#FiletypeAssociationDialog.on_filetypeAssociationList_currentItemChanged" />
       <keyword name="FiletypeAssociationDialog.transferData" id="FiletypeAssociationDialog.transferData" ref="eric7.Project.FiletypeAssociationDialog.html#FiletypeAssociationDialog.transferData" />
+      <keyword name="FindFileDialog" id="FindFileDialog" ref="eric7.UI.FindFileWidget.html#FindFileDialog" />
+      <keyword name="FindFileDialog (Constructor)" id="FindFileDialog (Constructor)" ref="eric7.UI.FindFileWidget.html#FindFileDialog.__init__" />
+      <keyword name="FindFileDialog.activate" id="FindFileDialog.activate" ref="eric7.UI.FindFileWidget.html#FindFileDialog.activate" />
       <keyword name="FindFileWidget" id="FindFileWidget" ref="eric7.UI.FindFileWidget.html#FindFileWidget" />
       <keyword name="FindFileWidget (Constructor)" id="FindFileWidget (Constructor)" ref="eric7.UI.FindFileWidget.html#FindFileWidget.__init__" />
       <keyword name="FindFileWidget (Module)" id="FindFileWidget (Module)" ref="eric7.UI.FindFileWidget.html" />
@@ -6035,6 +6039,8 @@
       <keyword name="FindFileWidget.__openFile" id="FindFileWidget.__openFile" ref="eric7.UI.FindFileWidget.html#FindFileWidget.__openFile" />
       <keyword name="FindFileWidget.__projectClosed" id="FindFileWidget.__projectClosed" ref="eric7.UI.FindFileWidget.html#FindFileWidget.__projectClosed" />
       <keyword name="FindFileWidget.__projectOpened" id="FindFileWidget.__projectOpened" ref="eric7.UI.FindFileWidget.html#FindFileWidget.__projectOpened" />
+      <keyword name="FindFileWidget.__setOpenFiles" id="FindFileWidget.__setOpenFiles" ref="eric7.UI.FindFileWidget.html#FindFileWidget.__setOpenFiles" />
+      <keyword name="FindFileWidget.__setSearchDirectory" id="FindFileWidget.__setSearchDirectory" ref="eric7.UI.FindFileWidget.html#FindFileWidget.__setSearchDirectory" />
       <keyword name="FindFileWidget.__stopSearch" id="FindFileWidget.__stopSearch" ref="eric7.UI.FindFileWidget.html#FindFileWidget.__stopSearch" />
       <keyword name="FindFileWidget.__stripEol" id="FindFileWidget.__stripEol" ref="eric7.UI.FindFileWidget.html#FindFileWidget.__stripEol" />
       <keyword name="FindFileWidget.__toggleReplaceMode" id="FindFileWidget.__toggleReplaceMode" ref="eric7.UI.FindFileWidget.html#FindFileWidget.__toggleReplaceMode" />
@@ -6049,8 +6055,9 @@
       <keyword name="FindFileWidget.on_projectButton_clicked" id="FindFileWidget.on_projectButton_clicked" ref="eric7.UI.FindFileWidget.html#FindFileWidget.on_projectButton_clicked" />
       <keyword name="FindFileWidget.on_replaceButton_clicked" id="FindFileWidget.on_replaceButton_clicked" ref="eric7.UI.FindFileWidget.html#FindFileWidget.on_replaceButton_clicked" />
       <keyword name="FindFileWidget.on_replacetextCombo_editTextChanged" id="FindFileWidget.on_replacetextCombo_editTextChanged" ref="eric7.UI.FindFileWidget.html#FindFileWidget.on_replacetextCombo_editTextChanged" />
-      <keyword name="FindFileWidget.setOpenFiles" id="FindFileWidget.setOpenFiles" ref="eric7.UI.FindFileWidget.html#FindFileWidget.setOpenFiles" />
-      <keyword name="FindFileWidget.setSearchDirectory" id="FindFileWidget.setSearchDirectory" ref="eric7.UI.FindFileWidget.html#FindFileWidget.setSearchDirectory" />
+      <keyword name="FindLocationDialog" id="FindLocationDialog" ref="eric7.UI.FindLocationWidget.html#FindLocationDialog" />
+      <keyword name="FindLocationDialog (Constructor)" id="FindLocationDialog (Constructor)" ref="eric7.UI.FindLocationWidget.html#FindLocationDialog.__init__" />
+      <keyword name="FindLocationDialog.activate" id="FindLocationDialog.activate" ref="eric7.UI.FindLocationWidget.html#FindLocationDialog.activate" />
       <keyword name="FindLocationWidget" id="FindLocationWidget" ref="eric7.UI.FindLocationWidget.html#FindLocationWidget" />
       <keyword name="FindLocationWidget (Constructor)" id="FindLocationWidget (Constructor)" ref="eric7.UI.FindLocationWidget.html#FindLocationWidget.__init__" />
       <keyword name="FindLocationWidget (Module)" id="FindLocationWidget (Module)" ref="eric7.UI.FindLocationWidget.html" />
@@ -7825,31 +7832,12 @@
       <keyword name="HgBackoutDialog (Module)" id="HgBackoutDialog (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html" />
       <keyword name="HgBackoutDialog.__updateOK" id="HgBackoutDialog.__updateOK" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html#HgBackoutDialog.__updateOK" />
       <keyword name="HgBackoutDialog.getParameters" id="HgBackoutDialog.getParameters" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html#HgBackoutDialog.getParameters" />
-      <keyword name="HgBackoutDialog.on_bookmarkButton_toggled" id="HgBackoutDialog.on_bookmarkButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html#HgBackoutDialog.on_bookmarkButton_toggled" />
-      <keyword name="HgBackoutDialog.on_bookmarkCombo_editTextChanged" id="HgBackoutDialog.on_bookmarkCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html#HgBackoutDialog.on_bookmarkCombo_editTextChanged" />
-      <keyword name="HgBackoutDialog.on_branchButton_toggled" id="HgBackoutDialog.on_branchButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html#HgBackoutDialog.on_branchButton_toggled" />
-      <keyword name="HgBackoutDialog.on_branchCombo_editTextChanged" id="HgBackoutDialog.on_branchCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html#HgBackoutDialog.on_branchCombo_editTextChanged" />
-      <keyword name="HgBackoutDialog.on_idButton_toggled" id="HgBackoutDialog.on_idButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html#HgBackoutDialog.on_idButton_toggled" />
-      <keyword name="HgBackoutDialog.on_idEdit_textChanged" id="HgBackoutDialog.on_idEdit_textChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html#HgBackoutDialog.on_idEdit_textChanged" />
-      <keyword name="HgBackoutDialog.on_noneButton_toggled" id="HgBackoutDialog.on_noneButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html#HgBackoutDialog.on_noneButton_toggled" />
-      <keyword name="HgBackoutDialog.on_tagButton_toggled" id="HgBackoutDialog.on_tagButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html#HgBackoutDialog.on_tagButton_toggled" />
-      <keyword name="HgBackoutDialog.on_tagCombo_editTextChanged" id="HgBackoutDialog.on_tagCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html#HgBackoutDialog.on_tagCombo_editTextChanged" />
       <keyword name="HgBookmarkDialog" id="HgBookmarkDialog" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog" />
       <keyword name="HgBookmarkDialog (Constructor)" id="HgBookmarkDialog (Constructor)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.__init__" />
       <keyword name="HgBookmarkDialog (Module)" id="HgBookmarkDialog (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html" />
       <keyword name="HgBookmarkDialog.__updateBookmarksCombo" id="HgBookmarkDialog.__updateBookmarksCombo" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.__updateBookmarksCombo" />
       <keyword name="HgBookmarkDialog.__updateOK" id="HgBookmarkDialog.__updateOK" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.__updateOK" />
       <keyword name="HgBookmarkDialog.getData" id="HgBookmarkDialog.getData" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.getData" />
-      <keyword name="HgBookmarkDialog.on_bookmarkButton_toggled" id="HgBookmarkDialog.on_bookmarkButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.on_bookmarkButton_toggled" />
-      <keyword name="HgBookmarkDialog.on_bookmarkCombo_editTextChanged" id="HgBookmarkDialog.on_bookmarkCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.on_bookmarkCombo_editTextChanged" />
-      <keyword name="HgBookmarkDialog.on_branchButton_toggled" id="HgBookmarkDialog.on_branchButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.on_branchButton_toggled" />
-      <keyword name="HgBookmarkDialog.on_branchCombo_editTextChanged" id="HgBookmarkDialog.on_branchCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.on_branchCombo_editTextChanged" />
-      <keyword name="HgBookmarkDialog.on_idButton_toggled" id="HgBookmarkDialog.on_idButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.on_idButton_toggled" />
-      <keyword name="HgBookmarkDialog.on_idEdit_textChanged" id="HgBookmarkDialog.on_idEdit_textChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.on_idEdit_textChanged" />
-      <keyword name="HgBookmarkDialog.on_nameCombo_activated" id="HgBookmarkDialog.on_nameCombo_activated" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.on_nameCombo_activated" />
-      <keyword name="HgBookmarkDialog.on_nameEdit_textChanged" id="HgBookmarkDialog.on_nameEdit_textChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.on_nameEdit_textChanged" />
-      <keyword name="HgBookmarkDialog.on_tagButton_toggled" id="HgBookmarkDialog.on_tagButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.on_tagButton_toggled" />
-      <keyword name="HgBookmarkDialog.on_tagCombo_editTextChanged" id="HgBookmarkDialog.on_tagCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html#HgBookmarkDialog.on_tagCombo_editTextChanged" />
       <keyword name="HgBookmarkRenameDialog" id="HgBookmarkRenameDialog" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkRenameDialog.html#HgBookmarkRenameDialog" />
       <keyword name="HgBookmarkRenameDialog (Constructor)" id="HgBookmarkRenameDialog (Constructor)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkRenameDialog.html#HgBookmarkRenameDialog.__init__" />
       <keyword name="HgBookmarkRenameDialog (Module)" id="HgBookmarkRenameDialog (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkRenameDialog.html" />
@@ -8049,14 +8037,6 @@
       <keyword name="HgGpgSignDialog (Module)" id="HgGpgSignDialog (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html" />
       <keyword name="HgGpgSignDialog.__updateOK" id="HgGpgSignDialog.__updateOK" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html#HgGpgSignDialog.__updateOK" />
       <keyword name="HgGpgSignDialog.getData" id="HgGpgSignDialog.getData" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html#HgGpgSignDialog.getData" />
-      <keyword name="HgGpgSignDialog.on_bookmarkButton_toggled" id="HgGpgSignDialog.on_bookmarkButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html#HgGpgSignDialog.on_bookmarkButton_toggled" />
-      <keyword name="HgGpgSignDialog.on_bookmarkCombo_editTextChanged" id="HgGpgSignDialog.on_bookmarkCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html#HgGpgSignDialog.on_bookmarkCombo_editTextChanged" />
-      <keyword name="HgGpgSignDialog.on_branchButton_toggled" id="HgGpgSignDialog.on_branchButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html#HgGpgSignDialog.on_branchButton_toggled" />
-      <keyword name="HgGpgSignDialog.on_branchCombo_editTextChanged" id="HgGpgSignDialog.on_branchCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html#HgGpgSignDialog.on_branchCombo_editTextChanged" />
-      <keyword name="HgGpgSignDialog.on_idButton_toggled" id="HgGpgSignDialog.on_idButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html#HgGpgSignDialog.on_idButton_toggled" />
-      <keyword name="HgGpgSignDialog.on_idEdit_textChanged" id="HgGpgSignDialog.on_idEdit_textChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html#HgGpgSignDialog.on_idEdit_textChanged" />
-      <keyword name="HgGpgSignDialog.on_tagButton_toggled" id="HgGpgSignDialog.on_tagButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html#HgGpgSignDialog.on_tagButton_toggled" />
-      <keyword name="HgGpgSignDialog.on_tagCombo_editTextChanged" id="HgGpgSignDialog.on_tagCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html#HgGpgSignDialog.on_tagCombo_editTextChanged" />
       <keyword name="HgGpgSignaturesDialog" id="HgGpgSignaturesDialog" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignaturesDialog.html#HgGpgSignaturesDialog" />
       <keyword name="HgGpgSignaturesDialog (Constructor)" id="HgGpgSignaturesDialog (Constructor)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignaturesDialog.html#HgGpgSignaturesDialog.__init__" />
       <keyword name="HgGpgSignaturesDialog (Module)" id="HgGpgSignaturesDialog (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignaturesDialog.html" />
@@ -8096,18 +8076,6 @@
       <keyword name="HgHisteditConfigDialog.__getRevision" id="HgHisteditConfigDialog.__getRevision" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.__getRevision" />
       <keyword name="HgHisteditConfigDialog.__updateOK" id="HgHisteditConfigDialog.__updateOK" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.__updateOK" />
       <keyword name="HgHisteditConfigDialog.getData" id="HgHisteditConfigDialog.getData" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.getData" />
-      <keyword name="HgHisteditConfigDialog.on_bookmarkButton_toggled" id="HgHisteditConfigDialog.on_bookmarkButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.on_bookmarkButton_toggled" />
-      <keyword name="HgHisteditConfigDialog.on_bookmarkCombo_editTextChanged" id="HgHisteditConfigDialog.on_bookmarkCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.on_bookmarkCombo_editTextChanged" />
-      <keyword name="HgHisteditConfigDialog.on_branch1Button_toggled" id="HgHisteditConfigDialog.on_branch1Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.on_branch1Button_toggled" />
-      <keyword name="HgHisteditConfigDialog.on_branchCombo_editTextChanged" id="HgHisteditConfigDialog.on_branchCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.on_branchCombo_editTextChanged" />
-      <keyword name="HgHisteditConfigDialog.on_defaultButton_toggled" id="HgHisteditConfigDialog.on_defaultButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.on_defaultButton_toggled" />
-      <keyword name="HgHisteditConfigDialog.on_idButton_toggled" id="HgHisteditConfigDialog.on_idButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.on_idButton_toggled" />
-      <keyword name="HgHisteditConfigDialog.on_idEdit_textChanged" id="HgHisteditConfigDialog.on_idEdit_textChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.on_idEdit_textChanged" />
-      <keyword name="HgHisteditConfigDialog.on_numberSpinBox_valueChanged" id="HgHisteditConfigDialog.on_numberSpinBox_valueChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.on_numberSpinBox_valueChanged" />
-      <keyword name="HgHisteditConfigDialog.on_outgoingButton_toggled" id="HgHisteditConfigDialog.on_outgoingButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.on_outgoingButton_toggled" />
-      <keyword name="HgHisteditConfigDialog.on_revisionButton_toggled" id="HgHisteditConfigDialog.on_revisionButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.on_revisionButton_toggled" />
-      <keyword name="HgHisteditConfigDialog.on_tagButton_toggled" id="HgHisteditConfigDialog.on_tagButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.on_tagButton_toggled" />
-      <keyword name="HgHisteditConfigDialog.on_tagCombo_editTextChanged" id="HgHisteditConfigDialog.on_tagCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html#HgHisteditConfigDialog.on_tagCombo_editTextChanged" />
       <keyword name="HgHisteditEditor (Module)" id="HgHisteditEditor (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditEditor.html" />
       <keyword name="HgHisteditPlanActionComboBox" id="HgHisteditPlanActionComboBox" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditPlanEditor.html#HgHisteditPlanActionComboBox" />
       <keyword name="HgHisteditPlanActionComboBox (Constructor)" id="HgHisteditPlanActionComboBox (Constructor)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditPlanEditor.html#HgHisteditPlanActionComboBox.__init__" />
@@ -8220,14 +8188,6 @@
       <keyword name="HgMergeDialog (Module)" id="HgMergeDialog (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html" />
       <keyword name="HgMergeDialog.__updateOK" id="HgMergeDialog.__updateOK" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog.__updateOK" />
       <keyword name="HgMergeDialog.getParameters" id="HgMergeDialog.getParameters" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog.getParameters" />
-      <keyword name="HgMergeDialog.on_bookmarkButton_toggled" id="HgMergeDialog.on_bookmarkButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog.on_bookmarkButton_toggled" />
-      <keyword name="HgMergeDialog.on_bookmarkCombo_editTextChanged" id="HgMergeDialog.on_bookmarkCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog.on_bookmarkCombo_editTextChanged" />
-      <keyword name="HgMergeDialog.on_branchButton_toggled" id="HgMergeDialog.on_branchButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog.on_branchButton_toggled" />
-      <keyword name="HgMergeDialog.on_branchCombo_editTextChanged" id="HgMergeDialog.on_branchCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog.on_branchCombo_editTextChanged" />
-      <keyword name="HgMergeDialog.on_idButton_toggled" id="HgMergeDialog.on_idButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog.on_idButton_toggled" />
-      <keyword name="HgMergeDialog.on_idEdit_textChanged" id="HgMergeDialog.on_idEdit_textChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog.on_idEdit_textChanged" />
-      <keyword name="HgMergeDialog.on_tagButton_toggled" id="HgMergeDialog.on_tagButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog.on_tagButton_toggled" />
-      <keyword name="HgMergeDialog.on_tagCombo_editTextChanged" id="HgMergeDialog.on_tagCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog.on_tagCombo_editTextChanged" />
       <keyword name="HgNewProjectOptionsDialog" id="HgNewProjectOptionsDialog" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html#HgNewProjectOptionsDialog" />
       <keyword name="HgNewProjectOptionsDialog (Constructor)" id="HgNewProjectOptionsDialog (Constructor)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html#HgNewProjectOptionsDialog.__init__" />
       <keyword name="HgNewProjectOptionsDialog (Module)" id="HgNewProjectOptionsDialog (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html" />
@@ -8448,22 +8408,6 @@
       <keyword name="HgRebaseDialog.__getRevision" id="HgRebaseDialog.__getRevision" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.__getRevision" />
       <keyword name="HgRebaseDialog.__updateOK" id="HgRebaseDialog.__updateOK" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.__updateOK" />
       <keyword name="HgRebaseDialog.getData" id="HgRebaseDialog.getData" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.getData" />
-      <keyword name="HgRebaseDialog.on_bookmark1Button_toggled" id="HgRebaseDialog.on_bookmark1Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_bookmark1Button_toggled" />
-      <keyword name="HgRebaseDialog.on_bookmark1Combo_editTextChanged" id="HgRebaseDialog.on_bookmark1Combo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_bookmark1Combo_editTextChanged" />
-      <keyword name="HgRebaseDialog.on_bookmark2Button_toggled" id="HgRebaseDialog.on_bookmark2Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_bookmark2Button_toggled" />
-      <keyword name="HgRebaseDialog.on_bookmark2Combo_editTextChanged" id="HgRebaseDialog.on_bookmark2Combo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_bookmark2Combo_editTextChanged" />
-      <keyword name="HgRebaseDialog.on_branch1Button_toggled" id="HgRebaseDialog.on_branch1Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_branch1Button_toggled" />
-      <keyword name="HgRebaseDialog.on_branch1Combo_editTextChanged" id="HgRebaseDialog.on_branch1Combo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_branch1Combo_editTextChanged" />
-      <keyword name="HgRebaseDialog.on_branch2Button_toggled" id="HgRebaseDialog.on_branch2Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_branch2Button_toggled" />
-      <keyword name="HgRebaseDialog.on_branch2Combo_editTextChanged" id="HgRebaseDialog.on_branch2Combo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_branch2Combo_editTextChanged" />
-      <keyword name="HgRebaseDialog.on_id1Button_toggled" id="HgRebaseDialog.on_id1Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_id1Button_toggled" />
-      <keyword name="HgRebaseDialog.on_id1Edit_textChanged" id="HgRebaseDialog.on_id1Edit_textChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_id1Edit_textChanged" />
-      <keyword name="HgRebaseDialog.on_id2Button_toggled" id="HgRebaseDialog.on_id2Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_id2Button_toggled" />
-      <keyword name="HgRebaseDialog.on_id2Edit_textChanged" id="HgRebaseDialog.on_id2Edit_textChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_id2Edit_textChanged" />
-      <keyword name="HgRebaseDialog.on_tag1Button_toggled" id="HgRebaseDialog.on_tag1Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_tag1Button_toggled" />
-      <keyword name="HgRebaseDialog.on_tag1Combo_editTextChanged" id="HgRebaseDialog.on_tag1Combo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_tag1Combo_editTextChanged" />
-      <keyword name="HgRebaseDialog.on_tag2Button_toggled" id="HgRebaseDialog.on_tag2Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_tag2Button_toggled" />
-      <keyword name="HgRebaseDialog.on_tag2Combo_editTextChanged" id="HgRebaseDialog.on_tag2Combo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html#HgRebaseDialog.on_tag2Combo_editTextChanged" />
       <keyword name="HgRemoveSubrepositoriesDialog" id="HgRemoveSubrepositoriesDialog" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRemoveSubrepositoriesDialog.html#HgRemoveSubrepositoriesDialog" />
       <keyword name="HgRemoveSubrepositoriesDialog (Constructor)" id="HgRemoveSubrepositoriesDialog (Constructor)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRemoveSubrepositoriesDialog.html#HgRemoveSubrepositoriesDialog.__init__" />
       <keyword name="HgRemoveSubrepositoriesDialog (Module)" id="HgRemoveSubrepositoriesDialog (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRemoveSubrepositoriesDialog.html" />
@@ -8482,36 +8426,12 @@
       <keyword name="HgRevisionSelectionDialog (Module)" id="HgRevisionSelectionDialog (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html" />
       <keyword name="HgRevisionSelectionDialog.__updateOK" id="HgRevisionSelectionDialog.__updateOK" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog.__updateOK" />
       <keyword name="HgRevisionSelectionDialog.getRevision" id="HgRevisionSelectionDialog.getRevision" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog.getRevision" />
-      <keyword name="HgRevisionSelectionDialog.on_bookmarkButton_toggled" id="HgRevisionSelectionDialog.on_bookmarkButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog.on_bookmarkButton_toggled" />
-      <keyword name="HgRevisionSelectionDialog.on_bookmarkCombo_editTextChanged" id="HgRevisionSelectionDialog.on_bookmarkCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog.on_bookmarkCombo_editTextChanged" />
-      <keyword name="HgRevisionSelectionDialog.on_branchButton_toggled" id="HgRevisionSelectionDialog.on_branchButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog.on_branchButton_toggled" />
-      <keyword name="HgRevisionSelectionDialog.on_branchCombo_editTextChanged" id="HgRevisionSelectionDialog.on_branchCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog.on_branchCombo_editTextChanged" />
-      <keyword name="HgRevisionSelectionDialog.on_idButton_toggled" id="HgRevisionSelectionDialog.on_idButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog.on_idButton_toggled" />
-      <keyword name="HgRevisionSelectionDialog.on_idEdit_textChanged" id="HgRevisionSelectionDialog.on_idEdit_textChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog.on_idEdit_textChanged" />
-      <keyword name="HgRevisionSelectionDialog.on_tagButton_toggled" id="HgRevisionSelectionDialog.on_tagButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog.on_tagButton_toggled" />
-      <keyword name="HgRevisionSelectionDialog.on_tagCombo_editTextChanged" id="HgRevisionSelectionDialog.on_tagCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog.on_tagCombo_editTextChanged" />
       <keyword name="HgRevisionsSelectionDialog" id="HgRevisionsSelectionDialog" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog" />
       <keyword name="HgRevisionsSelectionDialog (Constructor)" id="HgRevisionsSelectionDialog (Constructor)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.__init__" />
       <keyword name="HgRevisionsSelectionDialog (Module)" id="HgRevisionsSelectionDialog (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html" />
       <keyword name="HgRevisionsSelectionDialog.__getRevision" id="HgRevisionsSelectionDialog.__getRevision" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.__getRevision" />
       <keyword name="HgRevisionsSelectionDialog.__updateOK" id="HgRevisionsSelectionDialog.__updateOK" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.__updateOK" />
       <keyword name="HgRevisionsSelectionDialog.getRevisions" id="HgRevisionsSelectionDialog.getRevisions" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.getRevisions" />
-      <keyword name="HgRevisionsSelectionDialog.on_bookmark1Button_toggled" id="HgRevisionsSelectionDialog.on_bookmark1Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_bookmark1Button_toggled" />
-      <keyword name="HgRevisionsSelectionDialog.on_bookmark1Combo_editTextChanged" id="HgRevisionsSelectionDialog.on_bookmark1Combo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_bookmark1Combo_editTextChanged" />
-      <keyword name="HgRevisionsSelectionDialog.on_bookmark2Button_toggled" id="HgRevisionsSelectionDialog.on_bookmark2Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_bookmark2Button_toggled" />
-      <keyword name="HgRevisionsSelectionDialog.on_bookmark2Combo_editTextChanged" id="HgRevisionsSelectionDialog.on_bookmark2Combo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_bookmark2Combo_editTextChanged" />
-      <keyword name="HgRevisionsSelectionDialog.on_branch1Button_toggled" id="HgRevisionsSelectionDialog.on_branch1Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_branch1Button_toggled" />
-      <keyword name="HgRevisionsSelectionDialog.on_branch1Combo_editTextChanged" id="HgRevisionsSelectionDialog.on_branch1Combo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_branch1Combo_editTextChanged" />
-      <keyword name="HgRevisionsSelectionDialog.on_branch2Button_toggled" id="HgRevisionsSelectionDialog.on_branch2Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_branch2Button_toggled" />
-      <keyword name="HgRevisionsSelectionDialog.on_branch2Combo_editTextChanged" id="HgRevisionsSelectionDialog.on_branch2Combo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_branch2Combo_editTextChanged" />
-      <keyword name="HgRevisionsSelectionDialog.on_id1Button_toggled" id="HgRevisionsSelectionDialog.on_id1Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_id1Button_toggled" />
-      <keyword name="HgRevisionsSelectionDialog.on_id1Edit_textChanged" id="HgRevisionsSelectionDialog.on_id1Edit_textChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_id1Edit_textChanged" />
-      <keyword name="HgRevisionsSelectionDialog.on_id2Button_toggled" id="HgRevisionsSelectionDialog.on_id2Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_id2Button_toggled" />
-      <keyword name="HgRevisionsSelectionDialog.on_id2Edit_textChanged" id="HgRevisionsSelectionDialog.on_id2Edit_textChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_id2Edit_textChanged" />
-      <keyword name="HgRevisionsSelectionDialog.on_tag1Button_toggled" id="HgRevisionsSelectionDialog.on_tag1Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_tag1Button_toggled" />
-      <keyword name="HgRevisionsSelectionDialog.on_tag1Combo_editTextChanged" id="HgRevisionsSelectionDialog.on_tag1Combo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_tag1Combo_editTextChanged" />
-      <keyword name="HgRevisionsSelectionDialog.on_tag2Button_toggled" id="HgRevisionsSelectionDialog.on_tag2Button_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_tag2Button_toggled" />
-      <keyword name="HgRevisionsSelectionDialog.on_tag2Combo_editTextChanged" id="HgRevisionsSelectionDialog.on_tag2Combo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.on_tag2Combo_editTextChanged" />
       <keyword name="HgServeDialog" id="HgServeDialog" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgServeDialog.html#HgServeDialog" />
       <keyword name="HgServeDialog (Constructor)" id="HgServeDialog (Constructor)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgServeDialog.html#HgServeDialog.__init__" />
       <keyword name="HgServeDialog (Module)" id="HgServeDialog (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgServeDialog.html" />
@@ -8605,14 +8525,6 @@
       <keyword name="HgStripDialog.__getRevision" id="HgStripDialog.__getRevision" ref="eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html#HgStripDialog.__getRevision" />
       <keyword name="HgStripDialog.__updateOK" id="HgStripDialog.__updateOK" ref="eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html#HgStripDialog.__updateOK" />
       <keyword name="HgStripDialog.getData" id="HgStripDialog.getData" ref="eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html#HgStripDialog.getData" />
-      <keyword name="HgStripDialog.on_branchButton_toggled" id="HgStripDialog.on_branchButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html#HgStripDialog.on_branchButton_toggled" />
-      <keyword name="HgStripDialog.on_branchCombo_editTextChanged" id="HgStripDialog.on_branchCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html#HgStripDialog.on_branchCombo_editTextChanged" />
-      <keyword name="HgStripDialog.on_idButton_toggled" id="HgStripDialog.on_idButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html#HgStripDialog.on_idButton_toggled" />
-      <keyword name="HgStripDialog.on_idEdit_textChanged" id="HgStripDialog.on_idEdit_textChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html#HgStripDialog.on_idEdit_textChanged" />
-      <keyword name="HgStripDialog.on_numberButton_toggled" id="HgStripDialog.on_numberButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html#HgStripDialog.on_numberButton_toggled" />
-      <keyword name="HgStripDialog.on_numberSpinBox_valueChanged" id="HgStripDialog.on_numberSpinBox_valueChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html#HgStripDialog.on_numberSpinBox_valueChanged" />
-      <keyword name="HgStripDialog.on_tagButton_toggled" id="HgStripDialog.on_tagButton_toggled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html#HgStripDialog.on_tagButton_toggled" />
-      <keyword name="HgStripDialog.on_tagCombo_editTextChanged" id="HgStripDialog.on_tagCombo_editTextChanged" ref="eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html#HgStripDialog.on_tagCombo_editTextChanged" />
       <keyword name="HgSummaryDialog" id="HgSummaryDialog" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgSummaryDialog.html#HgSummaryDialog" />
       <keyword name="HgSummaryDialog (Constructor)" id="HgSummaryDialog (Constructor)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgSummaryDialog.html#HgSummaryDialog.__init__" />
       <keyword name="HgSummaryDialog (Module)" id="HgSummaryDialog (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.HgSummaryDialog.html" />
@@ -11411,6 +11323,7 @@
       <keyword name="PipLicensesDialog (Constructor)" id="PipLicensesDialog (Constructor)" ref="eric7.PipInterface.PipLicensesDialog.html#PipLicensesDialog.__init__" />
       <keyword name="PipLicensesDialog (Module)" id="PipLicensesDialog (Module)" ref="eric7.PipInterface.PipLicensesDialog.html" />
       <keyword name="PipLicensesDialog.__refreshLicenses" id="PipLicensesDialog.__refreshLicenses" ref="eric7.PipInterface.PipLicensesDialog.html#PipLicensesDialog.__refreshLicenses" />
+      <keyword name="PipLicensesDialog.__saveAsCSV" id="PipLicensesDialog.__saveAsCSV" ref="eric7.PipInterface.PipLicensesDialog.html#PipLicensesDialog.__saveAsCSV" />
       <keyword name="PipPackageDetailsDialog" id="PipPackageDetailsDialog" ref="eric7.PipInterface.PipPackageDetailsDialog.html#PipPackageDetailsDialog" />
       <keyword name="PipPackageDetailsDialog (Constructor)" id="PipPackageDetailsDialog (Constructor)" ref="eric7.PipInterface.PipPackageDetailsDialog.html#PipPackageDetailsDialog.__init__" />
       <keyword name="PipPackageDetailsDialog (Module)" id="PipPackageDetailsDialog (Module)" ref="eric7.PipInterface.PipPackageDetailsDialog.html" />
@@ -11628,6 +11541,7 @@
       <keyword name="PluginManager.deactivatePlugin" id="PluginManager.deactivatePlugin" ref="eric7.PluginManager.PluginManager.html#PluginManager.deactivatePlugin" />
       <keyword name="PluginManager.deactivateVcsPlugins" id="PluginManager.deactivateVcsPlugins" ref="eric7.PluginManager.PluginManager.html#PluginManager.deactivateVcsPlugins" />
       <keyword name="PluginManager.doShutdown" id="PluginManager.doShutdown" ref="eric7.PluginManager.PluginManager.html#PluginManager.doShutdown" />
+      <keyword name="PluginManager.downLoadRepositoryFile" id="PluginManager.downLoadRepositoryFile" ref="eric7.PluginManager.PluginManager.html#PluginManager.downLoadRepositoryFile" />
       <keyword name="PluginManager.finalizeSetup" id="PluginManager.finalizeSetup" ref="eric7.PluginManager.PluginManager.html#PluginManager.finalizeSetup" />
       <keyword name="PluginManager.getPluginApiFiles" id="PluginManager.getPluginApiFiles" ref="eric7.PluginManager.PluginManager.html#PluginManager.getPluginApiFiles" />
       <keyword name="PluginManager.getPluginConfigData" id="PluginManager.getPluginConfigData" ref="eric7.PluginManager.PluginManager.html#PluginManager.getPluginConfigData" />
@@ -11702,6 +11616,7 @@
       <keyword name="PluginRepositoryWidget.__showAllPlugins" id="PluginRepositoryWidget.__showAllPlugins" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__showAllPlugins" />
       <keyword name="PluginRepositoryWidget.__sslErrors" id="PluginRepositoryWidget.__sslErrors" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__sslErrors" />
       <keyword name="PluginRepositoryWidget.__updateHiddenPluginsList" id="PluginRepositoryWidget.__updateHiddenPluginsList" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__updateHiddenPluginsList" />
+      <keyword name="PluginRepositoryWidget.__updateList" id="PluginRepositoryWidget.__updateList" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__updateList" />
       <keyword name="PluginRepositoryWidget.__updateStatus" id="PluginRepositoryWidget.__updateStatus" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__updateStatus" />
       <keyword name="PluginRepositoryWidget.addEntry" id="PluginRepositoryWidget.addEntry" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.addEntry" />
       <keyword name="PluginRepositoryWidget.getDownloadedPlugins" id="PluginRepositoryWidget.getDownloadedPlugins" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.getDownloadedPlugins" />
@@ -11710,7 +11625,7 @@
       <keyword name="PluginRepositoryWidget.on_repositoryList_customContextMenuRequested" id="PluginRepositoryWidget.on_repositoryList_customContextMenuRequested" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.on_repositoryList_customContextMenuRequested" />
       <keyword name="PluginRepositoryWidget.on_repositoryList_itemSelectionChanged" id="PluginRepositoryWidget.on_repositoryList_itemSelectionChanged" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.on_repositoryList_itemSelectionChanged" />
       <keyword name="PluginRepositoryWidget.on_repositoryUrlEditButton_toggled" id="PluginRepositoryWidget.on_repositoryUrlEditButton_toggled" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.on_repositoryUrlEditButton_toggled" />
-      <keyword name="PluginRepositoryWidget.updateList" id="PluginRepositoryWidget.updateList" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.updateList" />
+      <keyword name="PluginRepositoryWidget.reloadList" id="PluginRepositoryWidget.reloadList" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.reloadList" />
       <keyword name="PluginRepositoryWindow" id="PluginRepositoryWindow" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWindow" />
       <keyword name="PluginRepositoryWindow (Constructor)" id="PluginRepositoryWindow (Constructor)" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWindow.__init__" />
       <keyword name="PluginRepositoryWindow.__startPluginInstall" id="PluginRepositoryWindow.__startPluginInstall" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWindow.__startPluginInstall" />
@@ -18637,6 +18552,7 @@
       <keyword name="getPyQt6ModulesDirectory" id="getPyQt6ModulesDirectory" ref="eric7.Globals.__init__.html#getPyQt6ModulesDirectory" />
       <keyword name="getPyQtToolsPath" id="getPyQtToolsPath" ref="eric7.Globals.__init__.html#getPyQtToolsPath" />
       <keyword name="getPython" id="getPython" ref="eric7.Preferences.__init__.html#getPython" />
+      <keyword name="getPythonExecutable" id="getPythonExecutable" ref="eric7.Globals.__init__.html#getPythonExecutable" />
       <keyword name="getPythonLibPath" id="getPythonLibPath" ref="eric7.Utilities.__init__.html#getPythonLibPath" />
       <keyword name="getPythonLibraryDirectory" id="getPythonLibraryDirectory" ref="eric7.Globals.__init__.html#getPythonLibraryDirectory" />
       <keyword name="getPythonVersion" id="getPythonVersion" ref="eric7.Utilities.__init__.html#getPythonVersion" />
--- a/eric7/Documentation/Source/eric7.EricWidgets.EricPathPicker.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.EricWidgets.EricPathPicker.html	Mon May 02 15:52:33 2022 +0200
@@ -317,6 +317,10 @@
 <td>Public slot to set the current index.</td>
 </tr>
 <tr>
+<td><a href="#EricPathPickerBase.setCurrentText">setCurrentText</a></td>
+<td>Public slot to set the current text.</td>
+</tr>
+<tr>
 <td><a href="#EricPathPickerBase.setDefaultDirectory">setDefaultDirectory</a></td>
 <td>Public method to set the default directory.</td>
 </tr>
@@ -820,6 +824,20 @@
 index of the item to set current
 </dd>
 </dl>
+<a NAME="EricPathPickerBase.setCurrentText" ID="EricPathPickerBase.setCurrentText"></a>
+<h4>EricPathPickerBase.setCurrentText</h4>
+<b>setCurrentText</b>(<i>text</i>)
+
+<p>
+        Public slot to set the current text.
+</p>
+<dl>
+
+<dt><i>text</i> (str)</dt>
+<dd>
+text of the item to set current
+</dd>
+</dl>
 <a NAME="EricPathPickerBase.setDefaultDirectory" ID="EricPathPickerBase.setDefaultDirectory"></a>
 <h4>EricPathPickerBase.setDefaultDirectory</h4>
 <b>setDefaultDirectory</b>(<i>directory</i>)
--- a/eric7/Documentation/Source/eric7.Globals.__init__.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Globals.__init__.html	Mon May 02 15:52:33 2022 +0200
@@ -50,6 +50,10 @@
 <td>Module function to get the path of the PyQt tools.</td>
 </tr>
 <tr>
+<td><a href="#getPythonExecutable">getPythonExecutable</a></td>
+<td>Function to determine the path of the (non-windowed) Python executable.</td>
+</tr>
+<tr>
 <td><a href="#getPythonLibraryDirectory">getPythonLibraryDirectory</a></td>
 <td>Function to determine the path to Python's library directory.</td>
 </tr>
@@ -275,6 +279,28 @@
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
+<a NAME="getPythonExecutable" ID="getPythonExecutable"></a>
+<h2>getPythonExecutable</h2>
+<b>getPythonExecutable</b>(<i></i>)
+
+<p>
+    Function to determine the path of the (non-windowed) Python executable.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+path of the Python executable
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
 <a NAME="getPythonLibraryDirectory" ID="getPythonLibraryDirectory"></a>
 <h2>getPythonLibraryDirectory</h2>
 <b>getPythonLibraryDirectory</b>(<i></i>)
--- a/eric7/Documentation/Source/eric7.PipInterface.PipLicensesDialog.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.PipInterface.PipLicensesDialog.html	Mon May 02 15:52:33 2022 +0200
@@ -62,6 +62,10 @@
 <td><a href="#PipLicensesDialog.__refreshLicenses">__refreshLicenses</a></td>
 <td>Private slot to refresh the license lists.</td>
 </tr>
+<tr>
+<td><a href="#PipLicensesDialog.__saveAsCSV">__saveAsCSV</a></td>
+<td>Private slot to save the license information as a CSV file.</td>
+</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -108,6 +112,13 @@
 <p>
         Private slot to refresh the license lists.
 </p>
+<a NAME="PipLicensesDialog.__saveAsCSV" ID="PipLicensesDialog.__saveAsCSV"></a>
+<h4>PipLicensesDialog.__saveAsCSV</h4>
+<b>__saveAsCSV</b>(<i></i>)
+
+<p>
+        Private slot to save the license information as a CSV file.
+</p>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/eric7/Documentation/Source/eric7.PluginManager.PluginManager.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.PluginManager.PluginManager.html	Mon May 02 15:52:33 2022 +0200
@@ -66,6 +66,11 @@
 emitted just after
         a plugin was deactivated
 </dd>
+<dt>pluginRepositoryFileDownloaded()</dt>
+<dd>
+emitted to indicate a completed
+        download of the plugin repository file
+</dd>
 <dt>shutdown()</dt>
 <dd>
 emitted at shutdown of the IDE
@@ -164,6 +169,10 @@
 <td>Public method called to perform actions upon shutdown of the IDE.</td>
 </tr>
 <tr>
+<td><a href="#PluginManager.downLoadRepositoryFile">downLoadRepositoryFile</a></td>
+<td>Public method to download the plugin repository file.</td>
+</tr>
+<tr>
 <td><a href="#PluginManager.finalizeSetup">finalizeSetup</a></td>
 <td>Public method to finalize the setup of the plugin manager.</td>
 </tr>
@@ -627,6 +636,21 @@
 <p>
         Public method called to perform actions upon shutdown of the IDE.
 </p>
+<a NAME="PluginManager.downLoadRepositoryFile" ID="PluginManager.downLoadRepositoryFile"></a>
+<h4>PluginManager.downLoadRepositoryFile</h4>
+<b>downLoadRepositoryFile</b>(<i>url=None</i>)
+
+<p>
+        Public method to download the plugin repository file.
+</p>
+<dl>
+
+<dt><i>url</i> (QUrl or str (optional))</dt>
+<dd>
+URL to get the plugin repository file from
+            (defaults to None)
+</dd>
+</dl>
 <a NAME="PluginManager.finalizeSetup" ID="PluginManager.finalizeSetup"></a>
 <h4>PluginManager.finalizeSetup</h4>
 <b>finalizeSetup</b>(<i></i>)
--- a/eric7/Documentation/Source/eric7.PluginManager.PluginRepositoryDialog.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.PluginManager.PluginRepositoryDialog.html	Mon May 02 15:52:33 2022 +0200
@@ -266,6 +266,10 @@
 <td>Private method to store the list of hidden plug-ins to the settings.</td>
 </tr>
 <tr>
+<td><a href="#PluginRepositoryWidget.__updateList">__updateList</a></td>
+<td>Private slot to download a new list and display the contents.</td>
+</tr>
+<tr>
 <td><a href="#PluginRepositoryWidget.__updateStatus">__updateStatus</a></td>
 <td>Private method to check the given archive update status.</td>
 </tr>
@@ -298,8 +302,8 @@
 <td>Private slot to set the read only status of the repository URL line edit.</td>
 </tr>
 <tr>
-<td><a href="#PluginRepositoryWidget.updateList">updateList</a></td>
-<td>Public slot to download a new list and display the contents.</td>
+<td><a href="#PluginRepositoryWidget.reloadList">reloadList</a></td>
+<td>Public method to reload the list of plugins.</td>
 </tr>
 </table>
 <h3>Static Methods</h3>
@@ -650,6 +654,13 @@
             (list of string)
 </dd>
 </dl>
+<a NAME="PluginRepositoryWidget.__updateList" ID="PluginRepositoryWidget.__updateList"></a>
+<h4>PluginRepositoryWidget.__updateList</h4>
+<b>__updateList</b>(<i></i>)
+
+<p>
+        Private slot to download a new list and display the contents.
+</p>
 <a NAME="PluginRepositoryWidget.__updateStatus" ID="PluginRepositoryWidget.__updateStatus"></a>
 <h4>PluginRepositoryWidget.__updateStatus</h4>
 <b>__updateStatus</b>(<i>filename, version</i>)
@@ -799,12 +810,12 @@
 state of the push button (boolean)
 </dd>
 </dl>
-<a NAME="PluginRepositoryWidget.updateList" ID="PluginRepositoryWidget.updateList"></a>
-<h4>PluginRepositoryWidget.updateList</h4>
-<b>updateList</b>(<i></i>)
+<a NAME="PluginRepositoryWidget.reloadList" ID="PluginRepositoryWidget.reloadList"></a>
+<h4>PluginRepositoryWidget.reloadList</h4>
+<b>reloadList</b>(<i></i>)
 
 <p>
-        Public slot to download a new list and display the contents.
+        Public method to reload the list of plugins.
 </p>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
--- a/eric7/Documentation/Source/eric7.Plugins.DocumentationPlugins.Ericapi.EricapiConfigDialog.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.DocumentationPlugins.Ericapi.EricapiConfigDialog.html	Mon May 02 15:52:33 2022 +0200
@@ -68,7 +68,7 @@
 </tr>
 <tr>
 <td><a href="#EricapiConfigDialog.generateParameters">generateParameters</a></td>
-<td>Public method that generates the commandline parameters.</td>
+<td>Public method that generates the command line parameters.</td>
 </tr>
 <tr>
 <td><a href="#EricapiConfigDialog.on_addButton_clicked">on_addButton_clicked</a></td>
@@ -149,7 +149,7 @@
 <b>generateParameters</b>(<i></i>)
 
 <p>
-        Public method that generates the commandline parameters.
+        Public method that generates the command line parameters.
 </p>
 <p>
         It generates a list of strings to be used
--- a/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.html	Mon May 02 15:52:33 2022 +0200
@@ -66,38 +66,6 @@
 <td><a href="#HgGpgSignDialog.getData">getData</a></td>
 <td>Public method to retrieve the entered data.</td>
 </tr>
-<tr>
-<td><a href="#HgGpgSignDialog.on_bookmarkButton_toggled">on_bookmarkButton_toggled</a></td>
-<td>Private slot to handle changes of the Bookmark select button.</td>
-</tr>
-<tr>
-<td><a href="#HgGpgSignDialog.on_bookmarkCombo_editTextChanged">on_bookmarkCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Bookmark combo.</td>
-</tr>
-<tr>
-<td><a href="#HgGpgSignDialog.on_branchButton_toggled">on_branchButton_toggled</a></td>
-<td>Private slot to handle changes of the Branch select button.</td>
-</tr>
-<tr>
-<td><a href="#HgGpgSignDialog.on_branchCombo_editTextChanged">on_branchCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Branch combo.</td>
-</tr>
-<tr>
-<td><a href="#HgGpgSignDialog.on_idButton_toggled">on_idButton_toggled</a></td>
-<td>Private slot to handle changes of the ID select button.</td>
-</tr>
-<tr>
-<td><a href="#HgGpgSignDialog.on_idEdit_textChanged">on_idEdit_textChanged</a></td>
-<td>Private slot to handle changes of the ID edit.</td>
-</tr>
-<tr>
-<td><a href="#HgGpgSignDialog.on_tagButton_toggled">on_tagButton_toggled</a></td>
-<td>Private slot to handle changes of the Tag select button.</td>
-</tr>
-<tr>
-<td><a href="#HgGpgSignDialog.on_tagCombo_editTextChanged">on_tagCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Tag combo.</td>
-</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -114,21 +82,21 @@
 </p>
 <dl>
 
-<dt><i>tagsList</i></dt>
+<dt><i>tagsList</i> (list of str)</dt>
 <dd>
-list of tags (list of strings)
+list of tags
 </dd>
-<dt><i>branchesList</i></dt>
+<dt><i>branchesList</i> (list of str)</dt>
 <dd>
-list of branches (list of strings)
+list of branches
 </dd>
-<dt><i>bookmarksList</i></dt>
+<dt><i>bookmarksList</i> (list of str)</dt>
 <dd>
-list of bookmarks (list of strings)
+list of bookmarks
 </dd>
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
+parent widget
 </dd>
 </dl>
 <a NAME="HgGpgSignDialog.__updateOK" ID="HgGpgSignDialog.__updateOK"></a>
@@ -151,119 +119,13 @@
 tuple giving the revision, a flag indicating not to commit
             the signature, a commit message, an ID of the key to be used,
             a flag indicating a local signature and a flag indicating a forced
-            signature (string, boolean, string, string, boolean, boolean)
-</dd>
-</dl>
-<a NAME="HgGpgSignDialog.on_bookmarkButton_toggled" ID="HgGpgSignDialog.on_bookmarkButton_toggled"></a>
-<h4>HgGpgSignDialog.on_bookmarkButton_toggled</h4>
-<b>on_bookmarkButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgGpgSignDialog.on_bookmarkCombo_editTextChanged" ID="HgGpgSignDialog.on_bookmarkCombo_editTextChanged"></a>
-<h4>HgGpgSignDialog.on_bookmarkCombo_editTextChanged</h4>
-<b>on_bookmarkCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgGpgSignDialog.on_branchButton_toggled" ID="HgGpgSignDialog.on_branchButton_toggled"></a>
-<h4>HgGpgSignDialog.on_branchButton_toggled</h4>
-<b>on_branchButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Branch select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
+            signature
 </dd>
 </dl>
-<a NAME="HgGpgSignDialog.on_branchCombo_editTextChanged" ID="HgGpgSignDialog.on_branchCombo_editTextChanged"></a>
-<h4>HgGpgSignDialog.on_branchCombo_editTextChanged</h4>
-<b>on_branchCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Branch combo.
-</p>
 <dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgGpgSignDialog.on_idButton_toggled" ID="HgGpgSignDialog.on_idButton_toggled"></a>
-<h4>HgGpgSignDialog.on_idButton_toggled</h4>
-<b>on_idButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the ID select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
+<dt>Return Type:</dt>
 <dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgGpgSignDialog.on_idEdit_textChanged" ID="HgGpgSignDialog.on_idEdit_textChanged"></a>
-<h4>HgGpgSignDialog.on_idEdit_textChanged</h4>
-<b>on_idEdit_textChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the ID edit.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the edit (string)
-</dd>
-</dl>
-<a NAME="HgGpgSignDialog.on_tagButton_toggled" ID="HgGpgSignDialog.on_tagButton_toggled"></a>
-<h4>HgGpgSignDialog.on_tagButton_toggled</h4>
-<b>on_tagButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Tag select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgGpgSignDialog.on_tagCombo_editTextChanged" ID="HgGpgSignDialog.on_tagCombo_editTextChanged"></a>
-<h4>HgGpgSignDialog.on_tagCombo_editTextChanged</h4>
-<b>on_tagCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Tag combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
+tuple of (str, bool, str, str, bool, bool)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.HgBackoutDialog.html	Mon May 02 15:52:33 2022 +0200
@@ -66,42 +66,6 @@
 <td><a href="#HgBackoutDialog.getParameters">getParameters</a></td>
 <td>Public method to retrieve the backout data.</td>
 </tr>
-<tr>
-<td><a href="#HgBackoutDialog.on_bookmarkButton_toggled">on_bookmarkButton_toggled</a></td>
-<td>Private slot to handle changes of the Bookmark select button.</td>
-</tr>
-<tr>
-<td><a href="#HgBackoutDialog.on_bookmarkCombo_editTextChanged">on_bookmarkCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Bookmark combo.</td>
-</tr>
-<tr>
-<td><a href="#HgBackoutDialog.on_branchButton_toggled">on_branchButton_toggled</a></td>
-<td>Private slot to handle changes of the Branch select button.</td>
-</tr>
-<tr>
-<td><a href="#HgBackoutDialog.on_branchCombo_editTextChanged">on_branchCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Branch combo.</td>
-</tr>
-<tr>
-<td><a href="#HgBackoutDialog.on_idButton_toggled">on_idButton_toggled</a></td>
-<td>Private slot to handle changes of the ID select button.</td>
-</tr>
-<tr>
-<td><a href="#HgBackoutDialog.on_idEdit_textChanged">on_idEdit_textChanged</a></td>
-<td>Private slot to handle changes of the ID edit.</td>
-</tr>
-<tr>
-<td><a href="#HgBackoutDialog.on_noneButton_toggled">on_noneButton_toggled</a></td>
-<td>Private slot to handle the toggling of the None revision button.</td>
-</tr>
-<tr>
-<td><a href="#HgBackoutDialog.on_tagButton_toggled">on_tagButton_toggled</a></td>
-<td>Private slot to handle changes of the Tag select button.</td>
-</tr>
-<tr>
-<td><a href="#HgBackoutDialog.on_tagCombo_editTextChanged">on_tagCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Tag combo.</td>
-</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -118,21 +82,21 @@
 </p>
 <dl>
 
-<dt><i>tagsList</i></dt>
+<dt><i>tagsList</i> (list of str)</dt>
 <dd>
-list of tags (list of strings)
+list of tags
 </dd>
-<dt><i>branchesList</i></dt>
+<dt><i>branchesList</i> (list of str)</dt>
 <dd>
-list of branches (list of strings)
+list of branches
 </dd>
-<dt><i>bookmarksList</i></dt>
+<dt><i>bookmarksList</i> (list of str)</dt>
 <dd>
-list of bookmarks (list of strings)
+list of bookmarks
 </dd>
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-parent widget (QWidget)
+parent widget
 </dd>
 </dl>
 <a NAME="HgBackoutDialog.__updateOK" ID="HgBackoutDialog.__updateOK"></a>
@@ -154,133 +118,12 @@
 <dd>
 tuple naming the revision, a flag indicating a
             merge, the commit date, the commit user and a commit message
-            (string, boolean, string, string, string)
-</dd>
-</dl>
-<a NAME="HgBackoutDialog.on_bookmarkButton_toggled" ID="HgBackoutDialog.on_bookmarkButton_toggled"></a>
-<h4>HgBackoutDialog.on_bookmarkButton_toggled</h4>
-<b>on_bookmarkButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgBackoutDialog.on_bookmarkCombo_editTextChanged" ID="HgBackoutDialog.on_bookmarkCombo_editTextChanged"></a>
-<h4>HgBackoutDialog.on_bookmarkCombo_editTextChanged</h4>
-<b>on_bookmarkCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgBackoutDialog.on_branchButton_toggled" ID="HgBackoutDialog.on_branchButton_toggled"></a>
-<h4>HgBackoutDialog.on_branchButton_toggled</h4>
-<b>on_branchButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Branch select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgBackoutDialog.on_branchCombo_editTextChanged" ID="HgBackoutDialog.on_branchCombo_editTextChanged"></a>
-<h4>HgBackoutDialog.on_branchCombo_editTextChanged</h4>
-<b>on_branchCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Branch combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
 </dd>
 </dl>
-<a NAME="HgBackoutDialog.on_idButton_toggled" ID="HgBackoutDialog.on_idButton_toggled"></a>
-<h4>HgBackoutDialog.on_idButton_toggled</h4>
-<b>on_idButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the ID select button.
-</p>
 <dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgBackoutDialog.on_idEdit_textChanged" ID="HgBackoutDialog.on_idEdit_textChanged"></a>
-<h4>HgBackoutDialog.on_idEdit_textChanged</h4>
-<b>on_idEdit_textChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the ID edit.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
+<dt>Return Type:</dt>
 <dd>
-text of the edit (string)
-</dd>
-</dl>
-<a NAME="HgBackoutDialog.on_noneButton_toggled" ID="HgBackoutDialog.on_noneButton_toggled"></a>
-<h4>HgBackoutDialog.on_noneButton_toggled</h4>
-<b>on_noneButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle the toggling of the None revision button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-flag indicating the checked state (boolean)
-</dd>
-</dl>
-<a NAME="HgBackoutDialog.on_tagButton_toggled" ID="HgBackoutDialog.on_tagButton_toggled"></a>
-<h4>HgBackoutDialog.on_tagButton_toggled</h4>
-<b>on_tagButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Tag select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgBackoutDialog.on_tagCombo_editTextChanged" ID="HgBackoutDialog.on_tagCombo_editTextChanged"></a>
-<h4>HgBackoutDialog.on_tagCombo_editTextChanged</h4>
-<b>on_tagCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Tag combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
+tuple of (str, bool, str, str, str)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.HgBookmarkDialog.html	Mon May 02 15:52:33 2022 +0200
@@ -70,46 +70,6 @@
 <td><a href="#HgBookmarkDialog.getData">getData</a></td>
 <td>Public method to retrieve the entered data.</td>
 </tr>
-<tr>
-<td><a href="#HgBookmarkDialog.on_bookmarkButton_toggled">on_bookmarkButton_toggled</a></td>
-<td>Private slot to handle changes of the Bookmark select button.</td>
-</tr>
-<tr>
-<td><a href="#HgBookmarkDialog.on_bookmarkCombo_editTextChanged">on_bookmarkCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Bookmark combo.</td>
-</tr>
-<tr>
-<td><a href="#HgBookmarkDialog.on_branchButton_toggled">on_branchButton_toggled</a></td>
-<td>Private slot to handle changes of the Branch select button.</td>
-</tr>
-<tr>
-<td><a href="#HgBookmarkDialog.on_branchCombo_editTextChanged">on_branchCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Branch combo.</td>
-</tr>
-<tr>
-<td><a href="#HgBookmarkDialog.on_idButton_toggled">on_idButton_toggled</a></td>
-<td>Private slot to handle changes of the ID select button.</td>
-</tr>
-<tr>
-<td><a href="#HgBookmarkDialog.on_idEdit_textChanged">on_idEdit_textChanged</a></td>
-<td>Private slot to handle changes of the ID edit.</td>
-</tr>
-<tr>
-<td><a href="#HgBookmarkDialog.on_nameCombo_activated">on_nameCombo_activated</a></td>
-<td>Private slot to handle changes of the selected bookmark name.</td>
-</tr>
-<tr>
-<td><a href="#HgBookmarkDialog.on_nameEdit_textChanged">on_nameEdit_textChanged</a></td>
-<td>Private slot to handle changes of the bookmark name.</td>
-</tr>
-<tr>
-<td><a href="#HgBookmarkDialog.on_tagButton_toggled">on_tagButton_toggled</a></td>
-<td>Private slot to handle changes of the Tag select button.</td>
-</tr>
-<tr>
-<td><a href="#HgBookmarkDialog.on_tagCombo_editTextChanged">on_tagCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Tag combo.</td>
-</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -126,25 +86,25 @@
 </p>
 <dl>
 
-<dt><i>mode</i></dt>
+<dt><i>mode</i> (int)</dt>
 <dd>
-of the dialog (integer)
+of the dialog
 </dd>
-<dt><i>tagsList</i></dt>
+<dt><i>tagsList</i> (list of str)</dt>
 <dd>
-list of tags (list of strings)
+list of tags
 </dd>
-<dt><i>branchesList</i></dt>
+<dt><i>branchesList</i> (list of str)</dt>
 <dd>
-list of branches (list of strings)
+list of branches
 </dd>
-<dt><i>bookmarksList</i></dt>
+<dt><i>bookmarksList</i> (list of str)</dt>
 <dd>
-list of bookmarks (list of strings)
+list of bookmarks
 </dd>
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-reference to the parent widget (QWidget)
+parent widget
 </dd>
 </dl>
 <a NAME="HgBookmarkDialog.__updateBookmarksCombo" ID="HgBookmarkDialog.__updateBookmarksCombo"></a>
@@ -172,147 +132,12 @@
 <dt>Return:</dt>
 <dd>
 tuple naming the revision and the bookmark name
-            (string, string)
-</dd>
-</dl>
-<a NAME="HgBookmarkDialog.on_bookmarkButton_toggled" ID="HgBookmarkDialog.on_bookmarkButton_toggled"></a>
-<h4>HgBookmarkDialog.on_bookmarkButton_toggled</h4>
-<b>on_bookmarkButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgBookmarkDialog.on_bookmarkCombo_editTextChanged" ID="HgBookmarkDialog.on_bookmarkCombo_editTextChanged"></a>
-<h4>HgBookmarkDialog.on_bookmarkCombo_editTextChanged</h4>
-<b>on_bookmarkCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgBookmarkDialog.on_branchButton_toggled" ID="HgBookmarkDialog.on_branchButton_toggled"></a>
-<h4>HgBookmarkDialog.on_branchButton_toggled</h4>
-<b>on_branchButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Branch select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgBookmarkDialog.on_branchCombo_editTextChanged" ID="HgBookmarkDialog.on_branchCombo_editTextChanged"></a>
-<h4>HgBookmarkDialog.on_branchCombo_editTextChanged</h4>
-<b>on_branchCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Branch combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
 </dd>
 </dl>
-<a NAME="HgBookmarkDialog.on_idButton_toggled" ID="HgBookmarkDialog.on_idButton_toggled"></a>
-<h4>HgBookmarkDialog.on_idButton_toggled</h4>
-<b>on_idButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the ID select button.
-</p>
 <dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgBookmarkDialog.on_idEdit_textChanged" ID="HgBookmarkDialog.on_idEdit_textChanged"></a>
-<h4>HgBookmarkDialog.on_idEdit_textChanged</h4>
-<b>on_idEdit_textChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the ID edit.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the edit (string)
-</dd>
-</dl>
-<a NAME="HgBookmarkDialog.on_nameCombo_activated" ID="HgBookmarkDialog.on_nameCombo_activated"></a>
-<h4>HgBookmarkDialog.on_nameCombo_activated</h4>
-<b>on_nameCombo_activated</b>(<i>index</i>)
-
-<p>
-        Private slot to handle changes of the selected bookmark name.
-</p>
-<dl>
-
-<dt><i>index</i> (int)</dt>
+<dt>Return Type:</dt>
 <dd>
-index of the selected entry
-</dd>
-</dl>
-<a NAME="HgBookmarkDialog.on_nameEdit_textChanged" ID="HgBookmarkDialog.on_nameEdit_textChanged"></a>
-<h4>HgBookmarkDialog.on_nameEdit_textChanged</h4>
-<b>on_nameEdit_textChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the bookmark name.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the edit (string)
-</dd>
-</dl>
-<a NAME="HgBookmarkDialog.on_tagButton_toggled" ID="HgBookmarkDialog.on_tagButton_toggled"></a>
-<h4>HgBookmarkDialog.on_tagButton_toggled</h4>
-<b>on_tagButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Tag select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgBookmarkDialog.on_tagCombo_editTextChanged" ID="HgBookmarkDialog.on_tagCombo_editTextChanged"></a>
-<h4>HgBookmarkDialog.on_tagCombo_editTextChanged</h4>
-<b>on_tagCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Tag combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
+tuple of (str, str)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html	Mon May 02 15:52:33 2022 +0200
@@ -66,38 +66,6 @@
 <td><a href="#HgMergeDialog.getParameters">getParameters</a></td>
 <td>Public method to retrieve the merge data.</td>
 </tr>
-<tr>
-<td><a href="#HgMergeDialog.on_bookmarkButton_toggled">on_bookmarkButton_toggled</a></td>
-<td>Private slot to handle changes of the Bookmark select button.</td>
-</tr>
-<tr>
-<td><a href="#HgMergeDialog.on_bookmarkCombo_editTextChanged">on_bookmarkCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Bookmark combo.</td>
-</tr>
-<tr>
-<td><a href="#HgMergeDialog.on_branchButton_toggled">on_branchButton_toggled</a></td>
-<td>Private slot to handle changes of the Branch select button.</td>
-</tr>
-<tr>
-<td><a href="#HgMergeDialog.on_branchCombo_editTextChanged">on_branchCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Branch combo.</td>
-</tr>
-<tr>
-<td><a href="#HgMergeDialog.on_idButton_toggled">on_idButton_toggled</a></td>
-<td>Private slot to handle changes of the ID select button.</td>
-</tr>
-<tr>
-<td><a href="#HgMergeDialog.on_idEdit_textChanged">on_idEdit_textChanged</a></td>
-<td>Private slot to handle changes of the ID edit.</td>
-</tr>
-<tr>
-<td><a href="#HgMergeDialog.on_tagButton_toggled">on_tagButton_toggled</a></td>
-<td>Private slot to handle changes of the Tag select button.</td>
-</tr>
-<tr>
-<td><a href="#HgMergeDialog.on_tagCombo_editTextChanged">on_tagCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Tag combo.</td>
-</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -114,21 +82,21 @@
 </p>
 <dl>
 
-<dt><i>tagsList</i></dt>
+<dt><i>tagsList</i> (list of str)</dt>
 <dd>
-list of tags (list of strings)
+list of tags
 </dd>
-<dt><i>branchesList</i></dt>
+<dt><i>branchesList</i> (list of str)</dt>
 <dd>
-list of branches (list of strings)
+list of branches
 </dd>
-<dt><i>bookmarksList</i></dt>
+<dt><i>bookmarksList</i> (list of str)</dt>
 <dd>
-list of bookmarks (list of strings)
+list of bookmarks
 </dd>
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-parent widget (QWidget)
+parent widget
 </dd>
 </dl>
 <a NAME="HgMergeDialog.__updateOK" ID="HgMergeDialog.__updateOK"></a>
@@ -149,119 +117,13 @@
 <dt>Return:</dt>
 <dd>
 tuple naming the revision and a flag indicating a
-            forced merge (string, boolean)
-</dd>
-</dl>
-<a NAME="HgMergeDialog.on_bookmarkButton_toggled" ID="HgMergeDialog.on_bookmarkButton_toggled"></a>
-<h4>HgMergeDialog.on_bookmarkButton_toggled</h4>
-<b>on_bookmarkButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgMergeDialog.on_bookmarkCombo_editTextChanged" ID="HgMergeDialog.on_bookmarkCombo_editTextChanged"></a>
-<h4>HgMergeDialog.on_bookmarkCombo_editTextChanged</h4>
-<b>on_bookmarkCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgMergeDialog.on_branchButton_toggled" ID="HgMergeDialog.on_branchButton_toggled"></a>
-<h4>HgMergeDialog.on_branchButton_toggled</h4>
-<b>on_branchButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Branch select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
+            forced merge
 </dd>
 </dl>
-<a NAME="HgMergeDialog.on_branchCombo_editTextChanged" ID="HgMergeDialog.on_branchCombo_editTextChanged"></a>
-<h4>HgMergeDialog.on_branchCombo_editTextChanged</h4>
-<b>on_branchCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Branch combo.
-</p>
 <dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgMergeDialog.on_idButton_toggled" ID="HgMergeDialog.on_idButton_toggled"></a>
-<h4>HgMergeDialog.on_idButton_toggled</h4>
-<b>on_idButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the ID select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
+<dt>Return Type:</dt>
 <dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgMergeDialog.on_idEdit_textChanged" ID="HgMergeDialog.on_idEdit_textChanged"></a>
-<h4>HgMergeDialog.on_idEdit_textChanged</h4>
-<b>on_idEdit_textChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the ID edit.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the edit (string)
-</dd>
-</dl>
-<a NAME="HgMergeDialog.on_tagButton_toggled" ID="HgMergeDialog.on_tagButton_toggled"></a>
-<h4>HgMergeDialog.on_tagButton_toggled</h4>
-<b>on_tagButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Tag select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgMergeDialog.on_tagCombo_editTextChanged" ID="HgMergeDialog.on_tagCombo_editTextChanged"></a>
-<h4>HgMergeDialog.on_tagCombo_editTextChanged</h4>
-<b>on_tagCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Tag combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
+tuple of (str, bool)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html	Mon May 02 15:52:33 2022 +0200
@@ -66,38 +66,6 @@
 <td><a href="#HgRevisionSelectionDialog.getRevision">getRevision</a></td>
 <td>Public method to retrieve the selected revision.</td>
 </tr>
-<tr>
-<td><a href="#HgRevisionSelectionDialog.on_bookmarkButton_toggled">on_bookmarkButton_toggled</a></td>
-<td>Private slot to handle changes of the Bookmark select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionSelectionDialog.on_bookmarkCombo_editTextChanged">on_bookmarkCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Bookmark combo.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionSelectionDialog.on_branchButton_toggled">on_branchButton_toggled</a></td>
-<td>Private slot to handle changes of the Branch select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionSelectionDialog.on_branchCombo_editTextChanged">on_branchCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Branch combo.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionSelectionDialog.on_idButton_toggled">on_idButton_toggled</a></td>
-<td>Private slot to handle changes of the ID select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionSelectionDialog.on_idEdit_textChanged">on_idEdit_textChanged</a></td>
-<td>Private slot to handle changes of the ID edit.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionSelectionDialog.on_tagButton_toggled">on_tagButton_toggled</a></td>
-<td>Private slot to handle changes of the Tag select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionSelectionDialog.on_tagCombo_editTextChanged">on_tagCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Tag combo.</td>
-</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -107,32 +75,37 @@
 
 <a NAME="HgRevisionSelectionDialog.__init__" ID="HgRevisionSelectionDialog.__init__"></a>
 <h4>HgRevisionSelectionDialog (Constructor)</h4>
-<b>HgRevisionSelectionDialog</b>(<i>tagsList, branchesList, bookmarksList=None, noneLabel="", parent=None</i>)
+<b>HgRevisionSelectionDialog</b>(<i>tagsList, branchesList, bookmarksList=None, noneLabel="", revset=True, parent=None</i>)
 
 <p>
         Constructor
 </p>
 <dl>
 
-<dt><i>tagsList</i></dt>
+<dt><i>tagsList</i> (list of str)</dt>
 <dd>
-list of tags (list of strings)
+list of tags
 </dd>
-<dt><i>branchesList</i></dt>
+<dt><i>branchesList</i> (list of str)</dt>
 <dd>
-list of branches (list of strings)
+list of branches
 </dd>
-<dt><i>bookmarksList</i></dt>
+<dt><i>bookmarksList</i> (list of str)</dt>
 <dd>
-list of bookmarks (list of strings)
+list of bookmarks
 </dd>
-<dt><i>noneLabel</i></dt>
+<dt><i>noneLabel</i> (str)</dt>
 <dd>
-labeltext for "no revision selected" (string)
+labeltext for "no revision selected"
 </dd>
-<dt><i>parent</i></dt>
+<dt><i>revset</i> (bool)</dt>
 <dd>
-parent widget (QWidget)
+flag indicating to allow the revision or ID given as a
+            revset
+</dd>
+<dt><i>parent</i> (QWidget)</dt>
+<dd>
+parent widget
 </dd>
 </dl>
 <a NAME="HgRevisionSelectionDialog.__updateOK" ID="HgRevisionSelectionDialog.__updateOK"></a>
@@ -144,20 +117,12 @@
 </p>
 <a NAME="HgRevisionSelectionDialog.getRevision" ID="HgRevisionSelectionDialog.getRevision"></a>
 <h4>HgRevisionSelectionDialog.getRevision</h4>
-<b>getRevision</b>(<i>revset=True</i>)
+<b>getRevision</b>(<i></i>)
 
 <p>
         Public method to retrieve the selected revision.
 </p>
 <dl>
-
-<dt><i>revset</i> (bool)</dt>
-<dd>
-flag indicating to get the revision or ID as a
-            revset
-</dd>
-</dl>
-<dl>
 <dt>Return:</dt>
 <dd>
 selected revision
@@ -169,118 +134,6 @@
 str
 </dd>
 </dl>
-<a NAME="HgRevisionSelectionDialog.on_bookmarkButton_toggled" ID="HgRevisionSelectionDialog.on_bookmarkButton_toggled"></a>
-<h4>HgRevisionSelectionDialog.on_bookmarkButton_toggled</h4>
-<b>on_bookmarkButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRevisionSelectionDialog.on_bookmarkCombo_editTextChanged" ID="HgRevisionSelectionDialog.on_bookmarkCombo_editTextChanged"></a>
-<h4>HgRevisionSelectionDialog.on_bookmarkCombo_editTextChanged</h4>
-<b>on_bookmarkCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgRevisionSelectionDialog.on_branchButton_toggled" ID="HgRevisionSelectionDialog.on_branchButton_toggled"></a>
-<h4>HgRevisionSelectionDialog.on_branchButton_toggled</h4>
-<b>on_branchButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Branch select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRevisionSelectionDialog.on_branchCombo_editTextChanged" ID="HgRevisionSelectionDialog.on_branchCombo_editTextChanged"></a>
-<h4>HgRevisionSelectionDialog.on_branchCombo_editTextChanged</h4>
-<b>on_branchCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Branch combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgRevisionSelectionDialog.on_idButton_toggled" ID="HgRevisionSelectionDialog.on_idButton_toggled"></a>
-<h4>HgRevisionSelectionDialog.on_idButton_toggled</h4>
-<b>on_idButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the ID select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRevisionSelectionDialog.on_idEdit_textChanged" ID="HgRevisionSelectionDialog.on_idEdit_textChanged"></a>
-<h4>HgRevisionSelectionDialog.on_idEdit_textChanged</h4>
-<b>on_idEdit_textChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the ID edit.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the edit (string)
-</dd>
-</dl>
-<a NAME="HgRevisionSelectionDialog.on_tagButton_toggled" ID="HgRevisionSelectionDialog.on_tagButton_toggled"></a>
-<h4>HgRevisionSelectionDialog.on_tagButton_toggled</h4>
-<b>on_tagButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Tag select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRevisionSelectionDialog.on_tagCombo_editTextChanged" ID="HgRevisionSelectionDialog.on_tagCombo_editTextChanged"></a>
-<h4>HgRevisionSelectionDialog.on_tagCombo_editTextChanged</h4>
-<b>on_tagCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Tag combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html	Mon May 02 15:52:33 2022 +0200
@@ -70,70 +70,6 @@
 <td><a href="#HgRevisionsSelectionDialog.getRevisions">getRevisions</a></td>
 <td>Public method to get the revisions.</td>
 </tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_bookmark1Button_toggled">on_bookmark1Button_toggled</a></td>
-<td>Private slot to handle changes of the Bookmark1 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_bookmark1Combo_editTextChanged">on_bookmark1Combo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Bookmark1 combo.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_bookmark2Button_toggled">on_bookmark2Button_toggled</a></td>
-<td>Private slot to handle changes of the Bookmark2 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_bookmark2Combo_editTextChanged">on_bookmark2Combo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Bookmark2 combo.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_branch1Button_toggled">on_branch1Button_toggled</a></td>
-<td>Private slot to handle changes of the Branch1 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_branch1Combo_editTextChanged">on_branch1Combo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Branch1 combo.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_branch2Button_toggled">on_branch2Button_toggled</a></td>
-<td>Private slot to handle changes of the Branch2 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_branch2Combo_editTextChanged">on_branch2Combo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Branch2 combo.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_id1Button_toggled">on_id1Button_toggled</a></td>
-<td>Private slot to handle changes of the ID1 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_id1Edit_textChanged">on_id1Edit_textChanged</a></td>
-<td>Private slot to handle changes of the ID1 edit.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_id2Button_toggled">on_id2Button_toggled</a></td>
-<td>Private slot to handle changes of the ID2 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_id2Edit_textChanged">on_id2Edit_textChanged</a></td>
-<td>Private slot to handle changes of the ID2 edit.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_tag1Button_toggled">on_tag1Button_toggled</a></td>
-<td>Private slot to handle changes of the Tag1 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_tag1Combo_editTextChanged">on_tag1Combo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Tag1 combo.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_tag2Button_toggled">on_tag2Button_toggled</a></td>
-<td>Private slot to handle changes of the Tag2 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRevisionsSelectionDialog.on_tag2Combo_editTextChanged">on_tag2Combo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Tag2 combo.</td>
-</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -150,21 +86,21 @@
 </p>
 <dl>
 
-<dt><i>tagsList</i></dt>
+<dt><i>tagsList</i> (list of str)</dt>
 <dd>
-list of tags (list of strings)
+list of tags
 </dd>
-<dt><i>branchesList</i></dt>
+<dt><i>branchesList</i> (list of str)</dt>
 <dd>
-list of branches (list of strings)
+list of branches
 </dd>
-<dt><i>bookmarksList</i></dt>
+<dt><i>bookmarksList</i> (list of str)</dt>
 <dd>
-list of bookmarks (list of strings)
+list of bookmarks
 </dd>
-<dt><i>parent</i></dt>
+<dt><i>parent</i> (QWidget)</dt>
 <dd>
-parent widget of the dialog (QWidget)
+parent widget of the dialog
 </dd>
 </dl>
 <a NAME="HgRevisionsSelectionDialog.__getRevision" ID="HgRevisionsSelectionDialog.__getRevision"></a>
@@ -176,7 +112,7 @@
 </p>
 <dl>
 
-<dt><i>no</i></dt>
+<dt><i>no</i> (int)</dt>
 <dd>
 revision number to generate (1 or 2)
 </dd>
@@ -184,7 +120,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-revision (string)
+revision
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="HgRevisionsSelectionDialog.__updateOK" ID="HgRevisionsSelectionDialog.__updateOK"></a>
@@ -204,231 +146,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-list two strings
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_bookmark1Button_toggled" ID="HgRevisionsSelectionDialog.on_bookmark1Button_toggled"></a>
-<h4>HgRevisionsSelectionDialog.on_bookmark1Button_toggled</h4>
-<b>on_bookmark1Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark1 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_bookmark1Combo_editTextChanged" ID="HgRevisionsSelectionDialog.on_bookmark1Combo_editTextChanged"></a>
-<h4>HgRevisionsSelectionDialog.on_bookmark1Combo_editTextChanged</h4>
-<b>on_bookmark1Combo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark1 combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_bookmark2Button_toggled" ID="HgRevisionsSelectionDialog.on_bookmark2Button_toggled"></a>
-<h4>HgRevisionsSelectionDialog.on_bookmark2Button_toggled</h4>
-<b>on_bookmark2Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark2 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_bookmark2Combo_editTextChanged" ID="HgRevisionsSelectionDialog.on_bookmark2Combo_editTextChanged"></a>
-<h4>HgRevisionsSelectionDialog.on_bookmark2Combo_editTextChanged</h4>
-<b>on_bookmark2Combo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark2 combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_branch1Button_toggled" ID="HgRevisionsSelectionDialog.on_branch1Button_toggled"></a>
-<h4>HgRevisionsSelectionDialog.on_branch1Button_toggled</h4>
-<b>on_branch1Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Branch1 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_branch1Combo_editTextChanged" ID="HgRevisionsSelectionDialog.on_branch1Combo_editTextChanged"></a>
-<h4>HgRevisionsSelectionDialog.on_branch1Combo_editTextChanged</h4>
-<b>on_branch1Combo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Branch1 combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_branch2Button_toggled" ID="HgRevisionsSelectionDialog.on_branch2Button_toggled"></a>
-<h4>HgRevisionsSelectionDialog.on_branch2Button_toggled</h4>
-<b>on_branch2Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Branch2 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
+list of two revisions
 </dd>
 </dl>
-<a NAME="HgRevisionsSelectionDialog.on_branch2Combo_editTextChanged" ID="HgRevisionsSelectionDialog.on_branch2Combo_editTextChanged"></a>
-<h4>HgRevisionsSelectionDialog.on_branch2Combo_editTextChanged</h4>
-<b>on_branch2Combo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Branch2 combo.
-</p>
 <dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_id1Button_toggled" ID="HgRevisionsSelectionDialog.on_id1Button_toggled"></a>
-<h4>HgRevisionsSelectionDialog.on_id1Button_toggled</h4>
-<b>on_id1Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the ID1 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_id1Edit_textChanged" ID="HgRevisionsSelectionDialog.on_id1Edit_textChanged"></a>
-<h4>HgRevisionsSelectionDialog.on_id1Edit_textChanged</h4>
-<b>on_id1Edit_textChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the ID1 edit.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the edit (string)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_id2Button_toggled" ID="HgRevisionsSelectionDialog.on_id2Button_toggled"></a>
-<h4>HgRevisionsSelectionDialog.on_id2Button_toggled</h4>
-<b>on_id2Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the ID2 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
+<dt>Return Type:</dt>
 <dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_id2Edit_textChanged" ID="HgRevisionsSelectionDialog.on_id2Edit_textChanged"></a>
-<h4>HgRevisionsSelectionDialog.on_id2Edit_textChanged</h4>
-<b>on_id2Edit_textChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the ID2 edit.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the edit (string)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_tag1Button_toggled" ID="HgRevisionsSelectionDialog.on_tag1Button_toggled"></a>
-<h4>HgRevisionsSelectionDialog.on_tag1Button_toggled</h4>
-<b>on_tag1Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Tag1 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_tag1Combo_editTextChanged" ID="HgRevisionsSelectionDialog.on_tag1Combo_editTextChanged"></a>
-<h4>HgRevisionsSelectionDialog.on_tag1Combo_editTextChanged</h4>
-<b>on_tag1Combo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Tag1 combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_tag2Button_toggled" ID="HgRevisionsSelectionDialog.on_tag2Button_toggled"></a>
-<h4>HgRevisionsSelectionDialog.on_tag2Button_toggled</h4>
-<b>on_tag2Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Tag2 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRevisionsSelectionDialog.on_tag2Combo_editTextChanged" ID="HgRevisionsSelectionDialog.on_tag2Combo_editTextChanged"></a>
-<h4>HgRevisionsSelectionDialog.on_tag2Combo_editTextChanged</h4>
-<b>on_tag2Combo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Tag2 combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
+list of [str, str]
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.HgHisteditConfigDialog.html	Mon May 02 15:52:33 2022 +0200
@@ -70,54 +70,6 @@
 <td><a href="#HgHisteditConfigDialog.getData">getData</a></td>
 <td>Public method to retrieve the data for the strip action.</td>
 </tr>
-<tr>
-<td><a href="#HgHisteditConfigDialog.on_bookmarkButton_toggled">on_bookmarkButton_toggled</a></td>
-<td>Private slot to handle changes of the Bookmark select button.</td>
-</tr>
-<tr>
-<td><a href="#HgHisteditConfigDialog.on_bookmarkCombo_editTextChanged">on_bookmarkCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Bookmark combo.</td>
-</tr>
-<tr>
-<td><a href="#HgHisteditConfigDialog.on_branch1Button_toggled">on_branch1Button_toggled</a></td>
-<td>Private slot to handle changes of the Branch select button.</td>
-</tr>
-<tr>
-<td><a href="#HgHisteditConfigDialog.on_branchCombo_editTextChanged">on_branchCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Branch combo.</td>
-</tr>
-<tr>
-<td><a href="#HgHisteditConfigDialog.on_defaultButton_toggled">on_defaultButton_toggled</a></td>
-<td>Private slot to handle changes of the Default select button.</td>
-</tr>
-<tr>
-<td><a href="#HgHisteditConfigDialog.on_idButton_toggled">on_idButton_toggled</a></td>
-<td>Private slot to handle changes of the ID select button.</td>
-</tr>
-<tr>
-<td><a href="#HgHisteditConfigDialog.on_idEdit_textChanged">on_idEdit_textChanged</a></td>
-<td>Private slot to handle changes of the ID edit.</td>
-</tr>
-<tr>
-<td><a href="#HgHisteditConfigDialog.on_numberSpinBox_valueChanged">on_numberSpinBox_valueChanged</a></td>
-<td>Private slot to handle changes of the Number spin box.</td>
-</tr>
-<tr>
-<td><a href="#HgHisteditConfigDialog.on_outgoingButton_toggled">on_outgoingButton_toggled</a></td>
-<td>Private slot to handle changes of the Outgoing select button.</td>
-</tr>
-<tr>
-<td><a href="#HgHisteditConfigDialog.on_revisionButton_toggled">on_revisionButton_toggled</a></td>
-<td>Private slot to handle changes of the Revision select button.</td>
-</tr>
-<tr>
-<td><a href="#HgHisteditConfigDialog.on_tagButton_toggled">on_tagButton_toggled</a></td>
-<td>Private slot to handle changes of the Tag select button.</td>
-</tr>
-<tr>
-<td><a href="#HgHisteditConfigDialog.on_tagCombo_editTextChanged">on_tagCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Tag combo.</td>
-</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -201,174 +153,6 @@
 tuple (str, bool, bool)
 </dd>
 </dl>
-<a NAME="HgHisteditConfigDialog.on_bookmarkButton_toggled" ID="HgHisteditConfigDialog.on_bookmarkButton_toggled"></a>
-<h4>HgHisteditConfigDialog.on_bookmarkButton_toggled</h4>
-<b>on_bookmarkButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgHisteditConfigDialog.on_bookmarkCombo_editTextChanged" ID="HgHisteditConfigDialog.on_bookmarkCombo_editTextChanged"></a>
-<h4>HgHisteditConfigDialog.on_bookmarkCombo_editTextChanged</h4>
-<b>on_bookmarkCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark combo.
-</p>
-<dl>
-
-<dt><i>txt</i> (str)</dt>
-<dd>
-text of the combo
-</dd>
-</dl>
-<a NAME="HgHisteditConfigDialog.on_branch1Button_toggled" ID="HgHisteditConfigDialog.on_branch1Button_toggled"></a>
-<h4>HgHisteditConfigDialog.on_branch1Button_toggled</h4>
-<b>on_branch1Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Branch select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgHisteditConfigDialog.on_branchCombo_editTextChanged" ID="HgHisteditConfigDialog.on_branchCombo_editTextChanged"></a>
-<h4>HgHisteditConfigDialog.on_branchCombo_editTextChanged</h4>
-<b>on_branchCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Branch combo.
-</p>
-<dl>
-
-<dt><i>txt</i> (str)</dt>
-<dd>
-text of the combo
-</dd>
-</dl>
-<a NAME="HgHisteditConfigDialog.on_defaultButton_toggled" ID="HgHisteditConfigDialog.on_defaultButton_toggled"></a>
-<h4>HgHisteditConfigDialog.on_defaultButton_toggled</h4>
-<b>on_defaultButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Default select button.
-</p>
-<dl>
-
-<dt><i>checked</i> (bool)</dt>
-<dd>
-state of the button
-</dd>
-</dl>
-<a NAME="HgHisteditConfigDialog.on_idButton_toggled" ID="HgHisteditConfigDialog.on_idButton_toggled"></a>
-<h4>HgHisteditConfigDialog.on_idButton_toggled</h4>
-<b>on_idButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the ID select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgHisteditConfigDialog.on_idEdit_textChanged" ID="HgHisteditConfigDialog.on_idEdit_textChanged"></a>
-<h4>HgHisteditConfigDialog.on_idEdit_textChanged</h4>
-<b>on_idEdit_textChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the ID edit.
-</p>
-<dl>
-
-<dt><i>txt</i> (str)</dt>
-<dd>
-text of the edit
-</dd>
-</dl>
-<a NAME="HgHisteditConfigDialog.on_numberSpinBox_valueChanged" ID="HgHisteditConfigDialog.on_numberSpinBox_valueChanged"></a>
-<h4>HgHisteditConfigDialog.on_numberSpinBox_valueChanged</h4>
-<b>on_numberSpinBox_valueChanged</b>(<i>val</i>)
-
-<p>
-        Private slot to handle changes of the Number spin box.
-</p>
-<dl>
-
-<dt><i>val</i> (int)</dt>
-<dd>
-value of the spin box
-</dd>
-</dl>
-<a NAME="HgHisteditConfigDialog.on_outgoingButton_toggled" ID="HgHisteditConfigDialog.on_outgoingButton_toggled"></a>
-<h4>HgHisteditConfigDialog.on_outgoingButton_toggled</h4>
-<b>on_outgoingButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Outgoing select button.
-</p>
-<dl>
-
-<dt><i>checked</i> (bool)</dt>
-<dd>
-state of the button
-</dd>
-</dl>
-<a NAME="HgHisteditConfigDialog.on_revisionButton_toggled" ID="HgHisteditConfigDialog.on_revisionButton_toggled"></a>
-<h4>HgHisteditConfigDialog.on_revisionButton_toggled</h4>
-<b>on_revisionButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Revision select button.
-</p>
-<dl>
-
-<dt><i>checked</i> (bool)</dt>
-<dd>
-state of the button
-</dd>
-</dl>
-<a NAME="HgHisteditConfigDialog.on_tagButton_toggled" ID="HgHisteditConfigDialog.on_tagButton_toggled"></a>
-<h4>HgHisteditConfigDialog.on_tagButton_toggled</h4>
-<b>on_tagButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Tag select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgHisteditConfigDialog.on_tagCombo_editTextChanged" ID="HgHisteditConfigDialog.on_tagCombo_editTextChanged"></a>
-<h4>HgHisteditConfigDialog.on_tagCombo_editTextChanged</h4>
-<b>on_tagCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Tag combo.
-</p>
-<dl>
-
-<dt><i>txt</i> (str)</dt>
-<dd>
-text of the combo
-</dd>
-</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.RebaseExtension.HgRebaseDialog.html	Mon May 02 15:52:33 2022 +0200
@@ -70,70 +70,6 @@
 <td><a href="#HgRebaseDialog.getData">getData</a></td>
 <td>Public method to retrieve the data for the rebase session.</td>
 </tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_bookmark1Button_toggled">on_bookmark1Button_toggled</a></td>
-<td>Private slot to handle changes of the Bookmark1 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_bookmark1Combo_editTextChanged">on_bookmark1Combo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Bookmark1 combo.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_bookmark2Button_toggled">on_bookmark2Button_toggled</a></td>
-<td>Private slot to handle changes of the Bookmark2 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_bookmark2Combo_editTextChanged">on_bookmark2Combo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Bookmark2 combo.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_branch1Button_toggled">on_branch1Button_toggled</a></td>
-<td>Private slot to handle changes of the Branch1 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_branch1Combo_editTextChanged">on_branch1Combo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Branch1 combo.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_branch2Button_toggled">on_branch2Button_toggled</a></td>
-<td>Private slot to handle changes of the Branch2 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_branch2Combo_editTextChanged">on_branch2Combo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Branch2 combo.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_id1Button_toggled">on_id1Button_toggled</a></td>
-<td>Private slot to handle changes of the ID1 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_id1Edit_textChanged">on_id1Edit_textChanged</a></td>
-<td>Private slot to handle changes of the ID1 edit.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_id2Button_toggled">on_id2Button_toggled</a></td>
-<td>Private slot to handle changes of the ID2 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_id2Edit_textChanged">on_id2Edit_textChanged</a></td>
-<td>Private slot to handle changes of the ID2 edit.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_tag1Button_toggled">on_tag1Button_toggled</a></td>
-<td>Private slot to handle changes of the Tag1 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_tag1Combo_editTextChanged">on_tag1Combo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Tag1 combo.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_tag2Button_toggled">on_tag2Button_toggled</a></td>
-<td>Private slot to handle changes of the Tag2 select button.</td>
-</tr>
-<tr>
-<td><a href="#HgRebaseDialog.on_tag2Combo_editTextChanged">on_tag2Combo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Tag2 combo.</td>
-</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -180,7 +116,7 @@
 </p>
 <dl>
 
-<dt><i>no</i></dt>
+<dt><i>no</i> (int)</dt>
 <dd>
 revision number to generate (1 or 2)
 </dd>
@@ -188,7 +124,13 @@
 <dl>
 <dt>Return:</dt>
 <dd>
-revision (string)
+revision
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
 </dd>
 </dl>
 <a NAME="HgRebaseDialog.__updateOK" ID="HgRebaseDialog.__updateOK"></a>
@@ -223,230 +165,6 @@
 tuple of (str, str, str, bool, bool, bool, bool, bool, bool)
 </dd>
 </dl>
-<a NAME="HgRebaseDialog.on_bookmark1Button_toggled" ID="HgRebaseDialog.on_bookmark1Button_toggled"></a>
-<h4>HgRebaseDialog.on_bookmark1Button_toggled</h4>
-<b>on_bookmark1Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark1 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_bookmark1Combo_editTextChanged" ID="HgRebaseDialog.on_bookmark1Combo_editTextChanged"></a>
-<h4>HgRebaseDialog.on_bookmark1Combo_editTextChanged</h4>
-<b>on_bookmark1Combo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark1 combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_bookmark2Button_toggled" ID="HgRebaseDialog.on_bookmark2Button_toggled"></a>
-<h4>HgRebaseDialog.on_bookmark2Button_toggled</h4>
-<b>on_bookmark2Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark2 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_bookmark2Combo_editTextChanged" ID="HgRebaseDialog.on_bookmark2Combo_editTextChanged"></a>
-<h4>HgRebaseDialog.on_bookmark2Combo_editTextChanged</h4>
-<b>on_bookmark2Combo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Bookmark2 combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_branch1Button_toggled" ID="HgRebaseDialog.on_branch1Button_toggled"></a>
-<h4>HgRebaseDialog.on_branch1Button_toggled</h4>
-<b>on_branch1Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Branch1 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_branch1Combo_editTextChanged" ID="HgRebaseDialog.on_branch1Combo_editTextChanged"></a>
-<h4>HgRebaseDialog.on_branch1Combo_editTextChanged</h4>
-<b>on_branch1Combo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Branch1 combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_branch2Button_toggled" ID="HgRebaseDialog.on_branch2Button_toggled"></a>
-<h4>HgRebaseDialog.on_branch2Button_toggled</h4>
-<b>on_branch2Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Branch2 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_branch2Combo_editTextChanged" ID="HgRebaseDialog.on_branch2Combo_editTextChanged"></a>
-<h4>HgRebaseDialog.on_branch2Combo_editTextChanged</h4>
-<b>on_branch2Combo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Branch2 combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_id1Button_toggled" ID="HgRebaseDialog.on_id1Button_toggled"></a>
-<h4>HgRebaseDialog.on_id1Button_toggled</h4>
-<b>on_id1Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the ID1 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_id1Edit_textChanged" ID="HgRebaseDialog.on_id1Edit_textChanged"></a>
-<h4>HgRebaseDialog.on_id1Edit_textChanged</h4>
-<b>on_id1Edit_textChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the ID1 edit.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the edit (string)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_id2Button_toggled" ID="HgRebaseDialog.on_id2Button_toggled"></a>
-<h4>HgRebaseDialog.on_id2Button_toggled</h4>
-<b>on_id2Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the ID2 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_id2Edit_textChanged" ID="HgRebaseDialog.on_id2Edit_textChanged"></a>
-<h4>HgRebaseDialog.on_id2Edit_textChanged</h4>
-<b>on_id2Edit_textChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the ID2 edit.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the edit (string)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_tag1Button_toggled" ID="HgRebaseDialog.on_tag1Button_toggled"></a>
-<h4>HgRebaseDialog.on_tag1Button_toggled</h4>
-<b>on_tag1Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Tag1 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_tag1Combo_editTextChanged" ID="HgRebaseDialog.on_tag1Combo_editTextChanged"></a>
-<h4>HgRebaseDialog.on_tag1Combo_editTextChanged</h4>
-<b>on_tag1Combo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Tag1 combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_tag2Button_toggled" ID="HgRebaseDialog.on_tag2Button_toggled"></a>
-<h4>HgRebaseDialog.on_tag2Button_toggled</h4>
-<b>on_tag2Button_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Tag2 select button.
-</p>
-<dl>
-
-<dt><i>checked</i></dt>
-<dd>
-state of the button (boolean)
-</dd>
-</dl>
-<a NAME="HgRebaseDialog.on_tag2Combo_editTextChanged" ID="HgRebaseDialog.on_tag2Combo_editTextChanged"></a>
-<h4>HgRebaseDialog.on_tag2Combo_editTextChanged</h4>
-<b>on_tag2Combo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Tag2 combo.
-</p>
-<dl>
-
-<dt><i>txt</i></dt>
-<dd>
-text of the combo (string)
-</dd>
-</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.StripExtension.HgStripDialog.html	Mon May 02 15:52:33 2022 +0200
@@ -70,38 +70,6 @@
 <td><a href="#HgStripDialog.getData">getData</a></td>
 <td>Public method to retrieve the data for the strip action.</td>
 </tr>
-<tr>
-<td><a href="#HgStripDialog.on_branchButton_toggled">on_branchButton_toggled</a></td>
-<td>Private slot to handle changes of the Branch select button.</td>
-</tr>
-<tr>
-<td><a href="#HgStripDialog.on_branchCombo_editTextChanged">on_branchCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Branch combo.</td>
-</tr>
-<tr>
-<td><a href="#HgStripDialog.on_idButton_toggled">on_idButton_toggled</a></td>
-<td>Private slot to handle changes of the ID select button.</td>
-</tr>
-<tr>
-<td><a href="#HgStripDialog.on_idEdit_textChanged">on_idEdit_textChanged</a></td>
-<td>Private slot to handle changes of the ID edit.</td>
-</tr>
-<tr>
-<td><a href="#HgStripDialog.on_numberButton_toggled">on_numberButton_toggled</a></td>
-<td>Private slot to handle changes of the Number select button.</td>
-</tr>
-<tr>
-<td><a href="#HgStripDialog.on_numberSpinBox_valueChanged">on_numberSpinBox_valueChanged</a></td>
-<td>Private slot to handle changes of the Number spin box.</td>
-</tr>
-<tr>
-<td><a href="#HgStripDialog.on_tagButton_toggled">on_tagButton_toggled</a></td>
-<td>Private slot to handle changes of the Tag select button.</td>
-</tr>
-<tr>
-<td><a href="#HgStripDialog.on_tagCombo_editTextChanged">on_tagCombo_editTextChanged</a></td>
-<td>Private slot to handle changes of the Tag combo.</td>
-</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -187,118 +155,6 @@
 tuple (str, str, bool, bool, bool)
 </dd>
 </dl>
-<a NAME="HgStripDialog.on_branchButton_toggled" ID="HgStripDialog.on_branchButton_toggled"></a>
-<h4>HgStripDialog.on_branchButton_toggled</h4>
-<b>on_branchButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Branch select button.
-</p>
-<dl>
-
-<dt><i>checked</i> (bool)</dt>
-<dd>
-state of the button
-</dd>
-</dl>
-<a NAME="HgStripDialog.on_branchCombo_editTextChanged" ID="HgStripDialog.on_branchCombo_editTextChanged"></a>
-<h4>HgStripDialog.on_branchCombo_editTextChanged</h4>
-<b>on_branchCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Branch combo.
-</p>
-<dl>
-
-<dt><i>txt</i> (str)</dt>
-<dd>
-text of the combo
-</dd>
-</dl>
-<a NAME="HgStripDialog.on_idButton_toggled" ID="HgStripDialog.on_idButton_toggled"></a>
-<h4>HgStripDialog.on_idButton_toggled</h4>
-<b>on_idButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the ID select button.
-</p>
-<dl>
-
-<dt><i>checked</i> (bool)</dt>
-<dd>
-state of the button
-</dd>
-</dl>
-<a NAME="HgStripDialog.on_idEdit_textChanged" ID="HgStripDialog.on_idEdit_textChanged"></a>
-<h4>HgStripDialog.on_idEdit_textChanged</h4>
-<b>on_idEdit_textChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the ID edit.
-</p>
-<dl>
-
-<dt><i>txt</i> (str)</dt>
-<dd>
-text of the edit
-</dd>
-</dl>
-<a NAME="HgStripDialog.on_numberButton_toggled" ID="HgStripDialog.on_numberButton_toggled"></a>
-<h4>HgStripDialog.on_numberButton_toggled</h4>
-<b>on_numberButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Number select button.
-</p>
-<dl>
-
-<dt><i>checked</i> (bool)</dt>
-<dd>
-state of the button
-</dd>
-</dl>
-<a NAME="HgStripDialog.on_numberSpinBox_valueChanged" ID="HgStripDialog.on_numberSpinBox_valueChanged"></a>
-<h4>HgStripDialog.on_numberSpinBox_valueChanged</h4>
-<b>on_numberSpinBox_valueChanged</b>(<i>val</i>)
-
-<p>
-        Private slot to handle changes of the Number spin box.
-</p>
-<dl>
-
-<dt><i>val</i> (int)</dt>
-<dd>
-value of the spin box
-</dd>
-</dl>
-<a NAME="HgStripDialog.on_tagButton_toggled" ID="HgStripDialog.on_tagButton_toggled"></a>
-<h4>HgStripDialog.on_tagButton_toggled</h4>
-<b>on_tagButton_toggled</b>(<i>checked</i>)
-
-<p>
-        Private slot to handle changes of the Tag select button.
-</p>
-<dl>
-
-<dt><i>checked</i> (bool)</dt>
-<dd>
-state of the button
-</dd>
-</dl>
-<a NAME="HgStripDialog.on_tagCombo_editTextChanged" ID="HgStripDialog.on_tagCombo_editTextChanged"></a>
-<h4>HgStripDialog.on_tagCombo_editTextChanged</h4>
-<b>on_tagCombo_editTextChanged</b>(<i>txt</i>)
-
-<p>
-        Private slot to handle changes of the Tag combo.
-</p>
-<dl>
-
-<dt><i>txt</i> (str)</dt>
-<dd>
-text of the combo
-</dd>
-</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/eric7/Documentation/Source/eric7.UI.FindFileWidget.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.UI.FindFileWidget.html	Mon May 02 15:52:33 2022 +0200
@@ -21,6 +21,10 @@
 <table>
 
 <tr>
+<td><a href="#FindFileDialog">FindFileDialog</a></td>
+<td>Class implementing a dialog to search for text in files and replace it with some other text.</td>
+</tr>
+<tr>
 <td><a href="#FindFileWidget">FindFileWidget</a></td>
 <td>Class implementing a widget to search for text in files and replace it with some other text.</td>
 </tr>
@@ -32,6 +36,134 @@
 </table>
 <hr />
 <hr />
+<a NAME="FindFileDialog" ID="FindFileDialog"></a>
+<h2>FindFileDialog</h2>
+
+<p>
+    Class implementing a dialog to search for text in files and replace it
+    with some other text.
+</p>
+<p>
+    The occurrences found are displayed in a tree showing the file name,
+    the line number and the text found. The file will be opened upon a double
+    click onto the respective entry of the list. If the widget is in replace
+    mode the line below shows the text after replacement. Replacements can
+    be authorized by ticking them on. Pressing the replace button performs
+    all ticked replacement operations.
+</p>
+<h3>Signals</h3>
+<dl>
+
+<dt>designerFile(str)</dt>
+<dd>
+emitted to open a Qt-Designer file
+</dd>
+<dt>linguistFile(str)</dt>
+<dd>
+emitted to open a Qt-Linguist (*.ts) file
+</dd>
+<dt>pixmapFile(str)</dt>
+<dd>
+emitted to open a pixmap file
+</dd>
+<dt>sourceFile(str, int, str, int, int)</dt>
+<dd>
+emitted to open a source file
+        at a specificline
+</dd>
+<dt>svgFile(str)</dt>
+<dd>
+emitted to open a SVG file
+</dd>
+<dt>trpreview([str])</dt>
+<dd>
+emitted to preview Qt-Linguist (*.qm) files
+</dd>
+<dt>umlFile(str)</dt>
+<dd>
+emitted to open an eric UML file
+</dd>
+</dl>
+<h3>Derived from</h3>
+QDialog
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#FindFileDialog.__init__">FindFileDialog</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#FindFileDialog.activate">activate</a></td>
+<td>Public method to activate the dialog with a given mode, a text to search for and some search parameters.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="FindFileDialog.__init__" ID="FindFileDialog.__init__"></a>
+<h4>FindFileDialog (Constructor)</h4>
+<b>FindFileDialog</b>(<i>project, parent=None</i>)
+
+<p>
+        Constructor
+</p>
+<dl>
+
+<dt><i>project</i> (Project)</dt>
+<dd>
+reference to the project object
+</dd>
+<dt><i>parent</i> (QWidget (optional))</dt>
+<dd>
+parent widget of this dialog (defaults to None)
+</dd>
+</dl>
+<a NAME="FindFileDialog.activate" ID="FindFileDialog.activate"></a>
+<h4>FindFileDialog.activate</h4>
+<b>activate</b>(<i>replaceMode=False, txt="", searchDir="", openFiles=False</i>)
+
+<p>
+        Public method to activate the dialog with a given mode, a text
+        to search for and some search parameters.
+</p>
+<dl>
+
+<dt><i>replaceMode</i> (bool (optional))</dt>
+<dd>
+flag indicating replacement mode (defaults to False)
+</dd>
+<dt><i>txt</i> (str (optional))</dt>
+<dd>
+text to be searched for (defaults to "")
+</dd>
+<dt><i>searchDir</i> (str (optional))</dt>
+<dd>
+directory to search in (defaults to "")
+</dd>
+<dt><i>openFiles</i> (bool (optional))</dt>
+<dd>
+flag indicating to operate on open files only
+            (defaults to False)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
 <a NAME="FindFileWidget" ID="FindFileWidget"></a>
 <h2>FindFileWidget</h2>
 
@@ -141,6 +273,14 @@
 <td>Private slot to react to the opening of a project.</td>
 </tr>
 <tr>
+<td><a href="#FindFileWidget.__setOpenFiles">__setOpenFiles</a></td>
+<td>Private slot to set the mode to search in open files.</td>
+</tr>
+<tr>
+<td><a href="#FindFileWidget.__setSearchDirectory">__setSearchDirectory</a></td>
+<td>Private slot to set the name of the directory to search in.</td>
+</tr>
+<tr>
 <td><a href="#FindFileWidget.__stopSearch">__stopSearch</a></td>
 <td>Private slot to handle the stop button being pressed.</td>
 </tr>
@@ -196,14 +336,6 @@
 <td><a href="#FindFileWidget.on_replacetextCombo_editTextChanged">on_replacetextCombo_editTextChanged</a></td>
 <td>Private slot to handle the editTextChanged signal of the replace text combo.</td>
 </tr>
-<tr>
-<td><a href="#FindFileWidget.setOpenFiles">setOpenFiles</a></td>
-<td>Public slot to set the mode to search in open files.</td>
-</tr>
-<tr>
-<td><a href="#FindFileWidget.setSearchDirectory">setSearchDirectory</a></td>
-<td>Public slot to set the name of the directory to search in.</td>
-</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -369,6 +501,27 @@
 <p>
         Private slot to react to the opening of a project.
 </p>
+<a NAME="FindFileWidget.__setOpenFiles" ID="FindFileWidget.__setOpenFiles"></a>
+<h4>FindFileWidget.__setOpenFiles</h4>
+<b>__setOpenFiles</b>(<i></i>)
+
+<p>
+        Private slot to set the mode to search in open files.
+</p>
+<a NAME="FindFileWidget.__setSearchDirectory" ID="FindFileWidget.__setSearchDirectory"></a>
+<h4>FindFileWidget.__setSearchDirectory</h4>
+<b>__setSearchDirectory</b>(<i>searchDir</i>)
+
+<p>
+        Private slot to set the name of the directory to search in.
+</p>
+<dl>
+
+<dt><i>searchDir</i> (str)</dt>
+<dd>
+name of the directory to search in
+</dd>
+</dl>
 <a NAME="FindFileWidget.__stopSearch" ID="FindFileWidget.__stopSearch"></a>
 <h4>FindFileWidget.__stopSearch</h4>
 <b>__stopSearch</b>(<i></i>)
@@ -552,27 +705,6 @@
 (ignored)
 </dd>
 </dl>
-<a NAME="FindFileWidget.setOpenFiles" ID="FindFileWidget.setOpenFiles"></a>
-<h4>FindFileWidget.setOpenFiles</h4>
-<b>setOpenFiles</b>(<i></i>)
-
-<p>
-        Public slot to set the mode to search in open files.
-</p>
-<a NAME="FindFileWidget.setSearchDirectory" ID="FindFileWidget.setSearchDirectory"></a>
-<h4>FindFileWidget.setSearchDirectory</h4>
-<b>setSearchDirectory</b>(<i>searchDir</i>)
-
-<p>
-        Public slot to set the name of the directory to search in.
-</p>
-<dl>
-
-<dt><i>searchDir</i> (str)</dt>
-<dd>
-name of the directory to search in
-</dd>
-</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/eric7/Documentation/Source/eric7.UI.FindLocationWidget.html	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Documentation/Source/eric7.UI.FindLocationWidget.html	Mon May 02 15:52:33 2022 +0200
@@ -21,6 +21,10 @@
 <table>
 
 <tr>
+<td><a href="#FindLocationDialog">FindLocationDialog</a></td>
+<td>Class implementing a dialog to search for files.</td>
+</tr>
+<tr>
 <td><a href="#FindLocationWidget">FindLocationWidget</a></td>
 <td>Class implementing a widget to search for files.</td>
 </tr>
@@ -32,6 +36,108 @@
 </table>
 <hr />
 <hr />
+<a NAME="FindLocationDialog" ID="FindLocationDialog"></a>
+<h2>FindLocationDialog</h2>
+
+<p>
+    Class implementing a dialog to search for files.
+</p>
+<p>
+    The occurrences found are displayed in a QTreeWidget showing the
+    filename and the pathname. The file will be opened upon a double click
+    onto the respective entry of the list or by pressing the open button.
+</p>
+<h3>Signals</h3>
+<dl>
+
+<dt>designerFile(str)</dt>
+<dd>
+emitted to open a Qt-Designer file
+</dd>
+<dt>linguistFile(str)</dt>
+<dd>
+emitted to open a Qt-Linguist (*.ts) file
+</dd>
+<dt>pixmapFile(str)</dt>
+<dd>
+emitted to open a pixmap file
+</dd>
+<dt>sourceFile(str)</dt>
+<dd>
+emitted to open a file in the editor
+</dd>
+<dt>svgFile(str)</dt>
+<dd>
+emitted to open a SVG file
+</dd>
+<dt>trpreview([str])</dt>
+<dd>
+emitted to preview Qt-Linguist (*.qm) files
+</dd>
+<dt>umlFile(str)</dt>
+<dd>
+emitted to open an eric UML file
+</dd>
+</dl>
+<h3>Derived from</h3>
+QDialog
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#FindLocationDialog.__init__">FindLocationDialog</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#FindLocationDialog.activate">activate</a></td>
+<td>Public method to activate the dialog.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="FindLocationDialog.__init__" ID="FindLocationDialog.__init__"></a>
+<h4>FindLocationDialog (Constructor)</h4>
+<b>FindLocationDialog</b>(<i>project, parent=None</i>)
+
+<p>
+        Constructor
+</p>
+<dl>
+
+<dt><i>project</i> (Project)</dt>
+<dd>
+reference to the project object
+</dd>
+<dt><i>parent</i> (QWidget (optional))</dt>
+<dd>
+parent widget of this dialog (defaults to None)
+</dd>
+</dl>
+<a NAME="FindLocationDialog.activate" ID="FindLocationDialog.activate"></a>
+<h4>FindLocationDialog.activate</h4>
+<b>activate</b>(<i></i>)
+
+<p>
+        Public method to activate the dialog.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
 <a NAME="FindLocationWidget" ID="FindLocationWidget"></a>
 <h2>FindLocationWidget</h2>
 
@@ -121,7 +227,7 @@
 </tr>
 <tr>
 <td><a href="#FindLocationWidget.activate">activate</a></td>
-<td>Public slot to enable/disable the project checkbox.</td>
+<td>Public slot to activate this widget.</td>
 </tr>
 <tr>
 <td><a href="#FindLocationWidget.checkStop">checkStop</a></td>
@@ -221,7 +327,7 @@
 <b>activate</b>(<i></i>)
 
 <p>
-        Public slot to enable/disable the project checkbox.
+        Public slot to activate this widget.
 </p>
 <a NAME="FindLocationWidget.checkStop" ID="FindLocationWidget.checkStop"></a>
 <h4>FindLocationWidget.checkStop</h4>
--- a/eric7/EricWidgets/EricPathPicker.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/EricWidgets/EricPathPicker.py	Mon May 02 15:52:33 2022 +0200
@@ -684,6 +684,15 @@
         """
         self._editor.setCurrentIndex(index)
     
+    def setCurrentText(self, text):
+        """
+        Public slot to set the current text.
+        
+        @param text text of the item to set current
+        @type str
+        """
+        self._editor.setCurrentText(text)
+    
     def setInsertPolicy(self, policy):
         """
         Public method to set the insertion policy of the combo box.
--- a/eric7/EricWidgets/EricSpellCheckedTextEdit.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/EricWidgets/EricSpellCheckedTextEdit.py	Mon May 02 15:52:33 2022 +0200
@@ -410,9 +410,18 @@
             @param pel file name of the personal exclude list
             @type str
             """
-            self.__highlighter.setDict(
-                enchant.DictWithPWL(language, pwl, pel)
-            )
+            try:
+                spellDict = enchant.DictWithPWL(language, pwl, pel)
+            except DictNotFoundError:
+                try:
+                    # Use English dictionary if a dictionary for the given
+                    # language is not available.
+                    spellDict = enchant.DictWithPWL("en", pwl, pel)
+                except DictNotFoundError:
+                    # Still no dictionary could be found. Forget about spell
+                    # checking.
+                    spellDict = None
+            self.__highlighter.setDict(spellDict)
         
         @classmethod
         def setDefaultLanguage(cls, language, pwl=None, pel=None):
--- a/eric7/Globals/__init__.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Globals/__init__.py	Mon May 02 15:52:33 2022 +0200
@@ -244,6 +244,21 @@
     configDir = os.path.expanduser(d)
 
 
+def getPythonExecutable():
+    """
+    Function to determine the path of the (non-windowed) Python executable.
+    
+    @return path of the Python executable
+    @rtype str
+    """
+    if sys.platform.startswith("linux"):
+        return sys.executable
+    elif sys.platform == "darwin":
+        return sys.executable.replace("pythonw", "python")
+    else:
+        return sys.executable.replace("pythonw.exe", "python.exe")
+
+
 def getPythonLibraryDirectory():
     """
     Function to determine the path to Python's library directory.
@@ -554,7 +569,7 @@
     scriptPath = os.path.join(getConfig("ericDir"), "Tools",
                               "webBrowserSupport.py")
     proc = QProcess()
-    proc.start(sys.executable, [scriptPath, qVersion()])
+    proc.start(getPythonExecutable(), [scriptPath, qVersion()])
     variant = (
         str(proc.readAllStandardOutput(), "utf-8", 'replace').strip()
         if proc.waitForFinished(10000) else
--- a/eric7/MicroPython/EspDevices.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/MicroPython/EspDevices.py	Mon May 02 15:52:33 2022 +0200
@@ -8,8 +8,6 @@
 boards.
 """
 
-import sys
-
 from PyQt6.QtCore import pyqtSlot, QProcess
 from PyQt6.QtWidgets import QDialog
 
@@ -20,6 +18,7 @@
 from .MicroPythonDevices import MicroPythonDevice
 from .MicroPythonWidget import HAS_QTCHART
 
+import Globals
 import Preferences
 
 
@@ -187,7 +186,7 @@
             dlg = EricProcessDialog(self.tr("'esptool erase_flash' Output"),
                                     self.tr("Erase Flash"),
                                     showProgress=True)
-            res = dlg.startProcess(sys.executable, flashArgs)
+            res = dlg.startProcess(Globals.getPythonExecutable(), flashArgs)
             if res:
                 dlg.exec()
     
@@ -222,7 +221,7 @@
             dlg = EricProcessDialog(self.tr("'esptool write_flash' Output"),
                                     self.tr("Flash MicroPython Firmware"),
                                     showProgress=True)
-            res = dlg.startProcess(sys.executable, flashArgs)
+            res = dlg.startProcess(Globals.getPythonExecutable(), flashArgs)
             if res:
                 dlg.exec()
     
@@ -257,7 +256,7 @@
             dlg = EricProcessDialog(self.tr("'esptool write_flash' Output"),
                                     self.tr("Flash Additional Firmware"),
                                     showProgress=True)
-            res = dlg.startProcess(sys.executable, flashArgs)
+            res = dlg.startProcess(Globals.getPythonExecutable(), flashArgs)
             if res:
                 dlg.exec()
     
@@ -285,7 +284,7 @@
             dlg = EricProcessDialog(self.tr("'esptool read_flash' Output"),
                                     self.tr("Backup Firmware"),
                                     showProgress=True)
-            res = dlg.startProcess(sys.executable, flashArgs)
+            res = dlg.startProcess(Globals.getPythonExecutable(), flashArgs)
             if res:
                 dlg.exec()
     
@@ -323,7 +322,7 @@
             dlg = EricProcessDialog(self.tr("'esptool write_flash' Output"),
                                     self.tr("Restore Firmware"),
                                     showProgress=True)
-            res = dlg.startProcess(sys.executable, flashArgs)
+            res = dlg.startProcess(Globals.getPythonExecutable(), flashArgs)
             if res:
                 dlg.exec()
     
@@ -340,7 +339,7 @@
         ]
         dlg = EricProcessDialog(self.tr("'esptool chip_id' Output"),
                                 self.tr("Show Chip ID"))
-        res = dlg.startProcess(sys.executable, args)
+        res = dlg.startProcess(Globals.getPythonExecutable(), args)
         if res:
             dlg.exec()
     
@@ -357,7 +356,7 @@
         ]
         dlg = EricProcessDialog(self.tr("'esptool flash_id' Output"),
                                 self.tr("Show Flash ID"))
-        res = dlg.startProcess(sys.executable, args)
+        res = dlg.startProcess(Globals.getPythonExecutable(), args)
         if res:
             dlg.exec()
     
@@ -374,7 +373,7 @@
         ]
         dlg = EricProcessDialog(self.tr("'esptool read_mac' Output"),
                                 self.tr("Show MAC Address"))
-        res = dlg.startProcess(sys.executable, args)
+        res = dlg.startProcess(Globals.getPythonExecutable(), args)
         if res:
             dlg.exec()
     
@@ -398,7 +397,7 @@
                 "flash_id"
             ]
             proc = QProcess()
-            proc.start(sys.executable, args)
+            proc.start(Globals.getPythonExecutable(), args)
             procStarted = proc.waitForStarted(10000)
             if procStarted:
                 proc.waitForFinished(10000)
@@ -409,7 +408,8 @@
         Private slot to install the esptool package via pip.
         """
         pip = ericApp().getObject("Pip")
-        pip.installPackages(["esptool"], interpreter=sys.executable)
+        pip.installPackages(["esptool"],
+                            interpreter=Globals.getPythonExecutable())
     
     def getDocumentationUrl(self):
         """
--- a/eric7/PipInterface/Pip.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/PipInterface/Pip.py	Mon May 02 15:52:33 2022 +0200
@@ -210,7 +210,7 @@
             )
             if not venvName:
                 # fall back to interpreter used to run eric7
-                return sys.executable
+                return Globals.getPythonExecutable()
         
         interpreter = (
             ericApp().getObject("VirtualEnvManager")
@@ -352,7 +352,9 @@
         if not venvName:
             return False
         
-        if self.getVirtualenvInterpreter(venvName) == sys.executable:
+        if self.getVirtualenvInterpreter(venvName) in (
+            sys.executable, Globals.getPythonExecutable()
+        ):
             upgradePyQt = self.__checkUpgradePyQt(packages)
             upgradeEric = self.__checkUpgradeEric(packages)
             if upgradeEric or upgradePyQt:
@@ -961,7 +963,7 @@
                     args.append("--reverse")
                 
                 proc = QProcess()
-                proc.start(sys.executable.replace("w.exe", ".exe"), args)
+                proc.start(Globals.getPythonExecutable(), args)
                 if proc.waitForStarted(15000) and proc.waitForFinished(30000):
                     output = str(proc.readAllStandardOutput(),
                                  Preferences.getSystem("IOEncoding"),
--- a/eric7/PipInterface/PipLicensesDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/PipInterface/PipLicensesDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -7,10 +7,13 @@
 Module implementing a dialog to show the licenses of an environment.
 """
 
+import os
+
 from PyQt6.QtCore import pyqtSlot, Qt
-from PyQt6.QtWidgets import QDialog, QTreeWidgetItem
+from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem
 
 from EricGui.EricOverrideCursor import EricOverrideCursor
+from EricWidgets import EricFileDialog, EricMessageBox
 
 from .Ui_PipLicensesDialog import Ui_PipLicensesDialog
 
@@ -50,6 +53,13 @@
         self.__pip = pip
         self.__environment = environment
         
+        self.__saveCSVButton = self.buttonBox.addButton(
+            self.tr("Save as CSV..."), QDialogButtonBox.ButtonRole.ActionRole)
+        self.__saveCSVButton.clicked.connect(self.__saveAsCSV)
+        
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setDefault(True)
+        
         self.localCheckBox.setChecked(localPackages)
         self.userCheckBox.setChecked(usersite)
         
@@ -115,3 +125,53 @@
             for col in range(self.summaryList.columnCount()):
                 self.summaryList.resizeColumnToContents(col)
             self.summaryList.setUpdatesEnabled(True)
+        
+        enable = bool(self.licensesList.topLevelItemCount())
+        self.__saveCSVButton.setEnabled(enable)
+    
+    @pyqtSlot()
+    def __saveAsCSV(self):
+        """
+        Private slot to save the license information as a CSV file.
+        """
+        import csv
+        
+        fileName, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
+            self,
+            self.tr("Save as CSV"),
+            os.path.expanduser("~"),
+            self.tr("CSV Files (*.csv);;All Files (*)"),
+            None,
+            EricFileDialog.DontConfirmOverwrite
+        )
+        if fileName:
+            ext = os.path.splitext(fileName)[1]
+            if not ext:
+                ex = selectedFilter.split("(*")[1].split(")")[0]
+                if ex:
+                    fileName += ex
+            
+            try:
+                with open(fileName, "w", newline="",
+                          encoding="utf-8") as csvFile:
+                    fieldNames = ["Name", "Version", "License"]
+                    writer = csv.DictWriter(csvFile, fieldnames=fieldNames)
+                    
+                    writer.writeheader()
+                    for row in range(self.licensesList.topLevelItemCount()):
+                        itm = self.licensesList.topLevelItem(row)
+                        writer.writerow({
+                            "Name": itm.text(0),
+                            "Version": itm.text(1),
+                            "License": itm.text(2),
+                        })
+            except OSError as err:
+                EricMessageBox.critical(
+                    self,
+                    self.tr("Save as CSV"),
+                    self.tr(
+                        """<p>The license information could not be saved"""
+                        """ into the CSV file <b>{0}</b>.</p>"""
+                        """<p>Reason: {1}</p>"""
+                    ).format(fileName, str(err))
+                )
--- a/eric7/PipInterface/PipPackagesWidget.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/PipInterface/PipPackagesWidget.py	Mon May 02 15:52:33 2022 +0200
@@ -1820,7 +1820,6 @@
         Private slot to show a dialog with the licenses of the selected
         environment.
         """
-        # TODO: not yet implemented
         from .PipLicensesDialog import PipLicensesDialog
         
         environment = self.environmentsComboBox.currentText()
--- a/eric7/PluginManager/PluginManager.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/PluginManager/PluginManager.py	Mon May 02 15:52:33 2022 +0200
@@ -63,6 +63,8 @@
         before a plugin is deactivated
     @signal pluginDeactivated(moduleName, pluginObject) emitted just after
         a plugin was deactivated
+    @signal pluginRepositoryFileDownloaded() emitted to indicate a completed
+        download of the plugin repository file
     """
     shutdown = pyqtSignal()
     pluginAboutToBeActivated = pyqtSignal(str, object)
@@ -70,6 +72,7 @@
     allPlugginsActivated = pyqtSignal()
     pluginAboutToBeDeactivated = pyqtSignal(str, object)
     pluginDeactivated = pyqtSignal(str, object)
+    pluginRepositoryFileDownloaded = pyqtSignal()
     
     def __init__(self, parent=None, disabledPlugins=None, doLoadPlugins=True,
                  develPlugin=None):
@@ -1231,8 +1234,15 @@
         Public method to check the availability of updates of plug-ins.
         """
         period = Preferences.getPluginManager("UpdatesCheckInterval")
+        # 0 = off
+        # 1 = daily
+        # 2 = weekly
+        # 3 = monthly
+        # 4 = always
+        
         if period == 0 or not self.__ui.isOnline():
             return
+        
         elif period in [1, 2, 3]:
             lastModified = QFileInfo(self.pluginRepositoryFile).lastModified()
             if lastModified.isValid() and lastModified.date().isValid():
@@ -1247,10 +1257,21 @@
                     # daily, weekly, monthly
                     return
         
+        self.downLoadRepositoryFile()
+    
+    def downLoadRepositoryFile(self, url=None):
+        """
+        Public method to download the plugin repository file.
+        
+        @param url URL to get the plugin repository file from
+            (defaults to None)
+        @type QUrl or str (optional)
+        """
         self.__updateAvailable = False
         
-        request = QNetworkRequest(
-            QUrl(Preferences.getUI("PluginRepositoryUrl7")))
+        if url is None:
+            url = Preferences.getUI("PluginRepositoryUrl7")
+        request = QNetworkRequest(QUrl(url))
         request.setAttribute(
             QNetworkRequest.Attribute.CacheLoadControlAttribute,
             QNetworkRequest.CacheLoadControl.AlwaysNetwork)
@@ -1310,6 +1331,8 @@
                 
                 if self.__updateAvailable:
                     self.__ui.activatePluginRepositoryViewer()
+                else:
+                    self.pluginRepositoryFileDownloaded.emit()
     
     def checkPluginEntry(self, name, short, description, url, author, version,
                          filename, status):
@@ -1427,7 +1450,8 @@
             # Installation is performed via the plug-in installation script.
             from PipInterface.Pip import Pip
             pip = Pip(self)
-        pip.installPackages(packages, interpreter=sys.executable)
+        pip.installPackages(packages,
+                            interpreter=Globals.getPythonExecutable())
 
 #
 # eflag: noqa = M801
--- a/eric7/PluginManager/PluginRepositoryDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/PluginManager/PluginRepositoryDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -7,7 +7,6 @@
 Module implementing a dialog showing the available plugins.
 """
 
-import sys
 import os
 import zipfile
 import glob
@@ -103,7 +102,7 @@
             self.__updateButton = QToolButton(self)
             self.__updateButton.setIcon(UI.PixmapCache.getIcon("reload"))
             self.__updateButton.setToolTip(self.tr("Update"))
-            self.__updateButton.clicked.connect(self.updateList)
+            self.__updateButton.clicked.connect(self.__updateList)
             self.__actionButtonsLayout.addWidget(self.__updateButton)
             
             self.__downloadButton = QToolButton(self)
@@ -187,6 +186,9 @@
         self.pluginRepositoryFile = os.path.join(Utilities.getConfigDir(),
                                                  "PluginRepository")
         
+        self.__pluginManager.pluginRepositoryFileDownloaded.connect(
+            self.__populateList)
+        
         # attributes for the network objects
         self.__networkManager = QNetworkAccessManager(self)
         self.__networkManager.proxyAuthenticationRequired.connect(
@@ -247,7 +249,7 @@
         @param button reference to the button pressed (QAbstractButton)
         """
         if button == self.__updateButton:
-            self.updateList()
+            self.__updateList()
         elif button == self.__downloadButton:
             self.__downloadButtonClicked()
         elif button == self.__downloadInstallButton:
@@ -374,14 +376,19 @@
         self.__downloadInstallButton.setEnabled(enable and self.__online)
         self.__installButton.setEnabled(enable)
     
-    def updateList(self):
+    def reloadList(self):
+        """
+        Public method to reload the list of plugins.
         """
-        Public slot to download a new list and display the contents.
+        self.__populateList()
+    
+    @pyqtSlot()
+    def __updateList(self):
+        """
+        Private slot to download a new list and display the contents.
         """
         url = self.repositoryUrlEdit.text()
-        self.__downloadFile(url,
-                            self.pluginRepositoryFile,
-                            self.__downloadRepositoryFileDone)
+        self.__pluginManager.downLoadRepositoryFile(url=url)
     
     def __downloadRepositoryFileDone(self, status, filename):
         """
@@ -990,7 +997,7 @@
         
         if (
             not os.path.isfile(applPath) or
-            not proc.startDetached(sys.executable, args)
+            not proc.startDetached(Globals.getPythonExecutable(), args)
         ):
             EricMessageBox.critical(
                 self,
--- a/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -7,7 +7,6 @@
 Module implementing a dialog to enter the parameters for eric7_api.
 """
 
-import sys
 import os
 import copy
 
@@ -17,6 +16,8 @@
 from EricWidgets.EricPathPicker import EricPathPickerModes
 
 from .Ui_EricapiConfigDialog import Ui_EricapiConfigDialog
+
+import Globals
 import Utilities
 import DocumentationTools
 
@@ -111,7 +112,7 @@
     
     def generateParameters(self):
         """
-        Public method that generates the commandline parameters.
+        Public method that generates the command line parameters.
         
         It generates a list of strings to be used
         to set the QProcess arguments for the ericapi call and
@@ -126,7 +127,7 @@
         args = []
         
         # 1. the program name
-        args.append(sys.executable)
+        args.append(Globals.getPythonExecutable())
         args.append(
             Utilities.normabsjoinpath(getConfig('ericDir'), "eric7_api.py"))
         
--- a/eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -7,7 +7,6 @@
 Module implementing a dialog to enter the parameters for eric7_doc.
 """
 
-import sys
 import os
 import copy
 
@@ -21,6 +20,8 @@
 from DocumentationTools.Config import (
     eric7docDefaultColors, eric7docColorParameterNames
 )
+
+import Globals
 import Utilities
 
 from eric7config import getConfig
@@ -177,7 +178,7 @@
         args = []
         
         # 1. the program name
-        args.append(sys.executable)
+        args.append(Globals.getPythonExecutable())
         args.append(
             Utilities.normabsjoinpath(getConfig('ericDir'), "eric7_doc.py"))
         
--- a/eric7/Plugins/VcsPlugins/vcsGit/git.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/git.py	Mon May 02 15:52:33 2022 +0200
@@ -25,6 +25,7 @@
 
 from .GitDialog import GitDialog
 
+import Globals
 import Utilities
 import Preferences
 
@@ -1832,7 +1833,8 @@
         
         import sys
         editor = sys.argv[0].replace(".py", "_editor.py")
-        env = {"GIT_EDITOR": "{0} {1}".format(sys.executable, editor)}
+        env = {"GIT_EDITOR": "{0} {1}".format(
+            Globals.getPythonExecutable(), editor)}
         
         args = self.initCommand("commit")
         
@@ -3221,7 +3223,8 @@
         
         import sys
         editor = sys.argv[0].replace(".py", "_editor.py")
-        env = {"GIT_EDITOR": "{0} {1}".format(sys.executable, editor)}
+        env = {"GIT_EDITOR": "{0} {1}".format(
+            Globals.getPythonExecutable(), editor)}
         
         args = self.initCommand("cherry-pick")
         args.append("--continue")
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py	Mon May 02 15:52:33 2022 +0200
@@ -8,7 +8,6 @@
 """
 
 import os
-import sys
 
 from PyQt6.QtCore import pyqtSlot
 
@@ -20,6 +19,7 @@
 from .Ui_MercurialPage import Ui_MercurialPage
 from .. import HgUtilities
 
+import Globals
 from Utilities import supportedCodecs
 
 
@@ -132,7 +132,8 @@
         Private slot to install Mercurial alongside eric7.
         """
         pip = ericApp().getObject("Pip")
-        pip.installPackages(["mercurial"], interpreter=sys.executable)
+        pip.installPackages(["mercurial"],
+                            interpreter=Globals.getPythonExecutable())
         self.installButton.setEnabled(not self.__mercurialInstalled())
     
     def __mercurialInstalled(self):
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui	Mon May 02 15:52:33 2022 +0200
@@ -209,7 +209,7 @@
      <property name="title">
       <string>Pull</string>
      </property>
-     <layout class="QVBoxLayout" name="verticalLayout_2">
+     <layout class="QHBoxLayout" name="horizontalLayout_2">
       <item>
        <widget class="QCheckBox" name="pullUpdateCheckBox">
         <property name="toolTip">
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/GpgExtension/HgGpgSignDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/GpgExtension/HgGpgSignDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -24,10 +24,14 @@
         """
         Constructor
         
-        @param tagsList list of tags (list of strings)
-        @param branchesList list of branches (list of strings)
-        @param bookmarksList list of bookmarks (list of strings)
-        @param parent reference to the parent widget (QWidget)
+        @param tagsList list of tags
+        @type list of str
+        @param branchesList list of branches
+        @type list of str
+        @param bookmarksList list of bookmarks
+        @type list of str
+        @param parent parent widget
+        @type QWidget
         """
         super().__init__(parent)
         self.setupUi(self)
@@ -48,7 +52,22 @@
         else:
             self.bookmarkButton.setHidden(True)
             self.bookmarkCombo.setHidden(True)
+        
+        # connect various radio buttons and input fields
+        self.idButton.toggled.connect(self.__updateOK)
+        self.tagButton.toggled.connect(self.__updateOK)
+        self.branchButton.toggled.connect(self.__updateOK)
+        self.bookmarkButton.toggled.connect(self.__updateOK)
+        self.expressionButton.toggled.connect(self.__updateOK)
+        
+        self.idEdit.textChanged.connect(self.__updateOK)
+        self.expressionEdit.textChanged.connect(self.__updateOK)
+        
+        self.tagCombo.editTextChanged.connect(self.__updateOK)
+        self.branchCombo.editTextChanged.connect(self.__updateOK)
+        self.bookmarkCombo.editTextChanged.connect(self.__updateOK)
     
+    @pyqtSlot()
     def __updateOK(self):
         """
         Private slot to update the OK button.
@@ -62,82 +81,12 @@
             enabled = enabled and self.branchCombo.currentText() != ""
         elif self.bookmarkButton.isChecked():
             enabled = enabled and self.bookmarkCombo.currentText() != ""
+        elif self.expressionButton.isChecked():
+            enabled = enabled and bool(self.expressionEdit.text())
         
         self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok).setEnabled(enabled)
     
-    @pyqtSlot(bool)
-    def on_idButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the ID select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_tagButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Tag select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_branchButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Branch select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_bookmarkButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Bookmark select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_idEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the ID edit.
-        
-        @param txt text of the edit (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_tagCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Tag combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_branchCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Branch combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_bookmarkCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Bookmark combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
     def getData(self):
         """
         Public method to retrieve the entered data.
@@ -145,7 +94,8 @@
         @return tuple giving the revision, a flag indicating not to commit
             the signature, a commit message, an ID of the key to be used,
             a flag indicating a local signature and a flag indicating a forced
-            signature (string, boolean, string, string, boolean, boolean)
+            signature
+        @rtype tuple of (str, bool, str, str, bool, bool)
         """
         if self.numberButton.isChecked():
             rev = str(self.numberSpinBox.value())
@@ -157,6 +107,8 @@
             rev = self.branchCombo.currentText()
         elif self.bookmarkButton.isChecked():
             rev = self.bookmarkCombo.currentText()
+        elif self.expressionButton.isChecked():
+            rev = self.expressionEdit.text()
         else:
             rev = ""
         
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/GpgExtension/HgGpgSignDialog.ui	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/GpgExtension/HgGpgSignDialog.ui	Mon May 02 15:52:33 2022 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>400</width>
-    <height>518</height>
+    <height>600</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -169,7 +169,27 @@
         </property>
        </widget>
       </item>
-      <item row="5" column="0" colspan="3">
+      <item row="5" column="0">
+       <widget class="QRadioButton" name="expressionButton">
+        <property name="text">
+         <string>Expression:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="1" colspan="2">
+       <widget class="QLineEdit" name="expressionEdit">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="toolTip">
+         <string>Enter a revision set expression</string>
+        </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="0" colspan="3">
        <widget class="QRadioButton" name="tipButton">
         <property name="toolTip">
          <string>Select tip revision of repository</string>
@@ -282,13 +302,17 @@
   <tabstop>branchCombo</tabstop>
   <tabstop>bookmarkButton</tabstop>
   <tabstop>bookmarkCombo</tabstop>
+  <tabstop>expressionButton</tabstop>
+  <tabstop>expressionEdit</tabstop>
   <tabstop>tipButton</tabstop>
   <tabstop>nocommitCheckBox</tabstop>
   <tabstop>messageEdit</tabstop>
   <tabstop>keyEdit</tabstop>
   <tabstop>localCheckBox</tabstop>
   <tabstop>forceCheckBox</tabstop>
-  <tabstop>buttonBox</tabstop>
+  <tabstop>keyEdit_2</tabstop>
+  <tabstop>localCheckBox_2</tabstop>
+  <tabstop>forceCheckBox_2</tabstop>
  </tabstops>
  <resources/>
  <connections>
@@ -299,8 +323,8 @@
    <slot>accept()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>252</x>
-     <y>271</y>
+     <x>261</x>
+     <y>590</y>
     </hint>
     <hint type="destinationlabel">
      <x>157</x>
@@ -315,8 +339,8 @@
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
+     <x>325</x>
+     <y>590</y>
     </hint>
     <hint type="destinationlabel">
      <x>286</x>
@@ -331,12 +355,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>48</x>
-     <y>89</y>
+     <x>69</x>
+     <y>66</y>
     </hint>
     <hint type="destinationlabel">
-     <x>118</x>
-     <y>87</y>
+     <x>215</x>
+     <y>68</y>
     </hint>
    </hints>
   </connection>
@@ -347,12 +371,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>47</x>
-     <y>131</y>
+     <x>68</x>
+     <y>99</y>
     </hint>
     <hint type="destinationlabel">
-     <x>105</x>
-     <y>116</y>
+     <x>227</x>
+     <y>100</y>
     </hint>
    </hints>
   </connection>
@@ -363,12 +387,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>43</x>
-     <y>142</y>
+     <x>64</x>
+     <y>131</y>
     </hint>
     <hint type="destinationlabel">
-     <x>102</x>
-     <y>141</y>
+     <x>224</x>
+     <y>132</y>
     </hint>
    </hints>
   </connection>
@@ -379,12 +403,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>42</x>
-     <y>170</y>
+     <x>63</x>
+     <y>163</y>
     </hint>
     <hint type="destinationlabel">
-     <x>115</x>
-     <y>171</y>
+     <x>237</x>
+     <y>164</y>
     </hint>
    </hints>
   </connection>
@@ -395,12 +419,28 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>51</x>
+     <x>72</x>
+     <y>195</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>230</x>
      <y>196</y>
     </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>expressionButton</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>expressionEdit</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>67</x>
+     <y>221</y>
+    </hint>
     <hint type="destinationlabel">
-     <x>108</x>
-     <y>201</y>
+     <x>153</x>
+     <y>217</y>
     </hint>
    </hints>
   </connection>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/GpgExtension/gpg.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/GpgExtension/gpg.py	Mon May 02 15:52:33 2022 +0200
@@ -54,9 +54,11 @@
             dlg = HgRevisionSelectionDialog(
                 self.vcs.hgGetTagsList(),
                 self.vcs.hgGetBranchesList(),
-                self.vcs.hgGetBookmarksList())
+                bookmarksList=self.vcs.hgGetBookmarksList(),
+                revset=False
+            )
             if dlg.exec() == QDialog.DialogCode.Accepted:
-                rev = dlg.getRevision(revset=False)
+                rev = dlg.getRevision()
         
         if rev is not None:
             if rev == "":
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgBackoutDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgBackoutDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -24,10 +24,14 @@
         """
         Constructor
         
-        @param tagsList list of tags (list of strings)
-        @param branchesList list of branches (list of strings)
-        @param bookmarksList list of bookmarks (list of strings)
-        @param parent parent widget (QWidget)
+        @param tagsList list of tags
+        @type list of str
+        @param branchesList list of branches
+        @type list of str
+        @param bookmarksList list of bookmarks
+        @type list of str
+        @param parent parent widget
+        @type QWidget
         """
         super().__init__(parent)
         self.setupUi(self)
@@ -49,9 +53,25 @@
             self.bookmarkButton.setHidden(True)
             self.bookmarkCombo.setHidden(True)
         
+        # connect various radio buttons and input fields
+        self.idButton.toggled.connect(self.__updateOK)
+        self.tagButton.toggled.connect(self.__updateOK)
+        self.branchButton.toggled.connect(self.__updateOK)
+        self.bookmarkButton.toggled.connect(self.__updateOK)
+        self.expressionButton.toggled.connect(self.__updateOK)
+        self.noneButton.toggled.connect(self.__updateOK)
+        
+        self.idEdit.textChanged.connect(self.__updateOK)
+        self.expressionEdit.textChanged.connect(self.__updateOK)
+        
+        self.tagCombo.editTextChanged.connect(self.__updateOK)
+        self.branchCombo.editTextChanged.connect(self.__updateOK)
+        self.bookmarkCombo.editTextChanged.connect(self.__updateOK)
+        
         self.__initDateTime = QDateTime.currentDateTime()
         self.dateEdit.setDateTime(self.__initDateTime)
     
+    @pyqtSlot()
     def __updateOK(self):
         """
         Private slot to update the OK button.
@@ -60,105 +80,26 @@
         if self.noneButton.isChecked():
             enabled = False
         elif self.idButton.isChecked():
-            enabled = self.idEdit.text() != ""
+            enabled = bool(self.idEdit.text())
         elif self.tagButton.isChecked():
-            enabled = self.tagCombo.currentText() != ""
+            enabled = bool(self.tagCombo.currentText())
         elif self.branchButton.isChecked():
-            enabled = self.branchCombo.currentText() != ""
+            enabled = bool(self.branchCombo.currentText())
         elif self.bookmarkButton.isChecked():
-            enabled = self.bookmarkCombo.currentText() != ""
+            enabled = bool(self.bookmarkCombo.currentText())
+        elif self.expressionButton.isChecked():
+            enabled = enabled and bool(self.expressionEdit.text())
         
         self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok).setEnabled(enabled)
     
-    @pyqtSlot(bool)
-    def on_idButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the ID select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_tagButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Tag select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_branchButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Branch select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_bookmarkButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Bookmark select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_noneButton_toggled(self, checked):
-        """
-        Private slot to handle the toggling of the None revision button.
-        
-        @param checked flag indicating the checked state (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_idEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the ID edit.
-        
-        @param txt text of the edit (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_tagCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Tag combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_branchCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Branch combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_bookmarkCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Bookmark combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
     def getParameters(self):
         """
         Public method to retrieve the backout data.
         
         @return tuple naming the revision, a flag indicating a
             merge, the commit date, the commit user and a commit message
-            (string, boolean, string, string, string)
+        @rtype tuple of (str, bool, str, str, str)
         """
         if self.numberButton.isChecked():
             rev = "rev({0})".format(self.numberSpinBox.value())
@@ -170,6 +111,8 @@
             rev = self.branchCombo.currentText()
         elif self.bookmarkButton.isChecked():
             rev = self.bookmarkCombo.currentText()
+        elif self.expressionButton.isChecked():
+            rev = self.expressionEdit.text()
         else:
             rev = ""
         
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgBackoutDialog.ui	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgBackoutDialog.ui	Mon May 02 15:52:33 2022 +0200
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>372</width>
-    <height>515</height>
+    <width>400</width>
+    <height>600</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -169,7 +169,27 @@
         </property>
        </widget>
       </item>
-      <item row="5" column="0" colspan="2">
+      <item row="5" column="0">
+       <widget class="QRadioButton" name="expressionButton">
+        <property name="text">
+         <string>Expression:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="1" colspan="2">
+       <widget class="QLineEdit" name="expressionEdit">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="toolTip">
+         <string>Enter a revision set expression</string>
+        </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="0" colspan="3">
        <widget class="QRadioButton" name="noneButton">
         <property name="toolTip">
          <string>Select to not specify a specific revision</string>
@@ -289,12 +309,13 @@
   <tabstop>branchCombo</tabstop>
   <tabstop>bookmarkButton</tabstop>
   <tabstop>bookmarkCombo</tabstop>
+  <tabstop>expressionButton</tabstop>
+  <tabstop>expressionEdit</tabstop>
   <tabstop>noneButton</tabstop>
   <tabstop>messageEdit</tabstop>
   <tabstop>dateEdit</tabstop>
   <tabstop>userEdit</tabstop>
   <tabstop>mergeCheckBox</tabstop>
-  <tabstop>buttonBox</tabstop>
  </tabstops>
  <resources/>
  <connections>
@@ -305,8 +326,8 @@
    <slot>accept()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>261</x>
-     <y>450</y>
+     <x>270</x>
+     <y>590</y>
     </hint>
     <hint type="destinationlabel">
      <x>157</x>
@@ -321,8 +342,8 @@
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>329</x>
-     <y>450</y>
+     <x>338</x>
+     <y>590</y>
     </hint>
     <hint type="destinationlabel">
      <x>286</x>
@@ -337,12 +358,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>48</x>
-     <y>42</y>
+     <x>69</x>
+     <y>66</y>
     </hint>
     <hint type="destinationlabel">
-     <x>113</x>
-     <y>43</y>
+     <x>215</x>
+     <y>68</y>
     </hint>
    </hints>
   </connection>
@@ -369,12 +390,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>52</x>
-     <y>104</y>
+     <x>73</x>
+     <y>131</y>
     </hint>
     <hint type="destinationlabel">
-     <x>124</x>
-     <y>99</y>
+     <x>246</x>
+     <y>132</y>
     </hint>
    </hints>
   </connection>
@@ -385,12 +406,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>71</x>
-     <y>127</y>
+     <x>92</x>
+     <y>163</y>
     </hint>
     <hint type="destinationlabel">
-     <x>123</x>
-     <y>130</y>
+     <x>245</x>
+     <y>164</y>
     </hint>
    </hints>
   </connection>
@@ -401,12 +422,28 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>57</x>
-     <y>147</y>
+     <x>78</x>
+     <y>195</y>
     </hint>
     <hint type="destinationlabel">
-     <x>116</x>
-     <y>147</y>
+     <x>238</x>
+     <y>196</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>expressionButton</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>expressionEdit</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>67</x>
+     <y>219</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>198</x>
+     <y>213</y>
     </hint>
    </hints>
   </connection>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgBookmarkDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgBookmarkDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -25,11 +25,16 @@
         """
         Constructor
         
-        @param mode of the dialog (integer)
-        @param tagsList list of tags (list of strings)
-        @param branchesList list of branches (list of strings)
-        @param bookmarksList list of bookmarks (list of strings)
-        @param parent reference to the parent widget (QWidget)
+        @param mode of the dialog
+        @type int
+        @param tagsList list of tags
+        @type list of str
+        @param branchesList list of branches
+        @type list of str
+        @param bookmarksList list of bookmarks
+        @type list of str
+        @param parent parent widget
+        @type QWidget
         """
         super().__init__(parent)
         self.setupUi(self)
@@ -52,26 +57,48 @@
         self.branchCombo.addItems(["default"] + sorted(branchesList))
         self.bookmarkCombo.addItems(sorted(bookmarksList))
         
+        # connect various radio buttons and input fields
+        self.idButton.toggled.connect(self.__updateOK)
+        self.tagButton.toggled.connect(self.__updateOK)
+        self.branchButton.toggled.connect(self.__updateOK)
+        self.bookmarkButton.toggled.connect(self.__updateOK)
+        self.expressionButton.toggled.connect(self.__updateOK)
+        
+        self.nameCombo.activated.connect(self.__updateOK)
+        self.nameCombo.activated.connect(self.__updateBookmarksCombo)
+        
+        self.nameEdit.textChanged.connect(self.__updateOK)
+        self.idEdit.textChanged.connect(self.__updateOK)
+        self.expressionEdit.textChanged.connect(self.__updateOK)
+        
+        self.tagCombo.editTextChanged.connect(self.__updateOK)
+        self.branchCombo.editTextChanged.connect(self.__updateOK)
+        self.bookmarkCombo.editTextChanged.connect(self.__updateOK)
+        
         msh = self.minimumSizeHint()
         self.resize(max(self.width(), msh.width()), msh.height())
     
+    @pyqtSlot()
     def __updateOK(self):
         """
         Private slot to update the OK button.
         """
         enabled = (
-            self.nameCombo.currentText() != ""
+            bool(self.nameCombo.currentText())
             if self.__mode == self.MOVE_MODE else
-            self.nameEdit.text() != ""
+            bool(self.nameEdit.text())
         )
+        
         if self.idButton.isChecked():
-            enabled = enabled and self.idEdit.text() != ""
+            enabled = bool(self.idEdit.text())
         elif self.tagButton.isChecked():
-            enabled = enabled and self.tagCombo.currentText() != ""
+            enabled = bool(self.tagCombo.currentText())
         elif self.branchButton.isChecked():
-            enabled = enabled and self.branchCombo.currentText() != ""
+            enabled = bool(self.branchCombo.currentText())
         elif self.bookmarkButton.isChecked():
-            enabled = enabled and self.bookmarkCombo.currentText() != ""
+            enabled = bool(self.bookmarkCombo.currentText())
+        elif self.expressionButton.isChecked():
+            enabled = enabled and bool(self.expressionEdit.text())
         
         self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok).setEnabled(enabled)
@@ -94,104 +121,12 @@
                 if index > -1:
                     self.bookmarkCombo.setCurrentIndex(index)
     
-    @pyqtSlot(int)
-    def on_nameCombo_activated(self, index):
-        """
-        Private slot to handle changes of the selected bookmark name.
-        
-        @param index index of the selected entry
-        @type int
-        """
-        self.__updateOK()
-        self.__updateBookmarksCombo()
-    
-    @pyqtSlot(str)
-    def on_nameEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the bookmark name.
-        
-        @param txt text of the edit (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_idButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the ID select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_tagButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Tag select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_branchButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Branch select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_bookmarkButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Bookmark select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_idEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the ID edit.
-        
-        @param txt text of the edit (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_tagCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Tag combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_branchCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Branch combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_bookmarkCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Bookmark combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
     def getData(self):
         """
         Public method to retrieve the entered data.
         
         @return tuple naming the revision and the bookmark name
-            (string, string)
+        @rtype tuple of (str, str)
         """
         if self.numberButton.isChecked():
             rev = "rev({0})".format(self.numberSpinBox.value())
@@ -203,6 +138,8 @@
             rev = self.branchCombo.currentText()
         elif self.bookmarkButton.isChecked():
             rev = self.bookmarkCombo.currentText()
+        elif self.expressionButton.isChecked():
+            rev = self.expressionEdit.text()
         else:
             rev = ""
         
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgBookmarkDialog.ui	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgBookmarkDialog.ui	Mon May 02 15:52:33 2022 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>400</width>
-    <height>255</height>
+    <height>346</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -200,7 +200,27 @@
         </property>
        </widget>
       </item>
-      <item row="5" column="0" colspan="3">
+      <item row="5" column="0">
+       <widget class="QRadioButton" name="expressionButton">
+        <property name="text">
+         <string>Expression:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="1" colspan="2">
+       <widget class="QLineEdit" name="expressionEdit">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="toolTip">
+         <string>Enter a revision set expression</string>
+        </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="0" colspan="3">
        <widget class="QRadioButton" name="tipButton">
         <property name="toolTip">
          <string>Select tip revision of repository</string>
@@ -241,8 +261,9 @@
   <tabstop>branchCombo</tabstop>
   <tabstop>bookmarkButton</tabstop>
   <tabstop>bookmarkCombo</tabstop>
+  <tabstop>expressionButton</tabstop>
+  <tabstop>expressionEdit</tabstop>
   <tabstop>tipButton</tabstop>
-  <tabstop>buttonBox</tabstop>
  </tabstops>
  <resources/>
  <connections>
@@ -253,8 +274,8 @@
    <slot>accept()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>248</x>
-     <y>274</y>
+     <x>257</x>
+     <y>336</y>
     </hint>
     <hint type="destinationlabel">
      <x>157</x>
@@ -269,8 +290,8 @@
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
+     <x>325</x>
+     <y>336</y>
     </hint>
     <hint type="destinationlabel">
      <x>286</x>
@@ -289,8 +310,8 @@
      <y>89</y>
     </hint>
     <hint type="destinationlabel">
-     <x>118</x>
-     <y>87</y>
+     <x>215</x>
+     <y>102</y>
     </hint>
    </hints>
   </connection>
@@ -301,12 +322,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>36</x>
-     <y>109</y>
+     <x>57</x>
+     <y>133</y>
     </hint>
     <hint type="destinationlabel">
-     <x>105</x>
-     <y>116</y>
+     <x>227</x>
+     <y>134</y>
     </hint>
    </hints>
   </connection>
@@ -321,8 +342,8 @@
      <y>142</y>
     </hint>
     <hint type="destinationlabel">
-     <x>102</x>
-     <y>141</y>
+     <x>224</x>
+     <y>166</y>
     </hint>
    </hints>
   </connection>
@@ -333,12 +354,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>42</x>
-     <y>170</y>
+     <x>63</x>
+     <y>197</y>
     </hint>
     <hint type="destinationlabel">
-     <x>115</x>
-     <y>171</y>
+     <x>237</x>
+     <y>198</y>
     </hint>
    </hints>
   </connection>
@@ -349,12 +370,28 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>51</x>
-     <y>196</y>
+     <x>72</x>
+     <y>229</y>
     </hint>
     <hint type="destinationlabel">
-     <x>108</x>
-     <y>201</y>
+     <x>230</x>
+     <y>230</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>expressionButton</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>expressionEdit</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>76</x>
+     <y>248</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>154</x>
+     <y>249</y>
     </hint>
    </hints>
   </connection>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgMergeDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgMergeDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -22,10 +22,14 @@
         """
         Constructor
         
-        @param tagsList list of tags (list of strings)
-        @param branchesList list of branches (list of strings)
-        @param bookmarksList list of bookmarks (list of strings)
-        @param parent parent widget (QWidget)
+        @param tagsList list of tags
+        @type list of str
+        @param branchesList list of branches
+        @type list of str
+        @param bookmarksList list of bookmarks
+        @type list of str
+        @param parent parent widget
+        @type QWidget
         """
         super().__init__(parent)
         self.setupUi(self)
@@ -41,9 +45,24 @@
             self.bookmarkButton.setHidden(True)
             self.bookmarkCombo.setHidden(True)
         
+        # connect various radio buttons and input fields
+        self.idButton.toggled.connect(self.__updateOK)
+        self.tagButton.toggled.connect(self.__updateOK)
+        self.branchButton.toggled.connect(self.__updateOK)
+        self.bookmarkButton.toggled.connect(self.__updateOK)
+        self.expressionButton.toggled.connect(self.__updateOK)
+        
+        self.idEdit.textChanged.connect(self.__updateOK)
+        self.expressionEdit.textChanged.connect(self.__updateOK)
+        
+        self.tagCombo.editTextChanged.connect(self.__updateOK)
+        self.branchCombo.editTextChanged.connect(self.__updateOK)
+        self.bookmarkCombo.editTextChanged.connect(self.__updateOK)
+        
         msh = self.minimumSizeHint()
         self.resize(max(self.width(), msh.width()), msh.height())
     
+    @pyqtSlot()
     def __updateOK(self):
         """
         Private slot to update the OK button.
@@ -57,88 +76,19 @@
             enabled = self.branchCombo.currentText() != ""
         elif self.bookmarkButton.isChecked():
             enabled = self.bookmarkCombo.currentText() != ""
+        elif self.expressionButton.isChecked():
+            enabled = enabled and bool(self.expressionEdit.text())
         
         self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok).setEnabled(enabled)
     
-    @pyqtSlot(bool)
-    def on_idButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the ID select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_tagButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Tag select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_branchButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Branch select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_bookmarkButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Bookmark select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_idEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the ID edit.
-        
-        @param txt text of the edit (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_tagCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Tag combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_branchCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Branch combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_bookmarkCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Bookmark combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
     def getParameters(self):
         """
         Public method to retrieve the merge data.
         
         @return tuple naming the revision and a flag indicating a
-            forced merge (string, boolean)
+            forced merge
+        @rtype tuple of (str, bool)
         """
         if self.numberButton.isChecked():
             rev = "rev({0})".format(self.numberSpinBox.value())
@@ -150,6 +100,8 @@
             rev = self.branchCombo.currentText()
         elif self.bookmarkButton.isChecked():
             rev = self.bookmarkCombo.currentText()
+        elif self.expressionButton.isChecked():
+            rev = self.expressionEdit.text()
         else:
             rev = ""
         
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgMergeDialog.ui	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgMergeDialog.ui	Mon May 02 15:52:33 2022 +0200
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>372</width>
-    <height>305</height>
+    <width>400</width>
+    <height>342</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -157,7 +157,27 @@
         </property>
        </widget>
       </item>
-      <item row="5" column="0" colspan="3">
+      <item row="5" column="0">
+       <widget class="QRadioButton" name="expressionButton">
+        <property name="text">
+         <string>Expression:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="1" colspan="2">
+       <widget class="QLineEdit" name="expressionEdit">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="toolTip">
+         <string>Enter a revision set expression</string>
+        </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="0" colspan="3">
        <widget class="QRadioButton" name="noneButton">
         <property name="toolTip">
          <string>Select to not specify a specific revision</string>
@@ -206,9 +226,10 @@
   <tabstop>branchCombo</tabstop>
   <tabstop>bookmarkButton</tabstop>
   <tabstop>bookmarkCombo</tabstop>
+  <tabstop>expressionButton</tabstop>
+  <tabstop>expressionEdit</tabstop>
   <tabstop>noneButton</tabstop>
   <tabstop>forceCheckBox</tabstop>
-  <tabstop>buttonBox</tabstop>
  </tabstops>
  <resources/>
  <connections>
@@ -219,8 +240,8 @@
    <slot>accept()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>261</x>
-     <y>244</y>
+     <x>270</x>
+     <y>332</y>
     </hint>
     <hint type="destinationlabel">
      <x>157</x>
@@ -235,8 +256,8 @@
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>329</x>
-     <y>244</y>
+     <x>338</x>
+     <y>332</y>
     </hint>
     <hint type="destinationlabel">
      <x>286</x>
@@ -251,12 +272,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>48</x>
-     <y>42</y>
+     <x>69</x>
+     <y>66</y>
     </hint>
     <hint type="destinationlabel">
-     <x>113</x>
-     <y>43</y>
+     <x>215</x>
+     <y>68</y>
     </hint>
    </hints>
   </connection>
@@ -283,12 +304,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>52</x>
-     <y>104</y>
+     <x>73</x>
+     <y>131</y>
     </hint>
     <hint type="destinationlabel">
-     <x>124</x>
-     <y>99</y>
+     <x>246</x>
+     <y>132</y>
     </hint>
    </hints>
   </connection>
@@ -299,12 +320,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>71</x>
-     <y>127</y>
+     <x>92</x>
+     <y>163</y>
     </hint>
     <hint type="destinationlabel">
-     <x>123</x>
-     <y>130</y>
+     <x>245</x>
+     <y>164</y>
     </hint>
    </hints>
   </connection>
@@ -315,12 +336,28 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>71</x>
-     <y>145</y>
+     <x>92</x>
+     <y>195</y>
     </hint>
     <hint type="destinationlabel">
-     <x>121</x>
-     <y>149</y>
+     <x>243</x>
+     <y>196</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>expressionButton</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>expressionEdit</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>59</x>
+     <y>216</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>195</x>
+     <y>216</y>
     </hint>
    </hints>
   </connection>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgRevisionSelectionDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgRevisionSelectionDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -18,15 +18,23 @@
     Class implementing a dialog to select a revision.
     """
     def __init__(self, tagsList, branchesList, bookmarksList=None,
-                 noneLabel="", parent=None):
+                 noneLabel="", revset=True, parent=None):
         """
         Constructor
         
-        @param tagsList list of tags (list of strings)
-        @param branchesList list of branches (list of strings)
-        @param bookmarksList list of bookmarks (list of strings)
-        @param noneLabel labeltext for "no revision selected" (string)
-        @param parent parent widget (QWidget)
+        @param tagsList list of tags
+        @type list of str
+        @param branchesList list of branches
+        @type list of str
+        @param bookmarksList list of bookmarks
+        @type list of str
+        @param noneLabel labeltext for "no revision selected"
+        @type str
+        @param revset flag indicating to allow the revision or ID given as a
+            revset
+        @type bool
+        @param parent parent widget
+        @type QWidget
         """
         super().__init__(parent)
         self.setupUi(self)
@@ -45,115 +53,60 @@
         if noneLabel:
             self.noneButton.setText(noneLabel)
         
+        self.__revset = revset
+        self.expressionButton.setEnabled(revset)
+        
+        # connect various radio buttons and input fields
+        self.idButton.toggled.connect(self.__updateOK)
+        self.tagButton.toggled.connect(self.__updateOK)
+        self.branchButton.toggled.connect(self.__updateOK)
+        self.bookmarkButton.toggled.connect(self.__updateOK)
+        self.expressionButton.toggled.connect(self.__updateOK)
+        
+        self.idEdit.textChanged.connect(self.__updateOK)
+        self.expressionEdit.textChanged.connect(self.__updateOK)
+        
+        self.tagCombo.editTextChanged.connect(self.__updateOK)
+        self.branchCombo.editTextChanged.connect(self.__updateOK)
+        self.bookmarkCombo.editTextChanged.connect(self.__updateOK)
+        
         msh = self.minimumSizeHint()
         self.resize(max(self.width(), msh.width()), msh.height())
     
+    @pyqtSlot()
     def __updateOK(self):
         """
         Private slot to update the OK button.
         """
         enabled = True
         if self.idButton.isChecked():
-            enabled = self.idEdit.text() != ""
+            enabled = bool(self.idEdit.text())
         elif self.tagButton.isChecked():
-            enabled = self.tagCombo.currentText() != ""
+            enabled = bool(self.tagCombo.currentText())
         elif self.branchButton.isChecked():
-            enabled = self.branchCombo.currentText() != ""
+            enabled = bool(self.branchCombo.currentText())
         elif self.bookmarkButton.isChecked():
-            enabled = self.bookmarkCombo.currentText() != ""
+            enabled = bool(self.bookmarkCombo.currentText())
+        elif self.expressionButton.isChecked():
+            enabled = enabled and bool(self.expressionEdit.text())
         
         self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok).setEnabled(enabled)
     
-    @pyqtSlot(bool)
-    def on_idButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the ID select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_tagButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Tag select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_branchButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Branch select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_bookmarkButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Bookmark select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_idEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the ID edit.
-        
-        @param txt text of the edit (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_tagCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Tag combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_branchCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Branch combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_bookmarkCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Bookmark combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    def getRevision(self, revset=True):
+    def getRevision(self):
         """
         Public method to retrieve the selected revision.
         
-        @param revset flag indicating to get the revision or ID as a
-            revset
-        @type bool
         @return selected revision
         @rtype str
         """
         if self.numberButton.isChecked():
-            if revset:
+            if self.__revset:
                 rev = "rev({0})".format(self.numberSpinBox.value())
             else:
                 rev = str(self.numberSpinBox.value())
         elif self.idButton.isChecked():
-            if revset:
+            if self.__revset:
                 rev = "id({0})".format(self.idEdit.text())
             else:
                 rev = self.idEdit.text()
@@ -163,6 +116,8 @@
             rev = self.branchCombo.currentText()
         elif self.bookmarkButton.isChecked():
             rev = self.bookmarkCombo.currentText()
+        elif self.expressionButton.isChecked():
+            rev = self.expressionEdit.text()
         elif self.tipButton.isChecked():
             rev = "tip"
         else:
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgRevisionSelectionDialog.ui	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgRevisionSelectionDialog.ui	Mon May 02 15:52:33 2022 +0200
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>372</width>
-    <height>250</height>
+    <width>400</width>
+    <height>342</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -80,6 +80,9 @@
         <property name="toolTip">
          <string>Enter a changeset id</string>
         </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
       <item row="2" column="0">
@@ -169,7 +172,27 @@
         </property>
        </widget>
       </item>
-      <item row="5" column="0" colspan="3">
+      <item row="5" column="0">
+       <widget class="QRadioButton" name="expressionButton">
+        <property name="text">
+         <string>Expression:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="1" colspan="2">
+       <widget class="QLineEdit" name="expressionEdit">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="toolTip">
+         <string>Enter a revision set expression</string>
+        </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="0" colspan="3">
        <widget class="QRadioButton" name="tipButton">
         <property name="toolTip">
          <string>Select tip revision of repository</string>
@@ -179,7 +202,7 @@
         </property>
        </widget>
       </item>
-      <item row="6" column="0" colspan="3">
+      <item row="7" column="0" colspan="3">
        <widget class="QRadioButton" name="noneButton">
         <property name="text">
          <string>No revision selected</string>
@@ -215,9 +238,10 @@
   <tabstop>branchCombo</tabstop>
   <tabstop>bookmarkButton</tabstop>
   <tabstop>bookmarkCombo</tabstop>
+  <tabstop>expressionButton</tabstop>
+  <tabstop>expressionEdit</tabstop>
   <tabstop>tipButton</tabstop>
   <tabstop>noneButton</tabstop>
-  <tabstop>buttonBox</tabstop>
  </tabstops>
  <resources/>
  <connections>
@@ -228,8 +252,8 @@
    <slot>accept()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>257</x>
-     <y>215</y>
+     <x>266</x>
+     <y>332</y>
     </hint>
     <hint type="destinationlabel">
      <x>157</x>
@@ -244,8 +268,8 @@
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>325</x>
-     <y>215</y>
+     <x>334</x>
+     <y>332</y>
     </hint>
     <hint type="destinationlabel">
      <x>286</x>
@@ -276,12 +300,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>41</x>
-     <y>69</y>
+     <x>62</x>
+     <y>99</y>
     </hint>
     <hint type="destinationlabel">
-     <x>121</x>
-     <y>68</y>
+     <x>243</x>
+     <y>100</y>
     </hint>
    </hints>
   </connection>
@@ -292,12 +316,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>69</x>
-     <y>94</y>
+     <x>90</x>
+     <y>131</y>
     </hint>
     <hint type="destinationlabel">
-     <x>132</x>
-     <y>98</y>
+     <x>254</x>
+     <y>132</y>
     </hint>
    </hints>
   </connection>
@@ -308,12 +332,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>60</x>
-     <y>120</y>
+     <x>81</x>
+     <y>163</y>
     </hint>
     <hint type="destinationlabel">
-     <x>117</x>
-     <y>122</y>
+     <x>239</x>
+     <y>164</y>
     </hint>
    </hints>
   </connection>
@@ -324,12 +348,28 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>25</x>
-     <y>146</y>
+     <x>46</x>
+     <y>195</y>
     </hint>
     <hint type="destinationlabel">
-     <x>130</x>
-     <y>149</y>
+     <x>252</x>
+     <y>196</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>expressionButton</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>expressionEdit</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>65</x>
+     <y>215</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>181</x>
+     <y>215</y>
     </hint>
    </hints>
   </connection>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgRevisionsSelectionDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgRevisionsSelectionDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -22,10 +22,14 @@
         """
         Constructor
         
-        @param tagsList list of tags (list of strings)
-        @param branchesList list of branches (list of strings)
-        @param bookmarksList list of bookmarks (list of strings)
-        @param parent parent widget of the dialog (QWidget)
+        @param tagsList list of tags
+        @type list of str
+        @param branchesList list of branches
+        @type list of str
+        @param bookmarksList list of bookmarks
+        @type list of str
+        @param parent parent widget of the dialog
+        @type QWidget
         """
         super().__init__(parent)
         self.setupUi(self)
@@ -46,185 +50,72 @@
             self.bookmark2Button.setHidden(True)
             self.bookmark2Combo.setHidden(True)
         
+        # connect various radio buttons and input fields
+        self.id1Button.toggled.connect(self.__updateOK)
+        self.id2Button.toggled.connect(self.__updateOK)
+        self.tag1Button.toggled.connect(self.__updateOK)
+        self.tag2Button.toggled.connect(self.__updateOK)
+        self.branch1Button.toggled.connect(self.__updateOK)
+        self.branch2Button.toggled.connect(self.__updateOK)
+        self.bookmark1Button.toggled.connect(self.__updateOK)
+        self.bookmark2Button.toggled.connect(self.__updateOK)
+        self.expression1Button.toggled.connect(self.__updateOK)
+        self.expression2Button.toggled.connect(self.__updateOK)
+        
+        self.id1Edit.textChanged.connect(self.__updateOK)
+        self.id2Edit.textChanged.connect(self.__updateOK)
+        self.expression1Edit.textChanged.connect(self.__updateOK)
+        self.expression2Edit.textChanged.connect(self.__updateOK)
+        
+        self.tag1Combo.editTextChanged.connect(self.__updateOK)
+        self.tag2Combo.editTextChanged.connect(self.__updateOK)
+        self.branch1Combo.editTextChanged.connect(self.__updateOK)
+        self.branch2Combo.editTextChanged.connect(self.__updateOK)
+        self.bookmark1Combo.editTextChanged.connect(self.__updateOK)
+        self.bookmark2Combo.editTextChanged.connect(self.__updateOK)
+        
         msh = self.minimumSizeHint()
         self.resize(max(self.width(), msh.width()), msh.height())
     
+    @pyqtSlot()
     def __updateOK(self):
         """
         Private slot to update the OK button.
         """
         enabled = True
         if self.id1Button.isChecked():
-            enabled = enabled and self.id1Edit.text() != ""
+            enabled = enabled and bool(self.id1Edit.text())
         elif self.tag1Button.isChecked():
-            enabled = enabled and self.tag1Combo.currentText() != ""
+            enabled = enabled and bool(self.tag1Combo.currentText())
         elif self.branch1Button.isChecked():
-            enabled = enabled and self.branch1Combo.currentText() != ""
+            enabled = enabled and bool(self.branch1Combo.currentText())
         elif self.bookmark1Button.isChecked():
-            enabled = enabled and self.bookmark1Combo.currentText() != ""
+            enabled = enabled and bool(self.bookmark1Combo.currentText())
+        elif self.expression1Button.isChecked():
+            enabled = enabled and bool(self.expression1Edit.text())
         
         if self.id2Button.isChecked():
-            enabled = enabled and self.id2Edit.text() != ""
+            enabled = enabled and bool(self.id2Edit.text())
         elif self.tag2Button.isChecked():
-            enabled = enabled and self.tag2Combo.currentText() != ""
+            enabled = enabled and bool(self.tag2Combo.currentText())
         elif self.branch2Button.isChecked():
-            enabled = enabled and self.branch2Combo.currentText() != ""
+            enabled = enabled and bool(self.branch2Combo.currentText())
         elif self.bookmark2Button.isChecked():
-            enabled = enabled and self.bookmark2Combo.currentText() != ""
+            enabled = enabled and bool(self.bookmark2Combo.currentText())
+        elif self.expression2Button.isChecked():
+            enabled = enabled and bool(self.expression2Edit.text())
         
         self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok).setEnabled(enabled)
     
-    @pyqtSlot(bool)
-    def on_id1Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the ID1 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_id2Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the ID2 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_tag1Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Tag1 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_tag2Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Tag2 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_branch1Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Branch1 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_branch2Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Branch2 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_bookmark1Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Bookmark1 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_bookmark2Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Bookmark2 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_id1Edit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the ID1 edit.
-        
-        @param txt text of the edit (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_id2Edit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the ID2 edit.
-        
-        @param txt text of the edit (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_tag1Combo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Tag1 combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_tag2Combo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Tag2 combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_branch1Combo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Branch1 combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_branch2Combo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Branch2 combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_bookmark1Combo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Bookmark1 combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_bookmark2Combo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Bookmark2 combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
     def __getRevision(self, no):
         """
         Private method to generate the revision.
         
         @param no revision number to generate (1 or 2)
-        @return revision (string)
+        @type int
+        @return revision
+        @rtype str
         """
         if no == 1:
             numberButton = self.number1Button
@@ -237,6 +128,8 @@
             branchCombo = self.branch1Combo
             bookmarkButton = self.bookmark1Button
             bookmarkCombo = self.bookmark1Combo
+            expressionButton = self.expression1Button
+            expressionEdit = self.expression1Edit
             tipButton = self.tip1Button
             prevButton = self.prev1Button
             noneButton = self.none1Button
@@ -251,6 +144,8 @@
             branchCombo = self.branch2Combo
             bookmarkButton = self.bookmark2Button
             bookmarkCombo = self.bookmark2Combo
+            expressionButton = self.expression2Button
+            expressionEdit = self.expression2Edit
             tipButton = self.tip2Button
             prevButton = self.prev2Button
             noneButton = self.none2Button
@@ -265,6 +160,8 @@
             return branchCombo.currentText()
         elif bookmarkButton.isChecked():
             return bookmarkCombo.currentText()
+        elif expressionButton.isChecked():
+            return expressionEdit.text()
         elif tipButton.isChecked():
             return "tip"
         elif prevButton.isChecked():
@@ -278,7 +175,8 @@
         """
         Public method to get the revisions.
         
-        @return list two strings
+        @return list of two revisions
+        @rtype list of [str, str]
         """
         rev1 = self.__getRevision(1)
         rev2 = self.__getRevision(2)
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgRevisionsSelectionDialog.ui	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgRevisionsSelectionDialog.ui	Mon May 02 15:52:33 2022 +0200
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>371</width>
-    <height>505</height>
+    <width>400</width>
+    <height>700</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -160,7 +160,27 @@
         </property>
        </widget>
       </item>
-      <item row="5" column="0" colspan="3">
+      <item row="5" column="0">
+       <widget class="QRadioButton" name="expression1Button">
+        <property name="text">
+         <string>Expression:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="1" colspan="2">
+       <widget class="QLineEdit" name="expression1Edit">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="toolTip">
+         <string>Enter a revision set expression</string>
+        </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="0" colspan="3">
        <widget class="QRadioButton" name="tip1Button">
         <property name="toolTip">
          <string>Select tip revision of repository</string>
@@ -173,7 +193,7 @@
         </property>
        </widget>
       </item>
-      <item row="6" column="0" colspan="3">
+      <item row="7" column="0" colspan="3">
        <widget class="QRadioButton" name="prev1Button">
         <property name="toolTip">
          <string>Select revision before last commit</string>
@@ -186,7 +206,7 @@
         </property>
        </widget>
       </item>
-      <item row="7" column="0" colspan="3">
+      <item row="8" column="0" colspan="3">
        <widget class="QRadioButton" name="none1Button">
         <property name="text">
          <string>No revision selected</string>
@@ -336,7 +356,27 @@
         </property>
        </widget>
       </item>
-      <item row="5" column="0" colspan="3">
+      <item row="5" column="0">
+       <widget class="QRadioButton" name="expression2Button">
+        <property name="text">
+         <string>Expression:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="1" colspan="2">
+       <widget class="QLineEdit" name="expression2Edit">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="toolTip">
+         <string>Enter a revision set expression</string>
+        </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="0" colspan="3">
        <widget class="QRadioButton" name="tip2Button">
         <property name="toolTip">
          <string>Select tip revision of repository</string>
@@ -349,7 +389,7 @@
         </property>
        </widget>
       </item>
-      <item row="6" column="0" colspan="3">
+      <item row="7" column="0" colspan="3">
        <widget class="QRadioButton" name="prev2Button">
         <property name="toolTip">
          <string>Select revision before last commit</string>
@@ -359,7 +399,7 @@
         </property>
        </widget>
       </item>
-      <item row="7" column="0" colspan="3">
+      <item row="8" column="0" colspan="3">
        <widget class="QRadioButton" name="none2Button">
         <property name="text">
          <string>No revision selected</string>
@@ -393,6 +433,8 @@
   <tabstop>branch1Combo</tabstop>
   <tabstop>bookmark1Button</tabstop>
   <tabstop>bookmark1Combo</tabstop>
+  <tabstop>expression1Button</tabstop>
+  <tabstop>expression1Edit</tabstop>
   <tabstop>tip1Button</tabstop>
   <tabstop>prev1Button</tabstop>
   <tabstop>none1Button</tabstop>
@@ -406,10 +448,11 @@
   <tabstop>branch2Combo</tabstop>
   <tabstop>bookmark2Button</tabstop>
   <tabstop>bookmark2Combo</tabstop>
+  <tabstop>expression2Button</tabstop>
+  <tabstop>expression2Edit</tabstop>
   <tabstop>tip2Button</tabstop>
   <tabstop>prev2Button</tabstop>
   <tabstop>none2Button</tabstop>
-  <tabstop>buttonBox</tabstop>
  </tabstops>
  <resources/>
  <connections>
@@ -420,8 +463,8 @@
    <slot>accept()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>54</x>
-     <y>440</y>
+     <x>63</x>
+     <y>688</y>
     </hint>
     <hint type="destinationlabel">
      <x>21</x>
@@ -436,8 +479,8 @@
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>106</x>
-     <y>440</y>
+     <x>115</x>
+     <y>688</y>
     </hint>
     <hint type="destinationlabel">
      <x>73</x>
@@ -468,12 +511,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>72</x>
-     <y>258</y>
+     <x>114</x>
+     <y>394</y>
     </hint>
     <hint type="destinationlabel">
-     <x>183</x>
-     <y>258</y>
+     <x>215</x>
+     <y>396</y>
     </hint>
    </hints>
   </connection>
@@ -484,12 +527,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>32</x>
-     <y>71</y>
+     <x>53</x>
+     <y>99</y>
     </hint>
     <hint type="destinationlabel">
-     <x>147</x>
-     <y>72</y>
+     <x>266</x>
+     <y>100</y>
     </hint>
    </hints>
   </connection>
@@ -500,12 +543,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>68</x>
-     <y>286</y>
+     <x>110</x>
+     <y>427</y>
     </hint>
     <hint type="destinationlabel">
-     <x>230</x>
-     <y>286</y>
+     <x>378</x>
+     <y>428</y>
     </hint>
    </hints>
   </connection>
@@ -516,12 +559,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>59</x>
-     <y>105</y>
+     <x>80</x>
+     <y>131</y>
     </hint>
     <hint type="destinationlabel">
-     <x>129</x>
-     <y>101</y>
+     <x>248</x>
+     <y>132</y>
     </hint>
    </hints>
   </connection>
@@ -532,12 +575,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>50</x>
-     <y>124</y>
+     <x>71</x>
+     <y>163</y>
     </hint>
     <hint type="destinationlabel">
-     <x>117</x>
-     <y>128</y>
+     <x>236</x>
+     <y>164</y>
     </hint>
    </hints>
   </connection>
@@ -548,12 +591,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>36</x>
-     <y>306</y>
+     <x>78</x>
+     <y>459</y>
     </hint>
     <hint type="destinationlabel">
-     <x>149</x>
-     <y>306</y>
+     <x>378</x>
+     <y>460</y>
     </hint>
    </hints>
   </connection>
@@ -564,12 +607,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>73</x>
-     <y>331</y>
+     <x>115</x>
+     <y>491</y>
     </hint>
     <hint type="destinationlabel">
-     <x>140</x>
-     <y>331</y>
+     <x>378</x>
+     <y>492</y>
     </hint>
    </hints>
   </connection>
@@ -580,12 +623,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>24</x>
-     <y>152</y>
+     <x>45</x>
+     <y>195</y>
     </hint>
     <hint type="destinationlabel">
-     <x>135</x>
-     <y>148</y>
+     <x>254</x>
+     <y>196</y>
     </hint>
    </hints>
   </connection>
@@ -596,12 +639,44 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>21</x>
-     <y>363</y>
+     <x>63</x>
+     <y>523</y>
     </hint>
     <hint type="destinationlabel">
-     <x>145</x>
-     <y>361</y>
+     <x>378</x>
+     <y>524</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>expression1Button</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>expression1Edit</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>54</x>
+     <y>216</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>160</x>
+     <y>218</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>expression2Button</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>expression2Edit</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>37</x>
+     <y>542</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>152</x>
+     <y>543</y>
     </hint>
    </hints>
   </connection>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditConfigDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditConfigDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -46,6 +46,25 @@
         if bookmarksList is not None:
             self.bookmarkCombo.addItems(sorted(bookmarksList))
         
+        # connect various radio buttons and input fields
+        self.defaultButton.toggled.connect(self.__updateOK)
+        self.outgoingButton.toggled.connect(self.__updateOK)
+        self.revisionButton.toggled.connect(self.__updateOK)
+        self.idButton.toggled.connect(self.__updateOK)
+        self.tagButton.toggled.connect(self.__updateOK)
+        self.branchButton.toggled.connect(self.__updateOK)
+        self.bookmarkButton.toggled.connect(self.__updateOK)
+        self.expressionButton.toggled.connect(self.__updateOK)
+        
+        self.idEdit.textChanged.connect(self.__updateOK)
+        self.expressionEdit.textChanged.connect(self.__updateOK)
+        
+        self.tagCombo.editTextChanged.connect(self.__updateOK)
+        self.branchCombo.editTextChanged.connect(self.__updateOK)
+        self.bookmarkCombo.editTextChanged.connect(self.__updateOK)
+        
+        self.numberSpinBox.valueChanged.connect(self.__updateOK)
+        
         self.idEdit.setText(rev)
         if rev:
             self.revisionButton.setChecked(True)
@@ -57,6 +76,7 @@
         
         self.__updateOK()
     
+    @pyqtSlot()
     def __updateOK(self):
         """
         Private slot to update the OK button.
@@ -72,126 +92,12 @@
                 enabled = enabled and bool(self.branchCombo.currentText())
             elif self.bookmarkButton.isChecked():
                 enabled = enabled and bool(self.bookmarkCombo.currentText())
+            elif self.expressionButton.isChecked():
+                enabled = enabled and bool(self.expressionEdit.text())
         
         self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok).setEnabled(enabled)
     
-    @pyqtSlot(bool)
-    def on_defaultButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Default select button.
-        
-        @param checked state of the button
-        @type bool
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_outgoingButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Outgoing select button.
-        
-        @param checked state of the button
-        @type bool
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_revisionButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Revision select button.
-        
-        @param checked state of the button
-        @type bool
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_idButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the ID select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_tagButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Tag select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_branch1Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Branch select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_bookmarkButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Bookmark select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(int)
-    def on_numberSpinBox_valueChanged(self, val):
-        """
-        Private slot to handle changes of the Number spin box.
-        
-        @param val value of the spin box
-        @type int
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_idEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the ID edit.
-        
-        @param txt text of the edit
-        @type str
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_tagCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Tag combo.
-        
-        @param txt text of the combo
-        @type str
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_branchCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Branch combo.
-        
-        @param txt text of the combo
-        @type str
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_bookmarkCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Bookmark combo.
-        
-        @param txt text of the combo
-        @type str
-        """
-        self.__updateOK()
-    
     def __getRevision(self):
         """
         Private method to generate the revision.
@@ -214,6 +120,8 @@
                 return self.branchCombo.currentText()
             elif self.bookmarkButton.isChecked():
                 return self.bookmarkCombo.currentText()
+            elif self.expressionButton.isChecked():
+                return self.expressionEdit.text()
         
         return ""
     
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditConfigDialog.ui	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditConfigDialog.ui	Mon May 02 15:52:33 2022 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>400</width>
-    <height>451</height>
+    <height>477</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -131,6 +131,9 @@
            <property name="toolTip">
             <string>Enter a changeset id</string>
            </property>
+           <property name="clearButtonEnabled">
+            <bool>true</bool>
+           </property>
           </widget>
          </item>
          <item row="2" column="0">
@@ -208,6 +211,26 @@
            </property>
           </widget>
          </item>
+         <item row="5" column="0">
+          <widget class="QRadioButton" name="expressionButton">
+           <property name="text">
+            <string>Expression:</string>
+           </property>
+          </widget>
+         </item>
+         <item row="5" column="1" colspan="2">
+          <widget class="QLineEdit" name="expressionEdit">
+           <property name="enabled">
+            <bool>false</bool>
+           </property>
+           <property name="toolTip">
+            <string>Enter a revision set expression</string>
+           </property>
+           <property name="clearButtonEnabled">
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
         </layout>
        </widget>
       </item>
@@ -263,6 +286,8 @@
   <tabstop>branchCombo</tabstop>
   <tabstop>bookmarkButton</tabstop>
   <tabstop>bookmarkCombo</tabstop>
+  <tabstop>expressionButton</tabstop>
+  <tabstop>expressionEdit</tabstop>
   <tabstop>forceCheckBox</tabstop>
   <tabstop>keepCheckBox</tabstop>
  </tabstops>
@@ -275,8 +300,8 @@
    <slot>accept()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>228</x>
-     <y>429</y>
+     <x>237</x>
+     <y>467</y>
     </hint>
     <hint type="destinationlabel">
      <x>150</x>
@@ -291,8 +316,8 @@
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>296</x>
-     <y>435</y>
+     <x>305</x>
+     <y>467</y>
     </hint>
     <hint type="destinationlabel">
      <x>337</x>
@@ -407,8 +432,24 @@
      <y>88</y>
     </hint>
     <hint type="destinationlabel">
-     <x>117</x>
-     <y>374</y>
+     <x>126</x>
+     <y>405</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>expressionButton</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>expressionEdit</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>52</x>
+     <y>336</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>158</x>
+     <y>339</y>
     </hint>
    </hints>
   </connection>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/histedit.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/histedit.py	Mon May 02 15:52:33 2022 +0200
@@ -8,13 +8,14 @@
 """
 
 import os
-import sys
 
 from PyQt6.QtWidgets import QDialog
 
 from ..HgExtension import HgExtension
 from ..HgDialog import HgDialog
 
+import Globals
+
 
 class Histedit(HgExtension):
     """
@@ -52,7 +53,10 @@
             
             args = self.vcs.initCommand("histedit")
             args.append("-v")
-            args.extend(["--config", f"ui.editor={sys.executable} {editor}"])
+            args.extend([
+                "--config",
+                f"ui.editor={Globals.getPythonExecutable()} {editor}"
+            ])
             if keep:
                 args.append("--keep")
             if rev:
@@ -64,8 +68,10 @@
                 args.append(rev)
             
             env = {
-                "HGEDITOR": "{0} {1}".format(sys.executable, editor),
-                "EDITOR": "{0} {1}".format(sys.executable, editor),
+                "HGEDITOR": "{0} {1}".format(
+                    Globals.getPythonExecutable(), editor),
+                "EDITOR": "{0} {1}".format(
+                    Globals.getPythonExecutable(), editor),
             }
             
             dia = HgDialog(
@@ -92,7 +98,8 @@
         
         editor = os.path.join(
             os.path.dirname(__file__), "HgHisteditEditor.py")
-        env = {"HGEDITOR": "{0} {1}".format(sys.executable, editor)}
+        env = {"HGEDITOR": "{0} {1}".format(
+            Globals.getPythonExecutable(), editor)}
         
         dia = HgDialog(
             self.tr("Continue histedit session"),
@@ -120,7 +127,8 @@
         
         editor = os.path.join(
             os.path.dirname(__file__), "HgHisteditEditor.py")
-        env = {"HGEDITOR": "{0} {1}".format(sys.executable, editor)}
+        env = {"HGEDITOR": "{0} {1}".format(
+            Globals.getPythonExecutable(), editor)}
         
         dia = HgDialog(
             self.tr("Abort histedit session"),
@@ -147,7 +155,8 @@
         
         editor = os.path.join(
             os.path.dirname(__file__), "HgHisteditEditor.py")
-        env = {"HGEDITOR": "{0} {1}".format(sys.executable, editor)}
+        env = {"HGEDITOR": "{0} {1}".format(
+            Globals.getPythonExecutable(), editor)}
         
         dia = HgDialog(
             self.tr("Edit Plan"),
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/RebaseExtension/HgRebaseDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/RebaseExtension/HgRebaseDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -50,9 +50,34 @@
         
         self.dryRunGroup.setEnabled(version >= (4, 7, 0))
         
+        # connect various radio buttons and input fields
+        self.id1Button.toggled.connect(self.__updateOK)
+        self.tag1Button.toggled.connect(self.__updateOK)
+        self.branch1Button.toggled.connect(self.__updateOK)
+        self.bookmark1Button.toggled.connect(self.__updateOK)
+        self.expression1Button.toggled.connect(self.__updateOK)
+        self.id2Button.toggled.connect(self.__updateOK)
+        self.tag2Button.toggled.connect(self.__updateOK)
+        self.branch2Button.toggled.connect(self.__updateOK)
+        self.bookmark2Button.toggled.connect(self.__updateOK)
+        self.expression2Button.toggled.connect(self.__updateOK)
+        
+        self.id1Edit.textChanged.connect(self.__updateOK)
+        self.expression1Edit.textChanged.connect(self.__updateOK)
+        self.id2Edit.textChanged.connect(self.__updateOK)
+        self.expression2Edit.textChanged.connect(self.__updateOK)
+        
+        self.tag1Combo.editTextChanged.connect(self.__updateOK)
+        self.branch1Combo.editTextChanged.connect(self.__updateOK)
+        self.bookmark1Combo.editTextChanged.connect(self.__updateOK)
+        self.tag2Combo.editTextChanged.connect(self.__updateOK)
+        self.branch2Combo.editTextChanged.connect(self.__updateOK)
+        self.bookmark2Combo.editTextChanged.connect(self.__updateOK)
+        
         msh = self.minimumSizeHint()
         self.resize(max(self.width(), msh.width()), msh.height())
     
+    @pyqtSlot()
     def __updateOK(self):
         """
         Private slot to update the OK button.
@@ -60,176 +85,38 @@
         enabled = True
         if not self.parentButton.isChecked():
             if self.id1Button.isChecked():
-                enabled = enabled and self.id1Edit.text() != ""
+                enabled = enabled and bool(self.id1Edit.text())
             elif self.tag1Button.isChecked():
-                enabled = enabled and self.tag1Combo.currentText() != ""
+                enabled = enabled and bool(self.tag1Combo.currentText())
             elif self.branch1Button.isChecked():
-                enabled = enabled and self.branch1Combo.currentText() != ""
+                enabled = enabled and bool(self.branch1Combo.currentText())
             elif self.bookmark1Button.isChecked():
-                enabled = enabled and self.bookmark1Combo.currentText() != ""
+                enabled = enabled and bool(self.bookmark1Combo.currentText())
+            elif self.expression1Button.isChecked():
+                enabled = enabled and bool(self.expression1Edit.text())
         
         if self.id2Button.isChecked():
-            enabled = enabled and self.id2Edit.text() != ""
+            enabled = enabled and bool(self.id2Edit.text())
         elif self.tag2Button.isChecked():
-            enabled = enabled and self.tag2Combo.currentText() != ""
+            enabled = enabled and bool(self.tag2Combo.currentText())
         elif self.branch2Button.isChecked():
-            enabled = enabled and self.branch2Combo.currentText() != ""
+            enabled = enabled and bool(self.branch2Combo.currentText())
         elif self.bookmark2Button.isChecked():
-            enabled = enabled and self.bookmark2Combo.currentText() != ""
+            enabled = enabled and bool(self.bookmark2Combo.currentText())
+        elif self.expression2Button.isChecked():
+            enabled = enabled and bool(self.expression2Edit.text())
         
         self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok).setEnabled(enabled)
     
-    @pyqtSlot(bool)
-    def on_id1Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the ID1 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_id2Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the ID2 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_tag1Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Tag1 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_tag2Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Tag2 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_branch1Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Branch1 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_branch2Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Branch2 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_bookmark1Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Bookmark1 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_bookmark2Button_toggled(self, checked):
-        """
-        Private slot to handle changes of the Bookmark2 select button.
-        
-        @param checked state of the button (boolean)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_id1Edit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the ID1 edit.
-        
-        @param txt text of the edit (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_id2Edit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the ID2 edit.
-        
-        @param txt text of the edit (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_tag1Combo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Tag1 combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_tag2Combo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Tag2 combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_branch1Combo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Branch1 combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_branch2Combo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Branch2 combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_bookmark1Combo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Bookmark1 combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_bookmark2Combo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Bookmark2 combo.
-        
-        @param txt text of the combo (string)
-        """
-        self.__updateOK()
-    
     def __getRevision(self, no):
         """
         Private method to generate the revision.
         
         @param no revision number to generate (1 or 2)
-        @return revision (string)
+        @type int
+        @return revision
+        @rtype str
         """
         if no == 1:
             numberButton = self.number1Button
@@ -242,6 +129,8 @@
             branchCombo = self.branch1Combo
             bookmarkButton = self.bookmark1Button
             bookmarkCombo = self.bookmark1Combo
+            expressionButton = self.expression1Button
+            expressionEdit = self.expression1Edit
             tipButton = None
         else:
             numberButton = self.number2Button
@@ -254,6 +143,8 @@
             branchCombo = self.branch2Combo
             bookmarkButton = self.bookmark2Button
             bookmarkCombo = self.bookmark2Combo
+            expressionButton = self.expression2Button
+            expressionEdit = self.expression2Edit
             tipButton = self.tip2Button
         
         if numberButton.isChecked():
@@ -266,6 +157,8 @@
             return branchCombo.currentText()
         elif bookmarkButton.isChecked():
             return bookmarkCombo.currentText()
+        elif expressionButton.isChecked():
+            return expressionEdit.text()
         elif tipButton and tipButton.isChecked():
             return ""
         
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/RebaseExtension/HgRebaseDialog.ui	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/RebaseExtension/HgRebaseDialog.ui	Mon May 02 15:52:33 2022 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>650</width>
-    <height>477</height>
+    <height>509</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -124,6 +124,9 @@
              <property name="toolTip">
               <string>Enter a changeset id</string>
              </property>
+             <property name="clearButtonEnabled">
+              <bool>true</bool>
+             </property>
             </widget>
            </item>
            <item row="2" column="0">
@@ -201,6 +204,26 @@
              </property>
             </widget>
            </item>
+           <item row="5" column="0">
+            <widget class="QRadioButton" name="expression1Button">
+             <property name="text">
+              <string>Expression:</string>
+             </property>
+            </widget>
+           </item>
+           <item row="5" column="1" colspan="2">
+            <widget class="QLineEdit" name="expression1Edit">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="toolTip">
+              <string>Enter a revision set expression</string>
+             </property>
+             <property name="clearButtonEnabled">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
           </layout>
          </widget>
         </item>
@@ -287,6 +310,9 @@
           <property name="toolTip">
            <string>Enter a changeset id</string>
           </property>
+          <property name="clearButtonEnabled">
+           <bool>true</bool>
+          </property>
          </widget>
         </item>
         <item row="2" column="0">
@@ -364,7 +390,27 @@
           </property>
          </widget>
         </item>
-        <item row="5" column="0" colspan="3">
+        <item row="5" column="0">
+         <widget class="QRadioButton" name="expression2Button">
+          <property name="text">
+           <string>Expression:</string>
+          </property>
+         </widget>
+        </item>
+        <item row="5" column="1" colspan="2">
+         <widget class="QLineEdit" name="expression2Edit">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="toolTip">
+           <string>Enter a revision set expression</string>
+          </property>
+          <property name="clearButtonEnabled">
+           <bool>true</bool>
+          </property>
+         </widget>
+        </item>
+        <item row="6" column="0" colspan="3">
          <widget class="QRadioButton" name="tip2Button">
           <property name="toolTip">
            <string>Select tip revision of repository</string>
@@ -491,6 +537,8 @@
   <tabstop>branch1Combo</tabstop>
   <tabstop>bookmark1Button</tabstop>
   <tabstop>bookmark1Combo</tabstop>
+  <tabstop>expression1Button</tabstop>
+  <tabstop>expression1Edit</tabstop>
   <tabstop>number2Button</tabstop>
   <tabstop>number2SpinBox</tabstop>
   <tabstop>id2Button</tabstop>
@@ -501,12 +549,16 @@
   <tabstop>branch2Combo</tabstop>
   <tabstop>bookmark2Button</tabstop>
   <tabstop>bookmark2Combo</tabstop>
+  <tabstop>expression2Button</tabstop>
+  <tabstop>expression2Edit</tabstop>
   <tabstop>tip2Button</tabstop>
   <tabstop>collapseCheckBox</tabstop>
   <tabstop>keepChangesetsCheckBox</tabstop>
   <tabstop>keepBranchCheckBox</tabstop>
   <tabstop>detachCheckBox</tabstop>
-  <tabstop>buttonBox</tabstop>
+  <tabstop>noDryRunButton</tabstop>
+  <tabstop>dryRunOnlyButton</tabstop>
+  <tabstop>dryRunConfirmButton</tabstop>
  </tabstops>
  <resources/>
  <connections>
@@ -517,8 +569,8 @@
    <slot>accept()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>124</x>
-     <y>864</y>
+     <x>133</x>
+     <y>499</y>
     </hint>
     <hint type="destinationlabel">
      <x>21</x>
@@ -533,8 +585,8 @@
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>176</x>
-     <y>864</y>
+     <x>185</x>
+     <y>499</y>
     </hint>
     <hint type="destinationlabel">
      <x>73</x>
@@ -549,12 +601,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>86</x>
-     <y>163</y>
+     <x>120</x>
+     <y>190</y>
     </hint>
     <hint type="destinationlabel">
-     <x>201</x>
-     <y>164</y>
+     <x>228</x>
+     <y>192</y>
     </hint>
    </hints>
   </connection>
@@ -565,12 +617,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>99</x>
-     <y>699</y>
+     <x>435</x>
+     <y>67</y>
     </hint>
     <hint type="destinationlabel">
-     <x>204</x>
-     <y>700</y>
+     <x>535</x>
+     <y>69</y>
     </hint>
    </hints>
   </connection>
@@ -581,12 +633,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>56</x>
-     <y>189</y>
+     <x>90</x>
+     <y>223</y>
     </hint>
     <hint type="destinationlabel">
-     <x>245</x>
-     <y>190</y>
+     <x>296</x>
+     <y>224</y>
     </hint>
    </hints>
   </connection>
@@ -597,12 +649,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>95</x>
-     <y>725</y>
+     <x>435</x>
+     <y>100</y>
     </hint>
     <hint type="destinationlabel">
-     <x>248</x>
-     <y>726</y>
+     <x>627</x>
+     <y>101</y>
     </hint>
    </hints>
   </connection>
@@ -613,12 +665,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>83</x>
-     <y>215</y>
+     <x>117</x>
+     <y>255</y>
     </hint>
     <hint type="destinationlabel">
-     <x>241</x>
-     <y>216</y>
+     <x>296</x>
+     <y>256</y>
     </hint>
    </hints>
   </connection>
@@ -629,12 +681,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>74</x>
-     <y>241</y>
+     <x>108</x>
+     <y>287</y>
     </hint>
     <hint type="destinationlabel">
-     <x>229</x>
-     <y>242</y>
+     <x>296</x>
+     <y>288</y>
     </hint>
    </hints>
   </connection>
@@ -645,12 +697,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>63</x>
-     <y>751</y>
+     <x>404</x>
+     <y>132</y>
     </hint>
     <hint type="destinationlabel">
-     <x>248</x>
-     <y>752</y>
+     <x>627</x>
+     <y>133</y>
     </hint>
    </hints>
   </connection>
@@ -661,12 +713,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>100</x>
-     <y>777</y>
+     <x>435</x>
+     <y>164</y>
     </hint>
     <hint type="destinationlabel">
-     <x>248</x>
-     <y>778</y>
+     <x>627</x>
+     <y>165</y>
     </hint>
    </hints>
   </connection>
@@ -677,12 +729,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>48</x>
-     <y>267</y>
+     <x>82</x>
+     <y>319</y>
     </hint>
     <hint type="destinationlabel">
-     <x>245</x>
-     <y>268</y>
+     <x>296</x>
+     <y>320</y>
     </hint>
    </hints>
   </connection>
@@ -693,12 +745,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>48</x>
-     <y>803</y>
+     <x>389</x>
+     <y>196</y>
     </hint>
     <hint type="destinationlabel">
-     <x>248</x>
-     <y>804</y>
+     <x>627</x>
+     <y>197</y>
     </hint>
    </hints>
   </connection>
@@ -713,8 +765,40 @@
      <y>49</y>
     </hint>
     <hint type="destinationlabel">
+     <x>248</x>
+     <y>259</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>expression1Button</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>expression1Edit</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>54</x>
+     <y>341</y>
+    </hint>
+    <hint type="destinationlabel">
      <x>226</x>
-     <y>126</y>
+     <y>338</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>expression2Button</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>expression2Edit</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>398</x>
+     <y>214</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>461</x>
+     <y>220</y>
     </hint>
    </hints>
   </connection>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/StripExtension/HgStripDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/StripExtension/HgStripDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -42,6 +42,21 @@
             self.bookmarkCombo.addItems([""] + sorted(bookmarksList))
         self.idEdit.setText(rev)
         
+        # connect various radio buttons and input fields
+        self.numberButton.toggled.connect(self.__updateOK)
+        self.idButton.toggled.connect(self.__updateOK)
+        self.tagButton.toggled.connect(self.__updateOK)
+        self.branchButton.toggled.connect(self.__updateOK)
+        self.expressionButton.toggled.connect(self.__updateOK)
+        
+        self.numberSpinBox.valueChanged.connect(self.__updateOK)
+        
+        self.idEdit.textChanged.connect(self.__updateOK)
+        self.expressionEdit.textChanged.connect(self.__updateOK)
+        
+        self.tagCombo.editTextChanged.connect(self.__updateOK)
+        self.branchCombo.editTextChanged.connect(self.__updateOK)
+        
         msh = self.minimumSizeHint()
         self.resize(max(self.width(), msh.width()), msh.height())
         
@@ -49,6 +64,7 @@
         
         self.idEdit.setFocus()
     
+    @pyqtSlot()
     def __updateOK(self):
         """
         Private slot to update the OK button.
@@ -57,95 +73,17 @@
         if self.numberButton.isChecked():
             enabled = enabled and self.numberSpinBox.value() >= 0
         elif self.idButton.isChecked():
-            enabled = enabled and self.idEdit.text() != ""
+            enabled = enabled and bool(self.idEdit.text())
         elif self.tagButton.isChecked():
-            enabled = enabled and self.tagCombo.currentText() != ""
+            enabled = enabled and bool(self.tagCombo.currentText())
         elif self.branchButton.isChecked():
-            enabled = enabled and self.branchCombo.currentText() != ""
+            enabled = enabled and bool(self.branchCombo.currentText())
+        elif self.expressionButton.isChecked():
+            enabled = enabled and bool(self.expressionEdit.text())
         
         self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok).setEnabled(enabled)
     
-    @pyqtSlot(bool)
-    def on_numberButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Number select button.
-        
-        @param checked state of the button
-        @type bool
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_idButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the ID select button.
-        
-        @param checked state of the button
-        @type bool
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_tagButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Tag select button.
-        
-        @param checked state of the button
-        @type bool
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(bool)
-    def on_branchButton_toggled(self, checked):
-        """
-        Private slot to handle changes of the Branch select button.
-        
-        @param checked state of the button
-        @type bool
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(int)
-    def on_numberSpinBox_valueChanged(self, val):
-        """
-        Private slot to handle changes of the Number spin box.
-        
-        @param val value of the spin box
-        @type int
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_idEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the ID edit.
-        
-        @param txt text of the edit
-        @type str
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_tagCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Tag combo.
-        
-        @param txt text of the combo
-        @type str
-        """
-        self.__updateOK()
-    
-    @pyqtSlot(str)
-    def on_branchCombo_editTextChanged(self, txt):
-        """
-        Private slot to handle changes of the Branch combo.
-        
-        @param txt text of the combo
-        @type str
-        """
-        self.__updateOK()
-    
     def __getRevision(self):
         """
         Private method to generate the revision.
@@ -161,6 +99,8 @@
             return self.tagCombo.currentText()
         elif self.branchButton.isChecked():
             return self.branchCombo.currentText()
+        elif self.expressionButton.isChecked():
+            return self.expressionEdit.text()
         else:
             # should not happen
             return ""
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/StripExtension/HgStripDialog.ui	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/StripExtension/HgStripDialog.ui	Mon May 02 15:52:33 2022 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>400</width>
-    <height>276</height>
+    <height>374</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -86,6 +86,9 @@
         <property name="toolTip">
          <string>Enter a changeset id</string>
         </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
       <item row="2" column="0">
@@ -134,6 +137,26 @@
         </property>
        </widget>
       </item>
+      <item row="4" column="0">
+       <widget class="QRadioButton" name="expressionButton">
+        <property name="text">
+         <string>Expression:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="1" colspan="2">
+       <widget class="QLineEdit" name="expressionEdit">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="toolTip">
+         <string>Enter a revision set expression</string>
+        </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
      </layout>
     </widget>
    </item>
@@ -215,6 +238,8 @@
   <tabstop>tagCombo</tabstop>
   <tabstop>branchButton</tabstop>
   <tabstop>branchCombo</tabstop>
+  <tabstop>expressionButton</tabstop>
+  <tabstop>expressionEdit</tabstop>
   <tabstop>bookmarkCombo</tabstop>
   <tabstop>forceCheckBox</tabstop>
   <tabstop>noBackupCheckBox</tabstop>
@@ -229,8 +254,8 @@
    <slot>accept()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
+     <x>257</x>
+     <y>364</y>
     </hint>
     <hint type="destinationlabel">
      <x>157</x>
@@ -245,8 +270,8 @@
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
+     <x>325</x>
+     <y>364</y>
     </hint>
     <hint type="destinationlabel">
      <x>286</x>
@@ -261,12 +286,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>34</x>
-     <y>42</y>
+     <x>55</x>
+     <y>66</y>
     </hint>
     <hint type="destinationlabel">
-     <x>100</x>
-     <y>42</y>
+     <x>215</x>
+     <y>68</y>
     </hint>
    </hints>
   </connection>
@@ -277,12 +302,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>47</x>
-     <y>65</y>
+     <x>68</x>
+     <y>99</y>
     </hint>
     <hint type="destinationlabel">
-     <x>105</x>
-     <y>65</y>
+     <x>227</x>
+     <y>100</y>
     </hint>
    </hints>
   </connection>
@@ -293,12 +318,12 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>44</x>
-     <y>93</y>
+     <x>65</x>
+     <y>131</y>
     </hint>
     <hint type="destinationlabel">
-     <x>102</x>
-     <y>95</y>
+     <x>224</x>
+     <y>132</y>
     </hint>
    </hints>
   </connection>
@@ -309,12 +334,28 @@
    <slot>setEnabled(bool)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>52</x>
-     <y>118</y>
+     <x>73</x>
+     <y>163</y>
     </hint>
     <hint type="destinationlabel">
-     <x>109</x>
-     <y>122</y>
+     <x>231</x>
+     <y>164</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>expressionButton</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>expressionEdit</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>74</x>
+     <y>183</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>154</x>
+     <y>180</y>
     </hint>
    </hints>
   </connection>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py	Mon May 02 15:52:33 2022 +0200
@@ -1031,10 +1031,12 @@
             or delete (boolean)
         """
         from .HgRevisionSelectionDialog import HgRevisionSelectionDialog
-        dlg = HgRevisionSelectionDialog(self.hgGetTagsList(),
-                                        self.hgGetBranchesList(),
-                                        self.hgGetBookmarksList(),
-                                        self.tr("Current branch tip"))
+        dlg = HgRevisionSelectionDialog(
+            self.hgGetTagsList(),
+            self.hgGetBranchesList(),
+            bookmarksList=self.hgGetBookmarksList(),
+            noneLabel=self.tr("Current branch tip")
+        )
         if dlg.exec() == QDialog.DialogCode.Accepted:
             rev = dlg.getRevision()
             return self.vcsUpdate(name, revision=rev)
@@ -1503,9 +1505,11 @@
                     return
         
         from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog
-        dlg = HgRevisionsSelectionDialog(self.hgGetTagsList(),
-                                         self.hgGetBranchesList(),
-                                         self.hgGetBookmarksList())
+        dlg = HgRevisionsSelectionDialog(
+            self.hgGetTagsList(),
+            self.hgGetBranchesList(),
+            bookmarksList=self.hgGetBookmarksList()
+        )
         if dlg.exec() == QDialog.DialogCode.Accepted:
             revisions = dlg.getRevisions()
             if self.diff is None:
@@ -1550,9 +1554,11 @@
         
         if extended:
             from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog
-            dlg = HgRevisionsSelectionDialog(self.hgGetTagsList(),
-                                             self.hgGetBranchesList(),
-                                             self.hgGetBookmarksList())
+            dlg = HgRevisionsSelectionDialog(
+                self.hgGetTagsList(),
+                self.hgGetBranchesList(),
+                bookmarksList=self.hgGetBookmarksList()
+            )
             if dlg.exec() == QDialog.DialogCode.Accepted:
                 rev1, rev2 = dlg.getRevisions()
             else:
@@ -2247,9 +2253,11 @@
         rev = ""
         if subcommand in ("good", "bad", "skip"):
             from .HgRevisionSelectionDialog import HgRevisionSelectionDialog
-            dlg = HgRevisionSelectionDialog(self.hgGetTagsList(),
-                                            self.hgGetBranchesList(),
-                                            self.hgGetBookmarksList())
+            dlg = HgRevisionSelectionDialog(
+                self.hgGetTagsList(),
+                self.hgGetBranchesList(),
+                bookmarksList=self.hgGetBookmarksList()
+            )
             if dlg.exec() == QDialog.DialogCode.Accepted:
                 rev = dlg.getRevision()
             else:
@@ -2625,9 +2633,11 @@
         yes = EricMessageBox.yesNo(
             self.__ui,
             self.tr("Delete All Backups"),
-            self.tr("""<p>Do you really want to delete all backup bundles"""
-                    """ stored the backup area <b>{0}</b>?</p>""").format(
-                backupdir))
+            self.tr(
+                """<p>Do you really want to delete all backup bundles"""
+                """ stored in the backup area?<br/><b>{0}</b></p>"""
+            ).format(backupdir)
+        )
         if yes:
             shutil.rmtree(backupdir, True)
     
--- a/eric7/Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -9,7 +9,6 @@
 
 import os
 import re
-import sys
 import json
 
 from PyQt6.QtCore import QFileInfo, pyqtSlot, QProcess, QByteArray
@@ -28,6 +27,7 @@
 
 import UI.PixmapCache
 
+import Globals
 import Utilities
 import Preferences
 
@@ -83,7 +83,7 @@
         self.__pyqt6Available = False
         self.__pyqt6Server = QProcess(self)
         self.__pyqt6Server.start(
-            sys.executable, [os.path.join(
+            Globals.getPythonExecutable(), [os.path.join(
                 os.path.dirname(__file__), "QRegularExpressionWizardServer.py")
             ])
         if self.__pyqt6Server.waitForStarted(5000):
--- a/eric7/Preferences/ConfigurationPages/EditorFilePage.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorFilePage.py	Mon May 02 15:52:33 2022 +0200
@@ -19,6 +19,7 @@
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorFilePage import Ui_EditorFilePage
 
+import Globals
 from Utilities import supportedCodecs
 import Preferences
 
@@ -361,7 +362,8 @@
         Private slot to install the pymdown extensions package via pip.
         """
         pip = ericApp().getObject("Pip")
-        pip.installPackages(["pymdown-extensions"], interpreter=sys.executable)
+        pip.installPackages(["pymdown-extensions"],
+                            interpreter=Globals.getPythonExecutable())
         self.polishPage()
         
     def polishPage(self):
--- a/eric7/Preferences/ConfigurationPages/EmailPage.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Preferences/ConfigurationPages/EmailPage.py	Mon May 02 15:52:33 2022 +0200
@@ -9,7 +9,6 @@
 
 import smtplib
 import socket
-import sys
 
 from PyQt6.QtCore import pyqtSlot
 
@@ -24,6 +23,7 @@
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EmailPage import Ui_EmailPage
 
+import Globals
 import Preferences
 
 
@@ -266,7 +266,8 @@
         Private slot to install the required packages for use of Google Mail.
         """
         pip = ericApp().getObject("Pip")
-        pip.installPackages(RequiredPackages, interpreter=sys.executable)
+        pip.installPackages(RequiredPackages,
+                            interpreter=Globals.getPythonExecutable())
         self.__checkGoogleMail()
     
     @pyqtSlot()
--- a/eric7/Preferences/ConfigurationPages/InterfacePage.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Preferences/ConfigurationPages/InterfacePage.py	Mon May 02 15:52:33 2022 +0200
@@ -87,6 +87,10 @@
         
         # integrated tools activation
         # left side
+        self.findReplaceCheckBox.setChecked(
+            Preferences.getUI("ShowFindFileWidget"))
+        self.findLocationCheckBox.setChecked(
+            Preferences.getUI("ShowFindLocationWidget"))
         self.templateViewerCheckBox.setChecked(
             Preferences.getUI("ShowTemplateViewer"))
         self.fileBrowserCheckBox.setChecked(
@@ -184,6 +188,12 @@
         # save the integrated tools activation
         # left side
         Preferences.setUI(
+            "ShowFindFileWidget",
+            self.findReplaceCheckBox.isChecked())
+        Preferences.setUI(
+            "ShowFindLocationWidget",
+            self.findLocationCheckBox.isChecked())
+        Preferences.setUI(
             "ShowTemplateViewer",
             self.templateViewerCheckBox.isChecked())
         Preferences.setUI(
--- a/eric7/Preferences/ConfigurationPages/InterfacePage.ui	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Preferences/ConfigurationPages/InterfacePage.ui	Mon May 02 15:52:33 2022 +0200
@@ -433,7 +433,17 @@
          <string>Left Side</string>
         </property>
         <layout class="QGridLayout" name="gridLayout_5">
-         <item row="0" column="0">
+         <item row="2" column="0">
+          <widget class="QCheckBox" name="symbolsCheckBox">
+           <property name="toolTip">
+            <string>Select to activate the Symbols widget</string>
+           </property>
+           <property name="text">
+            <string>Symbols</string>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="0">
           <widget class="QCheckBox" name="templateViewerCheckBox">
            <property name="toolTip">
             <string>Select to activate the Template viewer</string>
@@ -443,7 +453,7 @@
            </property>
           </widget>
          </item>
-         <item row="0" column="1">
+         <item row="1" column="1">
           <widget class="QCheckBox" name="fileBrowserCheckBox">
            <property name="toolTip">
             <string>Select to activate the File-Browser widget</string>
@@ -453,13 +463,23 @@
            </property>
           </widget>
          </item>
-         <item row="1" column="0">
-          <widget class="QCheckBox" name="symbolsCheckBox">
+         <item row="0" column="0">
+          <widget class="QCheckBox" name="findReplaceCheckBox">
            <property name="toolTip">
-            <string>Select to activate the Symbols widget</string>
+            <string>Select to activate the embedded Find/Replace In Files tool.</string>
            </property>
            <property name="text">
-            <string>Symbols</string>
+            <string>Find/Replace In Files</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="1">
+          <widget class="QCheckBox" name="findLocationCheckBox">
+           <property name="toolTip">
+            <string>Select to activate the embedded Find File tool.</string>
+           </property>
+           <property name="text">
+            <string>Find File</string>
            </property>
           </widget>
          </item>
@@ -643,6 +663,8 @@
   <tabstop>combinedLeftRightSidebarCheckBox</tabstop>
   <tabstop>languageComboBox</tabstop>
   <tabstop>layoutComboBox</tabstop>
+  <tabstop>findReplaceCheckBox</tabstop>
+  <tabstop>findLocationCheckBox</tabstop>
   <tabstop>templateViewerCheckBox</tabstop>
   <tabstop>fileBrowserCheckBox</tabstop>
   <tabstop>symbolsCheckBox</tabstop>
--- a/eric7/Preferences/ConfigurationPages/PluginManagerPage.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Preferences/ConfigurationPages/PluginManagerPage.py	Mon May 02 15:52:33 2022 +0200
@@ -107,7 +107,7 @@
             Preferences.setUI(
                 "PluginRepositoryUrl7", self.repositoryUrlEdit.text())
         
-        Preferences.getPluginManager(
+        Preferences.setPluginManager(
             "AutoInstallDependencies",
             self.autoInstallCheckBox.isChecked())
     
--- a/eric7/Preferences/ProgramsDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Preferences/ProgramsDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -9,7 +9,6 @@
 
 import os
 import re
-import sys
 
 from PyQt6.QtCore import pyqtSlot, Qt, QProcess
 from PyQt6.QtWidgets import (
@@ -21,6 +20,7 @@
 
 from .Ui_ProgramsDialog import Ui_ProgramsDialog
 
+import Globals
 import Preferences
 import Utilities
 
@@ -241,7 +241,7 @@
             # 6c. grpc
             exe = Preferences.getProtobuf("grpcPython")
             if not exe:
-                exe = sys.executable
+                exe = Globals.getPythonExecutable()
             self.__createProgramEntry(
                 self.tr("gRPC Compiler"), exe, '--version', 'libprotoc', -1,
                 exeModule=['-m', 'grpc_tools.protoc'])
@@ -288,7 +288,8 @@
                 self.tr("MicroPython - MPY Cross Compiler"), exe, '--version',
                 'MicroPython', 1)
             self.__createProgramEntry(
-                self.tr("MicroPython - ESP Tool"), sys.executable, 'version',
+                self.tr("MicroPython - ESP Tool"),
+                Globals.getPythonExecutable(), 'version',
                 'esptool', -1, exeModule=['-m', 'esptool'])
             exe = Preferences.getMicroPython("DfuUtilPath")
             if not exe:
--- a/eric7/Preferences/__init__.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Preferences/__init__.py	Mon May 02 15:52:33 2022 +0200
@@ -21,7 +21,6 @@
 import fnmatch
 import shutil
 import json
-import sys
 
 from PyQt6.QtCore import (
     QDir, QPoint, QLocale, QSettings, QFileInfo, QCoreApplication, QByteArray,
@@ -143,6 +142,8 @@
         "ShowTemplateViewer": True,             # left side
         "ShowFileBrowser": True,                # left side
         "ShowSymbolsViewer": True,              # left side
+        "ShowFindFileWidget": True,             # left side
+        "ShowFindLocationWidget": True,         # left side
         "ShowCodeDocumentationViewer": True,    # right side
         "ShowPyPIPackageManager": True,         # right side
         "ShowCondaPackageManager": True,        # right side
@@ -1790,7 +1791,7 @@
         else:
             interpreter = ""
         if not interpreter:
-            return sys.executable
+            return Globals.getPythonExecutable()
         return interpreter
     elif key == "DebugClientType3":
         debugClientType = Prefs.settings.value(
@@ -1931,37 +1932,39 @@
     @param key the key of the value to get
     @return the requested UI setting
     """
-    if key in ["BrowsersListFoldersFirst", "BrowsersHideNonPublic",
-               "BrowsersListContentsByOccurrence", "BrowsersListHiddenFiles",
-               "BrowserShowCoding", "LogViewerAutoRaise",
-               "SingleApplicationMode", "TabViewManagerFilenameOnly",
-               "ShowFilePreview", "ShowFilePreviewJS", "ShowFilePreviewSSI",
-               "CaptionShowsFilename", "ShowSplash",
-               "SplitOrientationVertical", "DynamicOnlineCheck",
-               "UseProxy", "UseSystemProxy", "UseHttpProxyForAll",
-               "RequestDownloadFilename", "CheckErrorLog",
-               "OpenCrashSessionOnStartup", "CrashSessionEnabled",
-               "ShowCodeDocumentationViewer", "ShowPyPIPackageManager",
-               "ShowCondaPackageManager", "ShowCooperation", "ShowIrc",
-               "ShowTemplateViewer", "ShowFileBrowser", "ShowSymbolsViewer",
-               "ShowNumbersViewer", "ShowMicroPython",
-               "ShowInternalHelpViewer", "UseNativeMenuBar",
-               "CombinedLeftRightSidebar"]:
+    if key in [
+        "BrowsersListFoldersFirst", "BrowsersHideNonPublic",
+        "BrowsersListContentsByOccurrence", "BrowsersListHiddenFiles",
+        "BrowserShowCoding", "LogViewerAutoRaise", "SingleApplicationMode",
+        "TabViewManagerFilenameOnly", "ShowFilePreview", "ShowFilePreviewJS",
+        "ShowFilePreviewSSI", "CaptionShowsFilename", "ShowSplash",
+        "SplitOrientationVertical", "DynamicOnlineCheck", "UseProxy",
+        "UseSystemProxy", "UseHttpProxyForAll", "RequestDownloadFilename",
+        "CheckErrorLog", "OpenCrashSessionOnStartup", "CrashSessionEnabled",
+        "ShowCodeDocumentationViewer", "ShowPyPIPackageManager",
+        "ShowCondaPackageManager", "ShowCooperation", "ShowIrc",
+        "ShowTemplateViewer", "ShowFileBrowser", "ShowSymbolsViewer",
+        "ShowNumbersViewer", "ShowMicroPython", "ShowFindFileWidget",
+        "ShowFindLocationWidget", "ShowInternalHelpViewer", "UseNativeMenuBar",
+        "CombinedLeftRightSidebar",
+    ]:
         return toBool(Prefs.settings.value(
             "UI/" + key, Prefs.uiDefaults[key]))
-    elif key in ["TabViewManagerFilenameLength", "CaptionFilenameLength",
-                 "ProxyPort/Http", "ProxyPort/Https", "ProxyPort/Ftp",
-                 "OpenOnStartup", "PerformVersionCheck", "RecentNumber",
-                 "NotificationTimeout", "UpgraderDelay",
-                 "KeyboardInputInterval", "BackgroundServiceProcesses",
-                 "MinimumMessageTypeSeverity"]:
+    elif key in [
+        "TabViewManagerFilenameLength", "CaptionFilenameLength",
+        "ProxyPort/Http", "ProxyPort/Https", "ProxyPort/Ftp",
+        "OpenOnStartup", "PerformVersionCheck", "RecentNumber",
+        "NotificationTimeout", "UpgraderDelay", "KeyboardInputInterval",
+        "BackgroundServiceProcesses", "MinimumMessageTypeSeverity",
+    ]:
         return int(Prefs.settings.value(
             "UI/" + key, Prefs.uiDefaults[key]))
     elif key in ["ProxyType/Ftp", ]:
         return EricFtpProxyType(int(Prefs.settings.value(
             "UI/" + key, Prefs.uiDefaults[key].value)))
-    elif key in ["ProxyPassword/Http", "ProxyPassword/Https",
-                 "ProxyPassword/Ftp", ]:
+    elif key in [
+        "ProxyPassword/Http", "ProxyPassword/Https", "ProxyPassword/Ftp",
+    ]:
         from Utilities.crypto import pwConvert
         return pwConvert(
             Prefs.settings.value("UI/" + key, Prefs.uiDefaults[key]),
@@ -2000,8 +2003,10 @@
             return state
         else:
             return Prefs.uiDefaults[key]
-    elif key in ["LogViewerStdoutFilter", "LogViewerStderrFilter",
-                 "LogViewerStdxxxFilter", "TextMimeTypes"]:
+    elif key in [
+        "LogViewerStdoutFilter", "LogViewerStderrFilter",
+        "LogViewerStdxxxFilter", "TextMimeTypes"
+    ]:
         return toList(
             Prefs.settings.value("UI/" + key, Prefs.uiDefaults[key]))
     else:
--- a/eric7/Project/CreateDialogCodeDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Project/CreateDialogCodeDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -7,7 +7,6 @@
 Module implementing a dialog to generate code for a Qt5 dialog.
 """
 
-import sys
 import os
 import json
 import contextlib
@@ -28,6 +27,7 @@
 
 from eric7config import getConfig
 
+import Globals
 import Preferences
 
 
@@ -172,7 +172,7 @@
         execPath = venvManager.getVirtualenvExecPath(venvName)
         
         if not interpreter:
-            interpreter = sys.executable
+            interpreter = Globals.getPythonExecutable()
         
         env = QProcessEnvironment.systemEnvironment()
         if execPath:
--- a/eric7/Project/ProjectFile.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Project/ProjectFile.py	Mon May 02 15:52:33 2022 +0200
@@ -7,9 +7,10 @@
 Module implementing a class representing the project JSON file.
 """
 
+import contextlib
+import copy
 import json
 import time
-import contextlib
 import typing
 
 from PyQt6.QtCore import QObject
@@ -63,7 +64,7 @@
                 time.strftime('%Y-%m-%d, %H:%M:%S')
             )
         
-        projectDict["project"] = self.__project.pdata
+        projectDict["project"] = copy.deepcopy(self.__project.pdata)
         
         # modify paths to contain universal separators
         for key in (
@@ -71,10 +72,10 @@
             "RESOURCES", "INTERFACES", "PROTOCOLS", "OTHERS"
         ):
             with contextlib.suppress(KeyError):
-                projectDict["project"][key] = [
+                projectDict["project"][key] = sorted([
                     Utilities.fromNativeSeparators(f)
                     for f in projectDict["project"][key]
-                ]
+                ])
         for key in (
             "SPELLWORDS", "SPELLEXCLUDES", "TRANSLATIONPATTERN",
             "TRANSLATIONSBINPATH", "MAINSCRIPT"
--- a/eric7/Project/ProjectProtocolsBrowser.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Project/ProjectProtocolsBrowser.py	Mon May 02 15:52:33 2022 +0200
@@ -10,7 +10,6 @@
 
 import os
 import glob
-import sys
 import contextlib
 
 from PyQt6.QtCore import QThread, pyqtSignal, QProcess
@@ -33,6 +32,7 @@
 import UI.PixmapCache
 from UI.NotificationWidget import NotificationTypes
 
+import Globals
 import Preferences
 import Utilities
 
@@ -479,7 +479,7 @@
         if grpc:
             exe = Preferences.getProtobuf("grpcPython")
             if exe == "":
-                exe = sys.executable
+                exe = Globals.getPythonExecutable()
             exeArgs = ['-m', 'grpc_tools.protoc']
         else:
             exe = Preferences.getProtobuf("protoc")
--- a/eric7/Project/UicLoadUi5.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Project/UicLoadUi5.py	Mon May 02 15:52:33 2022 +0200
@@ -7,27 +7,25 @@
 Module to get the object name, class name or signatures of a Qt form (*.ui).
 """
 
-import os
 import sys
 import json
 import xml.etree.ElementTree            # secok
 import contextlib
 
 try:
-    from PyQt5.QtCore import QMetaMethod, QByteArray
-    from PyQt5.QtGui import QAction
-    from PyQt5.QtWidgets import QWidget, QApplication
+    from PyQt5.QtCore import QByteArray, QMetaMethod
+    from PyQt5.QtWidgets import QAction, QApplication, QWidget
     from PyQt5 import uic
-except ImportError:
+except ModuleNotFoundError:
     print("PyQt5 could not be found.")
     sys.exit(1)
+except ImportError as err:
+    print("PyQt5 could not be imported. Issue: {0}".format(str(err)))
+    sys.exit(1)
 
 with contextlib.suppress(ImportError):
     from PyQt5 import QtWebEngineWidgets    # __IGNORE_WARNING__
 
-sys.path.append(os.path.dirname(os.path.dirname(__file__)))
-# add the eric package directory
-
 
 def objectName(formFile, projectPath):
     """
@@ -38,6 +36,8 @@
     @param projectPath directory name of the project
     @type str
     """
+    sys.path.append(projectPath)
+    
     app = QApplication([])      # __IGNORE_WARNING__
     try:
         dlg = uic.loadUi(formFile, package=projectPath)
@@ -58,6 +58,8 @@
     @param projectPath directory name of the project
     @type str
     """
+    sys.path.append(projectPath)
+    
     app = QApplication([])      # __IGNORE_WARNING__
     try:
         dlg = uic.loadUi(formFile, package=projectPath)
@@ -109,6 +111,8 @@
     @param projectPath directory name of the project
     @type str
     """
+    sys.path.append(projectPath)
+    
     objectsList = []
     
     app = QApplication([])      # __IGNORE_WARNING__
--- a/eric7/Project/UicLoadUi6.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/Project/UicLoadUi6.py	Mon May 02 15:52:33 2022 +0200
@@ -14,13 +14,16 @@
 import contextlib
 
 try:
-    from PyQt6.QtCore import QMetaMethod, QByteArray
+    from PyQt6.QtCore import QByteArray, QMetaMethod
     from PyQt6.QtGui import QAction
-    from PyQt6.QtWidgets import QWidget, QApplication
+    from PyQt6.QtWidgets import QApplication, QWidget
     from PyQt6 import uic
-except ImportError:
+except ModuleNotFoundError:
     print("PyQt6 could not be found.")
     sys.exit(1)
+except ImportError as err:
+    print("PyQt6 could not be imported. Issue: {0}".format(str(err)))
+    sys.exit(1)
 
 with contextlib.suppress(ImportError):
     from PyQt6 import QtWebEngineWidgets    # __IGNORE_WARNING__
@@ -38,6 +41,8 @@
     @param projectPath directory name of the project
     @type str
     """
+    sys.path.append(projectPath)
+    
     app = QApplication([])      # __IGNORE_WARNING__
     try:
         dlg = uic.loadUi(formFile, package=projectPath)
@@ -58,6 +63,8 @@
     @param projectPath directory name of the project
     @type str
     """
+    sys.path.append(projectPath)
+    
     app = QApplication([])      # __IGNORE_WARNING__
     try:
         dlg = uic.loadUi(formFile, package=projectPath)
@@ -109,6 +116,8 @@
     @param projectPath directory name of the project
     @type str
     """
+    sys.path.append(projectPath)
+    
     objectsList = []
     
     app = QApplication([])      # __IGNORE_WARNING__
--- a/eric7/QScintilla/GotoDialog.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/QScintilla/GotoDialog.py	Mon May 02 15:52:33 2022 +0200
@@ -7,7 +7,7 @@
 Module implementing the Goto dialog.
 """
 
-from PyQt6.QtWidgets import QDialog
+from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
 from .Ui_GotoDialog import Ui_GotoDialog
 
@@ -36,6 +36,9 @@
         self.linenumberSpinBox.setValue(curLine)
         self.linenumberSpinBox.selectAll()
         
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Ok).setDefault(True)
+        
         msh = self.minimumSizeHint()
         self.resize(max(self.width(), msh.width()), msh.height())
         
--- a/eric7/QScintilla/ShellWindow.py	Sat Apr 02 11:23:41 2022 +0200
+++ b/eric7/QScintilla/ShellWindow.py	Mon May 02 15:52:33 2022 +0200
@@ -7,7 +7,6 @@
 Module implementing a stand alone shell window.
 """
 
-import sys
 import os
 
 from PyQt6.QtCore import (
@@ -29,7 +28,7 @@
 import UI.PixmapCache
 import Preferences
 
-from Globals import isMacPlatform
+from Globals import isMacPlatform, getPythonExecutable
 
 from .Shell import Shell
 from .APIsManager import APIsManager
@@ -1055,7 +1054,7 @@
         """
         Private slot to start a new instance of eric.
         """
-        program = sys.executable
+        program = getPythonExecutable()
         eric7 = os.path.join(getConfig("ericDir"), "eric7_shell.py")
         args = [eric7]
         QProcess.startDetached(program, args)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/Styles/eric7_Dark_Blue.ehj	Mon May 02 15:52:33 2022 +0200
@@ -0,0 +1,11689 @@
+{
+  "header": {
+    "comment": "eric highlighting styles file",
+    "saved": "2022-01-09, 16:46:26",
+    "author": "detlev@die-offenbachs.de"
+  },
+  "lexers": [
+    {
+      "name": "Bash",
+      "styles": [
+        {
+          "description": "Default",
+          "style": 0,
+          "substyle": -1,
+          "color": "#ffffff",
+          "paper": "#1b1b20",
+          "font": "DejaVu Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Error",
+          "style": 1,
+          "substyle": -1,
+          "color": "#ffff00",
+          "paper": "#ff0000",
+          "font": "DejaVu Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Comment",
+          "style": 2,
+          "substyle": -1,
+          "color": "#74cc66",
+          "paper": "#1b1b20",
+          "font": "DejaVu Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Number",
+          "style": 3,
+          "substyle": -1,
+          "color": "#00c8c8",
+          "paper": "#1b1b20",
+          "font": "DejaVu Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Keyword",
+          "style": 4,
+          "substyle": -1,
+          "color": "#60a5ff",
+          "paper": "#1b1b20",
+          "font": "DejaVu Sans Mono,9,-1,5,700,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Double-quoted string",
+          "style": 5,
+          "substyle": -1,
+          "color": "#c354c3",
+          "paper": "#1b1b20",
+          "font": "DejaVu Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Single-quoted string",
+          "style": 6,
+          "substyle": -1,
+          "color": "#c354c3",
+          "paper": "#1b1b20",
+          "font": "DejaVu Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Operator",
+          "style": 7,
+          "substyle": -1,
+          "color": "#bab1a8",
+          "paper": "#1b1b20",
+          "font": "DejaVu Sans Mono,9,-1,5,700,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Identifier",
+          "style": 8,
+          "substyle": -1,
+          "color": "#ffffff",
+          "paper": "#1b1b20",
+          "font": "DejaVu Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Scalar",
+          "style": 9,
+          "substyle": -1,
+          "color": "#ffffff",
+          "paper": "#645858",
+          "font": "DejaVu Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Parameter expansion",
+          "style": 10,
+          "substyle": -1,
+          "color": "#ffffff",
+          "paper": "#99995f",
+          "font": "DejaVu Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Backticks",
+          "style": 11,
+          "substyle": -1,
+          "color": "#ffff00",
+          "paper": "#645858",
+          "font": "DejaVu Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Here document delimiter",
+          "style": 12,
+          "substyle": -1,
+          "color": "#ffffff",
+          "paper": "#aa81a9",
+          "font": "DejaVu Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Single-quoted here document",
+          "style": 13,
+          "substyle": -1,
+          "color": "#ffd8fe",
+          "paper": "#aa81a9",
+          "font": "DejaVu Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": true,
+          "words": ""
+        }
+      ]
+    },
+    {
+      "name": "Batch",
+      "styles": [
+        {
+          "description": "Default",
+          "style": 0,
+          "substyle": -1,
+          "color": "#ffffff",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Comment",
+          "style": 1,
+          "substyle": -1,
+          "color": "#74cc66",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Keyword",
+          "style": 2,
+          "substyle": -1,
+          "color": "#60a5ff",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,700,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Label",
+          "style": 3,
+          "substyle": -1,
+          "color": "#ffff7f",
+          "paper": "#606060",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,700,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": true,
+          "words": ""
+        },
+        {
+          "description": "Hide command character",
+          "style": 4,
+          "substyle": -1,
+          "color": "#d1d100",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "External command",
+          "style": 5,
+          "substyle": -1,
+          "color": "#2bc2f0",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,700,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Variable",
+          "style": 6,
+          "substyle": -1,
+          "color": "#d068d3",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Operator",
+          "style": 7,
+          "substyle": -1,
+          "color": "#bab1a8",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        }
+      ]
+    },
+    {
+      "name": "C++",
+      "styles": [
+        {
+          "description": "Default",
+          "style": 0,
+          "substyle": -1,
+          "color": "#ffffff",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "C comment",
+          "style": 1,
+          "substyle": -1,
+          "color": "#74cc66",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "C++ comment",
+          "style": 2,
+          "substyle": -1,
+          "color": "#74cc66",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "JavaDoc style C comment",
+          "style": 3,
+          "substyle": -1,
+          "color": "#79d879",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Number",
+          "style": 4,
+          "substyle": -1,
+          "color": "#00c8c8",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Keyword",
+          "style": 5,
+          "substyle": -1,
+          "color": "#60a5ff",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,700,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Double-quoted string",
+          "style": 6,
+          "substyle": -1,
+          "color": "#c354c3",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Single-quoted string",
+          "style": 7,
+          "substyle": -1,
+          "color": "#c354c3",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "IDL UUID",
+          "style": 8,
+          "substyle": -1,
+          "color": "#b7c7cc",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Pre-processor block",
+          "style": 9,
+          "substyle": -1,
+          "color": "#e2e200",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Operator",
+          "style": 10,
+          "substyle": -1,
+          "color": "#bab1a8",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,700,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Identifier",
+          "style": 11,
+          "substyle": -1,
+          "color": "#b7c7cc",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Unclosed string",
+          "style": 12,
+          "substyle": -1,
+          "color": "#000000",
+          "paper": "#e0c0e0",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": true,
+          "words": ""
+        },
+        {
+          "description": "C# verbatim string",
+          "style": 13,
+          "substyle": -1,
+          "color": "#508c46",
+          "paper": "#e0ffe0",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": true,
+          "words": ""
+        },
+        {
+          "description": "JavaScript regular expression",
+          "style": 14,
+          "substyle": -1,
+          "color": "#3f7f3f",
+          "paper": "#e0f0e0",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": true,
+          "words": ""
+        },
+        {
+          "description": "JavaDoc style C++ comment",
+          "style": 15,
+          "substyle": -1,
+          "color": "#79d879",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Secondary keywords and identifiers",
+          "style": 16,
+          "substyle": -1,
+          "color": "#b7c7cc",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "JavaDoc keyword",
+          "style": 17,
+          "substyle": -1,
+          "color": "#4c9aff",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "JavaDoc keyword error",
+          "style": 18,
+          "substyle": -1,
+          "color": "#ff8040",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Global classes and typedefs",
+          "style": 19,
+          "substyle": -1,
+          "color": "#b7c7cc",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "C++ raw string",
+          "style": 20,
+          "substyle": -1,
+          "color": "#7f007f",
+          "paper": "#fff3ff",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Vala triple-quoted verbatim string",
+          "style": 21,
+          "substyle": -1,
+          "color": "#508c46",
+          "paper": "#e0ffe0",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": true,
+          "words": ""
+        },
+        {
+          "description": "Pike hash-quoted string",
+          "style": 22,
+          "substyle": -1,
+          "color": "#508c46",
+          "paper": "#e7ffd7",
+          "font": "Bitstream Vera Sans Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": true,
+          "words": ""
+        },
+        {
+          "description": "Pre-processor C comment",
+          "style": 23,
+          "substyle": -1,
+          "color": "#659900",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "JavaDoc style pre-processor comment",
+          "style": 24,
+          "substyle": -1,
+          "color": "#79d879",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "User-defined literal",
+          "style": 25,
+          "substyle": -1,
+          "color": "#c06000",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Task marker",
+          "style": 26,
+          "substyle": -1,
+          "color": "#be07ff",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Escape sequence",
+          "style": 27,
+          "substyle": -1,
+          "color": "#b7c7cc",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Inactive default",
+          "style": 64,
+          "substyle": -1,
+          "color": "#c0c0c0",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Sans,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Inactive C comment",
+          "style": 65,
+          "substyle": -1,
+          "color": "#90b090",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Inactive C++ comment",
+          "style": 66,
+          "substyle": -1,
+          "color": "#90b090",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",
+          "eolfill": false,
+          "words": ""
+        },
+        {
+          "description": "Inactive JavaDoc style C comment",
+          "style": 67,
+          "substyle": -1,
+          "color": "#d0d0d0",
+          "paper": "#1b1b20",
+          "font": "Bitstream Vera Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1",