Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'. eric7

Sat, 22 May 2021 18:51:46 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 22 May 2021 18:51:46 +0200
branch
eric7
changeset 8356
68ec9c3d4de5
parent 8355
8a7677a63c8d
child 8357
a081458cc57b

Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.

eric7.epj file | annotate | diff | comparison | revisions
eric7/CondaInterface/Conda.py file | annotate | diff | comparison | revisions
eric7/CondaInterface/CondaExecDialog.py file | annotate | diff | comparison | revisions
eric7/CondaInterface/CondaExportDialog.py file | annotate | diff | comparison | revisions
eric7/CondaInterface/CondaExportDialog.ui file | annotate | diff | comparison | revisions
eric7/CondaInterface/CondaNewEnvironmentDataDialog.py file | annotate | diff | comparison | revisions
eric7/CondaInterface/CondaNewEnvironmentDataDialog.ui file | annotate | diff | comparison | revisions
eric7/CondaInterface/CondaPackagesWidget.py file | annotate | diff | comparison | revisions
eric7/CondaInterface/CondaPackagesWidget.ui file | annotate | diff | comparison | revisions
eric7/Cooperation/ChatWidget.py file | annotate | diff | comparison | revisions
eric7/Cooperation/ChatWidget.ui file | annotate | diff | comparison | revisions
eric7/Cooperation/Connection.py file | annotate | diff | comparison | revisions
eric7/DataViews/PyCoverageDialog.py file | annotate | diff | comparison | revisions
eric7/DataViews/PyProfileDialog.py file | annotate | diff | comparison | revisions
eric7/Debugger/BreakPointViewer.py file | annotate | diff | comparison | revisions
eric7/Debugger/CallStackViewer.py file | annotate | diff | comparison | revisions
eric7/Debugger/CallTraceViewer.py file | annotate | diff | comparison | revisions
eric7/Debugger/DebugServer.py file | annotate | diff | comparison | revisions
eric7/Debugger/DebugUI.py file | annotate | diff | comparison | revisions
eric7/Debugger/DebugViewer.py file | annotate | diff | comparison | revisions
eric7/Debugger/DebuggerInterfacePython.py file | annotate | diff | comparison | revisions
eric7/Debugger/EditBreakpointDialog.py file | annotate | diff | comparison | revisions
eric7/Debugger/EditBreakpointDialog.ui file | annotate | diff | comparison | revisions
eric7/Debugger/ExceptionLogger.py file | annotate | diff | comparison | revisions
eric7/Debugger/StartCoverageDialog.ui file | annotate | diff | comparison | revisions
eric7/Debugger/StartDebugDialog.ui file | annotate | diff | comparison | revisions
eric7/Debugger/StartDialog.py file | annotate | diff | comparison | revisions
eric7/Debugger/StartHistoryEditDialog.py file | annotate | diff | comparison | revisions
eric7/Debugger/StartProfileDialog.ui file | annotate | diff | comparison | revisions
eric7/Debugger/StartRunDialog.ui file | annotate | diff | comparison | revisions
eric7/Debugger/VariablesViewer.py file | annotate | diff | comparison | revisions
eric7/Debugger/WatchPointViewer.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5Action.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5AnimatedLabel.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5AnimatedWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5Application.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ClickableLabel.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ComboSelectionDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ComboSelectionDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/E5Completers.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ErrorMessage.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ErrorMessageFilterDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ErrorMessageFilterDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/E5FileDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5FileSaveConfirmDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5GenericDiffHighlighter.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5Led.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5LineEdit.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5LineEditButton.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ListSelectionDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ListSelectionDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ListView.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5MainWindow.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5MapWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5MessageBox.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ModelMenu.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ModelToolBar.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5OverrideCursor.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5PassivePopup.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5PasswordMeter.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5PathPicker.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5PathPickerDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5PlainTextDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5PlainTextDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ProcessDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ProcessDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ProgressDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5SideBar.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5SimpleHelpDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5SimpleHelpDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/E5SingleApplication.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5SqueezeLabels.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5StringListEditWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5StringListEditWidget.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/E5TabWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5TableView.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5TextEditSearchWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5TextInputDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5TextSpinBox.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ToolBarDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ToolBarDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ToolBarManager.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ToolBox.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ToolButton.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5TreeSortFilterProxyModel.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5TreeView.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5TreeWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ZoomWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5ZoomWidget.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/EricAction.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricAnimatedLabel.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricAnimatedWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricApplication.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricClickableLabel.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricComboSelectionDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricComboSelectionDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/EricCompleters.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricErrorMessage.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricErrorMessageFilterDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricErrorMessageFilterDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/EricFileDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricFileSaveConfirmDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricGenericDiffHighlighter.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricLed.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricLineEdit.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricLineEditButton.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricListSelectionDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricListSelectionDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/EricListView.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricMainWindow.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricMapWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricMessageBox.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricModelMenu.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricModelToolBar.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricOverrideCursor.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricPassivePopup.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricPasswordMeter.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricPathPicker.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricPathPickerDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricPlainTextDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricPlainTextDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/EricProcessDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricProcessDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/EricProgressDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricSideBar.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricSimpleHelpDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricSimpleHelpDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/EricSingleApplication.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricSqueezeLabels.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricStringListEditWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricStringListEditWidget.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/EricTabWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricTableView.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricTextEditSearchWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricTextInputDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricTextSpinBox.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricToolBarDialog.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricToolBarDialog.ui file | annotate | diff | comparison | revisions
eric7/E5Gui/EricToolBarManager.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricToolBox.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricToolButton.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricTreeSortFilterProxyModel.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricTreeView.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricTreeWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricZoomWidget.py file | annotate | diff | comparison | revisions
eric7/E5Gui/EricZoomWidget.ui file | annotate | diff | comparison | revisions
eric7/EricGraphics/EricGraphicsView.py file | annotate | diff | comparison | revisions
eric7/EricNetwork/EricGoogleMail.py file | annotate | diff | comparison | revisions
eric7/EricNetwork/EricJsonServer.py file | annotate | diff | comparison | revisions
eric7/EricNetwork/EricNetworkProxyFactory.py file | annotate | diff | comparison | revisions
eric7/EricNetwork/EricSslCertificatesDialog.py file | annotate | diff | comparison | revisions
eric7/EricNetwork/EricSslErrorHandler.py file | annotate | diff | comparison | revisions
eric7/EricNetwork/EricTldExtractor.py file | annotate | diff | comparison | revisions
eric7/EricUtilities/EricMutexLocker.py file | annotate | diff | comparison | revisions
eric7/EricXML/SessionReader.py file | annotate | diff | comparison | revisions
eric7/EricXML/TasksReader.py file | annotate | diff | comparison | revisions
eric7/EricXML/XMLStreamReaderBase.py file | annotate | diff | comparison | revisions
eric7/Graphics/ApplicationDiagramBuilder.py file | annotate | diff | comparison | revisions
eric7/Graphics/ImportsDiagramBuilder.py file | annotate | diff | comparison | revisions
eric7/Graphics/PackageDiagramBuilder.py file | annotate | diff | comparison | revisions
eric7/Graphics/PixmapDiagram.py file | annotate | diff | comparison | revisions
eric7/Graphics/SvgDiagram.py file | annotate | diff | comparison | revisions
eric7/Graphics/UMLDialog.py file | annotate | diff | comparison | revisions
eric7/Graphics/UMLGraphicsView.py file | annotate | diff | comparison | revisions
eric7/HexEdit/HexEditMainWindow.py file | annotate | diff | comparison | revisions
eric7/HexEdit/HexEditSearchReplaceWidget.py file | annotate | diff | comparison | revisions
eric7/IconEditor/IconEditorGrid.py file | annotate | diff | comparison | revisions
eric7/IconEditor/IconEditorWindow.py file | annotate | diff | comparison | revisions
eric7/MicroPython/CircuitPythonDevices.py file | annotate | diff | comparison | revisions
eric7/MicroPython/EspBackupRestoreFirmwareDialog.py file | annotate | diff | comparison | revisions
eric7/MicroPython/EspBackupRestoreFirmwareDialog.ui file | annotate | diff | comparison | revisions
eric7/MicroPython/EspDevices.py file | annotate | diff | comparison | revisions
eric7/MicroPython/EspFirmwareSelectionDialog.py file | annotate | diff | comparison | revisions
eric7/MicroPython/EspFirmwareSelectionDialog.ui file | annotate | diff | comparison | revisions
eric7/MicroPython/GenericMicroPythonDevices.py file | annotate | diff | comparison | revisions
eric7/MicroPython/IgnoredDevicesDialog.ui file | annotate | diff | comparison | revisions
eric7/MicroPython/MicroPythonDevices.py file | annotate | diff | comparison | revisions
eric7/MicroPython/MicroPythonFileManagerWidget.py file | annotate | diff | comparison | revisions
eric7/MicroPython/MicroPythonFileManagerWidget.ui file | annotate | diff | comparison | revisions
eric7/MicroPython/MicroPythonGraphWidget.py file | annotate | diff | comparison | revisions
eric7/MicroPython/MicroPythonWidget.py file | annotate | diff | comparison | revisions
eric7/MicroPython/MicroPythonWidget.ui file | annotate | diff | comparison | revisions
eric7/MicroPython/MicrobitDevices.py file | annotate | diff | comparison | revisions
eric7/MicroPython/PyBoardDevices.py file | annotate | diff | comparison | revisions
eric7/MicroPython/UF2FlashDialog.py file | annotate | diff | comparison | revisions
eric7/MicroPython/UF2FlashDialog.ui file | annotate | diff | comparison | revisions
eric7/MicroPython/UnknownDevicesDialog.py file | annotate | diff | comparison | revisions
eric7/MultiProject/AddProjectDialog.py file | annotate | diff | comparison | revisions
eric7/MultiProject/AddProjectDialog.ui file | annotate | diff | comparison | revisions
eric7/MultiProject/MultiProject.py file | annotate | diff | comparison | revisions
eric7/MultiProject/MultiProjectBrowser.py file | annotate | diff | comparison | revisions
eric7/MultiProject/MultiProjectFile.py file | annotate | diff | comparison | revisions
eric7/Network/IRC/IrcChannelWidget.py file | annotate | diff | comparison | revisions
eric7/Network/IRC/IrcIdentitiesEditDialog.py file | annotate | diff | comparison | revisions
eric7/Network/IRC/IrcNetworkEditDialog.py file | annotate | diff | comparison | revisions
eric7/Network/IRC/IrcNetworkListDialog.py file | annotate | diff | comparison | revisions
eric7/Network/IRC/IrcNetworkWidget.py file | annotate | diff | comparison | revisions
eric7/Network/IRC/IrcWidget.py file | annotate | diff | comparison | revisions
eric7/PipInterface/Pip.py file | annotate | diff | comparison | revisions
eric7/PipInterface/PipDialog.py file | annotate | diff | comparison | revisions
eric7/PipInterface/PipFileSelectionDialog.py file | annotate | diff | comparison | revisions
eric7/PipInterface/PipFileSelectionDialog.ui file | annotate | diff | comparison | revisions
eric7/PipInterface/PipFreezeDialog.py file | annotate | diff | comparison | revisions
eric7/PipInterface/PipFreezeDialog.ui file | annotate | diff | comparison | revisions
eric7/PipInterface/PipPackagesWidget.py file | annotate | diff | comparison | revisions
eric7/PipInterface/PipPackagesWidget.ui file | annotate | diff | comparison | revisions
eric7/PluginManager/PluginInstallDialog.py file | annotate | diff | comparison | revisions
eric7/PluginManager/PluginManager.py file | annotate | diff | comparison | revisions
eric7/PluginManager/PluginRepositoryDialog.py file | annotate | diff | comparison | revisions
eric7/PluginManager/PluginUninstallDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py file | annotate | diff | comparison | revisions
eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/DocumentationPlugins/Ericapi/EricapiExecDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocExecDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginAbout.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginCodeStyleChecker.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginEricapi.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginEricdoc.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginSyntaxChecker.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginTranslator.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginVcsGit.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginVcsMercurial.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginVcsPySvn.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginVcsSubversion.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginWizardDotDesktop.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginWizardE5MessageBox.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginWizardEricPlugin.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginWizardPyRegExp.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginWizardQColorDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginWizardQFileDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginWizardQFontDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginWizardQInputDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginWizardQMessageBox.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginWizardQRegularExpression.py file | annotate | diff | comparison | revisions
eric7/Plugins/PluginWizardSetup.py file | annotate | diff | comparison | revisions
eric7/Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py file | annotate | diff | comparison | revisions
eric7/Plugins/UiExtensionPlugins/Translator/Translator.py file | annotate | diff | comparison | revisions
eric7/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/IbmWatsonEngine.py file | annotate | diff | comparison | revisions
eric7/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py file | annotate | diff | comparison | revisions
eric7/Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitArchiveDataDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitBisectLogBrowserDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitBlameDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitCopyDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitDescribeDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitDiffDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitDiffGenerator.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitDiffHighlighter.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitLogBrowserDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitNewProjectOptionsDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitPatchFilesDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitPatchStatisticsDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitReflogBrowserDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitRemoteRepositoriesDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitStashBrowserDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitStatusDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitSubmoduleAddDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitTagBranchListDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/ProjectBrowserHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/git.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/CloseheadExtension/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/GpgExtension/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgAddSubrepositoryDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgAddSubrepositoryDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgArchiveDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgArchiveDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgBookmarksListDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgConflictsListDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffGenerator.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffHighlighter.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgExportDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgExportDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgExtensionProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgImportDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgImportDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgServeDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgTagBranchListDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditCommitEditor.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditPlanEditor.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/LargefilesExtension/LfConvertDataDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/LargefilesExtension/LfConvertDataDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/LargefilesExtension/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/LargefilesExtension/largefiles.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/ProjectBrowserHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/PurgeExtension/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesDefineGuardsDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/queues.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/RebaseExtension/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/HgShelveBrowserDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/ProjectBrowserHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/shelve.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/StripExtension/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/hg.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/ProjectBrowserHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnChangeListsDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnCommandDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnCommandDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnCopyDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnCopyDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnDialogMixin.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnDiffHighlighter.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnLogBrowserDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnNewProjectOptionsDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnNewProjectOptionsDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnOptionsDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnOptionsDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnRepoBrowserDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnStatusDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnTagBranchListDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnUrlSelectionDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/subversion.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/ProjectBrowserHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnBlameDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnChangeListsDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnCommandDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnCommandDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnCopyDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnCopyDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnDiffHighlighter.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnNewProjectOptionsDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnNewProjectOptionsDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnOptionsDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnOptionsDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnPropListDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnPropSetDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnPropSetDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnTagBranchListDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnUrlSelectionDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/subversion.py file | annotate | diff | comparison | revisions
eric7/Plugins/ViewManagerPlugins/Tabview/Tabview.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/DotDesktopWizard/DotDesktopWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/E5MessageBoxWizard/E5MessageBoxWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/E5MessageBoxWizard/E5MessageBoxWizardDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/EricPluginWizard/PluginWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationDialog.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/CondaPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/CondaPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/CorbaPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/CorbaPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/DebuggerGeneralPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/DebuggerPython3Page.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/DebuggerPython3Page.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EditorAPIsPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EditorAPIsPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EditorDocViewerPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EditorFilePage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EditorGeneralPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EditorKeywordsPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EditorSpellCheckingPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EditorSpellCheckingPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EmailPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/HelpDocumentationPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/HelpDocumentationPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/HelpViewersPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/HelpViewersPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/IconsPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/IconsPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/InterfacePage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/InterfacePage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/LogViewerPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/MasterPasswordEntryDialog.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/MicroPythonPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/MicroPythonPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/MimeTypesPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/MimeTypesPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/MultiProjectPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/MultiProjectPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/NetworkPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/NetworkPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/PluginManagerPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/PluginManagerPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/ProjectBrowserPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/ProtobufPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/ProtobufPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/QtPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/QtPage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/ViewmanagerPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/WebBrowserAppearancePage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/WebBrowserAppearancePage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/WebBrowserInterfacePage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/WebBrowserInterfacePage.ui file | annotate | diff | comparison | revisions
eric7/Preferences/HighlightingStylesFile.py file | annotate | diff | comparison | revisions
eric7/Preferences/ProgramsDialog.py file | annotate | diff | comparison | revisions
eric7/Preferences/Shortcuts.py file | annotate | diff | comparison | revisions
eric7/Preferences/ShortcutsDialog.py file | annotate | diff | comparison | revisions
eric7/Preferences/ShortcutsFile.py file | annotate | diff | comparison | revisions
eric7/Preferences/SubstyleDefinitionDialog.py file | annotate | diff | comparison | revisions
eric7/Preferences/ToolConfigurationDialog.py file | annotate | diff | comparison | revisions
eric7/Preferences/ToolConfigurationDialog.ui file | annotate | diff | comparison | revisions
eric7/Preferences/ToolGroupConfigurationDialog.py file | annotate | diff | comparison | revisions
eric7/Preferences/__init__.py file | annotate | diff | comparison | revisions
eric7/Project/AddDirectoryDialog.py file | annotate | diff | comparison | revisions
eric7/Project/AddDirectoryDialog.ui file | annotate | diff | comparison | revisions
eric7/Project/AddFileDialog.py file | annotate | diff | comparison | revisions
eric7/Project/AddFileDialog.ui file | annotate | diff | comparison | revisions
eric7/Project/CreateDialogCodeDialog.py file | annotate | diff | comparison | revisions
eric7/Project/DebuggerPropertiesDialog.py file | annotate | diff | comparison | revisions
eric7/Project/DebuggerPropertiesDialog.ui file | annotate | diff | comparison | revisions
eric7/Project/DebuggerPropertiesFile.py file | annotate | diff | comparison | revisions
eric7/Project/IdlCompilerOptionsDialog.py file | annotate | diff | comparison | revisions
eric7/Project/MakePropertiesDialog.py file | annotate | diff | comparison | revisions
eric7/Project/MakePropertiesDialog.ui file | annotate | diff | comparison | revisions
eric7/Project/NewDialogClassDialog.py file | annotate | diff | comparison | revisions
eric7/Project/NewDialogClassDialog.ui file | annotate | diff | comparison | revisions
eric7/Project/Project.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectBaseBrowser.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectBrowser.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectFile.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectFormsBrowser.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectInterfacesBrowser.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectOthersBrowser.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectProtocolsBrowser.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectResourcesBrowser.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectSourcesBrowser.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectTranslationsBrowser.py file | annotate | diff | comparison | revisions
eric7/Project/PropertiesDialog.py file | annotate | diff | comparison | revisions
eric7/Project/PropertiesDialog.ui file | annotate | diff | comparison | revisions
eric7/Project/SpellingPropertiesDialog.py file | annotate | diff | comparison | revisions
eric7/Project/SpellingPropertiesDialog.ui file | annotate | diff | comparison | revisions
eric7/Project/TranslationPropertiesDialog.py file | annotate | diff | comparison | revisions
eric7/Project/TranslationPropertiesDialog.ui file | annotate | diff | comparison | revisions
eric7/Project/UserProjectFile.py file | annotate | diff | comparison | revisions
eric7/Project/UserPropertiesDialog.py file | annotate | diff | comparison | revisions
eric7/PyUnit/UnittestDialog.py file | annotate | diff | comparison | revisions
eric7/PyUnit/UnittestDialog.ui file | annotate | diff | comparison | revisions
eric7/QScintilla/DocstringGenerator/BaseDocstringGenerator.py file | annotate | diff | comparison | revisions
eric7/QScintilla/Editor.py file | annotate | diff | comparison | revisions
eric7/QScintilla/EditorAssembly.py file | annotate | diff | comparison | revisions
eric7/QScintilla/EditorMarkerMap.py file | annotate | diff | comparison | revisions
eric7/QScintilla/EditorOutline.py file | annotate | diff | comparison | revisions
eric7/QScintilla/Exporters/ExporterBase.py file | annotate | diff | comparison | revisions
eric7/QScintilla/Exporters/ExporterHTML.py file | annotate | diff | comparison | revisions
eric7/QScintilla/Exporters/ExporterODT.py file | annotate | diff | comparison | revisions
eric7/QScintilla/Exporters/ExporterPDF.py file | annotate | diff | comparison | revisions
eric7/QScintilla/Exporters/ExporterRTF.py file | annotate | diff | comparison | revisions
eric7/QScintilla/Exporters/ExporterTEX.py file | annotate | diff | comparison | revisions
eric7/QScintilla/MarkupProviders/ImageMarkupDialog.py file | annotate | diff | comparison | revisions
eric7/QScintilla/MarkupProviders/ImageMarkupDialog.ui file | annotate | diff | comparison | revisions
eric7/QScintilla/MiniEditor.py file | annotate | diff | comparison | revisions
eric7/QScintilla/SearchReplaceWidget.py file | annotate | diff | comparison | revisions
eric7/QScintilla/Shell.py file | annotate | diff | comparison | revisions
eric7/QScintilla/ShellWindow.py file | annotate | diff | comparison | revisions
eric7/QScintilla/SpellingDictionaryEditDialog.ui file | annotate | diff | comparison | revisions
eric7/Sessions/SessionFile.py file | annotate | diff | comparison | revisions
eric7/Snapshot/SnapWidget.py file | annotate | diff | comparison | revisions
eric7/Snapshot/SnapshotWaylandGrabber.py file | annotate | diff | comparison | revisions
eric7/SqlBrowser/SqlBrowser.py file | annotate | diff | comparison | revisions
eric7/SqlBrowser/SqlBrowserWidget.py file | annotate | diff | comparison | revisions
eric7/SqlBrowser/SqlConnectionDialog.py file | annotate | diff | comparison | revisions
eric7/SqlBrowser/SqlConnectionDialog.ui file | annotate | diff | comparison | revisions
eric7/Tasks/TaskPropertiesDialog.py file | annotate | diff | comparison | revisions
eric7/Tasks/TaskViewer.py file | annotate | diff | comparison | revisions
eric7/Tasks/TasksFile.py file | annotate | diff | comparison | revisions
eric7/Templates/TemplatePropertiesDialog.py file | annotate | diff | comparison | revisions
eric7/Templates/TemplateViewer.py file | annotate | diff | comparison | revisions
eric7/Templates/TemplatesFile.py file | annotate | diff | comparison | revisions
eric7/Toolbox/SingleApplication.py file | annotate | diff | comparison | revisions
eric7/Toolbox/Startup.py file | annotate | diff | comparison | revisions
eric7/Tools/TRPreviewer.py file | annotate | diff | comparison | revisions
eric7/Tools/TrayStarter.py file | annotate | diff | comparison | revisions
eric7/Tools/UIPreviewer.py file | annotate | diff | comparison | revisions
eric7/UI/Browser.py file | annotate | diff | comparison | revisions
eric7/UI/CodeDocumentationViewer.py file | annotate | diff | comparison | revisions
eric7/UI/CodeDocumentationViewerTemplate.py file | annotate | diff | comparison | revisions
eric7/UI/CompareDialog.py file | annotate | diff | comparison | revisions
eric7/UI/CompareDialog.ui file | annotate | diff | comparison | revisions
eric7/UI/DiffDialog.py file | annotate | diff | comparison | revisions
eric7/UI/DiffDialog.ui file | annotate | diff | comparison | revisions
eric7/UI/DiffHighlighter.py file | annotate | diff | comparison | revisions
eric7/UI/EmailDialog.py file | annotate | diff | comparison | revisions
eric7/UI/FindFileDialog.py file | annotate | diff | comparison | revisions
eric7/UI/FindFileDialog.ui file | annotate | diff | comparison | revisions
eric7/UI/FindFileNameDialog.py file | annotate | diff | comparison | revisions
eric7/UI/FindFileNameDialog.ui file | annotate | diff | comparison | revisions
eric7/UI/InstallInfoDialog.py file | annotate | diff | comparison | revisions
eric7/UI/LogView.py file | annotate | diff | comparison | revisions
eric7/UI/NumbersWidget.py file | annotate | diff | comparison | revisions
eric7/UI/NumbersWidget.ui file | annotate | diff | comparison | revisions
eric7/UI/Previewers/PreviewerHTML.py file | annotate | diff | comparison | revisions
eric7/UI/PythonAstViewer.py file | annotate | diff | comparison | revisions
eric7/UI/PythonDisViewer.py file | annotate | diff | comparison | revisions
eric7/UI/UserInterface.py file | annotate | diff | comparison | revisions
eric7/Utilities/BackgroundService.py file | annotate | diff | comparison | revisions
eric7/Utilities/__init__.py file | annotate | diff | comparison | revisions
eric7/Utilities/crypto/__init__.py file | annotate | diff | comparison | revisions
eric7/VCS/ProjectBrowserHelper.py file | annotate | diff | comparison | revisions
eric7/VCS/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/VCS/StatusMonitorLed.py file | annotate | diff | comparison | revisions
eric7/VCS/VersionControl.py file | annotate | diff | comparison | revisions
eric7/VCS/__init__.py file | annotate | diff | comparison | revisions
eric7/ViewManager/BookmarkedFilesDialog.py file | annotate | diff | comparison | revisions
eric7/ViewManager/BookmarkedFilesDialog.ui file | annotate | diff | comparison | revisions
eric7/ViewManager/ViewManager.py file | annotate | diff | comparison | revisions
eric7/VirtualEnv/VirtualenvAddEditDialog.py file | annotate | diff | comparison | revisions
eric7/VirtualEnv/VirtualenvAddEditDialog.ui file | annotate | diff | comparison | revisions
eric7/VirtualEnv/VirtualenvConfigurationDialog.py file | annotate | diff | comparison | revisions
eric7/VirtualEnv/VirtualenvConfigurationDialog.ui file | annotate | diff | comparison | revisions
eric7/VirtualEnv/VirtualenvInterpreterSelectionDialog.py file | annotate | diff | comparison | revisions
eric7/VirtualEnv/VirtualenvInterpreterSelectionDialog.ui file | annotate | diff | comparison | revisions
eric7/VirtualEnv/VirtualenvManager.py file | annotate | diff | comparison | revisions
eric7/VirtualEnv/VirtualenvManagerDialog.py file | annotate | diff | comparison | revisions
eric7/VirtualEnv/VirtualenvManagerDialog.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/AdBlock/AdBlockDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/AdBlock/AdBlockIcon.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/AdBlock/AdBlockManager.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/AdBlock/AdBlockSubscription.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/AdBlock/AdBlockTreeWidget.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Bookmarks/BookmarksDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Bookmarks/BookmarksDialog.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/Bookmarks/BookmarksImportDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Bookmarks/BookmarksImportDialog.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/Bookmarks/BookmarksManager.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Bookmarks/BookmarksMenu.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Bookmarks/BookmarksToolBar.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/CookieJar/CookiesDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/CookieJar/CookiesDialog.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/CookieJar/CookiesExceptionsDialog.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/Download/DownloadItem.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Download/DownloadManager.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Download/DownloadManager.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/Download/DownloadManagerButton.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/FeaturePermissions/FeaturePermissionBar.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Feeds/FeedsManager.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/GreaseMonkey/GreaseMonkeyManager.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/History/HistoryDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/History/HistoryDialog.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/History/HistoryManager.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/History/HistoryMenu.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Navigation/NavigationBar.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Navigation/ReloadStopButton.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Network/EricSchemeHandler.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Network/NetworkManager.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Network/SendRefererWhitelistDialog.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/OpenSearch/OpenSearchDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/OpenSearch/OpenSearchDialog.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/OpenSearch/OpenSearchManager.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/PageScreenDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Passwords/PasswordManager.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Passwords/PasswordsDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Passwords/PasswordsDialog.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/QtHelp/QtHelpDocumentationDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/QtHelp/QtHelpDocumentationSelectionDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/SafeBrowsing/SafeBrowsingDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Session/SessionManager.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/SiteInfo/SiteInfoDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/SpeedDial/SpeedDial.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/SpellCheck/ManageDictionariesDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/StatusBar/StatusBarIcon.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Sync/SyncCheckPage.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Sync/SyncCheckPage.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/Sync/SyncDirectorySettingsPage.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Sync/SyncDirectorySettingsPage.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/Sync/SyncEncryptionPage.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/TabManager/TabManagerWidget.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Tools/PrintToPdfDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Tools/PrintToPdfDialog.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/UrlBar/SslLabel.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/UrlBar/UrlBar.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/UserAgent/UserAgentManager.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/UserAgent/UserAgentMenu.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/UserAgent/UserAgentsDialog.ui file | annotate | diff | comparison | revisions
eric7/WebBrowser/VirusTotal/VirusTotalApi.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/WebBrowserPage.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/WebBrowserTabBar.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/WebBrowserTabWidget.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/WebBrowserView.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/WebBrowserWebSearchWidget.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/WebBrowserWindow.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/ZoomManager/ZoomValuesDialog.ui file | annotate | diff | comparison | revisions
eric7/eric7.py file | annotate | diff | comparison | revisions
eric7/eric7_browser.py file | annotate | diff | comparison | revisions
eric7/eric7_trpreviewer.py file | annotate | diff | comparison | revisions
--- a/eric7.epj	Sat May 22 17:01:51 2021 +0200
+++ b/eric7.epj	Sat May 22 18:51:46 2021 +0200
@@ -2,7 +2,7 @@
   "header": {
     "comment": "eric project file for project eric7",
     "copyright": "Copyright (C) 2021 Detlev Offenbach, detlev@die-offenbachs.de",
-    "saved": "2021-05-22, 16:56:28"
+    "saved": "2021-05-22, 18:49:32"
   },
   "project": {
     "AUTHOR": "Detlev Offenbach",
@@ -285,15 +285,6 @@
       "eric7/Debugger/StartRunDialog.ui",
       "eric7/Debugger/VariableDetailDialog.ui",
       "eric7/Debugger/VariablesFilterDialog.ui",
-      "eric7/E5Gui/E5ComboSelectionDialog.ui",
-      "eric7/E5Gui/E5ErrorMessageFilterDialog.ui",
-      "eric7/E5Gui/E5ListSelectionDialog.ui",
-      "eric7/E5Gui/E5PlainTextDialog.ui",
-      "eric7/E5Gui/E5ProcessDialog.ui",
-      "eric7/E5Gui/E5SimpleHelpDialog.ui",
-      "eric7/E5Gui/E5StringListEditWidget.ui",
-      "eric7/E5Gui/E5ToolBarDialog.ui",
-      "eric7/E5Gui/E5ZoomWidget.ui",
       "eric7/Graphics/UMLSceneSizeDialog.ui",
       "eric7/HexEdit/HexEditGotoWidget.ui",
       "eric7/HexEdit/HexEditReplaceWidget.ui",
@@ -709,7 +700,16 @@
       "eric7/EricNetwork/EricSslCertificateSelectionDialog.ui",
       "eric7/EricNetwork/EricSslCertificatesDialog.ui",
       "eric7/EricNetwork/EricSslCertificatesInfoDialog.ui",
-      "eric7/EricNetwork/EricSslCertificatesInfoWidget.ui"
+      "eric7/EricNetwork/EricSslCertificatesInfoWidget.ui",
+      "eric7/E5Gui/EricComboSelectionDialog.ui",
+      "eric7/E5Gui/EricErrorMessageFilterDialog.ui",
+      "eric7/E5Gui/EricListSelectionDialog.ui",
+      "eric7/E5Gui/EricPlainTextDialog.ui",
+      "eric7/E5Gui/EricProcessDialog.ui",
+      "eric7/E5Gui/EricSimpleHelpDialog.ui",
+      "eric7/E5Gui/EricStringListEditWidget.ui",
+      "eric7/E5Gui/EricToolBarDialog.ui",
+      "eric7/E5Gui/EricZoomWidget.ui"
     ],
     "HASH": "df7daa8781250f7664e6ecaeaf1361fa2efd39ee",
     "IDLPARAMS": {
@@ -1072,54 +1072,6 @@
       "eric7/DocumentationTools/TemplatesListsStyle.py",
       "eric7/DocumentationTools/TemplatesListsStyleCSS.py",
       "eric7/DocumentationTools/__init__.py",
-      "eric7/E5Gui/E5Action.py",
-      "eric7/E5Gui/E5AnimatedLabel.py",
-      "eric7/E5Gui/E5AnimatedWidget.py",
-      "eric7/E5Gui/E5Application.py",
-      "eric7/E5Gui/E5ClickableLabel.py",
-      "eric7/E5Gui/E5ComboSelectionDialog.py",
-      "eric7/E5Gui/E5Completers.py",
-      "eric7/E5Gui/E5ErrorMessage.py",
-      "eric7/E5Gui/E5ErrorMessageFilterDialog.py",
-      "eric7/E5Gui/E5FileDialog.py",
-      "eric7/E5Gui/E5FileSaveConfirmDialog.py",
-      "eric7/E5Gui/E5GenericDiffHighlighter.py",
-      "eric7/E5Gui/E5Led.py",
-      "eric7/E5Gui/E5LineEdit.py",
-      "eric7/E5Gui/E5LineEditButton.py",
-      "eric7/E5Gui/E5ListSelectionDialog.py",
-      "eric7/E5Gui/E5ListView.py",
-      "eric7/E5Gui/E5MainWindow.py",
-      "eric7/E5Gui/E5MapWidget.py",
-      "eric7/E5Gui/E5MessageBox.py",
-      "eric7/E5Gui/E5ModelMenu.py",
-      "eric7/E5Gui/E5ModelToolBar.py",
-      "eric7/E5Gui/E5OverrideCursor.py",
-      "eric7/E5Gui/E5PassivePopup.py",
-      "eric7/E5Gui/E5PasswordMeter.py",
-      "eric7/E5Gui/E5PathPicker.py",
-      "eric7/E5Gui/E5PathPickerDialog.py",
-      "eric7/E5Gui/E5PlainTextDialog.py",
-      "eric7/E5Gui/E5ProcessDialog.py",
-      "eric7/E5Gui/E5ProgressDialog.py",
-      "eric7/E5Gui/E5SideBar.py",
-      "eric7/E5Gui/E5SimpleHelpDialog.py",
-      "eric7/E5Gui/E5SingleApplication.py",
-      "eric7/E5Gui/E5SqueezeLabels.py",
-      "eric7/E5Gui/E5StringListEditWidget.py",
-      "eric7/E5Gui/E5TabWidget.py",
-      "eric7/E5Gui/E5TableView.py",
-      "eric7/E5Gui/E5TextEditSearchWidget.py",
-      "eric7/E5Gui/E5TextInputDialog.py",
-      "eric7/E5Gui/E5TextSpinBox.py",
-      "eric7/E5Gui/E5ToolBarDialog.py",
-      "eric7/E5Gui/E5ToolBarManager.py",
-      "eric7/E5Gui/E5ToolBox.py",
-      "eric7/E5Gui/E5ToolButton.py",
-      "eric7/E5Gui/E5TreeSortFilterProxyModel.py",
-      "eric7/E5Gui/E5TreeView.py",
-      "eric7/E5Gui/E5TreeWidget.py",
-      "eric7/E5Gui/E5ZoomWidget.py",
       "eric7/E5Gui/__init__.py",
       "eric7/Globals/AppInfo.py",
       "eric7/Globals/__init__.py",
@@ -2264,7 +2216,55 @@
       "eric7/EricNetwork/EricSslInfoWidget.py",
       "eric7/EricNetwork/EricSslUtilities.py",
       "eric7/EricNetwork/EricTldExtractor.py",
-      "eric7/EricNetwork/EricUrlInfo.py"
+      "eric7/EricNetwork/EricUrlInfo.py",
+      "eric7/E5Gui/EricAction.py",
+      "eric7/E5Gui/EricAnimatedLabel.py",
+      "eric7/E5Gui/EricAnimatedWidget.py",
+      "eric7/E5Gui/EricApplication.py",
+      "eric7/E5Gui/EricClickableLabel.py",
+      "eric7/E5Gui/EricComboSelectionDialog.py",
+      "eric7/E5Gui/EricCompleters.py",
+      "eric7/E5Gui/EricErrorMessage.py",
+      "eric7/E5Gui/EricErrorMessageFilterDialog.py",
+      "eric7/E5Gui/EricFileDialog.py",
+      "eric7/E5Gui/EricFileSaveConfirmDialog.py",
+      "eric7/E5Gui/EricGenericDiffHighlighter.py",
+      "eric7/E5Gui/EricLed.py",
+      "eric7/E5Gui/EricLineEdit.py",
+      "eric7/E5Gui/EricLineEditButton.py",
+      "eric7/E5Gui/EricListSelectionDialog.py",
+      "eric7/E5Gui/EricListView.py",
+      "eric7/E5Gui/EricMainWindow.py",
+      "eric7/E5Gui/EricMapWidget.py",
+      "eric7/E5Gui/EricMessageBox.py",
+      "eric7/E5Gui/EricModelMenu.py",
+      "eric7/E5Gui/EricModelToolBar.py",
+      "eric7/E5Gui/EricOverrideCursor.py",
+      "eric7/E5Gui/EricPassivePopup.py",
+      "eric7/E5Gui/EricPasswordMeter.py",
+      "eric7/E5Gui/EricPathPicker.py",
+      "eric7/E5Gui/EricPathPickerDialog.py",
+      "eric7/E5Gui/EricPlainTextDialog.py",
+      "eric7/E5Gui/EricProcessDialog.py",
+      "eric7/E5Gui/EricProgressDialog.py",
+      "eric7/E5Gui/EricSideBar.py",
+      "eric7/E5Gui/EricSimpleHelpDialog.py",
+      "eric7/E5Gui/EricSingleApplication.py",
+      "eric7/E5Gui/EricSqueezeLabels.py",
+      "eric7/E5Gui/EricStringListEditWidget.py",
+      "eric7/E5Gui/EricTabWidget.py",
+      "eric7/E5Gui/EricTableView.py",
+      "eric7/E5Gui/EricTextEditSearchWidget.py",
+      "eric7/E5Gui/EricTextInputDialog.py",
+      "eric7/E5Gui/EricTextSpinBox.py",
+      "eric7/E5Gui/EricToolBarDialog.py",
+      "eric7/E5Gui/EricToolBarManager.py",
+      "eric7/E5Gui/EricToolBox.py",
+      "eric7/E5Gui/EricToolButton.py",
+      "eric7/E5Gui/EricTreeSortFilterProxyModel.py",
+      "eric7/E5Gui/EricTreeView.py",
+      "eric7/E5Gui/EricTreeWidget.py",
+      "eric7/E5Gui/EricZoomWidget.py"
     ],
     "SPELLEXCLUDES": "Dictionaries/excludes.dic",
     "SPELLLANGUAGE": "en_US",
--- a/eric7/CondaInterface/Conda.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/CondaInterface/Conda.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 from PyQt6.QtCore import pyqtSignal, QObject, QProcess, QCoreApplication
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 import Globals
 import Preferences
@@ -145,7 +145,7 @@
         proc = QProcess()
         proc.start(exe, args)
         if not proc.waitForStarted(15000):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("conda remove"),
                 self.tr("""The conda executable could not be started."""))
@@ -158,14 +158,14 @@
             try:
                 jsonDict = json.loads(output)
             except Exception:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("conda remove"),
                     self.tr("""The conda executable returned invalid data."""))
                 return False
             
             if "error" in jsonDict:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("conda remove"),
                     self.tr("<p>The conda executable returned an error.</p>"
--- a/eric7/CondaInterface/CondaExecDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/CondaInterface/CondaExecDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSlot, QProcess, QTimer
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QAbstractButton
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_CondaExecDialog import Ui_CondaExecDialog
 
@@ -99,7 +99,7 @@
         self.__process.start(self.__condaExe, arguments)
         procStarted = self.__process.waitForStarted(5000)
         if not procStarted:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Conda Execution"),
                 self.tr("""The conda executable could not be started. Is it"""
--- a/eric7/CondaInterface/CondaExportDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/CondaInterface/CondaExportDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,10 +14,10 @@
     QDialog, QDialogButtonBox, QAbstractButton, QApplication
 )
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5PathPicker import E5PathPickerModes
-from E5Gui.E5Application import e5App
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricPathPicker import EricPathPickerModes
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .Ui_CondaExportDialog import Ui_CondaExportDialog
 
@@ -48,7 +48,7 @@
         self.__refreshButton = self.buttonBox.addButton(
             self.tr("&Refresh"), QDialogButtonBox.ButtonRole.ActionRole)
         
-        self.requirementsFilePicker.setMode(E5PathPickerModes.SAVE_FILE_MODE)
+        self.requirementsFilePicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
         self.requirementsFilePicker.setFilters(
             self.tr("Text Files (*.txt);;All Files (*)"))
         
@@ -108,7 +108,7 @@
         Private slot to refresh the displayed list.
         """
         ok = (
-            E5MessageBox.yesNo(
+            EricMessageBox.yesNo(
                 self,
                 self.tr("Generate Requirements"),
                 self.tr("""The requirements were changed. Do you want"""
@@ -133,7 +133,7 @@
             self.__prefix,
         ]
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             success, output = self.__conda.runProcess(args)
             
             if success:
@@ -158,7 +158,7 @@
         self.saveToButton.setEnabled(self.__requirementsAvailable)
         self.copyButton.setEnabled(self.__requirementsAvailable)
         
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw and self.__requirementsAvailable:
             self.insertButton.setEnabled(True)
             self.replaceAllButton.setEnabled(True)
@@ -177,7 +177,7 @@
         @type str
         """
         if os.path.exists(fileName):
-            ok = E5MessageBox.warning(
+            ok = EricMessageBox.warning(
                 self,
                 self.tr("Generate Requirements"),
                 self.tr("""The file <b>{0}</b> already exists. Do you want"""
@@ -189,7 +189,7 @@
             with open(fileName, "w") as f:
                 f.write(self.requirementsEdit.toPlainText())
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Generate Requirements"),
                 self.tr("""<p>The requirements could not be written"""
@@ -209,13 +209,13 @@
         """
         Private slot to write the requirements text to a new file.
         """
-        fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fileName, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Generate Requirements"),
             os.path.expanduser("~"),
             self.tr("Text Files (*.txt);;All Files (*)"),
             None,
-            E5FileDialog.DontConfirmOverwrite
+            EricFileDialog.DontConfirmOverwrite
         )
         if fileName:
             ext = os.path.splitext(fileName)[1]
@@ -240,7 +240,7 @@
         Private slot to insert the requirements text at the cursor position
         of the current editor.
         """
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw:
             aw.beginUndoAction()
             cline, cindex = aw.getCursorPosition()
@@ -253,7 +253,7 @@
         Private slot to replace the selected text of the current editor
         with the requirements text.
         """
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw:
             aw.beginUndoAction()
             aw.replaceSelectedText(self.requirementsEdit.toPlainText())
@@ -265,6 +265,6 @@
         Private slot to replace the text of the current editor with the
         requirements text.
         """
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw:
             aw.setText(self.requirementsEdit.toPlainText())
--- a/eric7/CondaInterface/CondaExportDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/CondaInterface/CondaExportDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -44,7 +44,7 @@
       </widget>
      </item>
      <item row="1" column="1">
-      <widget class="E5PathPicker" name="requirementsFilePicker" native="true">
+      <widget class="EricPathPicker" name="requirementsFilePicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -156,9 +156,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/CondaInterface/CondaNewEnvironmentDataDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/CondaInterface/CondaNewEnvironmentDataDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_CondaNewEnvironmentDataDialog import Ui_CondaNewEnvironmentDataDialog
 
@@ -38,7 +38,7 @@
         
         self.__requirementsMode = showRequirements
         
-        self.requirementsFilePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.requirementsFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.requirementsFilePicker.setFilters(
             self.tr("Text Files (*.txt);;All Files (*)"))
         
--- a/eric7/CondaInterface/CondaNewEnvironmentDataDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/CondaInterface/CondaNewEnvironmentDataDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -65,7 +65,7 @@
     </widget>
    </item>
    <item row="2" column="1">
-    <widget class="E5PathPicker" name="requirementsFilePicker" native="true">
+    <widget class="EricPathPicker" name="requirementsFilePicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -91,9 +91,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/CondaInterface/CondaPackagesWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/CondaInterface/CondaPackagesWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -15,9 +15,9 @@
     QDialog
 )
 
-from E5Gui import E5FileDialog, E5MessageBox, E5TextInputDialog
-from E5Gui.E5Application import e5App
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricFileDialog, EricMessageBox, EricTextInputDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .Ui_CondaPackagesWidget import Ui_CondaPackagesWidget
 
@@ -222,7 +222,7 @@
             self.statusLabel.show()
             self.statusLabel.setText(self.tr("Getting installed packages..."))
             
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 # 1. populate with installed packages
                 self.packagesList.setUpdatesEnabled(False)
                 installedPackages = self.__conda.getInstalledPackages(
@@ -287,7 +287,7 @@
         self.environmentsComboBox.clear()
         self.packagesList.clear()
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             self.__populateEnvironments()
             
             index = self.environmentsComboBox.findText(
@@ -356,7 +356,7 @@
         self.searchResultList.clear()
         pattern = self.searchEdit.text()
         if pattern:
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 prefix = (
                     ""
                     if CondaInterface.condaVersion() >= (4, 4, 0) else
@@ -400,7 +400,7 @@
                     message = result["message"]
                 except KeyError:
                     message = result["error"]
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Conda Search Package Error"),
                     message)
@@ -558,7 +558,7 @@
         prefix = self.environmentsComboBox.itemData(
             self.environmentsComboBox.currentIndex())
         if prefix:
-            ok, packageSpecs = E5TextInputDialog.getText(
+            ok, packageSpecs = EricTextInputDialog.getText(
                 self,
                 self.tr("Install Packages"),
                 self.tr("Package Specifications (separated by whitespace):"),
@@ -578,7 +578,7 @@
         prefix = self.environmentsComboBox.itemData(
             self.environmentsComboBox.currentIndex())
         if prefix:
-            requirements = E5FileDialog.getOpenFileNames(
+            requirements = EricFileDialog.getOpenFileNames(
                 self,
                 self.tr("Install Packages"),
                 "",
@@ -633,7 +633,7 @@
                 ok, prefix, interpreter = self.__conda.createCondaEnvironment(
                     args)
                 if ok:
-                    e5App().getObject("VirtualEnvManager").addVirtualEnv(
+                    ericApp().getObject("VirtualEnvManager").addVirtualEnv(
                         virtEnvName, prefix, interpreter, isConda=True)
     
     @pyqtSlot()
@@ -656,7 +656,7 @@
             ]
             ok, prefix, interpreter = self.__conda.createCondaEnvironment(args)
             if ok:
-                e5App().getObject("VirtualEnvManager").addVirtualEnv(
+                ericApp().getObject("VirtualEnvManager").addVirtualEnv(
                     virtEnvName, prefix, interpreter, isConda=True)
     
     @pyqtSlot()
@@ -665,7 +665,7 @@
         Private slot to delete a conda environment.
         """
         envName = self.environmentsComboBox.currentText()
-        ok = E5MessageBox.yesNo(
+        ok = EricMessageBox.yesNo(
             self,
             self.tr("Delete Environment"),
             self.tr("""<p>Shall the environment <b>{0}</b> really be"""
@@ -690,7 +690,7 @@
         
         # check, if the destination is writeable
         if not os.access(cfgFile, os.W_OK):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Edit Configuration"),
                 self.tr("""The configuration file "{0}" does not exist"""
@@ -705,7 +705,7 @@
         """
         Private slot to open the configuration page.
         """
-        e5App().getObject("UserInterface").showPreferences("condaPage")
+        ericApp().getObject("UserInterface").showPreferences("condaPage")
     
     @pyqtSlot()
     def on_recheckButton_clicked(self):
--- a/eric7/CondaInterface/CondaPackagesWidget.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/CondaInterface/CondaPackagesWidget.ui	Sat May 22 18:51:46 2021 +0200
@@ -126,7 +126,7 @@
          <widget class="QComboBox" name="environmentsComboBox"/>
         </item>
         <item>
-         <widget class="E5ToolButton" name="condaMenuButton"/>
+         <widget class="EricToolButton" name="condaMenuButton"/>
         </item>
        </layout>
       </item>
@@ -431,9 +431,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5ToolButton</class>
+   <class>EricToolButton</class>
    <extends>QToolButton</extends>
-   <header>E5Gui/E5ToolButton.h</header>
+   <header>E5Gui/EricToolButton.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/Cooperation/ChatWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Cooperation/ChatWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -11,8 +11,8 @@
 from PyQt6.QtGui import QColor
 from PyQt6.QtWidgets import QWidget, QListWidgetItem, QMenu, QApplication
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox, EricFileDialog
 
 from Globals import recentNameHosts
 
@@ -348,7 +348,7 @@
         self.sharingGroup.setEnabled(connected)
         
         if connected:
-            vm = e5App().getObject("ViewManager")
+            vm = ericApp().getObject("ViewManager")
             aw = vm.activeWindow()
             if aw:
                 self.checkEditorActions(aw)
@@ -404,7 +404,7 @@
         from QScintilla.Editor import Editor
         if (message.startswith(Editor.StartEditToken + Editor.Separator) or
                 message.startswith(Editor.EndEditToken + Editor.Separator)):
-            vm = e5App().getObject("ViewManager")
+            vm = ericApp().getObject("ViewManager")
             aw = vm.activeWindow()
             if aw:
                 self.checkEditorActions(aw)
@@ -550,13 +550,13 @@
         """
         txt = self.chatEdit.toPlainText()
         if txt:
-            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
                 self,
                 self.tr("Save Chat"),
                 "",
                 self.tr("Text Files (*.txt);;All Files (*)"),
                 None,
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
             if fname:
                 ext = QFileInfo(fname).suffix()
                 if not ext:
@@ -564,12 +564,12 @@
                     if ex:
                         fname += ex
                 if QFileInfo(fname).exists():
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         self,
                         self.tr("Save Chat"),
                         self.tr("<p>The file <b>{0}</b> already exists."
                                 " Overwrite it?</p>").format(fname),
-                        icon=E5MessageBox.Warning)
+                        icon=EricMessageBox.Warning)
                     if not res:
                         return
                     fname = Utilities.toNativeSeparators(fname)
@@ -578,7 +578,7 @@
                     with open(fname, "w", encoding="utf-8") as f:
                         f.write(txt)
                 except OSError as err:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Error saving Chat"),
                         self.tr("""<p>The chat contents could not be"""
--- a/eric7/Cooperation/ChatWidget.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Cooperation/ChatWidget.ui	Sat May 22 18:51:46 2021 +0200
@@ -257,7 +257,7 @@
          </widget>
         </item>
         <item>
-         <widget class="E5Led" name="connectionLed" native="true">
+         <widget class="EricLed" name="connectionLed" native="true">
           <property name="toolTip">
            <string>Shows the connection status</string>
           </property>
@@ -317,7 +317,7 @@
        </widget>
       </item>
       <item>
-       <widget class="E5Led" name="serverLed" native="true">
+       <widget class="EricLed" name="serverLed" native="true">
         <property name="toolTip">
          <string>Shows the status of the server</string>
         </property>
@@ -330,9 +330,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5Led</class>
+   <class>EricLed</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5Led.h</header>
+   <header>E5Gui/EricLed.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Cooperation/Connection.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Cooperation/Connection.py	Sat May 22 18:51:46 2021 +0200
@@ -10,8 +10,8 @@
 from PyQt6.QtCore import pyqtSignal, QTimer, QTime, QByteArray
 from PyQt6.QtNetwork import QTcpSocket, QHostInfo
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 
@@ -214,7 +214,7 @@
                     not Preferences.getCooperation("AutoAcceptConnections")):
                 # don't ask for reverse connections or
                 # if we shall accept automatically
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     None,
                     self.tr("New Connection"),
                     self.tr("""<p>Accept connection from """
@@ -228,7 +228,7 @@
             if self.__client is not None:
                 chatWidget = self.__client.chatWidget()
                 if chatWidget is not None and not chatWidget.isVisible():
-                    e5App().getObject(
+                    ericApp().getObject(
                         "UserInterface").activateCooperationViewer()
             
             if not self.__isGreetingMessageSent:
--- a/eric7/DataViews/PyCoverageDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/DataViews/PyCoverageDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -16,9 +16,9 @@
     QApplication
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
-from E5Gui.E5ProgressDialog import E5ProgressDialog
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricProgressDialog import EricProgressDialog
 
 from .Ui_PyCoverageDialog import Ui_PyCoverageDialog
 
@@ -239,7 +239,7 @@
             self.summaryGroup.hide()
         
         if total_exceptions:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Parse Error"),
                 self.tr("""%n file(s) could not be parsed. Coverage"""
@@ -308,7 +308,7 @@
             itm = self.resultList.currentItem()
         fn = itm.text(0)
         
-        vm = e5App().getObject("ViewManager")
+        vm = ericApp().getObject("ViewManager")
         vm.openSourceFile(fn)
         editor = vm.getOpenEditor(fn)
         editor.codeCoverageShowAnnotations()
@@ -350,7 +350,7 @@
         cover.load()
         
         # now process them
-        progress = E5ProgressDialog(
+        progress = EricProgressDialog(
             self.tr("Annotating files..."), self.tr("Abort"),
             0, len(files), self.tr("%v/%m Files"), self)
         progress.setMinimumDuration(0)
--- a/eric7/DataViews/PyProfileDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/DataViews/PyProfileDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -16,7 +16,7 @@
     QApplication
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_PyProfileDialog import Ui_PyProfileDialog
 import Utilities
@@ -239,7 +239,7 @@
         
         fname = "{0}.profile".format(self.basename)
         if not os.path.exists(fname):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Profile Results"),
                 self.tr("""<p>There is no profiling data"""
@@ -251,7 +251,7 @@
             with open(fname, 'rb') as f:
                 self.stats = pickle.load(f)     # secok
         except (OSError, pickle.PickleError, EOFError):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Loading Profiling Data"),
                 self.tr("""<p>The profiling data could not be"""
--- a/eric7/Debugger/BreakPointViewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/BreakPointViewer.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
     QTreeView, QAbstractItemView, QHeaderView, QMenu, QDialog
 )
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from Globals import recentNameBreakpointFiles, recentNameBreakpointConditions
 
@@ -490,7 +490,7 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences(
+        ericApp().getObject("UserInterface").showPreferences(
             "debuggerGeneralPage")
     
     def __loadRecent(self):
--- a/eric7/Debugger/CallStackViewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/CallStackViewer.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
     QTreeWidget, QTreeWidgetItem, QMenu, QWidget, QVBoxLayout, QLabel
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5FileDialog, E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricFileDialog, EricMessageBox
 
 import Utilities
 
@@ -101,7 +101,7 @@
         """
         self.__projectMode = enabled
         if enabled and self.__project is None:
-            self.__project = e5App().getObject("Project")
+            self.__project = ericApp().getObject("Project")
     
     def __showContextMenu(self, coord):
         """
@@ -188,13 +188,13 @@
         Private slot to save the stack trace info to a file.
         """
         if self.__callStackList.topLevelItemCount() > 0:
-            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
                 self,
                 self.tr("Save Call Stack Info"),
                 "",
                 self.tr("Text Files (*.txt);;All Files (*)"),
                 None,
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
             if fname:
                 ext = QFileInfo(fname).suffix()
                 if not ext:
@@ -202,12 +202,12 @@
                     if ex:
                         fname += ex
                 if QFileInfo(fname).exists():
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         self,
                         self.tr("Save Call Stack Info"),
                         self.tr("<p>The file <b>{0}</b> already exists."
                                 " Overwrite it?</p>").format(fname),
-                        icon=E5MessageBox.Warning)
+                        icon=EricMessageBox.Warning)
                     if not res:
                         return
                     fname = Utilities.toNativeSeparators(fname)
@@ -224,7 +224,7 @@
                             f.write("{0}\n".format(78 * "="))
                             itm = self.__callStackList.itemBelow(itm)
                 except OSError as err:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Error saving Call Stack Info"),
                         self.tr("""<p>The call stack info could not be"""
--- a/eric7/Debugger/CallTraceViewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/CallTraceViewer.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QFileInfo
 from PyQt6.QtWidgets import QWidget, QTreeWidgetItem
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5FileDialog, E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricFileDialog, EricMessageBox
 
 from .Ui_CallTraceViewer import Ui_CallTraceViewer
 
@@ -152,13 +152,13 @@
         Private slot to save the call trace info to a file.
         """
         if self.callTrace.topLevelItemCount() > 0:
-            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
                 self,
                 self.tr("Save Call Trace Info"),
                 "",
                 self.tr("Text Files (*.txt);;All Files (*)"),
                 None,
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
             if fname:
                 ext = QFileInfo(fname).suffix()
                 if not ext:
@@ -166,12 +166,12 @@
                     if ex:
                         fname += ex
                 if QFileInfo(fname).exists():
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         self,
                         self.tr("Save Call Trace Info"),
                         self.tr("<p>The file <b>{0}</b> already exists."
                                 " Overwrite it?</p>").format(fname),
-                        icon=E5MessageBox.Warning)
+                        icon=EricMessageBox.Warning)
                     if not res:
                         return
                     fname = Utilities.toNativeSeparators(fname)
@@ -191,7 +191,7 @@
                                 itm.text(1), itm.text(2)))
                             itm = self.callTrace.itemBelow(itm)
                 except OSError as err:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Error saving Call Trace Info"),
                         self.tr("""<p>The call trace info could not"""
@@ -242,7 +242,7 @@
         """
         self.__projectMode = enabled
         if enabled and self.__project is None:
-            self.__project = e5App().getObject("Project")
+            self.__project = ericApp().getObject("Project")
     
     def __addCallTraceInfo(self, isCall, fromFile, fromLine, fromFunction,
                            toFile, toLine, toFunction, debuggerId):
--- a/eric7/Debugger/DebugServer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/DebugServer.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
     QTcpServer, QHostAddress, QHostInfo, QNetworkInterface
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from .BreakPointModel import BreakPointModel
 from .WatchPointModel import WatchPointModel
@@ -353,7 +353,7 @@
         @type bool
         """
         if interfaceName in self.__debuggerInterfaces and not reregister:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Register Debugger Interface"),
                 self.tr("""<p>The debugger interface <b>{0}</b> has already"""
@@ -534,7 +534,7 @@
             self.__forProject = forProject
             self.__createDebuggerInterface()
             if forProject:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if not project.isDebugPropertiesLoaded():
                     self.clientProcess, isNetworked, clientInterpreter = (
                         self.debuggerInterface.startRemote(
@@ -875,14 +875,14 @@
         peerAddress = sock.peerAddress().toString()
         if peerAddress not in Preferences.getDebugger("AllowedHosts"):
             # the peer is not allowed to connect
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Connection from illegal host"),
                 self.tr(
                     """<p>A connection was attempted by the illegal host"""
                     """ <b>{0}</b>. Accept this connection?</p>""")
                 .format(peerAddress),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 sock.abort()
                 return
@@ -993,7 +993,7 @@
         
         if clientType not in self.getSupportedLanguages():
             # a not supported client language was requested
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Start Debugger"),
                 self.tr(
@@ -1061,7 +1061,7 @@
         self.__autoClearShell = autoClearShell
         
         if clientType not in self.getSupportedLanguages():
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Start Debugger"),
                 self.tr(
@@ -1127,7 +1127,7 @@
         
         if clientType not in self.getSupportedLanguages():
             # a not supported client language was requested
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Start Debugger"),
                 self.tr(
@@ -1192,7 +1192,7 @@
         
         if clientType not in self.getSupportedLanguages():
             # a not supported client language was requested
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Start Debugger"),
                 self.tr(
@@ -1560,7 +1560,7 @@
         """
         if clientType and clientType not in self.getSupportedLanguages():
             # a not supported client language was requested
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Start Debugger"),
                 self.tr(
@@ -1624,7 +1624,7 @@
         """
         if clientType and clientType not in self.getSupportedLanguages():
             # a not supported client language was requested
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Start Debugger"),
                 self.tr(
--- a/eric7/Debugger/DebugUI.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/DebugUI.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
 from PyQt6.QtGui import QKeySequence
 from PyQt6.QtWidgets import QMenu, QToolBar, QApplication, QDialog
 
-from E5Gui.E5Action import E5Action, createActionGroup
-from E5Gui import E5MessageBox
+from E5Gui.EricAction import EricAction, createActionGroup
+from E5Gui import EricMessageBox
 
 from UI.Info import Program
 from UI.NotificationWidget import NotificationTypes
@@ -205,7 +205,7 @@
         """
         self.actions = []
         
-        self.runAct = E5Action(
+        self.runAct = EricAction(
             self.tr('Run Script'),
             UI.PixmapCache.getIcon("runScript"),
             self.tr('&Run Script...'),
@@ -220,7 +220,7 @@
         self.runAct.triggered.connect(self.__runScript)
         self.actions.append(self.runAct)
 
-        self.runProjectAct = E5Action(
+        self.runProjectAct = EricAction(
             self.tr('Run Project'),
             UI.PixmapCache.getIcon("runProject"),
             self.tr('Run &Project...'),
@@ -237,7 +237,7 @@
         self.runProjectAct.triggered.connect(self.__runProject)
         self.actions.append(self.runProjectAct)
 
-        self.coverageAct = E5Action(
+        self.coverageAct = EricAction(
             self.tr('Coverage run of Script'),
             UI.PixmapCache.getIcon("coverageScript"),
             self.tr('Coverage run of Script...'), 0, 0, self,
@@ -253,7 +253,7 @@
         self.coverageAct.triggered.connect(self.__coverageScript)
         self.actions.append(self.coverageAct)
 
-        self.coverageProjectAct = E5Action(
+        self.coverageProjectAct = EricAction(
             self.tr('Coverage run of Project'),
             UI.PixmapCache.getIcon("coverageProject"),
             self.tr('Coverage run of Project...'), 0, 0, self,
@@ -270,7 +270,7 @@
         self.coverageProjectAct.triggered.connect(self.__coverageProject)
         self.actions.append(self.coverageProjectAct)
 
-        self.profileAct = E5Action(
+        self.profileAct = EricAction(
             self.tr('Profile Script'),
             UI.PixmapCache.getIcon("profileScript"),
             self.tr('Profile Script...'), 0, 0, self, 'dbg_profile_script')
@@ -283,7 +283,7 @@
         self.profileAct.triggered.connect(self.__profileScript)
         self.actions.append(self.profileAct)
 
-        self.profileProjectAct = E5Action(
+        self.profileProjectAct = EricAction(
             self.tr('Profile Project'),
             UI.PixmapCache.getIcon("profileProject"),
             self.tr('Profile Project...'), 0, 0, self,
@@ -299,7 +299,7 @@
         self.profileProjectAct.triggered.connect(self.__profileProject)
         self.actions.append(self.profileProjectAct)
 
-        self.debugAct = E5Action(
+        self.debugAct = EricAction(
             self.tr('Debug Script'),
             UI.PixmapCache.getIcon("debugScript"),
             self.tr('&Debug Script...'), Qt.Key.Key_F5, 0, self,
@@ -315,7 +315,7 @@
         self.debugAct.triggered.connect(self.__debugScript)
         self.actions.append(self.debugAct)
 
-        self.debugProjectAct = E5Action(
+        self.debugProjectAct = EricAction(
             self.tr('Debug Project'),
             UI.PixmapCache.getIcon("debugProject"),
             self.tr('Debug &Project...'),
@@ -333,7 +333,7 @@
         self.debugProjectAct.triggered.connect(self.__debugProject)
         self.actions.append(self.debugProjectAct)
 
-        self.restartAct = E5Action(
+        self.restartAct = EricAction(
             self.tr('Restart'),
             UI.PixmapCache.getIcon("debugRestart"),
             self.tr('Restart'), Qt.Key.Key_F4, 0, self, 'dbg_restart_script')
@@ -349,7 +349,7 @@
         self.restartAct.triggered.connect(self.__doRestart)
         self.actions.append(self.restartAct)
 
-        self.stopAct = E5Action(
+        self.stopAct = EricAction(
             self.tr('Stop'),
             UI.PixmapCache.getIcon("stopScript"),
             self.tr('Stop'),
@@ -366,7 +366,7 @@
 
         self.debugActGrp = createActionGroup(self)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Continue'),
             UI.PixmapCache.getIcon("continue"),
             self.tr('&Continue'), Qt.Key.Key_F6, 0,
@@ -382,7 +382,7 @@
         act.triggered.connect(self.__continue)
         self.actions.append(act)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Continue to Cursor'),
             UI.PixmapCache.getIcon("continueToCursor"),
             self.tr('Continue &To Cursor'),
@@ -399,7 +399,7 @@
         act.triggered.connect(self.__runToCursor)
         self.actions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             self.tr('Continue Until'),
             UI.PixmapCache.getIcon("continueUntil"),
             self.tr('Continue &Until'),
@@ -418,7 +418,7 @@
         act.triggered.connect(self.__runUntil)
         self.actions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             self.tr('Move Instruction Pointer to Cursor'),
             UI.PixmapCache.getIcon("moveInstructionPointer"),
             self.tr('&Jump To Cursor'), Qt.Key.Key_F12, 0,
@@ -438,7 +438,7 @@
         act.triggered.connect(self.__moveInstructionPointer)
         self.actions.append(act)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Single Step'),
             UI.PixmapCache.getIcon("step"),
             self.tr('Sin&gle Step'), Qt.Key.Key_F7, 0,
@@ -454,7 +454,7 @@
         act.triggered.connect(self.__step)
         self.actions.append(act)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Step Over'),
             UI.PixmapCache.getIcon("stepOver"),
             self.tr('Step &Over'), Qt.Key.Key_F8, 0,
@@ -473,7 +473,7 @@
         act.triggered.connect(self.__stepOver)
         self.actions.append(act)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Step Out'),
             UI.PixmapCache.getIcon("stepOut"),
             self.tr('Step Ou&t'), Qt.Key.Key_F9, 0,
@@ -492,7 +492,7 @@
         act.triggered.connect(self.__stepOut)
         self.actions.append(act)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Stop'),
             UI.PixmapCache.getIcon("stepQuit"),
             self.tr('&Stop'), Qt.Key.Key_F10, 0,
@@ -505,7 +505,7 @@
         act.triggered.connect(self.__stepQuit)
         self.actions.append(act)
         
-        self.dbgFilterAct = E5Action(
+        self.dbgFilterAct = EricAction(
             self.tr('Variables Type Filter'),
             self.tr('Varia&bles Type Filter...'), 0, 0, self,
             'dbg_variables_filter')
@@ -521,7 +521,7 @@
             self.__configureVariablesFilters)
         self.actions.append(self.dbgFilterAct)
 
-        self.excFilterAct = E5Action(
+        self.excFilterAct = EricAction(
             self.tr('Exceptions Filter'),
             self.tr('&Exceptions Filter...'), 0, 0, self,
             'dbg_exceptions_filter')
@@ -538,7 +538,7 @@
             self.__configureExceptionsFilter)
         self.actions.append(self.excFilterAct)
         
-        self.excIgnoreFilterAct = E5Action(
+        self.excIgnoreFilterAct = EricAction(
             self.tr('Ignored Exceptions'),
             self.tr('&Ignored Exceptions...'), 0, 0,
             self, 'dbg_ignored_exceptions')
@@ -557,7 +557,7 @@
 
         self.dbgSetBpActGrp = createActionGroup(self)
 
-        self.dbgToggleBpAct = E5Action(
+        self.dbgToggleBpAct = EricAction(
             self.tr('Toggle Breakpoint'),
             UI.PixmapCache.getIcon("breakpointToggle"),
             self.tr('Toggle Breakpoint'),
@@ -572,7 +572,7 @@
         self.dbgToggleBpAct.triggered.connect(self.__toggleBreakpoint)
         self.actions.append(self.dbgToggleBpAct)
         
-        self.dbgEditBpAct = E5Action(
+        self.dbgEditBpAct = EricAction(
             self.tr('Edit Breakpoint'),
             UI.PixmapCache.getIcon("cBreakpointToggle"),
             self.tr('Edit Breakpoint...'),
@@ -587,7 +587,7 @@
         self.dbgEditBpAct.triggered.connect(self.__editBreakpoint)
         self.actions.append(self.dbgEditBpAct)
 
-        self.dbgNextBpAct = E5Action(
+        self.dbgNextBpAct = EricAction(
             self.tr('Next Breakpoint'),
             UI.PixmapCache.getIcon("breakpointNext"),
             self.tr('Next Breakpoint'),
@@ -602,7 +602,7 @@
         self.dbgNextBpAct.triggered.connect(self.__nextBreakpoint)
         self.actions.append(self.dbgNextBpAct)
 
-        self.dbgPrevBpAct = E5Action(
+        self.dbgPrevBpAct = EricAction(
             self.tr('Previous Breakpoint'),
             UI.PixmapCache.getIcon("breakpointPrevious"),
             self.tr('Previous Breakpoint'),
@@ -617,7 +617,7 @@
         self.dbgPrevBpAct.triggered.connect(self.__previousBreakpoint)
         self.actions.append(self.dbgPrevBpAct)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Clear Breakpoints'),
             self.tr('Clear Breakpoints'),
             0, 0,
@@ -690,7 +690,7 @@
         Public slot to initialize the debug toolbars.
         
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         @return the generated toolbars (list of QToolBar)
         """
         starttb = QToolBar(self.tr("Start"), self.ui)
@@ -1181,7 +1181,7 @@
         self.ui.activateWindow()
         
         if message is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui, Program,
                 self.tr(
                     'The program being debugged contains an unspecified'
@@ -1200,7 +1200,7 @@
                     if os.path.exists(os.path.join(d, filename)):
                         filename = os.path.join(d, filename)
         self.viewmanager.setFileLine(filename, lineNo, True, True)
-        E5MessageBox.critical(
+        EricMessageBox.critical(
             self.ui, Program,
             self.tr('<p>The file <b>{0}</b> contains the syntax error'
                     ' <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.'
@@ -1224,7 +1224,7 @@
         self.ui.raise_()
         QApplication.processEvents()
         if not exceptionType:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui, Program,
                 self.tr('An unhandled exception occured.'
                         ' See the shell window for details.'))
@@ -1251,23 +1251,23 @@
                             lineFlags += Utilities.extractLineFlags(
                                 source[line].strip(), flagsLine=True)
                         if "__IGNORE_EXCEPTION__" in lineFlags:
-                            res = E5MessageBox.No
-                if res != E5MessageBox.No:
+                            res = EricMessageBox.No
+                if res != EricMessageBox.No:
                     self.viewmanager.setFileLine(
                         stackTrace[0][0], stackTrace[0][1], True)
-            if res != E5MessageBox.No:
+            if res != EricMessageBox.No:
                 self.ui.activateWindow()
                 if Preferences.getDebugger("BreakAlways"):
-                    res = E5MessageBox.Yes
+                    res = EricMessageBox.Yes
                 else:
                     if stackTrace:
                         if exceptionType.startswith('unhandled'):
-                            buttons = E5MessageBox.No | E5MessageBox.Yes
+                            buttons = EricMessageBox.No | EricMessageBox.Yes
                         else:
-                            buttons = (E5MessageBox.No |
-                                       E5MessageBox.Yes |
-                                       E5MessageBox.Ignore)
-                        res = E5MessageBox.critical(
+                            buttons = (EricMessageBox.No |
+                                       EricMessageBox.Yes |
+                                       EricMessageBox.Ignore)
+                        res = EricMessageBox.critical(
                             self.ui, Program,
                             self.tr(
                                 '<p>The debugged program raised the exception'
@@ -1280,9 +1280,9 @@
                                 stackTrace[0][0],
                                 stackTrace[0][1]),
                             buttons,
-                            E5MessageBox.No)
+                            EricMessageBox.No)
                     else:
-                        res = E5MessageBox.critical(
+                        res = EricMessageBox.critical(
                             self.ui, Program,
                             self.tr(
                                 '<p>The debugged program raised the exception'
@@ -1290,7 +1290,7 @@
                             .format(
                                 exceptionType,
                                 Utilities.html_encode(exceptionMessage)))
-            if res == E5MessageBox.Yes:
+            if res == EricMessageBox.Yes:
                 self.debugServer.setDebugging(True)
                 self.exceptionInterrupt.emit()
                 stack = []
@@ -1303,7 +1303,7 @@
                 self.debugActGrp.setEnabled(True)
                 return
             elif (
-                res == E5MessageBox.Ignore and
+                res == EricMessageBox.Ignore and
                 exceptionType not in self.excIgnoreList
             ):
                 self.excIgnoreList.append(exceptionType)
@@ -1338,7 +1338,7 @@
         self.ui.activateWindow()
         QApplication.processEvents()
         self.viewmanager.setFileLine(filename, lineNo, True)
-        E5MessageBox.critical(
+        EricMessageBox.critical(
             self.ui, Program,
             self.tr("""<p>The program generate the signal "{0}".<br/>"""
                     """File: <b>{1}</b>, Line: <b>{2}</b></p>""").format(
@@ -1352,7 +1352,7 @@
         """
         self.__resetUI()
         if unplanned:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self.ui, Program,
                 self.tr('The program being debugged has terminated'
                         ' unexpectedly.'))
@@ -1459,7 +1459,7 @@
         @param debuggerId ID of the debugger backend
         @type str
         """
-        E5MessageBox.critical(
+        EricMessageBox.critical(
             self.ui,
             self.tr("Breakpoint Condition Error"),
             self.tr(
@@ -1498,7 +1498,7 @@
         @param debuggerId ID of the debugger backend
         @type str
         """
-        E5MessageBox.critical(
+        EricMessageBox.critical(
             self.ui,
             self.tr("Watch Expression Error"),
             self.tr("""<p>The watch expression <b>{0}</b>"""
@@ -1538,7 +1538,7 @@
                         """ for the variable <b>{1}</b> already"""
                         """ exists.</p>"""
                     ).format(special, Utilities.html_encode(cond))
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self.ui,
                     self.tr("Watch expression already exists"),
                     msg)
@@ -1707,7 +1707,7 @@
             if runProject:
                 fn = self.project.getMainScript(True)
                 if fn is None:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Coverage of Project"),
                         self.tr(
@@ -1852,7 +1852,7 @@
             if runProject:
                 fn = self.project.getMainScript(True)
                 if fn is None:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Profile of Project"),
                         self.tr(
@@ -1996,7 +1996,7 @@
             if runProject:
                 fn = self.project.getMainScript(True)
                 if fn is None:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Run Project"),
                         self.tr(
@@ -2142,7 +2142,7 @@
             if debugProject:
                 fn = self.project.getMainScript(True)
                 if fn is None:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Debug Project"),
                         self.tr(
@@ -2554,7 +2554,7 @@
         """
         Public method to get a list of all actions.
         
-        @return list of all actions (list of E5Action)
+        @return list of all actions (list of EricAction)
         """
         return self.actions[:]
     
--- a/eric7/Debugger/DebugViewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/DebugViewer.py	Sat May 22 18:51:46 2021 +0200
@@ -32,7 +32,7 @@
 import UI.PixmapCache
 import Preferences
 
-from E5Gui.E5TabWidget import E5TabWidget
+from E5Gui.EricTabWidget import EricTabWidget
 
 
 class DebugViewer(QWidget):
@@ -116,7 +116,7 @@
             self.__debuggerSelected)
         
         # add the tab widget containing various debug related views
-        self.__tabWidget = E5TabWidget()
+        self.__tabWidget = EricTabWidget()
         self.__mainSplitter.addWidget(self.__tabWidget)
         
         from .VariablesViewer import VariablesViewer
--- a/eric7/Debugger/DebuggerInterfacePython.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/DebuggerInterfacePython.py	Sat May 22 18:51:46 2021 +0200
@@ -17,8 +17,8 @@
     QObject, QProcess, QProcessEnvironment, QTimer
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from . import DebugClientCapabilities
 
@@ -180,14 +180,14 @@
         
         if not venvName:
             venvName = Preferences.getDebugger("Python3VirtualEnv")
-        venvManager = e5App().getObject("VirtualEnvManager")
+        venvManager = ericApp().getObject("VirtualEnvManager")
         interpreter = venvManager.getVirtualenvInterpreter(venvName)
         execPath = venvManager.getVirtualenvExecPath(venvName)
         if interpreter == "":
             # use the interpreter used to run eric for identical variants
             interpreter = sys.executable.replace("w.exe", ".exe")
         if interpreter == "":
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Start Debugger"),
                 self.tr(
@@ -247,7 +247,7 @@
                 process = self.__startProcess(args[0], args[1:],
                                               workingDir=workingDir)
                 if process is None:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         None,
                         self.tr("Start Debugger"),
                         self.tr(
@@ -305,7 +305,7 @@
                 process = self.__startProcess(args[0], args[1:], clientEnv,
                                               workingDir=workingDir)
                 if process is None:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         None,
                         self.tr("Start Debugger"),
                         self.tr(
@@ -323,7 +323,7 @@
                                       workingDir=workingDir)
         if process is None:
             self.__startedVenv = ""
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Start Debugger"),
                 self.tr(
@@ -359,7 +359,7 @@
         """
         global origPathEnv
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         if not project.isDebugPropertiesLoaded():
             return None, self.__isNetworked, ""
         
@@ -383,7 +383,7 @@
             else ''
         )
         
-        venvManager = e5App().getObject("VirtualEnvManager")
+        venvManager = ericApp().getObject("VirtualEnvManager")
         interpreter = venvManager.getVirtualenvInterpreter(venvName)
         execPath = venvManager.getVirtualenvExecPath(venvName)
         if (
@@ -392,7 +392,7 @@
         ):
             interpreter = sys.executable.replace("w.exe", ".exe")
         if interpreter == "":
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Start Debugger"),
                 self.tr(
@@ -428,7 +428,7 @@
                 process = self.__startProcess(args[0], args[1:],
                                               workingDir=workingDir)
                 if process is None:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         None,
                         self.tr("Start Debugger"),
                         self.tr(
@@ -488,7 +488,7 @@
                 process = self.__startProcess(args[0], args[1:], clientEnv,
                                               workingDir=workingDir)
                 if process is None:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         None,
                         self.tr("Start Debugger"),
                         self.tr(
@@ -506,7 +506,7 @@
                                       workingDir=workingDir)
         if process is None:
             self.__startedVenv = ""
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Start Debugger"),
                 self.tr(
@@ -1344,7 +1344,7 @@
         try:
             commandDict = json.loads(jsonStr.strip())
         except (TypeError, ValueError) as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Debug Protocol Error"),
                 self.tr("""<p>The response received from the debugger"""
@@ -1354,7 +1354,7 @@
                         """<p>Error: {0}</p>"""
                         """<p>Data:<br/>{1}</p>""").format(
                     str(err), Utilities.html_encode(jsonStr.strip())),
-                E5MessageBox.Ok)
+                EricMessageBox.Ok)
             return
         
         method = commandDict["method"]
--- a/eric7/Debugger/EditBreakpointDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/EditBreakpointDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QComboBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_EditBreakpointDialog import Ui_EditBreakpointDialog
 
@@ -43,7 +43,7 @@
             self.setObjectName(name)
         self.setModal(modal)
         
-        self.filenamePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.filenamePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.filenamePicker.setSizeAdjustPolicy(
             QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon)
         
--- a/eric7/Debugger/EditBreakpointDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/EditBreakpointDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -25,7 +25,7 @@
     </widget>
    </item>
    <item row="0" column="1" colspan="2">
-    <widget class="E5ComboPathPicker" name="filenamePicker" native="true">
+    <widget class="EricComboPathPicker" name="filenamePicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -173,9 +173,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5ComboPathPicker</class>
+   <class>EricComboPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Debugger/ExceptionLogger.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/ExceptionLogger.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSignal, Qt
 from PyQt6.QtWidgets import QTreeWidget, QTreeWidgetItem, QMenu
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 
 class ExceptionLogger(QTreeWidget):
@@ -150,5 +150,5 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences(
+        ericApp().getObject("UserInterface").showPreferences(
             "debuggerGeneralPage")
--- a/eric7/Debugger/StartCoverageDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/StartCoverageDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -99,7 +99,7 @@
       </widget>
      </item>
      <item row="2" column="1">
-      <widget class="E5ComboPathPicker" name="workdirPicker" native="true">
+      <widget class="EricComboPathPicker" name="workdirPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -271,9 +271,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5ComboPathPicker</class>
+   <class>EricComboPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Debugger/StartDebugDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/StartDebugDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -96,7 +96,7 @@
       </widget>
      </item>
      <item row="2" column="1">
-      <widget class="E5ComboPathPicker" name="workdirPicker" native="true">
+      <widget class="EricComboPathPicker" name="workdirPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -336,9 +336,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5ComboPathPicker</class>
+   <class>EricComboPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Debugger/StartDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/StartDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,8 +11,8 @@
 
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QComboBox, QInputDialog
 
-from E5Gui.E5PathPicker import E5PathPickerModes
-from E5Gui.E5Application import e5App
+from E5Gui.EricPathPicker import EricPathPickerModes
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 
@@ -99,10 +99,10 @@
         
         self.ui.venvComboBox.addItem("")
         self.ui.venvComboBox.addItems(
-            sorted(e5App().getObject("VirtualEnvManager")
+            sorted(ericApp().getObject("VirtualEnvManager")
                    .getVirtualenvNames()))
         
-        self.ui.workdirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.ui.workdirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.ui.workdirPicker.setDefaultDirectory(
             Preferences.getMultiProject("Workspace"))
         self.ui.workdirPicker.setInsertPolicy(
--- a/eric7/Debugger/StartHistoryEditDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/StartHistoryEditDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot, Qt
 from PyQt6.QtWidgets import QDialog, QInputDialog, QLineEdit
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_StartHistoryEditDialog import Ui_StartHistoryEditDialog
 
@@ -75,7 +75,7 @@
         """
         Private slot to delete the selected entries.
         """
-        yes = E5MessageBox.yesNo(
+        yes = EricMessageBox.yesNo(
             self,
             self.tr("Delete Selected Entries"),
             self.tr("""Do you really want to delete the selected"""
@@ -91,7 +91,7 @@
         """
         Private slot to delete all entries.
         """
-        yes = E5MessageBox.yesNo(
+        yes = EricMessageBox.yesNo(
             self,
             self.tr("Delete All Entries"),
             self.tr("""Do you really want to delete the shown history?"""))
--- a/eric7/Debugger/StartProfileDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/StartProfileDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -96,7 +96,7 @@
       </widget>
      </item>
      <item row="2" column="1">
-      <widget class="E5ComboPathPicker" name="workdirPicker" native="true">
+      <widget class="EricComboPathPicker" name="workdirPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -268,9 +268,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5ComboPathPicker</class>
+   <class>EricComboPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Debugger/StartRunDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/StartRunDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -96,7 +96,7 @@
       </widget>
      </item>
      <item row="2" column="1">
-      <widget class="E5ComboPathPicker" name="workdirPicker" native="true">
+      <widget class="EricComboPathPicker" name="workdirPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -251,9 +251,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5ComboPathPicker</class>
+   <class>EricComboPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Debugger/VariablesViewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/VariablesViewer.py	Sat May 22 18:51:46 2021 +0200
@@ -18,7 +18,7 @@
 from PyQt6.QtGui import QBrush, QFontMetrics
 from PyQt6.QtWidgets import QTreeView, QAbstractItemView, QToolTip, QMenu
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from .Config import ConfigVarTypeDispStrings
 from DebugClients.Python.DebugConfig import ConfigQtNames, ConfigKnownQtTypes
@@ -778,10 +778,10 @@
         # step 3: get a pathlist up to the requested variable
         pathlist = self.__buildTreePath(node)
         # step 4: request the variable from the debugger
-        variablesFilter = e5App().getObject("DebugUI").variablesFilter(
+        variablesFilter = ericApp().getObject("DebugUI").variablesFilter(
             self.__globalScope)
-        e5App().getObject("DebugServer").remoteClientVariable(
-            e5App().getObject("DebugUI").getSelectedDebuggerId(),
+        ericApp().getObject("DebugServer").remoteClientVariable(
+            ericApp().getObject("DebugUI").getSelectedDebuggerId(),
             self.__globalScope, variablesFilter, pathlist, self.framenr)
     
     def setExpanded(self, index, state):
@@ -1194,14 +1194,14 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences(
+        ericApp().getObject("UserInterface").showPreferences(
             "debuggerGeneralPage")
     
     def __configureFilter(self):
         """
         Private method to open the variables filter dialog.
         """
-        e5App().getObject("DebugUI").dbgFilterAct.triggered.emit()
+        ericApp().getObject("DebugUI").dbgFilterAct.triggered.emit()
 
 #
 # eflag: noqa = M822
--- a/eric7/Debugger/WatchPointViewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Debugger/WatchPointViewer.py	Sat May 22 18:51:46 2021 +0200
@@ -14,8 +14,8 @@
     QTreeView, QAbstractItemView, QMenu, QHeaderView, QDialog
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 import Utilities
 
@@ -249,7 +249,7 @@
                     """<p>A watch expression '<b>{0}</b>'"""
                     """ for the variable <b>{1}</b> already exists.</p>"""
                 ).format(special, Utilities.html_encode(cond))
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Watch expression already exists"),
                 msg)
@@ -443,5 +443,5 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences(
+        ericApp().getObject("UserInterface").showPreferences(
             "debuggerGeneralPage")
--- a/eric7/E5Gui/E5Action.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2006 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an Action class extending QAction.
-
-This extension is necessary in order to support alternate keyboard
-shortcuts.
-"""
-
-from PyQt6.QtGui import QIcon, QKeySequence, QAction, QActionGroup
-
-from E5Gui.E5Application import e5App
-
-
-class ArgumentsError(RuntimeError):
-    """
-    Class implementing an exception, which is raised, if the wrong number of
-    arguments are given.
-    """
-    def __init__(self, error):
-        """
-        Constructor
-        
-        @param error error message of the exception (string)
-        """
-        self.errorMessage = str(error)
-        
-    def __repr__(self):
-        """
-        Special method returning a representation of the exception.
-        
-        @return string representing the error message
-        """
-        return str(self.errorMessage)
-        
-    def __str__(self):
-        """
-        Special method returning a string representation of the exception.
-        
-        @return string representing the error message
-        """
-        return str(self.errorMessage)
-
-
-class E5Action(QAction):
-    """
-    Class implementing an Action class extending QAction.
-    """
-    def __init__(self, *args):
-        """
-        Constructor
-        
-        @param args argument list of the constructor. This list is one of
-            <ul>
-            <li>text (string), icon (QIcon), menu text (string),
-                accelarator (QKeySequence), alternative accelerator
-                (QKeySequence), parent (QObject), name (string), toggle
-                (boolean)</li>
-            <li>text (string), icon (QIcon), menu text (string),
-                accelarator (QKeySequence), alternative accelerator
-                (QKeySequence), parent (QObject), name (string)</li>
-            <li>text (string), menu text (string),
-                accelarator (QKeySequence), alternative accelerator
-                (QKeySequence), parent (QObject), name (string), toggle
-                (boolean)</li>
-            <li>text (string), menu text (string),
-                accelarator (QKeySequence), alternative accelerator
-                (QKeySequence), parent (QObject), name (string)</li>
-            </ul>
-        @exception ArgumentsError raised to indicate invalid arguments
-        """
-        if isinstance(args[1], QIcon):
-            icon = args[1]
-            incr = 1
-        else:
-            icon = None
-            incr = 0
-        if len(args) < 6 + incr:
-            raise ArgumentsError(
-                "Not enough arguments, {0:d} expected, got {1:d}".format(
-                    6 + incr, len(args)))
-        elif len(args) > 7 + incr:
-            raise ArgumentsError(
-                "Too many arguments, max. {0:d} expected, got {1:d}".format(
-                    7 + incr, len(args)))
-            
-        parent = args[4 + incr]
-        super().__init__(parent)
-        name = args[5 + incr]
-        if name:
-            self.setObjectName(name)
-        
-        if args[1 + incr]:
-            self.setText(args[1 + incr])
-        
-        if args[0]:
-            self.setIconText(args[0])
-        if args[2 + incr]:
-            self.setShortcut(QKeySequence(args[2 + incr]))
-        
-        if args[3 + incr]:
-            self.setAlternateShortcut(QKeySequence(args[3 + incr]))
-        
-        if icon:
-            self.setIcon(icon)
-        
-        if len(args) == 7 + incr:
-            self.setCheckable(args[6 + incr])
-        
-        self.__ammendToolTip()
-        
-    def setAlternateShortcut(self, shortcut, removeEmpty=False):
-        """
-        Public slot to set the alternative keyboard shortcut.
-        
-        @param shortcut the alternative accelerator (QKeySequence)
-        @param removeEmpty flag indicating to remove the alternate shortcut,
-            if it is empty (boolean)
-        """
-        if not shortcut.isEmpty():
-            shortcuts = self.shortcuts()
-            if len(shortcuts) > 0:
-                if len(shortcuts) == 1:
-                    shortcuts.append(shortcut)
-                else:
-                    shortcuts[1] = shortcut
-                self.setShortcuts(shortcuts)
-        elif removeEmpty:
-            shortcuts = self.shortcuts()
-            if len(shortcuts) == 2:
-                del shortcuts[1]
-                self.setShortcuts(shortcuts)
-        
-    def alternateShortcut(self):
-        """
-        Public method to retrieve the alternative keyboard shortcut.
-        
-        @return the alternative accelerator (QKeySequence)
-        """
-        shortcuts = self.shortcuts()
-        if len(shortcuts) < 2:
-            return QKeySequence()
-        else:
-            return shortcuts[1]
-        
-    def setShortcut(self, shortcut):
-        """
-        Public slot to set the keyboard shortcut.
-        
-        @param shortcut the accelerator (QKeySequence)
-        """
-        super().setShortcut(shortcut)
-        self.__ammendToolTip()
-        
-    def setShortcuts(self, shortcuts):
-        """
-        Public slot to set the list of keyboard shortcuts.
-        
-        @param shortcuts list of keyboard accelerators (list of QKeySequence)
-            or key for a platform dependent list of accelerators
-            (QKeySequence.StandardKey)
-        """
-        super().setShortcuts(shortcuts)
-        self.__ammendToolTip()
-        
-    def setIconText(self, text):
-        """
-        Public slot to set the icon text of the action.
-        
-        @param text new icon text (string)
-        """
-        super().setIconText(text)
-        self.__ammendToolTip()
-        
-    def __ammendToolTip(self):
-        """
-        Private slot to add the primary keyboard accelerator to the tooltip.
-        """
-        shortcut = self.shortcut().toString(
-            QKeySequence.SequenceFormat.NativeText)
-        if shortcut:
-            if e5App().isLeftToRight():
-                fmt = "{0} ({1})"
-            else:
-                fmt = "({1}) {0}"
-            self.setToolTip(fmt.format(self.iconText(), shortcut))
-
-
-def addActions(target, actions):
-    """
-    Module function to add a list of actions to a widget.
-    
-    @param target reference to the target widget (QWidget)
-    @param actions list of actions to be added to the target. A
-        None indicates a separator (list of QActions)
-    """
-    if target is None:
-        return
-    
-    for action in actions:
-        if action is None:
-            target.addSeparator()
-        else:
-            target.addAction(action)
-
-
-def createActionGroup(parent, name=None, exclusive=False):
-    """
-    Module function to create an action group.
-    
-    @param parent parent object of the action group (QObject)
-    @param name name of the action group object (string)
-    @param exclusive flag indicating an exclusive action group (boolean)
-    @return reference to the created action group (QActionGroup)
-    """
-    actGrp = QActionGroup(parent)
-    if name:
-        actGrp.setObjectName(name)
-    actGrp.setExclusive(exclusive)
-    return actGrp
--- a/eric7/E5Gui/E5AnimatedLabel.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2020 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a label widget showing an animated pixmap.
-"""
-
-from PyQt6.QtCore import pyqtSlot, QTimer
-from PyQt6.QtGui import QPixmap
-from PyQt6.QtWidgets import QLabel
-
-import UI.PixmapCache
-
-
-class E5AnimatedLabel(QLabel):
-    """
-    Class implementing a label widget showing an animated pixmap.
-    """
-    def __init__(self, parent=None, *, animationFile="", interval=100):
-        """
-        Constructor
-        
-        @param parent reference to the parent window
-        @type QWidget
-        @keyparam animationFile path to the file containing the animation data
-        @type str
-        @keyparam interval interval in milliseconds between animation frames
-        @type int
-        """
-        super().__init__(parent)
-        
-        self.__timer = QTimer(self)
-        self.__timer.setInterval(interval)
-        self.__timer.timeout.connect(self.__animate)
-        
-        self.__currentFrame = 0
-        self.__frames = 0
-        self.__pixmap = None
-        self.__pixmapHeight = 0
-        self.__animationFile = ""
-        self.__animationFileLoaded = False
-        
-        self.__loadAnimationFile(animationFile)
-    
-    def __loadAnimationFile(self, animationFile):
-        """
-        Private method to load an animation file.
-        
-        @param animationFile path to the file containing the animation data
-        @type str
-        """
-        self.__animationFile = animationFile
-        
-        pixmap = UI.PixmapCache.getPixmap(animationFile)
-        if not pixmap.isNull():
-            self.__pixmap = pixmap
-            self.__pixmapHeight = pixmap.height()
-            self.__frames = pixmap.width() // pixmap.height()
-            # assume quadratic animation frames
-            self.__animationFileLoaded = True
-        else:
-            self.__pixmap = QPixmap()
-            self.__pixmapHeight = 0
-            self.__frames = 0
-            self.__animationFileLoaded = False
-        
-        self.reset()
-    
-    @pyqtSlot()
-    def __animate(self):
-        """
-        Private slot to animate the pixmap.
-        """
-        if self.__animationFileLoaded:
-            self.__currentFrame = (self.__currentFrame + 1) % self.__frames
-            super().setPixmap(self.__pixmap.copy(
-                self.__currentFrame * self.__pixmapHeight,
-                0,
-                self.__pixmapHeight,
-                self.__pixmapHeight
-            ))
-        else:
-            self.clear()
-    
-    @pyqtSlot()
-    def reset(self):
-        """
-        Public slot to reset the animation.
-        """
-        self.__currentFrame = -1
-        self.__animate()
-    
-    @pyqtSlot()
-    def start(self):
-        """
-        Public slot to start the animation.
-        """
-        if self.__animationFileLoaded:
-            self.__timer.start()
-    
-    @pyqtSlot()
-    def stop(self):
-        """
-        Public slot to stop the animation.
-        """
-        self.__timer.stop()
-    
-    def isActive(self):
-        """
-        Public method to check, if the animation is active.
-        
-        @return flag indicating an active animation
-        @rtype bool
-        """
-        return self.__timer.isActive() and self.__animationFileLoaded
-    
-    def setAnimationFile(self, animationFile):
-        """
-        Public method to set the name of the animation file.
-        
-        @param animationFile path to the file containing the animation data
-        @type str
-        """
-        active = self.__timer.isActive()
-        self.__timer.stop()
-        self.__loadAnimationFile(animationFile)
-        if active and self.__animationFileLoaded:
-            self.__timer.start()
-    
-    def getAnimationFile(self):
-        """
-        Public method to get the name of the animation file.
-        
-        @return path to the file containing the animation data
-        @rtype str
-        """
-        return self.__animationFile
-    
-    def isAnimationFileLoaded(self):
-        """
-        Public method to check, if the animation file was loaded.
-        
-        @return flag indicating a successfully loaded animation file
-        @rtype bool
-        """
-        return self.__animationFileLoaded
-    
-    def setInterval(self, interval):
-        """
-        Public method to set the interval between the animated frames.
-        
-        @param interval interval in milliseconds between animation frames
-        @type int
-        """
-        self.__timer.setInterval(interval)
-    
-    def getInterval(self):
-        """
-        Public method to get the interval between the animated frames.
-        
-        @return interval in milliseconds between animation frames
-        @rtype int
-        """
-        return self.__timer.interval()
-    
-    def setPixmap(self, pixmap):
-        """
-        Public slot to set the pixmap of the label.
-        
-        Setting a standard pixmap will stop the animation and set the given
-        pixmap without animating it. Thereafter the animation has to be
-        restarted with the start() method.
-        
-        @param pixmap pixmap to be set
-        @type QPixmap
-        """
-        self.stop()
-        super().setPixmap(pixmap)
--- a/eric7/E5Gui/E5AnimatedWidget.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an animated widget.
-"""
-
-#
-# Code was inspired by qupzilla web browser
-#
-
-from PyQt6.QtCore import pyqtSlot, QTimeLine, QPoint
-from PyQt6.QtWidgets import QWidget
-
-
-class E5AnimatedWidget(QWidget):
-    """
-    Class implementing an animated widget.
-    """
-    DirectionDown = 0
-    DirectionUp = 1
-    
-    def __init__(self, direction=DirectionDown, duration=300, parent=None):
-        """
-        Constructor
-        
-        @param direction direction of the animation
-        @type int (one of DirectionDown or DirectionUp)
-        @param duration duration of the animation
-        @type int
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent)
-        
-        self.__direction = direction
-        self.__stepHeight = 0.0
-        self.__stepY = 0.0
-        self.__startY = 0
-        self.__widget = QWidget(self)
-        
-        self.__timeline = QTimeLine(duration)
-        self.__timeline.setFrameRange(0, 100)
-        self.__timeline.frameChanged.connect(self.__animateFrame)
-        
-        self.setMaximumHeight(0)
-    
-    def widget(self):
-        """
-        Public method to get a reference to the animated widget.
-        
-        @return reference to the animated widget
-        @rtype QWidget
-        """
-        return self.__widget
-    
-    @pyqtSlot()
-    def startAnimation(self):
-        """
-        Public slot to start the animation.
-        """
-        if self.__timeline.state() == QTimeLine.State.Running:
-            return
-        
-        shown = 0
-        hidden = 0
-        
-        if self.__direction == self.DirectionDown:
-            shown = 0
-            hidden = -self.__widget.height()
-        
-        self.__widget.move(QPoint(self.__widget.pos().x(), hidden))
-        
-        self.__stepY = (hidden - shown) / 100.0
-        self.__startY = hidden
-        self.__stepHeight = self.__widget.height() / 100.0
-        
-        self.__timeline.setDirection(QTimeLine.Direction.Forward)
-        self.__timeline.start()
-    
-    @pyqtSlot(int)
-    def __animateFrame(self, frame):
-        """
-        Private slot to animate the next frame.
-        
-        @param frame frame number
-        @type int
-        """
-        self.setFixedHeight(frame * self.__stepHeight)
-        self.__widget.move(self.pos().x(),
-                           self.__startY - frame * self.__stepY)
-    
-    @pyqtSlot()
-    def hide(self):
-        """
-        Public slot to hide the animated widget.
-        """
-        if self.__timeline.state() == QTimeLine.State.Running:
-            return
-        
-        self.__timeline.setDirection(QTimeLine.Direction.Backward)
-        self.__timeline.finished.connect(self.close)
-        self.__timeline.start()
-        
-        p = self.parentWidget()
-        if p is not None:
-            p.setFocus()
-    
-    def resizeEvent(self, evt):
-        """
-        Protected method to handle a resize event.
-        
-        @param evt reference to the event object
-        @type QResizeEvent
-        """
-        if evt.size().width() != self.__widget.width():
-            self.__widget.resize(evt.size().width(), self.__widget.height())
-        
-        super().resizeEvent(evt)
--- a/eric7/E5Gui/E5Application.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Class implementing a specialized application class.
-"""
-
-from PyQt6.QtCore import Qt, QCoreApplication
-from PyQt6.QtGui import QPalette
-from PyQt6.QtWidgets import QApplication
-
-QCoreApplication.setAttribute(
-    Qt.ApplicationAttribute.AA_ShareOpenGLContexts, True)
-
-
-class E5Application(QApplication):
-    """
-    Eric application class with an object registry.
-    """
-    def __init__(self, argv):
-        """
-        Constructor
-        
-        @param argv command line arguments
-        @type list
-        """
-        super().__init__(argv)
-        
-        QCoreApplication.setAttribute(
-            Qt.ApplicationAttribute.AA_DontCreateNativeWidgetSiblings, True)
-        
-        self.__objectRegistry = {}
-        self.__pluginObjectRegistry = {}
-    
-    def registerObject(self, name, objectRef):
-        """
-        Public method to register an object in the object registry.
-        
-        @param name name of the object
-        @type str
-        @param objectRef reference to the object
-        @type any
-        @exception KeyError raised when the given name is already in use
-        """
-        if name in self.__objectRegistry:
-            raise KeyError('Object "{0}" already registered.'.format(name))
-        else:
-            self.__objectRegistry[name] = objectRef
-    
-    def getObject(self, name):
-        """
-        Public method to get a reference to a registered object.
-        
-        @param name name of the object
-        @type str
-        @return reference to the registered object
-        @rtype any
-        @exception KeyError raised when the given name is not known
-        """
-        if name not in self.__objectRegistry:
-            raise KeyError('Object "{0}" is not registered.'.format(name))
-        
-        return self.__objectRegistry[name]
-    
-    def registerPluginObject(self, name, objectRef, pluginType=None):
-        """
-        Public method to register a plugin object in the object registry.
-        
-        @param name name of the plugin object
-        @type str
-        @param objectRef reference to the plugin object
-        @type any
-        @param pluginType type of the plugin object
-        @type str
-        @exception KeyError raised when the given name is already in use
-        """
-        if name in self.__pluginObjectRegistry:
-            raise KeyError(
-                'Pluginobject "{0}" already registered.'.format(name))
-        else:
-            self.__pluginObjectRegistry[name] = (objectRef, pluginType)
-    
-    def unregisterPluginObject(self, name):
-        """
-        Public method to unregister a plugin object in the object registry.
-        
-        @param name name of the plugin object
-        @type str
-        """
-        if name in self.__pluginObjectRegistry:
-            del self.__pluginObjectRegistry[name]
-    
-    def getPluginObject(self, name):
-        """
-        Public method to get a reference to a registered plugin object.
-        
-        @param name name of the plugin object
-        @type str
-        @return reference to the registered plugin object
-        @rtype any
-        @exception KeyError raised when the given name is not known
-        """
-        if name not in self.__pluginObjectRegistry:
-            raise KeyError(
-                'Pluginobject "{0}" is not registered.'.format(name))
-        
-        return self.__pluginObjectRegistry[name][0]
-    
-    def getPluginObjects(self):
-        """
-        Public method to get a list of (name, reference) pairs of all
-        registered plugin objects.
-        
-        @return list of (name, reference) pairs
-        @rtype list of (str, any)
-        """
-        objects = []
-        for name in self.__pluginObjectRegistry:
-            objects.append((name, self.__pluginObjectRegistry[name][0]))
-        return objects
-    
-    def getPluginObjectType(self, name):
-        """
-        Public method to get the type of a registered plugin object.
-        
-        @param name name of the plugin object
-        @type str
-        @return type of the plugin object
-        @rtype str
-        @exception KeyError raised when the given name is not known
-        """
-        if name not in self.__pluginObjectRegistry:
-            raise KeyError(
-                'Pluginobject "{0}" is not registered.'.format(name))
-        
-        return self.__pluginObjectRegistry[name][1]
-    
-    def usesDarkPalette(self):
-        """
-        Public method to check, if the application uses a palette with a dark
-        background.
-        
-        @return flag indicating the use of a palette with a dark background
-        @rtype bool
-        """
-        palette = self.palette()
-        lightness = palette.color(QPalette.ColorRole.Window).lightness()
-        return lightness <= 128
-
-e5App = QCoreApplication.instance
--- a/eric7/E5Gui/E5ClickableLabel.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a clickable label.
-"""
-
-from PyQt6.QtCore import pyqtSignal, Qt, QPoint
-from PyQt6.QtWidgets import QLabel
-
-
-class E5ClickableLabel(QLabel):
-    """
-    Class implementing a clickable label.
-    
-    @signal clicked(QPoint) emitted upon a click on the label
-        with the left button
-    @signal middleClicked(QPoint) emitted upon a click on the label
-        with the middle button or CTRL and left button
-    """
-    clicked = pyqtSignal(QPoint)
-    middleClicked = pyqtSignal(QPoint)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-        
-        self.setCursor(Qt.CursorShape.PointingHandCursor)
-    
-    def mouseReleaseEvent(self, evt):
-        """
-        Protected method handling mouse release events.
-        
-        @param evt mouse event (QMouseEvent)
-        """
-        if (
-            evt.button() == Qt.MouseButton.LeftButton and
-            self.rect().contains(evt.position().toPoint())
-        ):
-            if evt.modifiers() == Qt.KeyboardModifier.ControlModifier:
-                self.middleClicked.emit(evt.globalPosition().toPoint())
-            else:
-                self.clicked.emit(evt.globalPosition().toPoint())
-        elif (
-            evt.button() == Qt.MouseButton.MiddleButton and
-            self.rect().contains(evt.position().toPoint())
-        ):
-            self.middleClicked.emit(evt.globalPosition().toPoint())
-        else:
-            super().mouseReleaseEvent(evt)
--- a/eric7/E5Gui/E5ComboSelectionDialog.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to select one entry from a list of strings.
-"""
-
-from PyQt6.QtCore import pyqtSlot
-from PyQt6.QtWidgets import QDialog, QDialogButtonBox
-
-from .Ui_E5ComboSelectionDialog import Ui_E5ComboSelectionDialog
-
-
-class E5ComboSelectionDialog(QDialog, Ui_E5ComboSelectionDialog):
-    """
-    Class implementing a dialog to select one entry from a list of strings.
-    """
-    def __init__(self, entries, title="", message="", parent=None):
-        """
-        Constructor
-        
-        @param entries list of entries to select from
-        @type list of str or list of tuples of (str, any)
-        @param title title of the dialog (defaults to "")
-        @type str (optional)
-        @param message message to be show in the dialog (defaults to "")
-        @type str (optional)
-        @param parent reference to the parent widget (defaults to None)
-        @type QWidget (optional)
-        """
-        super().__init__(parent)
-        self.setupUi(self)
-        
-        for entry in entries:
-            if isinstance(entry, tuple):
-                self.selectionComboBox.addItem(*entry)
-            else:
-                self.selectionComboBox.addItem(entry)
-        
-        self.on_selectionComboBox_currentTextChanged(
-            self.selectionComboBox.itemText(0))
-        
-        msh = self.minimumSizeHint()
-        self.resize(max(self.width(), msh.width()), msh.height())
-    
-    @pyqtSlot(str)
-    def on_selectionComboBox_currentTextChanged(self, txt):
-        """
-        Private slot to react upon changes of the selected entry.
-        
-        @param txt text of the selected entry
-        @type str
-        """
-        self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Ok).setEnabled(bool(txt))
-    
-    def getSelection(self):
-        """
-        Public method to retrieve the selected item and its data.
-        
-        @return tuple containing the selected entry and its associated data
-        @rtype tuple of (str, any)
-        """
-        return (
-            self.selectionComboBox.currentText(),
-            self.selectionComboBox.currentData()
-        )
--- a/eric7/E5Gui/E5ComboSelectionDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>E5ComboSelectionDialog</class>
- <widget class="QDialog" name="E5ComboSelectionDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>100</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Select from List</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="messageLabel">
-     <property name="text">
-      <string>Select from the list below:</string>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QComboBox" name="selectionComboBox"/>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>E5ComboSelectionDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>E5ComboSelectionDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric7/E5Gui/E5Completers.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,156 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2007 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing various kinds of completers.
-"""
-
-import os
-
-from PyQt6.QtCore import QDir, Qt, QStringListModel
-from PyQt6.QtGui import QFileSystemModel
-from PyQt6.QtWidgets import QCompleter
-
-from Globals import isWindowsPlatform
-
-
-class E5FileCompleter(QCompleter):
-    """
-    Class implementing a completer for file names.
-    """
-    def __init__(self, parent=None,
-                 completionMode=QCompleter.CompletionMode.PopupCompletion,
-                 showHidden=False):
-        """
-        Constructor
-        
-        @param parent parent widget of the completer (QWidget)
-        @param completionMode completion mode of the
-            completer (QCompleter.CompletionMode)
-        @param showHidden flag indicating to show hidden entries as well
-            (boolean)
-        """
-        super().__init__(parent)
-        self.__model = QFileSystemModel(self)
-        if showHidden:
-            self.__model.setFilter(
-                QDir.Filter.Dirs |
-                QDir.Filter.Files |
-                QDir.Filter.Drives |
-                QDir.Filter.AllDirs |
-                QDir.Filter.Hidden)
-        else:
-            self.__model.setFilter(
-                QDir.Filter.Dirs |
-                QDir.Filter.Files |
-                QDir.Filter.Drives |
-                QDir.Filter.AllDirs)
-        self.__model.setRootPath("")
-        self.setModel(self.__model)
-        self.setCompletionMode(completionMode)
-        if isWindowsPlatform():
-            self.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
-        if parent:
-            parent.setCompleter(self)
-    
-    def setRootPath(self, path):
-        """
-        Public method to set the root path of the model.
-        
-        @param path root path for the model
-        @type str
-        """
-        if not os.path.isdir(path):
-            path = os.path.dirname(path)
-        self.__model.setRootPath(path)
-    
-    def rootPath(self):
-        """
-        Public method to get the root path of the model.
-        
-        @return root path of the model
-        @rtype str
-        """
-        return self.__model.rootPath()
-
-
-class E5DirCompleter(QCompleter):
-    """
-    Class implementing a completer for directory names.
-    """
-    def __init__(self, parent=None,
-                 completionMode=QCompleter.CompletionMode.PopupCompletion,
-                 showHidden=False):
-        """
-        Constructor
-        
-        @param parent parent widget of the completer (QWidget)
-        @param completionMode completion mode of the
-            completer (QCompleter.CompletionMode)
-        @param showHidden flag indicating to show hidden entries as well
-            (boolean)
-        """
-        super().__init__(parent)
-        self.__model = QFileSystemModel(self)
-        if showHidden:
-            self.__model.setFilter(
-                QDir.Filter.Drives |
-                QDir.Filter.AllDirs |
-                QDir.Filter.Hidden)
-        else:
-            self.__model.setFilter(
-                QDir.Filter.Drives | QDir.Filter.AllDirs)
-        self.__model.setRootPath("")
-        self.setModel(self.__model)
-        self.setCompletionMode(completionMode)
-        if isWindowsPlatform():
-            self.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
-        if parent:
-            parent.setCompleter(self)
-    
-    def setRootPath(self, path):
-        """
-        Public method to set the root path of the model.
-        
-        @param path root path for the model
-        @type str
-        """
-        if not os.path.isdir(path):
-            path = os.path.dirname(path)
-        self.__model.setRootPath(path)
-    
-    def rootPath(self):
-        """
-        Public method to get the root path of the model.
-        
-        @return root path of the model
-        @rtype str
-        """
-        return self.__model.rootPath()
-
-
-class E5StringListCompleter(QCompleter):
-    """
-    Class implementing a completer for string lists.
-    """
-    def __init__(self, parent=None, strings=None,
-                 completionMode=QCompleter.CompletionMode.PopupCompletion):
-        """
-        Constructor
-        
-        @param parent parent widget of the completer (QWidget)
-        @param strings list of string to load into the completer
-            (list of strings)
-        @param completionMode completion mode of the
-            completer (QCompleter.CompletionMode)
-        """
-        super().__init__(parent)
-        self.__model = QStringListModel(
-            [] if strings is None else strings[:],
-            parent)
-        self.setModel(self.__model)
-        self.setCompletionMode(completionMode)
-        if parent:
-            parent.setCompleter(self)
--- a/eric7/E5Gui/E5ErrorMessage.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2013 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a specialized error message dialog.
-"""
-
-import contextlib
-
-from PyQt6.QtCore import (
-    qInstallMessageHandler, Qt, Q_ARG, QSettings, QtMsgType, QThread,
-    QMetaObject
-)
-from PyQt6.QtWidgets import QErrorMessage, QDialog
-
-from E5Gui.E5Application import e5App
-
-import Globals
-import Utilities
-import Preferences
-
-
-_msgHandlerDialog = None
-_origMsgHandler = None
-
-_filterSettings = QSettings(
-    QSettings.Format.IniFormat,
-    QSettings.Scope.UserScope,
-    Globals.settingsNameOrganization,
-    "eric7messagefilters")
-_defaultFilters = [
-    "QFont::",
-    "QCocoaMenu::removeMenuItem",
-    "QCocoaMenu::insertNative",
-    ",type id:",
-    "Remote debugging server started successfully",
-    "Uncaught SecurityError:",
-    "Content Security Policy",
-    "QXcbClipboard:",
-    "QXcbConnection: XCB error",
-    "libpng warning: iCCP:",
-    "Uncaught ReferenceError: $ is not defined",
-]
-
-
-def filterMessage(message):
-    """
-    Module function to filter messages.
-    
-    @param message message to be checked
-    @type str
-    @return flag indicating that the message should be filtered out
-    @rtype bool
-    """
-    return any(
-        filterStr in message
-        for filterStr in Globals.toList(_filterSettings.value(
-            "MessageFilters", [])) + _defaultFilters
-    )
-
-
-class E5ErrorMessage(QErrorMessage):
-    """
-    Class implementing a specialized error message dialog.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent)
-    
-    def showMessage(self, message, msgType=""):
-        """
-        Public method to show a message.
-        
-        @param message error message to be shown
-        @type str
-        @param msgType type of the error message
-        @type str
-        """
-        if not filterMessage(message):
-            if msgType:
-                super().showMessage(message, msgType)
-            else:
-                super().showMessage(message)
-    
-    def editMessageFilters(self):
-        """
-        Public method to edit the list of message filters.
-        """
-        from .E5ErrorMessageFilterDialog import E5ErrorMessageFilterDialog
-        dlg = E5ErrorMessageFilterDialog(
-            Globals.toList(_filterSettings.value(
-                "MessageFilters", [])))
-        if dlg.exec() == QDialog.DialogCode.Accepted:
-            filters = dlg.getFilters()
-            _filterSettings.setValue("MessageFilters", filters)
-
-
-def messageHandler(msgType, context, message):
-    """
-    Module function handling messages.
-    
-    @param msgType type of the message
-    @type  int, QtMsgType
-    @param context context information
-    @type QMessageLogContext
-    @param message message to be shown
-    @type bytes
-    """
-    if _msgHandlerDialog:
-        if msgType.value < Preferences.getUI("MinimumMessageTypeSeverity"):
-            # severity is lower than configured
-            # just ignore the message
-            return
-        
-        with contextlib.suppress(RuntimeError):
-            if msgType == QtMsgType.QtDebugMsg:
-                messageType = "Debug Message:"
-            elif msgType == QtMsgType.QtInfoMsg:
-                messageType = "Info Message:"
-            elif msgType == QtMsgType.QtWarningMsg:
-                messageType = "Warning:"
-            elif msgType == QtMsgType.QtCriticalMsg:
-                messageType = "Critical:"
-            elif msgType == QtMsgType.QtFatalMsg:
-                messageType = "Fatal Error:"
-            if isinstance(message, bytes):
-                message = Utilities.decodeBytes(message)
-            if filterMessage(message):
-                return
-            message = (
-                message.replace("\r\n", "<br/>")
-                .replace("\n", "<br/>")
-                .replace("\r", "<br/>")
-            )
-            msg = (
-                (
-                    "<p><b>{0}</b></p><p>{1}</p><p>File: {2}</p>"
-                    "<p>Line: {3}</p><p>Function: {4}</p>"
-                ).format(messageType, Utilities.html_uencode(message),
-                         context.file, context.line, context.function)
-                if context.file is not None else
-                "<p><b>{0}</b></p><p>{1}</p>".format(
-                    messageType, Utilities.html_uencode(message))
-            )
-            if QThread.currentThread() == e5App().thread():
-                _msgHandlerDialog.showMessage(msg)
-            else:
-                QMetaObject.invokeMethod(
-                    _msgHandlerDialog,
-                    "showMessage",
-                    Qt.ConnectionType.QueuedConnection,
-                    Q_ARG(str, msg))
-            return
-    elif _origMsgHandler:
-        _origMsgHandler(msgType, message)
-        return
-    
-    if msgType == QtMsgType.QtDebugMsg:
-        messageType = "Debug Message"
-    elif msgType == QtMsgType.QtInfoMsg:
-        messageType = "Info Message:"
-    elif msgType == QtMsgType.QtWarningMsg:
-        messageType = "Warning"
-    elif msgType == QtMsgType.QtCriticalMsg:
-        messageType = "Critical"
-    elif msgType == QtMsgType.QtFatalMsg:
-        messageType = "Fatal Error"
-    if isinstance(message, bytes):
-        message = message.decode()
-    print("{0}: {1} in {2} at line {3} ({4})".format(
-        messageType, message, context.file, context.line,
-        context.function))
-
-
-def qtHandler():
-    """
-    Module function to install an E5ErrorMessage dialog as the global
-    message handler.
-    
-    @return reference to the message handler dialog
-    @rtype E5ErrorMessage
-    """
-    global _msgHandlerDialog, _origMsgHandler
-    
-    if _msgHandlerDialog is None:
-        # Install an E5ErrorMessage dialog as the global message handler.
-        _msgHandlerDialog = E5ErrorMessage()
-        _origMsgHandler = qInstallMessageHandler(messageHandler)
-    
-    return _msgHandlerDialog
-
-
-def editMessageFilters():
-    """
-    Module function to edit the list of message filters.
-    """
-    if _msgHandlerDialog:
-        _msgHandlerDialog.editMessageFilters()
-    else:
-        print("No message handler installed.")
-
-
-def messageHandlerInstalled():
-    """
-    Module function to check, if a message handler was installed.
-    
-    @return flag indicating an installed message handler
-    @rtype bool
-    """
-    return _msgHandlerDialog is not None
-
-#
-# eflag: noqa = M801
--- a/eric7/E5Gui/E5ErrorMessageFilterDialog.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2013 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to manage the list of messages to be ignored.
-"""
-
-from PyQt6.QtWidgets import QDialog
-
-from .Ui_E5ErrorMessageFilterDialog import Ui_E5ErrorMessageFilterDialog
-
-
-class E5ErrorMessageFilterDialog(QDialog, Ui_E5ErrorMessageFilterDialog):
-    """
-    Class implementing a dialog to manage the list of messages to be ignored.
-    """
-    def __init__(self, messageFilters, parent=None):
-        """
-        Constructor
-        
-        @param messageFilters list of message filters to be edited
-        @type list of str
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent)
-        self.setupUi(self)
-        
-        self.filtersEditWidget.setList(messageFilters)
-        self.filtersEditWidget.setListWhatsThis(self.tr(
-            "<b>Error Message Filters</b>"
-            "<p>This list shows the configured message filters used to"
-            " suppress error messages from within Qt.</p>"
-            "<p>A default list of message filters is added to this"
-            " user list.</p>"
-        ))
-    
-    def getFilters(self):
-        """
-        Public method to get the list of message filters.
-        
-        @return error message filters (list of strings)
-        """
-        return self.filtersEditWidget.getList()
--- a/eric7/E5Gui/E5ErrorMessageFilterDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>E5ErrorMessageFilterDialog</class>
- <widget class="QDialog" name="E5ErrorMessageFilterDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>350</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Error Messages Filter</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="E5StringListEditWidget" name="filtersEditWidget" native="true"/>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5StringListEditWidget</class>
-   <extends>QWidget</extends>
-   <header>E5Gui/E5StringListEditWidget.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>E5ErrorMessageFilterDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>227</x>
-     <y>329</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>E5ErrorMessageFilterDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>295</x>
-     <y>335</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric7/E5Gui/E5FileDialog.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing alternative functions for the QFileDialog static methods
-to cope with distributor's usage of KDE wrapper dialogs for Qt file dialogs.
-"""
-
-from PyQt6.QtWidgets import QFileDialog
-
-import Globals
-
-##Options = QFileDialog.Options
-Option = QFileDialog.Option
-
-ShowDirsOnly = QFileDialog.Option.ShowDirsOnly
-DontResolveSymlinks = QFileDialog.Option.DontResolveSymlinks
-DontConfirmOverwrite = QFileDialog.Option.DontConfirmOverwrite
-DontUseNativeDialog = QFileDialog.Option.DontUseNativeDialog
-ReadOnly = QFileDialog.Option.ReadOnly
-HideNameFilterDetails = QFileDialog.Option.HideNameFilterDetails
-##DontUseSheet = QFileDialog.Option.DontUseSheet
-DontUseCustomDirectoryIcons = QFileDialog.Option.DontUseCustomDirectoryIcons
-
-
-def __reorderFilter(filterStr, initialFilter=""):
-    """
-    Private function to reorder the file filter to cope with a KDE issue
-    introduced by distributor's usage of KDE file dialogs.
-    
-    @param filterStr Qt file filter (string)
-    @param initialFilter initial filter (string)
-    @return the rearranged Qt file filter (string)
-    """
-    if initialFilter and not Globals.isMacPlatform():
-        fileFilters = filterStr.split(';;')
-        if len(fileFilters) < 10 and initialFilter in fileFilters:
-            fileFilters.remove(initialFilter)
-        fileFilters.insert(0, initialFilter)
-        return ";;".join(fileFilters)
-    else:
-        return filterStr
-
-
-def getOpenFileName(parent=None, caption="", directory="",
-                    filterStr="", options=None):
-    """
-    Module function to get the name of a file for opening it.
-    
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param filterStr filter string for the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return name of file to be opened (string)
-    """
-    if options is None:
-        options = QFileDialog.Option(0)
-    if Globals.isLinuxPlatform():
-        options |= QFileDialog.Option.DontUseNativeDialog
-    return QFileDialog.getOpenFileName(
-        parent, caption, directory, filterStr, "", options)[0]
-
-
-def getOpenFileNameAndFilter(parent=None, caption="", directory="",
-                             filterStr="", initialFilter="",
-                             options=None):
-    """
-    Module function to get the name of a file for opening it and the selected
-    file name filter.
-    
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param filterStr filter string for the dialog (string)
-    @param initialFilter initial filter for the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return name of file to be opened and selected filter (string, string)
-    """
-    if options is None:
-        options = QFileDialog.Option(0)
-    if Globals.isLinuxPlatform():
-        options |= QFileDialog.Option.DontUseNativeDialog
-    newfilter = __reorderFilter(filterStr, initialFilter)
-    return QFileDialog.getOpenFileName(
-        parent, caption, directory, newfilter, initialFilter, options)
-
-
-def getOpenFileNames(parent=None, caption="", directory="",
-                     filterStr="", options=None):
-    """
-    Module function to get a list of names of files for opening.
-    
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param filterStr filter string for the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return list of file names to be opened (list of string)
-    """
-    if options is None:
-        options = QFileDialog.Option(0)
-    if Globals.isLinuxPlatform():
-        options |= QFileDialog.Option.DontUseNativeDialog
-    return QFileDialog.getOpenFileNames(
-        parent, caption, directory, filterStr, "", options)[0]
-
-
-def getOpenFileNamesAndFilter(parent=None, caption="", directory="",
-                              filterStr="", initialFilter="",
-                              options=None):
-    """
-    Module function to get a list of names of files for opening and the
-    selected file name filter.
-    
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param filterStr filter string for the dialog (string)
-    @param initialFilter initial filter for the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return list of file names to be opened and selected filter
-        (list of string, string)
-    """
-    if options is None:
-        options = QFileDialog.Option(0)
-    if Globals.isLinuxPlatform():
-        options |= QFileDialog.Option.DontUseNativeDialog
-    newfilter = __reorderFilter(filterStr, initialFilter)
-    return QFileDialog.getOpenFileNames(
-        parent, caption, directory, newfilter, initialFilter, options)
-
-
-def getSaveFileName(parent=None, caption="", directory="",
-                    filterStr="", options=None):
-    """
-    Module function to get the name of a file for saving it.
-    
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param filterStr filter string for the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return name of file to be saved (string)
-    """
-    if options is None:
-        options = QFileDialog.Option(0)
-    if Globals.isLinuxPlatform():
-        options |= QFileDialog.Option.DontUseNativeDialog
-    return QFileDialog.getSaveFileName(
-        parent, caption, directory, filterStr, "", options)[0]
-
-
-def getSaveFileNameAndFilter(parent=None, caption="", directory="",
-                             filterStr="", initialFilter="",
-                             options=None):
-    """
-    Module function to get the name of a file for saving it and the selected
-    file name filter.
-    
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param filterStr filter string for the dialog (string)
-    @param initialFilter initial filter for the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return name of file to be saved and selected filter (string, string)
-    """
-    if options is None:
-        options = QFileDialog.Option(0)
-    if Globals.isLinuxPlatform():
-        options |= QFileDialog.Option.DontUseNativeDialog
-    newfilter = __reorderFilter(filterStr, initialFilter)
-    return QFileDialog.getSaveFileName(
-        parent, caption, directory, newfilter, initialFilter, options)
-
-
-def getExistingDirectory(parent=None, caption="",
-                         directory="",
-                         options=QFileDialog.Option.ShowDirsOnly):
-    """
-    Module function to get the name of a directory.
-    
-    @param parent parent widget of the dialog (QWidget)
-    @param caption window title of the dialog (string)
-    @param directory working directory of the dialog (string)
-    @param options various options for the dialog (QFileDialog.Options)
-    @return name of selected directory (string)
-    """
-    if options is None:
-        options = QFileDialog.Option(0)
-    if Globals.isLinuxPlatform():
-        options |= QFileDialog.Option.DontUseNativeDialog
-    return QFileDialog.getExistingDirectory(parent, caption, directory,
-                                            options)
--- a/eric7/E5Gui/E5FileSaveConfirmDialog.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2018 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to enter a file system path using a file picker.
-"""
-
-import os
-
-from PyQt6.QtWidgets import (
-    QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QLineEdit
-)
-
-from .E5PathPicker import E5PathPicker, E5PathPickerModes
-
-
-class E5FileSaveConfirmDialog(QDialog):
-    """
-    Class implementing a dialog to enter a file system path using a file
-    picker.
-    """
-    def __init__(self, filename, title, message="", picker=True, parent=None):
-        """
-        Constructor
-        
-        @param filename file name to be shown
-        @type str
-        @param title title for the dialog
-        @type str
-        @param message message to be shown
-        @type str
-        @param picker flag indicating to use a path picker
-        @type bool
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent)
-        
-        self.setMinimumWidth(400)
-        
-        self.__selectedAction = "cancel"
-        self.__filename = filename
-        
-        self.__layout = QVBoxLayout(self)
-        
-        self.__label = QLabel(self)
-        self.__label.setWordWrap(True)
-        if message:
-            self.__label.setText(message)
-        else:
-            self.__label.setText(self.tr("The given file exists already."))
-        
-        if picker:
-            self.__pathPicker = E5PathPicker(self)
-            self.__pathPicker.setMode(E5PathPickerModes.SAVE_FILE_MODE)
-        else:
-            self.__pathPicker = QLineEdit(self)
-            self.__pathPicker.setClearButtonEnabled(True)
-        
-        self.__buttonBox = QDialogButtonBox(self)
-        self.__cancelButton = self.__buttonBox.addButton(
-            QDialogButtonBox.StandardButton.Cancel)
-        self.__overwriteButton = self.__buttonBox.addButton(
-            self.tr("Overwrite"), QDialogButtonBox.ButtonRole.AcceptRole)
-        self.__renameButton = self.__buttonBox.addButton(
-            self.tr("Rename"), QDialogButtonBox.ButtonRole.AcceptRole)
-        
-        self.__layout.addWidget(self.__label)
-        self.__layout.addWidget(self.__pathPicker)
-        self.__layout.addWidget(self.__buttonBox)
-        
-        # set values and states
-        self.__pathPicker.setText(filename)
-        if picker:
-            self.__pathPicker.setDefaultDirectory(os.path.dirname(filename))
-        self.__renameButton.setEnabled(False)
-        self.__cancelButton.setDefault(True)
-        
-        self.__buttonBox.clicked.connect(self.__buttonBoxClicked)
-        self.__pathPicker.textChanged.connect(self.__filenameChanged)
-    
-    def __buttonBoxClicked(self, button):
-        """
-        Private slot to handle the user clicking a button.
-        
-        @param button reference to the clicked button
-        @type QAbstractButton
-        """
-        if button == self.__cancelButton:
-            self.__selectedAction = "cancel"
-            self.reject()
-        elif button == self.__renameButton:
-            self.__selectedAction = "rename"
-            self.accept()
-        elif button == self.__overwriteButton:
-            self.__selectedAction = "overwrite"
-            self.accept()
-    
-    def __filenameChanged(self, text):
-        """
-        Private slot to handle a change of the file name.
-        
-        @param text new file name
-        @type str
-        """
-        self.__renameButton.setEnabled(text != self.__filename)
-    
-    def selectedAction(self):
-        """
-        Public method to get the selected action and associated data.
-        
-        @return tuple containing the selected action (cancel, rename,
-            overwrite) and the filename (in case of 'rename' or 'overwrite')
-        @rtype tuple of (str, str)
-        """
-        if self.__selectedAction == "rename":
-            filename = self.__pathPicker.text()
-        elif self.__selectedAction == "overwrite":
-            filename = self.__filename
-        else:
-            filename = ""
-        return self.__selectedAction, filename
-
-
-def confirmOverwrite(filename, title, message="", picker=True, parent=None):
-    """
-    Function to confirm that a file shall be overwritten.
-    
-    @param filename file name to be shown
-    @type str
-    @param title title for the dialog
-    @type str
-    @param message message to be shown
-    @type str
-    @param picker flag indicating to use a path picker
-    @type bool
-    @param parent reference to the parent widget
-    @type QWidget
-    @return tuple containing the selected action (cancel, rename,
-        overwrite) and the filename (in case of 'rename' or 'overwrite')
-    @rtype tuple of (str, str)
-    """
-    dlg = E5FileSaveConfirmDialog(filename, title, message=message,
-                                  picker=picker, parent=parent)
-    dlg.exec()
-    return dlg.selectedAction()
--- a/eric7/E5Gui/E5GenericDiffHighlighter.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a syntax highlighter for diff outputs.
-"""
-
-import re
-
-from PyQt6.QtGui import QSyntaxHighlighter, QTextCharFormat, QFont
-
-import Preferences
-
-
-def TERMINAL(pattern):
-    """
-    Function to mark a pattern as the final one to search for.
-    
-    @param pattern pattern to be marked (string)
-    @return marked pattern (string)
-    """
-    return "__TERMINAL__:{0}".format(pattern)
-
-# Cache the results of re.compile for performance reasons
-_REGEX_CACHE = {}
-
-
-class E5GenericDiffHighlighter(QSyntaxHighlighter):
-    """
-    Class implementing a generic diff highlighter.
-    """
-    def __init__(self, doc):
-        """
-        Constructor
-        
-        @param doc reference to the text document (QTextDocument)
-        """
-        super().__init__(doc)
-        
-        self.regenerateRules()
-    
-    def __initColours(self):
-        """
-        Private method to initialize the highlighter colours.
-        """
-        self.textColor = Preferences.getDiffColour("TextColor")
-        self.addedColor = Preferences.getDiffColour("AddedColor")
-        self.removedColor = Preferences.getDiffColour("RemovedColor")
-        self.replacedColor = Preferences.getDiffColour("ReplacedColor")
-        self.contextColor = Preferences.getDiffColour("ContextColor")
-        self.headerColor = Preferences.getDiffColour("HeaderColor")
-        self.whitespaceColor = Preferences.getDiffColour("BadWhitespaceColor")
-    
-    def createRules(self, *rules):
-        """
-        Public method to create the highlighting rules.
-        
-        @param rules set of highlighting rules (list of tuples of rule
-            pattern (string) and highlighting format (QTextCharFormat))
-        """
-        for _idx, ruleFormat in enumerate(rules):
-            rule, formats = ruleFormat
-            terminal = rule.startswith(TERMINAL(''))
-            if terminal:
-                rule = rule[len(TERMINAL('')):]
-            try:
-                regex = _REGEX_CACHE[rule]
-            except KeyError:
-                regex = _REGEX_CACHE[rule] = re.compile(rule)
-            self._rules.append((regex, formats, terminal))
-    
-    def formats(self, line):
-        """
-        Public method to determine the highlighting formats for a line of
-        text.
-        
-        @param line text line to be highlighted (string)
-        @return list of matched highlighting rules (list of tuples of match
-            object and format (QTextCharFormat))
-        """
-        matched = []
-        for rx, formats, terminal in self._rules:
-            match = rx.match(line)
-            if not match:
-                continue
-            matched.append([match, formats])
-            if terminal:
-                return matched
-        
-        return matched
-    
-    def makeFormat(self, fg=None, bg=None, bold=False):
-        """
-        Public method to generate a format definition.
-        
-        @param fg foreground color (QColor)
-        @param bg background color (QColor)
-        @param bold flag indicating bold text (boolean)
-        @return format definiton (QTextCharFormat)
-        """
-        font = Preferences.getEditorOtherFonts("MonospacedFont")
-        charFormat = QTextCharFormat()
-        charFormat.setFontFamilies([font.family()])
-        charFormat.setFontPointSize(font.pointSize())
-        
-        if fg:
-            charFormat.setForeground(fg)
-        
-        if bg:
-            charFormat.setBackground(bg)
-        
-        if bold:
-            charFormat.setFontWeight(QFont.Weight.Bold)
-        
-        return charFormat
-    
-    def highlightBlock(self, text):
-        """
-        Public method to highlight a block of text.
-        
-        @param text text to be highlighted (string)
-        """
-        formats = self.formats(text)
-        if not formats:
-            # nothing matched
-            self.setFormat(0, len(text), self.normalFormat)
-            return
-        
-        for match, formatStr in formats:
-            start = match.start()
-            groups = match.groups()
-
-            # No groups in the regex, assume this is a single rule
-            # that spans the entire line
-            if not groups:
-                self.setFormat(0, len(text), formatStr)
-                continue
-
-            # Groups exist, rule is a tuple corresponding to group
-            for groupIndex, group in enumerate(groups):
-                if not group:
-                    # empty match
-                    continue
-                
-                # allow None as a no-op format
-                length = len(group)
-                if formatStr[groupIndex]:
-                    self.setFormat(start, start + length,
-                                   formatStr[groupIndex])
-                start += length
-    
-    def regenerateRules(self):
-        """
-        Public method to initialize or regenerate the syntax highlighter rules.
-        """
-        self.normalFormat = self.makeFormat()
-        
-        self.__initColours()
-        
-        self._rules = []
-        self.generateRules()
-    
-    def generateRules(self):
-        """
-        Public method to generate the rule set.
-        
-        Note: This method must me implemented by derived syntax
-        highlighters.
-        """
-        pass
--- a/eric7/E5Gui/E5Led.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,336 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2006 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a LED widget.
-
-It was inspired by KLed.
-"""
-
-import enum
-
-from PyQt6.QtCore import pyqtSignal, Qt, QSize, QPoint
-from PyQt6.QtGui import QColor, QRadialGradient, QPalette, QPainter, QBrush
-from PyQt6.QtWidgets import QWidget
-
-
-class E5LedType(enum.Enum):
-    """
-    Class defining the LED types.
-    """
-    RECTANGULAR = 0
-    CIRCULAR = 1
-
-
-class E5Led(QWidget):
-    """
-    Class implementing a LED widget.
-    """
-    def __init__(self, parent=None, color=None, shape=E5LedType.CIRCULAR,
-                 rectRatio=1):
-        """
-        Constructor
-        
-        @param parent reference to parent widget
-        @type QWidget
-        @param color color of the LED
-        @type QColor
-        @param shape shape of the LED
-        @type E5LedType
-        @param rectRatio ratio width to height, if shape is rectangular
-        @type float
-        """
-        super().__init__(parent)
-        
-        if color is None:
-            color = QColor("green")
-        
-        self.__led_on = True
-        self.__dark_factor = 300
-        self.__offcolor = color.darker(self.__dark_factor)
-        self.__led_color = color
-        self.__framedLed = True
-        self.__shape = shape
-        self.__rectRatio = rectRatio
-        
-        self.setColor(color)
-        
-    def paintEvent(self, evt):
-        """
-        Protected slot handling the paint event.
-        
-        @param evt paint event object
-        @type QPaintEvent
-        """
-        if self.__shape == E5LedType.CIRCULAR:
-            self.__paintRound()
-        elif self.__shape == E5LedType.RECTANGULAR:
-            self.__paintRectangular()
-    
-    def __getBestRoundSize(self):
-        """
-        Private method to calculate the width of the LED.
-        
-        @return new width of the LED (integer)
-        """
-        width = min(self.width(), self.height())
-        width -= 2  # leave one pixel border
-        return width > -1 and width or 0
-        
-    def __paintRound(self):
-        """
-        Private method to paint a round raised LED.
-        """
-        # Initialize coordinates, width and height of the LED
-        width = self.__getBestRoundSize()
-        
-        # Calculate the gradient for the LED
-        wh = width / 2
-        color = self.__led_on and self.__led_color or self.__offcolor
-        gradient = QRadialGradient(wh, wh, wh, 0.8 * wh, 0.8 * wh)
-        gradient.setColorAt(0.0, color.lighter(200))
-        gradient.setColorAt(0.6, color)
-        if self.__framedLed:
-            gradient.setColorAt(0.9, color.darker())
-            gradient.setColorAt(
-                1.0, self.palette().color(QPalette.ColorRole.Dark))
-        else:
-            gradient.setColorAt(1.0, color.darker())
-        
-        # now do the drawing
-        paint = QPainter(self)
-        paint.setRenderHint(QPainter.RenderHint.Antialiasing, True)
-        paint.setBrush(QBrush(gradient))
-        paint.setPen(Qt.PenStyle.NoPen)
-        paint.drawEllipse(1, 1, width, width)
-        paint.end()
-        
-    def __paintRectangular(self):
-        """
-        Private method to paint a rectangular raised LED.
-        """
-        # Initialize coordinates, width and height of the LED
-        width = self.height() * self.__rectRatio
-        left = max(0, int((self.width() - width) / 2) - 1)
-        right = min(int((self.width() + width) / 2), self.width())
-        height = self.height()
-        
-        # now do the drawing
-        painter = QPainter(self)
-        painter.setRenderHint(QPainter.RenderHint.Antialiasing, True)
-        color = self.__led_on and self.__led_color or self.__offcolor
-
-        painter.setPen(color.lighter(200))
-        painter.drawLine(left, 0, left, height - 1)
-        painter.drawLine(left + 1, 0, right - 1, 0)
-        if self.__framedLed:
-            painter.setPen(self.palette().color(QPalette.ColorRole.Dark))
-        else:
-            painter.setPen(color.darker())
-        painter.drawLine(left + 1, height - 1, right - 1, height - 1)
-        painter.drawLine(right - 1, 1, right - 1, height - 1)
-        painter.fillRect(left + 1, 1, right - 2, height - 2, QBrush(color))
-        painter.end()
-        
-    def isOn(self):
-        """
-        Public method to return the LED state.
-        
-        @return flag indicating the light state (boolean)
-        """
-        return self.__led_on
-        
-    def shape(self):
-        """
-        Public method to return the LED shape.
-        
-        @return LED shape
-        @rtype E5LedType
-        """
-        return self.__shape
-        
-    def ratio(self):
-        """
-        Public method to return the LED rectangular ratio [= width / height].
-        
-        @return LED rectangular ratio (float)
-        """
-        return self.__rectRatio
-        
-    def color(self):
-        """
-        Public method to return the LED color.
-        
-        @return color of the LED (QColor)
-        """
-        return self.__led_color
-        
-    def setOn(self, state):
-        """
-        Public method to set the LED to on.
-        
-        @param state new state of the LED (boolean)
-        """
-        if self.__led_on != state:
-            self.__led_on = state
-            self.update()
-        
-    def setShape(self, shape):
-        """
-        Public method to set the LED shape.
-        
-        @param shape new LED shape
-        @type E5LedType
-        """
-        if self.__shape != shape:
-            self.__shape = shape
-            self.update()
-        
-    def setRatio(self, ratio):
-        """
-        Public method to set the LED rectangular ratio (width / height).
-        
-        @param ratio new LED rectangular ratio (float)
-        """
-        if self.__rectRatio != ratio:
-            self.__rectRatio = ratio
-            self.update()
-        
-    def setColor(self, color):
-        """
-        Public method to set the LED color.
-        
-        @param color color for the LED (QColor)
-        """
-        if self.__led_color != color:
-            self.__led_color = color
-            self.__offcolor = color.darker(self.__dark_factor)
-            self.update()
-        
-    def setDarkFactor(self, darkfactor):
-        """
-        Public method to set the dark factor.
-        
-        @param darkfactor value to set for the dark factor (integer)
-        """
-        if self.__dark_factor != darkfactor:
-            self.__dark_factor = darkfactor
-            self.__offcolor = self.__led_color.darker(darkfactor)
-            self.update()
-        
-    def darkFactor(self):
-        """
-        Public method to return the dark factor.
-        
-        @return the current dark factor (integer)
-        """
-        return self.__dark_factor
-        
-    def toggle(self):
-        """
-        Public slot to toggle the LED state.
-        """
-        self.setOn(not self.__led_on)
-        
-    def on(self):
-        """
-        Public slot to set the LED to on.
-        """
-        self.setOn(True)
-        
-    def off(self):
-        """
-        Public slot to set the LED to off.
-        """
-        self.setOn(False)
-        
-    def setFramed(self, framed):
-        """
-        Public slot to set the __framedLed attribute.
-        
-        @param framed flag indicating the framed state (boolean)
-        """
-        if self.__framedLed != framed:
-            self.__framedLed = framed
-            self.__off_map = None
-            self.__on_map = None
-            self.update()
-        
-    def isFramed(self):
-        """
-        Public method to return the framed state.
-        
-        @return flag indicating the current framed state (boolean)
-        """
-        return self.__framedLed
-        
-    def sizeHint(self):
-        """
-        Public method to give a hint about our desired size.
-        
-        @return size hint (QSize)
-        """
-        return QSize(18, 18)
-        
-    def minimumSizeHint(self):
-        """
-        Public method to give a hint about our minimum size.
-        
-        @return size hint (QSize)
-        """
-        return QSize(18, 18)
-
-
-class E5ClickableLed(E5Led):
-    """
-    Class implementing a clickable LED widget.
-    
-    @signal clicked(QPoint) emitted upon a click on the LED with the
-        left button
-    @signal middleClicked(QPoint) emitted upon a click on the LED with
-        the middle button or CTRL and left button
-    """
-    clicked = pyqtSignal(QPoint)
-    middleClicked = pyqtSignal(QPoint)
-    
-    def __init__(self, parent=None, color=None, shape=E5LedType.CIRCULAR,
-                 rectRatio=1):
-        """
-        Constructor
-        
-        @param parent reference to parent widget
-        @type QWidget
-        @param color color of the LED
-        @type QColor
-        @param shape shape of the LED
-        @type E5LedType
-        @param rectRatio ratio width to height, if shape is rectangular
-        @type float
-        """
-        super().__init__(parent, color, shape, rectRatio)
-        
-        self.setCursor(Qt.CursorShape.PointingHandCursor)
-    
-    def mouseReleaseEvent(self, evt):
-        """
-        Protected method handling mouse release events.
-        
-        @param evt mouse event (QMouseEvent)
-        """
-        if (
-            evt.button() == Qt.MouseButton.LeftButton and
-            self.rect().contains(evt.position().toPoint())
-        ):
-            if evt.modifiers() == Qt.KeyboardModifier.ControlModifier:
-                self.middleClicked.emit(evt.globalPosition().toPoint())
-            else:
-                self.clicked.emit(evt.globalPosition().toPoint())
-        elif (
-            evt.button() == Qt.MouseButton.MiddleButton and
-            self.rect().contains(evt.position().toPoint())
-        ):
-            self.middleClicked.emit(evt.globalPosition().toPoint())
-        else:
-            super().mouseReleaseEvent(evt)
--- a/eric7/E5Gui/E5LineEdit.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,264 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing specialized line edits.
-"""
-
-import enum
-
-from PyQt6.QtCore import pyqtSignal, Qt, QEvent
-from PyQt6.QtWidgets import (
-    QLineEdit, QWidget, QHBoxLayout, QBoxLayout, QLayout, QApplication,
-    QSpacerItem, QSizePolicy
-)
-
-
-class E5LineEditSideWidget(QWidget):
-    """
-    Class implementing the side widgets for the line edit class.
-    
-    @signal sizeHintChanged() emitted to indicate a change of the size hint
-    """
-    sizeHintChanged = pyqtSignal()
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-    
-    def event(self, evt):
-        """
-        Public method to handle events.
-        
-        @param evt reference to the event (QEvent)
-        @return flag indicating, whether the event was recognized (boolean)
-        """
-        if evt.type() == QEvent.Type.LayoutRequest:
-            self.sizeHintChanged.emit()
-        return QWidget.event(self, evt)
-
-
-class E5LineEditSide(enum.Enum):
-    """
-    Class defining the line edit sides.
-    """
-    LEFT = 0
-    RIGHT = 1
-
-
-class E5LineEdit(QLineEdit):
-    """
-    Class implementing a line edit widget showing some inactive text.
-    """
-    def __init__(self, parent=None, placeholderText=""):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget
-        @type QWidget
-        @param placeholderText text to be shown on inactivity
-        @type str
-        """
-        super().__init__(parent)
-        
-        self.setMinimumHeight(22)
-        
-        self.setPlaceholderText(placeholderText)
-        
-        self.__mainLayout = QHBoxLayout(self)
-        self.__mainLayout.setContentsMargins(0, 0, 0, 0)
-        self.__mainLayout.setSpacing(0)
-        
-        self.__leftMargin = 0
-        self.__leftWidget = E5LineEditSideWidget(self)
-        self.__leftWidget.resize(0, 0)
-        self.__leftLayout = QHBoxLayout(self.__leftWidget)
-        self.__leftLayout.setContentsMargins(0, 0, 2, 0)
-        if QApplication.isRightToLeft():
-            self.__leftLayout.setDirection(QBoxLayout.Direction.RightToLeft)
-        else:
-            self.__leftLayout.setDirection(QBoxLayout.Direction.LeftToRight)
-        self.__leftLayout.setSizeConstraint(
-            QLayout.SizeConstraint.SetFixedSize)
-        
-        self.__rightWidget = E5LineEditSideWidget(self)
-        self.__rightWidget.resize(0, 0)
-        self.__rightLayout = QHBoxLayout(self.__rightWidget)
-        self.__rightLayout.setContentsMargins(0, 0, 2, 0)
-        if self.isRightToLeft():
-            self.__rightLayout.setDirection(QBoxLayout.Direction.RightToLeft)
-        else:
-            self.__rightLayout.setDirection(QBoxLayout.Direction.LeftToRight)
-        
-        horizontalSpacer = QSpacerItem(
-            0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
-        self.__mainLayout.addWidget(
-            self.__leftWidget, 0,
-            Qt.AlignmentFlag.AlignVCenter | Qt.AlignmentFlag.AlignLeft)
-        self.__mainLayout.addItem(horizontalSpacer)
-        self.__mainLayout.addWidget(
-            self.__rightWidget, 0,
-            Qt.AlignmentFlag.AlignVCenter | Qt.AlignmentFlag.AlignRight)
-        if self.isRightToLeft():
-            self.__mainLayout.setDirection(QBoxLayout.Direction.RightToLeft)
-        else:
-            self.__mainLayout.setDirection(QBoxLayout.Direction.LeftToRight)
-        
-        self.setWidgetSpacing(3)
-        self.__leftWidget.sizeHintChanged.connect(self._updateTextMargins)
-        self.__rightWidget.sizeHintChanged.connect(self._updateTextMargins)
-    
-    def setLeftMargin(self, margin):
-        """
-        Public method to set the left margin.
-        
-        @param margin left margin in pixel (integer)
-        """
-        self.__leftMargin = margin
-    
-    def leftMargin(self):
-        """
-        Public method to get the size of the left margin.
-        
-        @return left margin in pixel (integer)
-        """
-        return self.__leftMargin
-    
-    def event(self, evt):
-        """
-        Public method to handle events.
-        
-        @param evt reference to the event (QEvent)
-        @return flag indicating, whether the event was recognized (boolean)
-        """
-        if evt.type() == QEvent.Type.LayoutDirectionChange:
-            if self.isRightToLeft():
-                self.__mainLayout.setDirection(
-                    QBoxLayout.Direction.RightToLeft)
-                self.__leftLayout.setDirection(
-                    QBoxLayout.Direction.RightToLeft)
-                self.__rightLayout.setDirection(
-                    QBoxLayout.Direction.RightToLeft)
-            else:
-                self.__mainLayout.setDirection(
-                    QBoxLayout.Direction.LeftToRight)
-                self.__leftLayout.setDirection(
-                    QBoxLayout.Direction.LeftToRight)
-                self.__rightLayout.setDirection(
-                    QBoxLayout.Direction.LeftToRight)
-        return QLineEdit.event(self, evt)
-    
-    def _updateTextMargins(self):
-        """
-        Protected slot to update the text margins.
-        """
-        left = (
-            self.__leftWidget.sizeHint().width()
-            if self.__leftMargin == 0 else
-            self.__leftMargin
-        )
-        right = self.__rightWidget.sizeHint().width()
-        top = 0
-        bottom = 0
-        self.setTextMargins(left, top, right, bottom)
-    
-    def addWidget(self, widget, position):
-        """
-        Public method to add a widget to a side.
-        
-        @param widget reference to the widget to add
-        @type QWidget
-        @param position position to add to
-        @type E5LineEditSide
-        """
-        if widget is None:
-            return
-        
-        if self.isRightToLeft():
-            if position == E5LineEditSide.LEFT:
-                position = E5LineEditSide.RIGHT
-            else:
-                position = E5LineEditSide.LEFT
-        if position == E5LineEditSide.LEFT:
-            self.__leftLayout.addWidget(widget)
-        else:
-            self.__rightLayout.insertWidget(1, widget)
-    
-    def removeWidget(self, widget):
-        """
-        Public method to remove a widget from a side.
-        
-        @param widget reference to the widget to remove
-        @type QWidget
-        """
-        if widget is None:
-            return
-        
-        self.__leftLayout.removeWidget(widget)
-        self.__rightLayout.removeWidget(widget)
-        widget.hide()
-    
-    def widgetSpacing(self):
-        """
-        Public method to get the side widget spacing.
-        
-        @return side widget spacing (integer)
-        """
-        return self.__leftLayout.spacing()
-    
-    def setWidgetSpacing(self, spacing):
-        """
-        Public method to set the side widget spacing.
-        
-        @param spacing side widget spacing (integer)
-        """
-        self.__leftLayout.setSpacing(spacing)
-        self.__rightLayout.setSpacing(spacing)
-        self._updateTextMargins()
-    
-    def textMargin(self, position):
-        """
-        Public method to get the text margin for a side.
-        
-        @param position side to get margin for
-        @type E5LineEditSide
-        @return text margin
-        @rtype int
-        """
-        spacing = self.__rightLayout.spacing()
-        w = 0
-        w = (
-            self.__leftWidget.sizeHint().width()
-            if position == E5LineEditSide.LEFT else
-            self.__rightWidget.sizeHint().width()
-        )
-        if w == 0:
-            return 0
-        return w + spacing * 2
-
-class E5ClearableLineEdit(E5LineEdit):
-    """
-    Class implementing a line edit widget showing some inactive text and a
-    clear button, if it has some contents.
-    """
-    def __init__(self, parent=None, placeholderText="",
-                 side=E5LineEditSide.RIGHT):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget
-        @type QWidget
-        @param placeholderText text to be shown on inactivity
-        @type str
-        @param side side the clear button should be shown at
-        @type E5LineEditSide
-        """
-        super().__init__(parent, placeholderText)
-        
-        self.setClearButtonEnabled(True)
--- a/eric7/E5Gui/E5LineEditButton.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a button class to be used with E5LineEdit.
-"""
-
-from PyQt6.QtCore import Qt, QPoint, QPointF
-from PyQt6.QtGui import QPainter, QPainterPath
-from PyQt6.QtWidgets import QAbstractButton
-
-
-# TODO: Get rid of this
-class E5LineEditButton(QAbstractButton):
-    """
-    Class implementing a button to be used with E5LineEdit.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-        
-        self.__menu = None
-        self.__image = None
-        
-        self.setFocusPolicy(Qt.FocusPolicy.NoFocus)
-        self.setCursor(Qt.CursorShape.ArrowCursor)
-        self.setMinimumSize(16, 16)
-        
-        self.clicked.connect(self.__clicked)
-    
-    def setMenu(self, menu):
-        """
-        Public method to set the button menu.
-        
-        @param menu reference to the menu (QMenu)
-        """
-        self.__menu = menu
-        self.update()
-    
-    def menu(self):
-        """
-        Public method to get a reference to the menu.
-        
-        @return reference to the associated menu (QMenu)
-        """
-        return self.__menu
-    
-    def setIcon(self, icon):
-        """
-        Public method to set the button icon.
-        
-        @param icon icon to be set (QIcon)
-        """
-        if icon.isNull():
-            self.__image = None
-        else:
-            self.__image = icon.pixmap(16, 16).toImage()
-        super().setIcon(icon)
-    
-    def __clicked(self):
-        """
-        Private slot to handle a button click.
-        """
-        if self.__menu:
-            pos = self.mapToGlobal(QPoint(0, self.height()))
-            self.__menu.exec(pos)
-    
-    def paintEvent(self, evt):
-        """
-        Protected method handling a paint event.
-        
-        @param evt reference to the paint event (QPaintEvent)
-        """
-        painter = QPainter(self)
-        
-        if self.__image is not None and not self.__image.isNull():
-            x = (self.width() - self.__image.width()) // 2 - 1
-            y = (self.height() - self.__image.height()) // 2 - 1
-            painter.drawImage(x, y, self.__image)
-        
-        if self.__menu is not None:
-            triagPath = QPainterPath()
-            startPos = QPointF(self.width() - 5, self.height() - 3)
-            triagPath.moveTo(startPos)
-            triagPath.lineTo(startPos.x() + 4, startPos.y())
-            triagPath.lineTo(startPos.x() + 2, startPos.y() + 2)
-            triagPath.closeSubpath()
-            painter.setPen(Qt.GlobalColor.black)
-            painter.setBrush(Qt.GlobalColor.black)
-            painter.setRenderHint(QPainter.RenderHint.Antialiasing, False)
-            painter.drawPath(triagPath)
--- a/eric7/E5Gui/E5ListSelectionDialog.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2016 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to select from a list of strings.
-"""
-
-from PyQt6.QtCore import pyqtSlot, Qt
-from PyQt6.QtWidgets import (
-    QDialog, QDialogButtonBox, QAbstractItemView, QListWidgetItem
-)
-
-from .Ui_E5ListSelectionDialog import Ui_E5ListSelectionDialog
-
-
-class E5ListSelectionDialog(QDialog, Ui_E5ListSelectionDialog):
-    """
-    Class implementing a dialog to select from a list of strings.
-    """
-    def __init__(self, entries,
-                 selectionMode=QAbstractItemView.SelectionMode
-                 .ExtendedSelection,
-                 title="", message="", checkBoxSelection=False, parent=None):
-        """
-        Constructor
-        
-        @param entries list of entries to select from
-        @type list of str
-        @param selectionMode selection mode for the list
-        @type QAbstractItemView.SelectionMode
-        @param title title of the dialog
-        @type str
-        @param message message to be show in the dialog
-        @type str
-        @param checkBoxSelection flag indicating to select items via their
-            checkbox
-        @type bool
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent)
-        self.setupUi(self)
-        
-        if title:
-            self.setWindowTitle(title)
-        if message:
-            self.messageLabel.setText(message)
-        
-        self.__checkCount = 0
-        self.__isCheckBoxSelection = checkBoxSelection
-        if self.__isCheckBoxSelection:
-            self.selectionList.setSelectionMode(
-                QAbstractItemView.SelectionMode.NoSelection)
-            for entry in entries:
-                itm = QListWidgetItem(entry)
-                itm.setFlags(Qt.ItemFlag.ItemIsUserCheckable |
-                             Qt.ItemFlag.ItemIsEnabled)
-                itm.setCheckState(Qt.CheckState.Unchecked)
-                self.selectionList.addItem(itm)
-        else:
-            self.selectionList.setSelectionMode(selectionMode)
-            self.selectionList.addItems(entries)
-        
-        self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Ok).setEnabled(False)
-    
-    @pyqtSlot()
-    def on_selectionList_itemSelectionChanged(self):
-        """
-        Private slot handling a change of the selection.
-        """
-        if not self.__isCheckBoxSelection:
-            self.buttonBox.button(
-                QDialogButtonBox.StandardButton.Ok).setEnabled(
-                    len(self.selectionList.selectedItems()) > 0)
-    
-    def on_selectionList_itemChanged(self, itm):
-        """
-        Private slot handling a change of an item.
-        
-        @param itm reference to the changed item
-        @type QListWidgetItem
-        """
-        if self.__isCheckBoxSelection:
-            if itm.checkState() == Qt.CheckState.Checked:
-                self.__checkCount += 1
-            else:
-                self.__checkCount -= 1
-            self.buttonBox.button(
-                QDialogButtonBox.StandardButton.Ok).setEnabled(
-                self.__checkCount > 0)
-    
-    def getSelection(self):
-        """
-        Public method to retrieve the selected items.
-        
-        @return selected entries
-        @rtype list of str
-        """
-        entries = []
-        if self.__isCheckBoxSelection:
-            for row in range(self.selectionList.count()):
-                item = self.selectionList.item(row)
-                if item.checkState() == Qt.CheckState.Checked:
-                    entries.append(item.text())
-        else:
-            for item in self.selectionList.selectedItems():
-                entries.append(item.text())
-        return entries
--- a/eric7/E5Gui/E5ListSelectionDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>E5ListSelectionDialog</class>
- <widget class="QDialog" name="E5ListSelectionDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>500</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Select from List</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="messageLabel">
-     <property name="text">
-      <string>Select from the list below:</string>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QListWidget" name="selectionList">
-     <property name="alternatingRowColors">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>E5ListSelectionDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>E5ListSelectionDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric7/E5Gui/E5ListView.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing specialized list views.
-"""
-
-from PyQt6.QtCore import Qt, QItemSelectionModel
-from PyQt6.QtWidgets import QListView
-
-
-class E5ListView(QListView):
-    """
-    Class implementing a list view supporting removal of entries.
-    """
-    def keyPressEvent(self, evt):
-        """
-        Protected method implementing special key handling.
-        
-        @param evt reference to the event (QKeyEvent)
-        """
-        if (
-            evt.key() in [Qt.Key.Key_Delete, Qt.Key.Key_Backspace] and
-            self.model() is not None
-        ):
-            self.removeSelected()
-            evt.setAccepted(True)
-        else:
-            super().keyPressEvent(evt)
-    
-    def removeSelected(self):
-        """
-        Public method to remove the selected entries.
-        """
-        if self.model() is None or self.selectionModel() is None:
-            # no models available
-            return
-        
-        row = 0
-        selectedRows = self.selectionModel().selectedRows()
-        for selectedRow in reversed(selectedRows):
-            row = selectedRow.row()
-            self.model().removeRow(row, self.rootIndex())
-        
-        idx = self.model().index(row, 0, self.rootIndex())
-        if not idx.isValid():
-            idx = self.model().index(row - 1, 0, self.rootIndex())
-        self.selectionModel().select(
-            idx,
-            QItemSelectionModel.SelectionFlag.SelectCurrent |
-            QItemSelectionModel.SelectionFlag.Rows)
-        self.setCurrentIndex(idx)
-    
-    def removeAll(self):
-        """
-        Public method to clear the view.
-        """
-        if self.model() is not None:
-            self.model().removeRows(0, self.model().rowCount(self.rootIndex()),
-                                    self.rootIndex())
--- a/eric7/E5Gui/E5MainWindow.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a main window class with styling support.
-"""
-
-from PyQt6.QtCore import QCoreApplication
-from PyQt6.QtWidgets import QMainWindow, QStyleFactory, QApplication
-
-from .E5Application import e5App
-from . import E5MessageBox
-
-
-class E5MainWindow(QMainWindow):
-    """
-    Class implementing a main window with styling support.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-        
-        self.defaultStyleName = QApplication.style().objectName()
-    
-    def setStyle(self, styleName, styleSheetFile):
-        """
-        Public method to set the style of the interface.
-        
-        @param styleName name of the style to set (string)
-        @param styleSheetFile name of a style sheet file to read to overwrite
-            defaults of the given style (string)
-        """
-        # step 1: set the style
-        style = None
-        if styleName != "System" and styleName in QStyleFactory.keys():
-            # __IGNORE_WARNING_Y118__
-            style = QStyleFactory.create(styleName)
-        if style is None:
-            style = QStyleFactory.create(self.defaultStyleName)
-        if style is not None:
-            QApplication.setStyle(style)
-        
-        # step 2: set a style sheet
-        if styleSheetFile:
-            try:
-                with open(styleSheetFile, "r", encoding="utf-8") as f:
-                    styleSheet = f.read()
-            except OSError as msg:
-                E5MessageBox.warning(
-                    self,
-                    QCoreApplication.translate(
-                        "E5MainWindow", "Loading Style Sheet"),
-                    QCoreApplication.translate(
-                        "E5MainWindow",
-                        """<p>The Qt Style Sheet file <b>{0}</b> could"""
-                        """ not be read.<br>Reason: {1}</p>""")
-                    .format(styleSheetFile, str(msg)))
-                return
-        else:
-            styleSheet = ""
-        
-        e5App().setStyleSheet(styleSheet)
--- a/eric7/E5Gui/E5MapWidget.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,352 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2014 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a base class for showing a document map.
-"""
-
-from PyQt6.QtCore import Qt, QSize, QRect, QCoreApplication
-from PyQt6.QtGui import QColor, QBrush, QPainter
-from PyQt6.QtWidgets import QWidget, QAbstractScrollArea
-
-
-class E5MapWidget(QWidget):
-    """
-    Class implementing a base class for showing a document map.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-        self.setAttribute(Qt.WidgetAttribute.WA_OpaquePaintEvent)
-        
-        self.__width = 14
-        self.__lineBorder = 1
-        self.__lineHeight = 2
-        self.__backgroundColor = QColor("#e7e7e7")
-        self.__setSliderColor()
-        
-        self._master = None
-        self.__enabled = False
-        self.__rightSide = True
-        
-        if parent is not None and isinstance(parent, QAbstractScrollArea):
-            self.setMaster(parent)
-    
-    def __setSliderColor(self):
-        """
-        Private method to set the slider color depending upon the background
-        color.
-        """
-        if self.__backgroundColor.toHsv().value() < 128:
-            # dark background, use white slider
-            self.__sliderColor = Qt.GlobalColor.white
-        else:
-            # light background, use black slider
-            self.__sliderColor = Qt.GlobalColor.black
-    
-    def __updateMasterViewportWidth(self):
-        """
-        Private method to update the master's viewport width.
-        """
-        if self._master:
-            if self.__enabled:
-                width = self.__width
-            else:
-                width = 0
-            if self.__rightSide:
-                self._master.setViewportMargins(0, 0, width, 0)
-            else:
-                self._master.setViewportMargins(width, 0, 0, 0)
-    
-    def setMaster(self, master):
-        """
-        Public method to set the map master widget.
-        
-        @param master map master widget (QAbstractScrollArea)
-        """
-        self._master = master
-        self._master.setVerticalScrollBarPolicy(
-            Qt.ScrollBarPolicy.ScrollBarAlwaysOn)
-        self._master.verticalScrollBar().valueChanged.connect(self.update)
-        self._master.verticalScrollBar().rangeChanged.connect(self.update)
-        self.__updateMasterViewportWidth()
-    
-    def setWidth(self, width):
-        """
-        Public method to set the widget width.
-        
-        @param width widget width (integer)
-        """
-        if width != self.__width:
-            self.__width = max(6, width)    # minimum width 6 pixels
-            self.__updateMasterViewportWidth()
-            self.update()
-    
-    def width(self):
-        """
-        Public method to get the widget's width.
-        
-        @return widget width (integer)
-        """
-        return self.__width
-    
-    def setMapPosition(self, onRight):
-        """
-        Public method to set, whether the map should be shown to the right or
-        left of the master widget.
-        
-        @param onRight flag indicating to show the map on the right side of
-            the master widget
-        @type bool
-        """
-        if onRight != self.__rightSide:
-            self.__rightSide = onRight
-            self.__updateMasterViewportWidth()
-            self.update()
-    
-    def isOnRightSide(self):
-        """
-        Public method to test, if the map is shown on the right side of the
-        master widget.
-        
-        @return flag indicating that the map is to the right of the master
-            widget
-        @rtype bool
-        """
-        return self.__rightSide
-    
-    def setLineDimensions(self, border, height):
-        """
-        Public method to set the line (indicator) dimensions.
-        
-        @param border border width on each side in x-direction (integer)
-        @param height height of the line in pixels (integer)
-        """
-        if border != self.__lineBorder or height != self.__lineHeight:
-            self.__lineBorder = max(1, border)  # min border 1 pixel
-            self.__lineHeight = max(1, height)  # min height 1 pixel
-            self.update()
-    
-    def lineDimensions(self):
-        """
-        Public method to get the line (indicator) dimensions.
-        
-        @return tuple with border width (integer) and line height (integer)
-        """
-        return self.__lineBorder, self.__lineHeight
-    
-    def setEnabled(self, enable):
-        """
-        Public method to set the enabled state.
-        
-        @param enable flag indicating the enabled state (boolean)
-        """
-        if enable != self.__enabled:
-            self.__enabled = enable
-            self.setVisible(enable)
-            self.__updateMasterViewportWidth()
-    
-    def isEnabled(self):
-        """
-        Public method to check the enabled state.
-        
-        @return flag indicating the enabled state (boolean)
-        """
-        return self.__enabled
-    
-    def setBackgroundColor(self, color):
-        """
-        Public method to set the widget background color.
-        
-        @param color color for the background (QColor)
-        """
-        if color != self.__backgroundColor:
-            self.__backgroundColor = color
-            self.__setSliderColor()
-            self.update()
-    
-    def backgroundColor(self):
-        """
-        Public method to get the background color.
-        
-        @return background color (QColor)
-        """
-        return QColor(self.__backgroundColor)
-    
-    def sizeHint(self):
-        """
-        Public method to give an indication about the preferred size.
-        
-        @return preferred size (QSize)
-        """
-        return QSize(self.__width, 0)
-    
-    def paintEvent(self, event):
-        """
-        Protected method to handle a paint event.
-        
-        @param event paint event (QPaintEvent)
-        """
-        # step 1: fill the whole painting area
-        painter = QPainter(self)
-        painter.fillRect(event.rect(), self.__backgroundColor)
-        
-        # step 2: paint the indicators
-        self._paintIt(painter)
-        
-        # step 3: paint the slider
-        if self._master:
-            penColor = self.__sliderColor
-            painter.setPen(penColor)
-            brushColor = Qt.GlobalColor.transparent
-            painter.setBrush(QBrush(brushColor))
-            painter.drawRect(self.__generateSliderRange(
-                self._master.verticalScrollBar()))
-    
-    def _paintIt(self, painter):
-        """
-        Protected method for painting the widget's indicators.
-        
-        Note: This method should be implemented by subclasses.
-        
-        @param painter reference to the painter object (QPainter)
-        """
-        pass
-    
-    def mousePressEvent(self, event):
-        """
-        Protected method to handle a mouse button press.
-        
-        @param event reference to the mouse event (QMouseEvent)
-        """
-        if event.button() == Qt.MouseButton.LeftButton and self._master:
-            vsb = self._master.verticalScrollBar()
-            value = self.position2Value(event.position().toPoint().y() - 1)
-            vsb.setValue(value - 0.5 * vsb.pageStep())  # center on page
-        self.__mousePressPos = None
-    
-    def mouseMoveEvent(self, event):
-        """
-        Protected method to handle a mouse moves.
-        
-        @param event reference to the mouse event (QMouseEvent)
-        """
-        if event.buttons() & Qt.MouseButton.LeftButton and self._master:
-            vsb = self._master.verticalScrollBar()
-            value = self.position2Value(event.position().toPoint().y() - 1)
-            vsb.setValue(value - 0.5 * vsb.pageStep())  # center on page
-    
-    def wheelEvent(self, event):
-        """
-        Protected slot handling mouse wheel events.
-        
-        @param event reference to the wheel event (QWheelEvent)
-        """
-        isVertical = event.angleDelta().x() == 0
-        if (
-            self._master and
-            event.modifiers() == Qt.KeyboardModifier.NoModifier and
-            isVertical
-        ):
-            QCoreApplication.sendEvent(self._master.verticalScrollBar(), event)
-    
-    def calculateGeometry(self):
-        """
-        Public method to recalculate the map widget's geometry.
-        """
-        if self._master:
-            cr = self._master.contentsRect()
-            vsb = self._master.verticalScrollBar()
-            if vsb.isVisible():
-                vsbw = vsb.contentsRect().width()
-            else:
-                vsbw = 0
-            margins = self._master.contentsMargins()
-            if margins.right() > vsbw:
-                vsbw = 0
-            if self.__rightSide:
-                self.setGeometry(
-                    QRect(cr.right() - self.__width - vsbw, cr.top(),
-                          self.__width, cr.height()))
-            else:
-                self.setGeometry(
-                    QRect(0, cr.top(), self.__width, cr.height()))
-            self.update()
-    
-    def scaleFactor(self, slider=False):
-        """
-        Public method to determine the scrollbar's scale factor.
-        
-        @param slider flag indicating to calculate the result for the slider
-            (boolean)
-        @return scale factor (float)
-        """
-        if self._master:
-            delta = 0 if slider else 2
-            vsb = self._master.verticalScrollBar()
-            posHeight = vsb.height() - delta - 1
-            valHeight = vsb.maximum() - vsb.minimum() + vsb.pageStep()
-            return float(posHeight) / valHeight
-        else:
-            return 1.0
-    
-    def value2Position(self, value, slider=False):
-        """
-        Public method to convert a scrollbar value into a position.
-        
-        @param value value to convert (integer)
-        @param slider flag indicating to calculate the result for the slider
-            (boolean)
-        @return position (integer)
-        """
-        if self._master:
-            offset = 0 if slider else 1
-            vsb = self._master.verticalScrollBar()
-            return (value - vsb.minimum()) * self.scaleFactor(slider) + offset
-        else:
-            return value
-    
-    def position2Value(self, position, slider=False):
-        """
-        Public method to convert a position into a scrollbar value.
-        
-        @param position scrollbar position to convert (integer)
-        @param slider flag indicating to calculate the result for the slider
-            (boolean)
-        @return scrollbar value (integer)
-        """
-        if self._master:
-            offset = 0 if slider else 1
-            vsb = self._master.verticalScrollBar()
-            return vsb.minimum() + max(
-                0, (position - offset) / self.scaleFactor(slider))
-        else:
-            return position
-    
-    def generateIndicatorRect(self, position):
-        """
-        Public method to generate an indicator rectangle.
-        
-        @param position indicator position (integer)
-        @return indicator rectangle (QRect)
-        """
-        return QRect(self.__lineBorder, position - self.__lineHeight // 2,
-                     self.__width - self.__lineBorder, self.__lineHeight)
-    
-    def __generateSliderRange(self, scrollbar):
-        """
-        Private method to generate the slider rectangle.
-        
-        @param scrollbar reference to the vertical scrollbar (QScrollBar)
-        @return slider rectangle (QRect)
-        """
-        pos1 = self.value2Position(scrollbar.value(), slider=True)
-        pos2 = self.value2Position(scrollbar.value() + scrollbar.pageStep(),
-                                   slider=True)
-        return QRect(0, pos1, self.__width - 1, pos2 - pos1)
--- a/eric7/E5Gui/E5MessageBox.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,305 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing QMessageBox replacements and more convenience function.
-"""
-
-from PyQt6.QtCore import Qt
-from PyQt6.QtWidgets import QMessageBox, QApplication
-
-###############################################################################
-##  Mappings to standard QMessageBox                                         ##
-###############################################################################
-
-# QMessageBox.Icon
-NoIcon = QMessageBox.Icon.NoIcon
-Critical = QMessageBox.Icon.Critical
-Information = QMessageBox.Icon.Information
-Question = QMessageBox.Icon.Question
-Warning = QMessageBox.Icon.Warning       # __IGNORE_WARNING_M131__
-
-##StandardButtons = QMessageBox.StandardButtons
-##
-# QMessageBox.StandardButton
-Abort = QMessageBox.StandardButton.Abort
-Apply = QMessageBox.StandardButton.Apply
-Cancel = QMessageBox.StandardButton.Cancel
-Close = QMessageBox.StandardButton.Close
-Discard = QMessageBox.StandardButton.Discard
-Help = QMessageBox.StandardButton.Help
-Ignore = QMessageBox.StandardButton.Ignore
-No = QMessageBox.StandardButton.No
-NoToAll = QMessageBox.StandardButton.NoToAll
-Ok = QMessageBox.StandardButton.Ok
-Open = QMessageBox.StandardButton.Open
-Reset = QMessageBox.StandardButton.Reset
-RestoreDefaults = QMessageBox.StandardButton.RestoreDefaults
-Retry = QMessageBox.StandardButton.Retry
-Save = QMessageBox.StandardButton.Save
-SaveAll = QMessageBox.StandardButton.SaveAll
-Yes = QMessageBox.StandardButton.Yes
-YesToAll = QMessageBox.StandardButton.YesToAll
-NoButton = QMessageBox.StandardButton.NoButton
-
-# QMessageBox.ButtonRole
-AcceptRole = QMessageBox.ButtonRole.AcceptRole
-ActionRole = QMessageBox.ButtonRole.ActionRole
-ApplyRole = QMessageBox.ButtonRole.ApplyRole
-DestructiveRole = QMessageBox.ButtonRole.DestructiveRole
-InvalidRole = QMessageBox.ButtonRole.InvalidRole
-HelpRole = QMessageBox.ButtonRole.HelpRole
-NoRole = QMessageBox.ButtonRole.NoRole
-RejectRole = QMessageBox.ButtonRole.RejectRole
-ResetRole = QMessageBox.ButtonRole.ResetRole
-YesRole = QMessageBox.ButtonRole.YesRole
-
-###############################################################################
-##  Replacement for the QMessageBox class                                    ##
-###############################################################################
-
-
-class E5MessageBox(QMessageBox):
-    """
-    Class implementing a replacement for QMessageBox.
-    """
-    def __init__(self, icon, title, text, modal=False,
-                 buttons=QMessageBox.StandardButton.NoButton,
-                 parent=None):
-        """
-        Constructor
-        
-        @param icon type of icon to be shown (QMessageBox.Icon)
-        @param title caption of the message box (string)
-        @param text text to be shown by the message box (string)
-        @param modal flag indicating a modal dialog (boolean)
-        @param buttons set of standard buttons to generate (StandardButtons)
-        @param parent parent widget of the message box (QWidget)
-        """
-        super().__init__(parent)
-        self.setIcon(icon)
-        if modal:
-            if parent is not None:
-                self.setWindowModality(Qt.WindowModality.WindowModal)
-            else:
-                self.setWindowModality(Qt.WindowModality.ApplicationModal)
-        else:
-            self.setWindowModality(Qt.WindowModality.NonModal)
-        if title == "":
-            self.setWindowTitle("{0}".format(
-                QApplication.applicationName()))
-        else:
-            self.setWindowTitle("{0} - {1}".format(
-                QApplication.applicationName(), title))
-        self.setText(text)
-        self.setStandardButtons(buttons)
-
-###############################################################################
-##  Replacements for QMessageBox static methods                              ##
-###############################################################################
-
-
-def __messageBox(parent, title, text, icon,
-                 buttons=QMessageBox.StandardButton.Ok,
-                 defaultButton=QMessageBox.StandardButton.NoButton,
-                 textFormat=Qt.TextFormat.AutoText):
-    """
-    Private module function to show a modal message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param icon type of icon to be shown (QMessageBox.Icon)
-    @param buttons flags indicating which buttons to show
-        (QMessageBox.StandardButtons)
-    @param defaultButton flag indicating the default button
-        (QMessageBox.StandardButton)
-    @param textFormat format of the text (Qt.TextFormat)
-    @return button pressed by the user (QMessageBox.StandardButton)
-    """
-    messageBox = QMessageBox(parent)
-    messageBox.setIcon(icon)
-    if parent is not None:
-        messageBox.setWindowModality(Qt.WindowModality.WindowModal)
-    if title == "":
-        messageBox.setWindowTitle("{0}".format(
-            QApplication.applicationName()))
-    else:
-        messageBox.setWindowTitle("{0} - {1}".format(
-            QApplication.applicationName(), title))
-    messageBox.setTextFormat(textFormat)
-    messageBox.setText(text)
-    messageBox.setStandardButtons(buttons)
-    messageBox.setDefaultButton(defaultButton)
-    messageBox.exec()
-    clickedButton = messageBox.clickedButton()
-    if clickedButton is None:
-        return QMessageBox.StandardButton.NoButton
-    else:
-        return messageBox.standardButton(clickedButton)
-
-# the about functions are here for consistancy
-about = QMessageBox.about
-aboutQt = QMessageBox.aboutQt
-
-
-def critical(parent, title, text,
-             buttons=QMessageBox.StandardButton.Ok,
-             defaultButton=QMessageBox.StandardButton.NoButton):
-    """
-    Function to show a modal critical message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param buttons flags indicating which buttons to show
-        (QMessageBox.StandardButtons)
-    @param defaultButton flag indicating the default button
-        (QMessageBox.StandardButton)
-    @return button pressed by the user (QMessageBox.StandardButton)
-    """
-    return __messageBox(parent, title, text, QMessageBox.Icon.Critical,
-                        buttons, defaultButton)
-
-
-def information(parent, title, text,
-                buttons=QMessageBox.StandardButton.Ok,
-                defaultButton=QMessageBox.StandardButton.NoButton):
-    """
-    Function to show a modal information message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param buttons flags indicating which buttons to show
-        (QMessageBox.StandardButtons)
-    @param defaultButton flag indicating the default button
-        (QMessageBox.StandardButton)
-    @return button pressed by the user (QMessageBox.StandardButton)
-    """
-    return __messageBox(parent, title, text, QMessageBox.Icon.Information,
-                        buttons, defaultButton)
-
-
-def question(parent, title, text,
-             buttons=QMessageBox.StandardButton.Ok,
-             defaultButton=QMessageBox.StandardButton.NoButton):
-    """
-    Function to show a modal question message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param buttons flags indicating which buttons to show
-        (QMessageBox.StandardButtons)
-    @param defaultButton flag indicating the default button
-        (QMessageBox.StandardButton)
-    @return button pressed by the user (QMessageBox.StandardButton)
-    """
-    return __messageBox(parent, title, text, QMessageBox.Icon.Question,
-                        buttons, defaultButton)
-
-
-def warning(parent, title, text,
-            buttons=QMessageBox.StandardButton.Ok,
-            defaultButton=QMessageBox.StandardButton.NoButton):
-    """
-    Function to show a modal warning message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param buttons flags indicating which buttons to show
-        (QMessageBox.StandardButtons)
-    @param defaultButton flag indicating the default button
-        (QMessageBox.StandardButton)
-    @return button pressed by the user (QMessageBox.StandardButton)
-    """
-    return __messageBox(parent, title, text, QMessageBox.Icon.Warning,
-                        buttons, defaultButton)
-
-###############################################################################
-##  Additional convenience functions                                         ##
-###############################################################################
-
-
-def yesNo(parent, title, text, icon=Question, yesDefault=False,
-          textFormat=Qt.TextFormat.AutoText):
-    """
-    Function to show a model yes/no message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param icon icon for the dialog (Critical, Information, Question or
-        Warning)
-    @param yesDefault flag indicating that the Yes button should be the
-        default button (boolean)
-    @param textFormat format of the text (Qt.TextFormat)
-    @return flag indicating the selection of the Yes button (boolean)
-    @exception ValueError raised to indicate a bad parameter value
-    """
-    if icon not in [Critical, Information, Question, Warning]:
-        raise ValueError("Bad value for 'icon' parameter.")
-    
-    res = __messageBox(
-        parent, title, text, icon,
-        QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No,
-        yesDefault and QMessageBox.StandardButton.Yes or
-        QMessageBox.StandardButton.No,
-        textFormat)
-    return res == QMessageBox.StandardButton.Yes
-
-
-def retryAbort(parent, title, text, icon=Question,
-               textFormat=Qt.TextFormat.AutoText):
-    """
-    Function to show a model abort/retry message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param icon icon for the dialog (Critical, Information, Question or
-        Warning)
-    @param textFormat format of the text (Qt.TextFormat)
-    @return flag indicating the selection of the Retry button (boolean)
-    @exception ValueError raised to indicate a bad parameter value
-    """
-    if icon not in [Critical, Information, Question, Warning]:
-        raise ValueError("Bad value for 'icon' parameter.")
-    
-    res = __messageBox(
-        parent, title, text, icon,
-        QMessageBox.StandardButton.Retry | QMessageBox.StandardButton.Abort,
-        QMessageBox.StandardButton.Retry,
-        textFormat)
-    return res == QMessageBox.StandardButton.Retry
-
-
-def okToClearData(parent, title, text, saveFunc,
-                  textFormat=Qt.TextFormat.AutoText):
-    """
-    Function to show a model message box to ask for clearing the data.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param saveFunc reference to a function performing the save action. It
-        must be a parameterless function returning a flag indicating success.
-    @param textFormat format of the text (Qt.TextFormat)
-    @return flag indicating that it is ok to clear the data (boolean)
-    """
-    res = __messageBox(
-        parent, title, text, QMessageBox.Icon.Warning,
-        (QMessageBox.StandardButton.Abort |
-         QMessageBox.StandardButton.Discard |
-         QMessageBox.StandardButton.Save),
-        QMessageBox.StandardButton.Save,
-        textFormat)
-    if res == QMessageBox.StandardButton.Abort:
-        return False
-    if res == QMessageBox.StandardButton.Save:
-        return saveFunc()
-    return True
--- a/eric7/E5Gui/E5ModelMenu.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a menu populated from a QAbstractItemModel.
-"""
-
-from PyQt6.QtCore import pyqtSignal, Qt, QModelIndex, QPoint
-from PyQt6.QtGui import QFontMetrics, QDrag, QAction
-from PyQt6.QtWidgets import QMenu, QApplication
-
-import UI.PixmapCache
-
-
-class E5ModelMenu(QMenu):
-    """
-    Class implementing a menu populated from a QAbstractItemModel.
-    
-    @signal activated(QModelIndex) emitted when an action has been triggered
-    """
-    activated = pyqtSignal(QModelIndex)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-        
-        self.__maxRows = -1
-        self.__firstSeparator = -1
-        self.__maxWidth = -1
-        self.__statusBarTextRole = 0
-        self.__separatorRole = 0
-        self.__model = None
-        self.__root = QModelIndex()
-        self.__dragStartPosition = QPoint()
-        
-        self.setAcceptDrops(True)
-        
-        self._mouseButton = Qt.MouseButton.NoButton
-        self._keyboardModifiers = Qt.KeyboardModifier.NoModifier
-        self.__dropRow = -1
-        self.__dropIndex = None
-        
-        # This is to ensure it will be shown on Mac OS X
-        self.addAction("--not populated--")
-        
-        self.aboutToShow.connect(self.__aboutToShow)
-        self.triggered.connect(self.__actionTriggered)
-    
-    def prePopulated(self):
-        """
-        Public method to add any actions before the tree.
-       
-        @return flag indicating if any actions were added
-        """
-        return False
-    
-    def postPopulated(self):
-        """
-        Public method to add any actions after the tree.
-        """
-        pass
-    
-    def setModel(self, model):
-        """
-        Public method to set the model for the menu.
-        
-        @param model reference to the model (QAbstractItemModel)
-        """
-        self.__model = model
-    
-    def model(self):
-        """
-        Public method to get a reference to the model.
-        
-        @return reference to the model (QAbstractItemModel)
-        """
-        return self.__model
-    
-    def setMaxRows(self, rows):
-        """
-        Public method to set the maximum number of entries to show.
-        
-        @param rows maximum number of entries to show (integer)
-        """
-        self.__maxRows = rows
-    
-    def maxRows(self):
-        """
-        Public method to get the maximum number of entries to show.
-        
-        @return maximum number of entries to show (integer)
-        """
-        return self.__maxRows
-    
-    def setFirstSeparator(self, offset):
-        """
-        Public method to set the first separator.
-        
-        @param offset row number of the first separator (integer)
-        """
-        self.__firstSeparator = offset
-    
-    def firstSeparator(self):
-        """
-        Public method to get the first separator.
-        
-        @return row number of the first separator (integer)
-        """
-        return self.__firstSeparator
-    
-    def setRootIndex(self, index):
-        """
-        Public method to set the index of the root item.
-        
-        @param index index of the root item (QModelIndex)
-        """
-        self.__root = index
-    
-    def rootIndex(self):
-        """
-        Public method to get the index of the root item.
-        
-        @return index of the root item (QModelIndex)
-        """
-        return self.__root
-    
-    def setStatusBarTextRole(self, role):
-        """
-        Public method to set the role of the status bar text.
-        
-        @param role role of the status bar text (integer)
-        """
-        self.__statusBarTextRole = role
-    
-    def statusBarTextRole(self):
-        """
-        Public method to get the role of the status bar text.
-        
-        @return role of the status bar text (integer)
-        """
-        return self.__statusBarTextRole
-    
-    def setSeparatorRole(self, role):
-        """
-        Public method to set the role of the separator.
-        
-        @param role role of the separator (integer)
-        """
-        self.__separatorRole = role
-    
-    def separatorRole(self):
-        """
-        Public method to get the role of the separator.
-        
-        @return role of the separator (integer)
-        """
-        return self.__separatorRole
-    
-    def __aboutToShow(self):
-        """
-        Private slot to show the menu.
-        """
-        self.clear()
-        
-        if self.prePopulated():
-            self.addSeparator()
-        max_ = self.__maxRows
-        if max_ != -1:
-            max_ += self.__firstSeparator
-        self.createMenu(self.__root, max_, self, self)
-        self.postPopulated()
-    
-    def createBaseMenu(self):
-        """
-        Public method to get the menu that is used to populate sub menu's.
-        
-        @return reference to the menu (E5ModelMenu)
-        """
-        return E5ModelMenu(self)
-    
-    def createMenu(self, parent, max_, parentMenu=None, menu=None):
-        """
-        Public method to put all the children of a parent into a menu of a
-        given length.
-        
-        @param parent index of the parent item (QModelIndex)
-        @param max_ maximum number of entries (integer)
-        @param parentMenu reference to the parent menu (QMenu)
-        @param menu reference to the menu to be populated (QMenu)
-        """
-        if menu is None:
-            v = parent
-            
-            title = parent.data()
-            modelMenu = self.createBaseMenu()
-            # triggered goes all the way up the menu structure
-            modelMenu.triggered.disconnect(modelMenu.__actionTriggered)
-            modelMenu.setTitle(title)
-            
-            icon = parent.data(Qt.ItemDataRole.DecorationRole)
-            if icon == NotImplemented or icon is None:
-                icon = UI.PixmapCache.getIcon("defaultIcon")
-            modelMenu.setIcon(icon)
-            if parentMenu is not None:
-                parentMenu.addMenu(modelMenu).setData(v)
-            modelMenu.setRootIndex(parent)
-            modelMenu.setModel(self.__model)
-            return
-        
-        if self.__model is None:
-            return
-        
-        end = self.__model.rowCount(parent)
-        if max_ != -1:
-            end = min(max_, end)
-        
-        for i in range(end):
-            idx = self.__model.index(i, 0, parent)
-            if self.__model.hasChildren(idx):
-                self.createMenu(idx, -1, menu)
-            else:
-                if (
-                    self.__separatorRole != 0 and
-                    idx.data(self.__separatorRole)
-                ):
-                    self.addSeparator()
-                else:
-                    menu.addAction(self.__makeAction(idx))
-            
-            if menu == self and i == self.__firstSeparator - 1:
-                self.addSeparator()
-    
-    def __makeAction(self, idx):
-        """
-        Private method to create an action.
-        
-        @param idx index of the item to create an action for (QModelIndex)
-        @return reference to the created action (QAction)
-        """
-        icon = idx.data(Qt.ItemDataRole.DecorationRole)
-        if icon == NotImplemented or icon is None:
-            icon = UI.PixmapCache.getIcon("defaultIcon")
-        action = self.makeAction(icon, idx.data(), self)
-        action.setStatusTip(idx.data(self.__statusBarTextRole))
-        
-        v = idx
-        action.setData(v)
-        
-        return action
-    
-    def makeAction(self, icon, text, parent):
-        """
-        Public method to create an action.
-        
-        @param icon icon of the action (QIcon)
-        @param text text of the action (string)
-        @param parent reference to the parent object (QObject)
-        @return reference to the created action (QAction)
-        """
-        fm = QFontMetrics(self.font())
-        if self.__maxWidth == -1:
-            try:
-                self.__maxWidth = fm.horizontalAdvance("m") * 30
-            except AttributeError:
-                self.__maxWidth = fm.width('m') * 30
-        smallText = fm.elidedText(text, Qt.TextElideMode.ElideMiddle,
-                                  self.__maxWidth)
-        
-        return QAction(icon, smallText, parent)
-    
-    def __actionTriggered(self, action):
-        """
-        Private slot to handle the triggering of an action.
-        
-        @param action reference to the action that was triggered (QAction)
-        """
-        idx = self.index(action)
-        if idx.isValid():
-            self._keyboardModifiers = QApplication.keyboardModifiers()
-            self.activated[QModelIndex].emit(idx)
-    
-    def index(self, action):
-        """
-        Public method to get the index of an action.
-        
-        @param action reference to the action to get the index for (QAction)
-        @return index of the action (QModelIndex)
-        """
-        if action is None:
-            return QModelIndex()
-        
-        idx = action.data()
-        if idx is None:
-            return QModelIndex()
-        
-        if not isinstance(idx, QModelIndex):
-            return QModelIndex()
-        
-        return idx
-    
-    def dragEnterEvent(self, evt):
-        """
-        Protected method to handle drag enter events.
-        
-        @param evt reference to the event (QDragEnterEvent)
-        """
-        if self.__model is not None:
-            mimeTypes = self.__model.mimeTypes()
-            for mimeType in mimeTypes:
-                if evt.mimeData().hasFormat(mimeType):
-                    evt.acceptProposedAction()
-        
-        super().dragEnterEvent(evt)
-    
-    def dropEvent(self, evt):
-        """
-        Protected method to handle drop events.
-        
-        @param evt reference to the event (QDropEvent)
-        """
-        if self.__model is not None:
-            act = self.actionAt(evt.position().toPoint())
-            parentIndex = self.__root
-            if act is None:
-                row = self.__model.rowCount(self.__root)
-            else:
-                idx = self.index(act)
-                if not idx.isValid():
-                    super().dropEvent(evt)
-                    return
-                
-                row = idx.row()
-                if self.__model.hasChildren(idx):
-                    parentIndex = idx
-                    row = self.__model.rowCount(idx)
-            
-            self.__dropRow = row
-            self.__dropIndex = parentIndex
-            evt.acceptProposedAction()
-            self.__model.dropMimeData(evt.mimeData(), evt.dropAction(),
-                                      row, 0, parentIndex)
-            self.close()
-        
-        super().dropEvent(evt)
-    
-    def mousePressEvent(self, evt):
-        """
-        Protected method handling mouse press events.
-        
-        @param evt reference to the event object (QMouseEvent)
-        """
-        if evt.button() == Qt.MouseButton.LeftButton:
-            self.__dragStartPosition = evt.position().toPoint()
-        super().mousePressEvent(evt)
-    
-    def mouseMoveEvent(self, evt):
-        """
-        Protected method to handle mouse move events.
-        
-        @param evt reference to the event (QMouseEvent)
-        """
-        if self.__model is None:
-            super().mouseMoveEvent(evt)
-            return
-        
-        if not (evt.buttons() & Qt.MouseButton.LeftButton):
-            super().mouseMoveEvent(evt)
-            return
-        
-        if self.__dragStartPosition.isNull():
-            super().mouseMoveEvent(evt)
-            return
-        
-        manhattanLength = (evt.position().toPoint() -
-                           self.__dragStartPosition).manhattanLength()
-        if manhattanLength <= QApplication.startDragDistance():
-            super().mouseMoveEvent(evt)
-            return
-        
-        act = self.actionAt(self.__dragStartPosition)
-        if act is None:
-            super().mouseMoveEvent(evt)
-            return
-        
-        idx = self.index(act)
-        if not idx.isValid():
-            super().mouseMoveEvent(evt)
-            return
-        
-        drag = QDrag(self)
-        drag.setMimeData(self.__model.mimeData([idx]))
-        actionRect = self.actionGeometry(act)
-        drag.setPixmap(self.grab(actionRect))
-        
-        if drag.exec() == Qt.DropAction.MoveAction:
-            row = idx.row()
-            if self.__dropIndex == idx.parent() and self.__dropRow <= row:
-                row += 1
-            self.__model.removeRow(row, self.__root)
-            
-            if not self.isAncestorOf(drag.target()):
-                self.close()
-            else:
-                self.aboutToShow.emit()
-    
-    def mouseReleaseEvent(self, evt):
-        """
-        Protected method handling mouse release events.
-        
-        @param evt reference to the event object (QMouseEvent)
-        """
-        self._mouseButton = evt.button()
-        self._keyboardModifiers = evt.modifiers()
-        
-        if evt.button() == Qt.MouseButton.LeftButton:
-            self.__dragStartPosition = QPoint()
-        
-        super().mouseReleaseEvent(evt)
-    
-    def resetFlags(self):
-        """
-        Public method to reset the saved internal state.
-        """
-        self._mouseButton = Qt.MouseButton.NoButton
-        self._keyboardModifiers = Qt.KeyboardModifier.NoModifier
-    
-    def removeEntry(self, idx):
-        """
-        Public method to remove a menu entry.
-        
-        @param idx index of the entry to be removed (QModelIndex)
-        """
-        row = idx.row()
-        self.__model.removeRow(row, self.__root)
-        self.aboutToShow.emit()
--- a/eric7/E5Gui/E5ModelToolBar.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,293 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a tool bar populated from a QAbstractItemModel.
-"""
-
-from PyQt6.QtCore import pyqtSignal, Qt, QModelIndex, QPoint, QEvent
-from PyQt6.QtGui import QDrag, QIcon
-from PyQt6.QtWidgets import QApplication, QToolBar, QToolButton
-
-
-class E5ModelToolBar(QToolBar):
-    """
-    Class implementing a tool bar populated from a QAbstractItemModel.
-    
-    @signal activated(QModelIndex) emitted when an action has been triggered
-    """
-    activated = pyqtSignal(QModelIndex)
-    
-    def __init__(self, title=None, parent=None):
-        """
-        Constructor
-        
-        @param title title for the tool bar (string)
-        @param parent reference to the parent widget (QWidget)
-        """
-        if title is not None:
-            super().__init__(title, parent)
-        else:
-            super().__init__(parent)
-        
-        self.__model = None
-        
-        self.__root = QModelIndex()
-        self.__dragStartPosition = QPoint()
-        
-        if self.isVisible():
-            self._build()
-        
-        self.setAcceptDrops(True)
-        
-        self._mouseButton = Qt.MouseButton.NoButton
-        self._keyboardModifiers = Qt.KeyboardModifier.NoModifier
-        self.__dropRow = -1
-        self.__dropIndex = None
-    
-    def setModel(self, model):
-        """
-        Public method to set the model for the tool bar.
-        
-        @param model reference to the model (QAbstractItemModel)
-        """
-        if self.__model is not None:
-            self.__model.modelReset.disconnect(self._build)
-            self.__model.rowsInserted[QModelIndex, int, int].disconnect(
-                self._build)
-            self.__model.rowsRemoved[QModelIndex, int, int].disconnect(
-                self._build)
-            self.__model.dataChanged.disconnect(
-                self._build)
-        
-        self.__model = model
-        
-        if self.__model is not None:
-            self.__model.modelReset.connect(self._build)
-            self.__model.rowsInserted[QModelIndex, int, int].connect(
-                self._build)
-            self.__model.rowsRemoved[QModelIndex, int, int].connect(
-                self._build)
-            self.__model.dataChanged.connect(
-                self._build)
-    
-    def model(self):
-        """
-        Public method to get a reference to the model.
-        
-        @return reference to the model (QAbstractItemModel)
-        """
-        return self.__model
-    
-    def setRootIndex(self, idx):
-        """
-        Public method to set the root index.
-        
-        @param idx index to be set as the root index (QModelIndex)
-        """
-        self.__root = idx
-    
-    def rootIndex(self):
-        """
-        Public method to get the root index.
-        
-        @return root index (QModelIndex)
-        """
-        return self.__root
-    
-    def _build(self):
-        """
-        Protected slot to build the tool bar.
-        """
-        if self.__model is None:
-            return
-        
-        self.clear()
-        
-        for i in range(self.__model.rowCount(self.__root)):
-            idx = self.__model.index(i, 0, self.__root)
-            
-            title = idx.data(Qt.ItemDataRole.DisplayRole)
-            icon = idx.data(Qt.ItemDataRole.DecorationRole)
-            if icon == NotImplemented or icon is None:
-                icon = QIcon()
-            folder = self.__model.hasChildren(idx)
-            
-            act = self.addAction(icon, title)
-            act.setData(idx)
-            
-            button = self.widgetForAction(act)
-            button.installEventFilter(self)
-            
-            if folder:
-                menu = self._createMenu()
-                menu.setModel(self.__model)
-                menu.setRootIndex(idx)
-                button.setMenu(menu)
-                button.setPopupMode(
-                    QToolButton.ToolButtonPopupMode.InstantPopup)
-                button.setToolButtonStyle(
-                    Qt.ToolButtonStyle.ToolButtonTextBesideIcon)
-    
-    def index(self, action):
-        """
-        Public method to get the index of an action.
-        
-        @param action reference to the action to get the index for (QAction)
-        @return index of the action (QModelIndex)
-        """
-        if action is None:
-            return QModelIndex()
-        
-        idx = action.data()
-        if idx is None:
-            return QModelIndex()
-        
-        if not isinstance(idx, QModelIndex):
-            return QModelIndex()
-        
-        return idx
-    
-    def _createMenu(self):
-        """
-        Protected method to create the menu for a tool bar action.
-        
-        @return menu for a tool bar action (E5ModelMenu)
-        """
-        from .E5ModelMenu import E5ModelMenu
-        return E5ModelMenu(self)
-    
-    def eventFilter(self, obj, evt):
-        """
-        Public method to handle event for other objects.
-        
-        @param obj reference to the object (QObject)
-        @param evt reference to the event (QEvent)
-        @return flag indicating that the event should be filtered out (boolean)
-        """
-        if evt.type() == QEvent.Type.MouseButtonRelease:
-            self._mouseButton = evt.button()
-            self._keyboardModifiers = evt.modifiers()
-            act = obj.defaultAction()
-            idx = self.index(act)
-            if idx.isValid():
-                self.activated[QModelIndex].emit(idx)
-        elif (
-            evt.type() == QEvent.Type.MouseButtonPress and
-            evt.buttons() & Qt.MouseButton.LeftButton
-        ):
-            self.__dragStartPosition = self.mapFromGlobal(evt.globalPosition().toPoint())
-        
-        return False
-    
-    def dragEnterEvent(self, evt):
-        """
-        Protected method to handle drag enter events.
-        
-        @param evt reference to the event (QDragEnterEvent)
-        """
-        if self.__model is not None:
-            mimeTypes = self.__model.mimeTypes()
-            for mimeType in mimeTypes:
-                if evt.mimeData().hasFormat(mimeType):
-                    evt.acceptProposedAction()
-        
-        super().dragEnterEvent(evt)
-    
-    def dropEvent(self, evt):
-        """
-        Protected method to handle drop events.
-        
-        @param evt reference to the event (QDropEvent)
-        @exception RuntimeError raised to indicate an invalid model index
-        """
-        if self.__model is not None:
-            act = self.actionAt(evt.position().toPoint())
-            parentIndex = self.__root
-            if act is None:
-                row = self.__model.rowCount(self.__root)
-            else:
-                idx = self.index(act)
-                if not idx.isValid():
-                    raise RuntimeError("invalid index")
-                row = idx.row()
-                if self.__model.hasChildren(idx):
-                    parentIndex = idx
-                    row = self.__model.rowCount(idx)
-            
-            self.__dropRow = row
-            self.__dropIndex = parentIndex
-            evt.acceptProposedAction()
-            self.__model.dropMimeData(evt.mimeData(), evt.dropAction(),
-                                      row, 0, parentIndex)
-        
-        super().dropEvent(evt)
-    
-    def mouseMoveEvent(self, evt):
-        """
-        Protected method to handle mouse move events.
-        
-        @param evt reference to the event (QMouseEvent)
-        @exception RuntimeError raised to indicate an invalid model index
-        """
-        if self.__model is None:
-            super().mouseMoveEvent(evt)
-            return
-        
-        if not (evt.buttons() & Qt.MouseButton.LeftButton):
-            super().mouseMoveEvent(evt)
-            return
-        
-        manhattanLength = (evt.position().toPoint() -
-                           self.__dragStartPosition).manhattanLength()
-        if manhattanLength <= QApplication.startDragDistance():
-            super().mouseMoveEvent(evt)
-            return
-        
-        act = self.actionAt(self.__dragStartPosition)
-        if act is None:
-            super().mouseMoveEvent(evt)
-            return
-        
-        idx = self.index(act)
-        if not idx.isValid():
-            raise RuntimeError("invalid index")
-        
-        drag = QDrag(self)
-        drag.setMimeData(self.__model.mimeData([idx]))
-        actionRect = self.actionGeometry(act)
-        drag.setPixmap(self.grab(actionRect))
-        
-        if drag.exec() == Qt.DropAction.MoveAction:
-            row = idx.row()
-            if self.__dropIndex == idx.parent() and self.__dropRow <= row:
-                row += 1
-            self.__model.removeRow(row, self.__root)
-    
-    def hideEvent(self, evt):
-        """
-        Protected method to handle hide events.
-        
-        @param evt reference to the hide event (QHideEvent)
-        """
-        self.clear()
-        super().hideEvent(evt)
-    
-    def showEvent(self, evt):
-        """
-        Protected method to handle show events.
-        
-        @param evt reference to the hide event (QHideEvent)
-        """
-        if len(self.actions()) == 0:
-            self._build()
-        super().showEvent(evt)
-    
-    def resetFlags(self):
-        """
-        Public method to reset the saved internal state.
-        """
-        self._mouseButton = Qt.MouseButton.NoButton
-        self._keyboardModifiers = Qt.KeyboardModifier.NoModifier
--- a/eric7/E5Gui/E5OverrideCursor.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2020 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a context manager class for an override cursor and a
-QProcess class controlling an override cursor.
-"""
-
-import contextlib
-
-from PyQt6.QtCore import pyqtSlot, Qt, QProcess, QEventLoop
-from PyQt6.QtGui import QCursor, QGuiApplication
-
-
-class E5OverrideCursor(contextlib.AbstractContextManager):
-    """
-    Class implementing a context manager class for an override cursor.
-    """
-    def __init__(self, cursorShape=Qt.CursorShape.WaitCursor):
-        """
-        Constructor
-        
-        @param cursorShape shape of the override cursor
-        @type Qt.CursorShape
-        """
-        self.__cursorShape = cursorShape
-    
-    def __enter__(self):
-        """
-        Special method called when entering the runtime ccontext.
-        
-        @return reference to the context manager object
-        @rtype E5OverrideCursor
-        """
-        QGuiApplication.setOverrideCursor(QCursor(self.__cursorShape))
-        QGuiApplication.processEvents(
-            QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
-        
-        return self
-    
-    def __exit__(self, exc_type, exc_value, traceback):
-        """
-        Special method called when exiting the runtime ccontext.
-        
-        @param exc_type type of an exception raised in the runtime context
-        @param exc_value value of an exception raised in the runtime context
-        @param traceback traceback of an exception raised in the runtime
-            context
-        @return always returns None to not suppress any exception
-        @rtype None
-        """
-        QGuiApplication.restoreOverrideCursor()
-        QGuiApplication.processEvents(
-            QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
-        
-        return None     # __IGNORE_WARNING_M831__
-
-
-class E5OverridenCursor(contextlib.AbstractContextManager):
-    """
-    Class implementing a context manager class for an overriden cursor.
-    
-    The cursor is reset upon entering the runtime context and restored
-    upon exiting it.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        self.__cursorShape = None
-    
-    def __enter__(self):
-        """
-        Special method called when entering the runtime ccontext.
-        
-        @return reference to the context manager object
-        @rtype E5OverrideCursor
-        """
-        cursor = QGuiApplication.overrideCursor()
-        if cursor is not None:
-            self.__cursorShape = cursor.shape()
-            QGuiApplication.restoreOverrideCursor()
-            QGuiApplication.processEvents(
-                QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
-        
-        return self
-    
-    def __exit__(self, exc_type, exc_value, traceback):
-        """
-        Special method called when exiting the runtime ccontext.
-        
-        @param exc_type type of an exception raised in the runtime context
-        @param exc_value value of an exception raised in the runtime context
-        @param traceback traceback of an exception raised in the runtime
-            context
-        @return always returns None to not suppress any exception
-        @rtype None
-        """
-        if self.__cursorShape is not None:
-            QGuiApplication.setOverrideCursor(QCursor(self.__cursorShape))
-            QGuiApplication.processEvents(
-                QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
-        
-        return None     # __IGNORE_WARNING_M831__
-
-
-class E5OverrideCursorProcess(QProcess):
-    """
-    Class implementing a QProcess subclass controlling an override cursor.
-    """
-    def __init__(self, parent=None, cursorShape=Qt.CursorShape.WaitCursor):
-        """
-        Constructor
-        
-        @param parent reference to the parent object
-        @type QObject
-        @param cursorShape shape of the override cursor
-        @type Qt.CursorShape
-        """
-        super().__init__(parent)
-        
-        self.__cursorShape = cursorShape
-        
-        self.started.connect(self.__processStarted)
-        self.finished.connect(self.__processFinished)
-    
-    @pyqtSlot()
-    def __processStarted(self):
-        """
-        Private slot setting the cursor after the process has started.
-        """
-        QGuiApplication.setOverrideCursor(QCursor(self.__cursorShape))
-        QGuiApplication.processEvents(
-            QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
-    
-    @pyqtSlot()
-    def __processFinished(self):
-        """
-        Private slot resetting the cursor when the process finished.
-        """
-        QGuiApplication.restoreOverrideCursor()
-        QGuiApplication.processEvents(
-            QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
--- a/eric7/E5Gui/E5PassivePopup.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,254 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing dialog-like popup that displays messages without
-interrupting the user.
-"""
-
-import enum
-
-from PyQt6.QtCore import pyqtSignal, Qt, QTimer, QPoint, QRect
-from PyQt6.QtWidgets import QFrame, QVBoxLayout, QApplication
-
-
-class E5PassivePopupStyle(enum.Enum):
-    """
-    Class defining the popup styles.
-    """
-    BOXED = 0           # box with no shadow
-    STYLED = 1          # styled panel with no shadow
-    CUSTOM = 128        # reserved for extensions
-
-
-class E5PassivePopup(QFrame):
-    """
-    Class implementing dialog-like popup that displays messages without
-    interrupting the user.
-    
-    @signal clicked emitted to indicate a mouse button click
-    """
-    DefaultPopupTime = 6 * 1000     # time im milliseconds
-    
-    clicked = pyqtSignal((), (QPoint, ))
-    
-    def __init__(self, style=E5PassivePopupStyle.BOXED, parent=None):
-        """
-        Constructor
-        
-        @param style style of the popup
-        @type E5PassivePopupStyle
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(None)
-        
-        self.__msgView = None
-        self.__topLayout = None
-        self.__hideDelay = E5PassivePopup.DefaultPopupTime
-        self.__hideTimer = QTimer(self)
-        self.__autoDelete = False
-        self.__fixedPosition = QPoint()
-        
-        self.setWindowFlags(
-            Qt.WindowType.Tool |
-            Qt.WindowType.X11BypassWindowManagerHint |
-            Qt.WindowType.WindowStaysOnTopHint |
-            Qt.WindowType.FramelessWindowHint
-        )
-        if style == E5PassivePopupStyle.STYLED:
-            self.setFrameStyle(QFrame.Shape.StyledPanel | QFrame.Shadow.Plain)
-        else:
-            # default style is Boxed - Plain
-            self.setFrameStyle(QFrame.Shape.Box | QFrame.Shadow.Plain)
-        self.setLineWidth(2)
-        self.__hideTimer.timeout.connect(self.hide)
-        self.clicked.connect(self.hide)
-        
-        self.__customData = {}  # dictionary to store some custom data
-    
-    def setView(self, child):
-        """
-        Public method to set the message view.
-        
-        @param child reference to the widget to set as the message view
-            (QWidget)
-        """
-        self.__msgView = child
-        self.__topLayout = QVBoxLayout(self)
-        self.__topLayout.addWidget(self.__msgView)
-        self.__topLayout.activate()
-    
-    def view(self):
-        """
-        Public method to get a reference to the message view.
-        
-        @return reference to the message view (QWidget)
-        """
-        return self.__msgView
-    
-    def setVisible(self, visible):
-        """
-        Public method to show or hide the popup.
-        
-        @param visible flag indicating the visibility status (boolean)
-        """
-        if not visible:
-            super().setVisible(visible)
-            return
-        
-        if self.size() != self.sizeHint():
-            self.resize(self.sizeHint())
-        
-        if self.__fixedPosition.isNull():
-            self.__positionSelf()
-        else:
-            self.move(self.__fixedPosition)
-        super().setVisible(True)
-        
-        delay = self.__hideDelay
-        if delay < 0:
-            delay = E5PassivePopup.DefaultPopupTime
-        if delay > 0:
-            self.__hideTimer.start(delay)
-    
-    def show(self, p=None):
-        """
-        Public slot to show the popup.
-        
-        @param p position for the popup (QPoint)
-        """
-        if p is not None:
-            self.__fixedPosition = p
-        super().show()
-    
-    def setTimeout(self, delay):
-        """
-        Public method to set the delay for the popup is removed automatically.
-        
-        Setting the delay to 0 disables the timeout. If you're doing this, you
-        may want to connect the clicked() signal to the hide() slot. Setting
-        the delay to -1 makes it use the default value.
-        
-        @param delay value for the delay in milliseconds (integer)
-        """
-        self.__hideDelay = delay
-        if self.__hideTimer.isActive():
-            if delay:
-                if delay == -1:
-                    delay = E5PassivePopup.DefaultPopupTime
-                self.__hideTimer.start(delay)
-            else:
-                self.__hideTimer.stop()
-    
-    def timeout(self):
-        """
-        Public method to get the delay before the popup is removed
-        automatically.
-        
-        @return the delay before the popup is removed automatically (integer)
-        """
-        return self.__hideDelay
-    
-    def mouseReleaseEvent(self, evt):
-        """
-        Protected method to handle a mouse release event.
-        
-        @param evt reference to the mouse event (QMouseEvent)
-        """
-        self.clicked.emit()
-        self.clicked.emit(evt.position().toPoint())
-    
-    def hideEvent(self, evt):
-        """
-        Protected method to handle the hide event.
-        
-        @param evt reference to the hide event (QHideEvent)
-        """
-        self.__hideTimer.stop()
-    
-    def __defaultArea(self):
-        """
-        Private method to determine the default rectangle to be passed to
-        moveNear().
-        
-        @return default rectangle (QRect)
-        """
-        return QRect(100, 100, 200, 200)
-    
-    def __positionSelf(self):
-        """
-        Private method to position the popup.
-        """
-        self.__moveNear(self.__defaultArea())
-    
-    def __moveNear(self, target):
-        """
-        Private method to move the popup to be adjacent to the specified
-        rectangle.
-        
-        @param target rectangle to be placed at (QRect)
-        """
-        pos = self.__calculateNearbyPoint(target)
-        self.move(pos.x(), pos.y())
-    
-    def __calculateNearbyPoint(self, target):
-        """
-        Private method to calculate the position to place the popup near the
-        specified rectangle.
-        
-        @param target rectangle to be placed at (QRect)
-        @return position to place the popup (QPoint)
-        """
-        pos = target.topLeft()
-        x = pos.x()
-        y = pos.y()
-        w = self.minimumSizeHint().width()
-        h = self.minimumSizeHint().height()
-        
-        r = QApplication.screenAt(QPoint(x + w // 2, y + h // 2)).geometry()
-        
-        if x < r.center().x():
-            x += target.width()
-        else:
-            x -= w
-        
-        # It's apparently trying to go off screen, so display it ALL at the
-        # bottom.
-        if (y + h) > r.bottom():
-            y = r.bottom() - h
-        
-        if (x + w) > r.right():
-            x = r.right() - w
-        
-        if y < r.top():
-            y = r.top()
-        
-        if x < r.left():
-            x = r.left()
-        
-        return QPoint(x, y)
-    
-    def setCustomData(self, key, data):
-        """
-        Public method to set some custom data.
-        
-        @param key key for the custom data
-        @type str
-        @param data data to be stored
-        @type any
-        """
-        self.__customData[key] = data
-    
-    def getCustomData(self, key):
-        """
-        Public method to get some custom data.
-        
-        @param key key for the custom data
-        @type str
-        @return stored data
-        @rtype any
-        """
-        return self.__customData[key]
--- a/eric7/E5Gui/E5PasswordMeter.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2011 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a custom widget indicating the strength of a password.
-"""
-
-from PyQt6.QtWidgets import QProgressBar
-
-from Utilities.PasswordChecker import PasswordChecker
-
-
-class E5PasswordMeter(QProgressBar):
-    """
-    Class implementing a custom widget indicating the strength of a password.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-        
-        super().setTextVisible(False)
-        super().setMaximum(100)
-        self.__increment = 100 // (PasswordChecker.Complexity_VeryStrong + 1)
-        
-        self.__indicatorColors = [
-            "#ff0000",      # red
-            "#ff8800",      # orange
-            "#ffff00",      # yellow
-            "#ccff00",      # yellow green
-            "#00ff00",      # green
-        ]
-        self.__noIndicator = "#ffffff"
-        
-        self.__styleSheetTemplate = (
-            "QProgressBar {{"
-            " border: 2px solid black;"
-            " border-radius: 5px;"
-            " text-align: center; }}"
-            "QProgressBar::chunk:horizontal {{"
-            " background-color: {0}; }}"
-        )
-        self.setStyleSheet(
-            self.__styleSheetTemplate.format(self.__noIndicator))
-    
-    def checkPasswordStrength(self, password):
-        """
-        Public slot to check the password strength and update the
-        progress bar accordingly.
-        
-        @param password password to be checked (string)
-        """
-        strength = PasswordChecker().checkPassword(password)
-        self.setStyleSheet(self.__styleSheetTemplate.format(
-            self.__indicatorColors[strength]))
-        super().setValue(
-            (strength + 1) * self.__increment)
-    
-    def setValue(self, value):
-        """
-        Public method to set the value.
-        
-        Overwritten to do nothing.
-        
-        @param value value (integer)
-        """
-        pass
-    
-    def setMaximum(self, value):
-        """
-        Public method to set the maximum value.
-        
-        Overwritten to do nothing.
-        
-        @param value maximum value (integer)
-        """
-        pass
-    
-    def setMinimum(self, value):
-        """
-        Public method to set the minimal value.
-        
-        Overwritten to do nothing.
-        
-        @param value minimum value (integer)
-        """
-        pass
-
-if __name__ == "__main__":
-    import sys
-    from PyQt6.QtWidgets import QApplication
-    
-    app = QApplication(sys.argv)
-    meter = E5PasswordMeter()
-    meter.show()
-    meter.checkPasswordStrength("Blah2+")
-    app.exec()
--- a/eric7/E5Gui/E5PathPicker.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,718 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a path picker widget.
-"""
-
-import enum
-import os
-
-from PyQt6.QtCore import pyqtSignal, Qt, QFileInfo, QCoreApplication, QDir
-from PyQt6.QtWidgets import (
-    QWidget, QHBoxLayout, QToolButton, QSizePolicy, QLineEdit, QComboBox
-)
-
-from . import E5FileDialog
-from .E5Completers import E5FileCompleter, E5DirCompleter
-
-import UI.PixmapCache
-
-
-class E5PathPickerModes(enum.Enum):
-    """
-    Class implementing the path picker modes.
-    """
-    OPEN_FILE_MODE = 0
-    OPEN_FILES_MODE = 1
-    SAVE_FILE_MODE = 2
-    SAVE_FILE_ENSURE_EXTENSION_MODE = 3
-    SAVE_FILE_OVERWRITE_MODE = 4
-    DIRECTORY_MODE = 5
-    DIRECTORY_SHOW_FILES_MODE = 6
-    CUSTOM_MODE = 99
-    NO_MODE = 100
-
-
-class E5PathPickerBase(QWidget):
-    """
-    Class implementing the base of a path picker widget consisting of a
-    line edit or combo box and a tool button to open a file dialog.
-    
-    @signal textChanged(path) emitted when the entered path has changed
-        (line edit based widget)
-    @signal editTextChanged(path) emitted when the entered path has changed
-        (combo box based widget)
-    @signal pathSelected(path) emitted after a path has been selected via the
-        file dialog
-    @signal aboutToShowPathPickerDialog emitted before the file dialog is shown
-    @signal pickerButtonClicked emitted when the picker button was pressed and
-        the widget mode is custom
-    """
-    DefaultMode = E5PathPickerModes.NO_MODE
-    
-    textChanged = pyqtSignal(str)
-    editTextChanged = pyqtSignal(str)
-    pathSelected = pyqtSignal(str)
-    aboutToShowPathPickerDialog = pyqtSignal()
-    pickerButtonClicked = pyqtSignal()
-    
-    def __init__(self, parent=None, useLineEdit=True):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget
-        @type QWidget
-        @param useLineEdit flag indicating the use of a line edit
-        @type bool
-        """
-        super().__init__(parent)
-        
-        self.__lineEditKind = useLineEdit
-        
-        self.__mode = E5PathPicker.DefaultMode
-        self.__editorEnabled = True
-        
-        self._completer = None
-        self.__filters = ""
-        self.__defaultDirectory = ""
-        self.__windowTitle = ""
-        
-        self.__layout = QHBoxLayout(self)
-        self.__layout.setSpacing(0)
-        self.__layout.setContentsMargins(0, 0, 0, 0)
-        self.setLayout(self.__layout)
-        
-        if useLineEdit:
-            self._editor = QLineEdit(self)
-            self._editor.setPlaceholderText(QCoreApplication.translate(
-                    "E5PathPickerBase", "Enter Path Name"))
-            self._editor.setClearButtonEnabled(True)
-        else:
-            self._editor = QComboBox(self)
-            self._editor.setEditable(True)
-            self._editor.lineEdit().setPlaceholderText(
-                QCoreApplication.translate(
-                    "E5PathPickerBase", "Enter Path Name"))
-            self._editor.lineEdit().setClearButtonEnabled(True)
-        
-        self.__button = QToolButton(self)
-        self.__button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly)
-        self.__button.setIcon(UI.PixmapCache.getIcon("open"))
-        
-        self.__layout.addWidget(self._editor)
-        self.__layout.addWidget(self.__button)
-        
-        self.__button.clicked.connect(self.__showPathPickerDialog)
-        if useLineEdit:
-            self._editor.textEdited.connect(self.__pathEdited)
-            self._editor.textChanged.connect(self.textChanged)
-        else:
-            self._editor.editTextChanged.connect(self.editTextChanged)
-        
-        self.setFocusProxy(self._editor)
-        self.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
-        self.setSizePolicy(QSizePolicy.Policy.Expanding,
-                           QSizePolicy.Policy.Preferred)
-        
-        self.__button.setEnabled(self.__mode != E5PathPickerModes.NO_MODE)
-    
-    def __pathEdited(self, path):
-        """
-        Private slot handling editing of the path.
-        
-        @param path current text of the path line edit
-        @type str
-        """
-        if self._completer and not self._completer.popup().isVisible():
-            self._completer.setRootPath(QDir.toNativeSeparators(path))
-    
-    def setMode(self, mode):
-        """
-        Public method to set the path picker mode.
-        
-        @param mode picker mode
-        @type E5PathPickerModes
-        @exception ValueError raised to indicate a bad parameter value
-        """
-        if mode not in E5PathPickerModes:
-            raise ValueError("Bad value for 'mode' parameter.")
-        
-        oldMode = self.__mode
-        self.__mode = mode
-        
-        if mode != oldMode or (self.__lineEditKind and not self._completer):
-            if self.__lineEditKind and self._completer:
-                # Remove current completer
-                self._editor.setCompleter(None)
-                self._completer = None
-            
-            if mode != E5PathPickerModes.NO_MODE:
-                if self.__lineEditKind:
-                    # Set a new completer
-                    if mode == E5PathPickerModes.DIRECTORY_MODE:
-                        self._completer = E5DirCompleter(self._editor)
-                    else:
-                        self._completer = E5FileCompleter(self._editor)
-                
-                # set inactive text
-                if mode == E5PathPickerModes.OPEN_FILES_MODE:
-                    self._editor.setPlaceholderText(
-                        self.tr("Enter Path Names separated by ';'"))
-                else:
-                    self._editor.setPlaceholderText(
-                        self.tr("Enter Path Name"))
-        self.__button.setEnabled(self.__mode != E5PathPickerModes.NO_MODE)
-    
-    def mode(self):
-        """
-        Public method to get the path picker mode.
-        
-        @return path picker mode
-        @rtype E5PathPickerModes
-        """
-        return self.__mode
-    
-    def setPickerEnabled(self, enable):
-        """
-        Public method to set the enabled state of the file dialog button.
-        
-        @param enable flag indicating the enabled state
-        @type bool
-        """
-        self.__button.setEnabled(enable)
-    
-    def isPickerEnabled(self):
-        """
-        Public method to get the file dialog button enabled state.
-        
-        @return flag indicating the enabled state
-        @rtype bool
-        """
-        return self.__button.isEnabled()
-    
-    def clear(self):
-        """
-        Public method to clear the current path or list of paths.
-        """
-        self._editor.clear()
-    
-    def clearEditText(self):
-        """
-        Public method to clear the current path.
-        """
-        if not self.__lineEditKind:
-            self._editor.clearEditText()
-    
-    def _setEditorText(self, text):
-        """
-        Protected method to set the text of the editor.
-        
-        @param text text to set
-        @type str
-        """
-        if self.__lineEditKind:
-            self._editor.setText(text)
-        else:
-            self._editor.setEditText(text)
-            if text and self._editor.findText(text) == -1:
-                self._editor.insertItem(0, text)
-    
-    def _editorText(self):
-        """
-        Protected method to get the text of the editor.
-        
-        @return text of the editor
-        @rtype str
-        """
-        if self.__lineEditKind:
-            return self._editor.text()
-        else:
-            return self._editor.currentText()
-    
-    def setText(self, path, toNative=True):
-        """
-        Public method to set the current path.
-        
-        @param path path to be set
-        @type str
-        @param toNative flag indicating to convert the path into
-            a native format
-        @type bool
-        """
-        if self.__mode == E5PathPickerModes.OPEN_FILES_MODE:
-            self._setEditorText(path)
-        else:
-            if toNative:
-                path = QDir.toNativeSeparators(path)
-            self._setEditorText(path)
-            if self._completer:
-                self._completer.setRootPath(path)
-    
-    def text(self, toNative=True):
-        """
-        Public method to get the current path.
-        
-        @param toNative flag indicating to convert the path into
-            a native format
-        @type bool
-        @return current path
-        @rtype str
-        """
-        if self.__mode == E5PathPickerModes.OPEN_FILES_MODE:
-            if toNative:
-                return ";".join(
-                    [QDir.toNativeSeparators(path)
-                     for path in self._editorText().split(";")])
-            else:
-                return self._editorText()
-        else:
-            if toNative:
-                return os.path.expanduser(
-                    QDir.toNativeSeparators(self._editorText()))
-            else:
-                return os.path.expanduser(self._editorText())
-    
-    def setEditText(self, path, toNative=True):
-        """
-        Public method to set the current path.
-        
-        @param path path to be set
-        @type str
-        @param toNative flag indicating to convert the path into
-            a native format
-        @type bool
-        """
-        self.setText(path, toNative=toNative)
-    
-    def currentText(self, toNative=True):
-        """
-        Public method to get the current path.
-        
-        @param toNative flag indicating to convert the path into
-            a native format
-        @type bool
-        @return current path
-        @rtype str
-        """
-        return self.text(toNative=toNative)
-    
-    def setPath(self, path, toNative=True):
-        """
-        Public method to set the current path.
-        
-        @param path path to be set
-        @type str
-        @param toNative flag indicating to convert the path into
-            a native format
-        @type bool
-        """
-        self.setText(path, toNative=toNative)
-    
-    def path(self, toNative=True):
-        """
-        Public method to get the current path.
-        
-        @param toNative flag indicating to convert the path into
-            a native format
-        @type bool
-        @return current path
-        @rtype str
-        """
-        return self.text(toNative=toNative)
-    
-    def paths(self, toNative=True):
-        """
-        Public method to get the list of entered paths.
-        
-        @param toNative flag indicating to convert the path into
-            a native format
-        @type bool
-        @return entered paths
-        @rtype list of str
-        """
-        if self.__mode == E5PathPickerModes.OPEN_FILES_MODE:
-            return self.path(toNative=toNative).split(";")
-        else:
-            return [self.path(toNative=toNative)]
-    
-    def firstPath(self, toNative=True):
-        """
-        Public method to get the first path of a list of entered paths.
-        
-        @param toNative flag indicating to convert the path into
-            a native format
-        @type bool
-        @return first path
-        @rtype str
-        """
-        return self.paths(toNative=toNative)[0]
-    
-    def lastPath(self, toNative=True):
-        """
-        Public method to get the last path of a list of entered paths.
-        
-        @param toNative flag indicating to convert the path into
-            a native format
-        @type bool
-        @return last path
-        @rtype str
-        """
-        return self.paths(toNative=toNative)[-1]
-    
-    def setEditorEnabled(self, enable):
-        """
-        Public method to set the path editor's enabled state.
-        
-        @param enable flag indicating the enable state
-        @type bool
-        """
-        if enable != self._editorEnabled:
-            self._editorEnabled = enable
-            self._editor.setEnabled(enable)
-    
-    def editorEnabled(self):
-        """
-        Public method to get the path editor's enabled state.
-        
-        @return flag indicating the enabled state
-        @rtype bool
-        """
-        return self._editorEnabled
-    
-    def setDefaultDirectory(self, directory):
-        """
-        Public method to set the default directory.
-        
-        @param directory default directory
-        @type str
-        """
-        self.__defaultDirectory = directory
-    
-    def defaultDirectory(self):
-        """
-        Public method to get the default directory.
-        
-        @return default directory
-        @rtype str
-        """
-        return self.__defaultDirectory
-    
-    def setWindowTitle(self, title):
-        """
-        Public method to set the path picker dialog window title.
-        
-        @param title window title
-        @type str
-        """
-        self.__windowTitle = title
-    
-    def windowTitle(self):
-        """
-        Public method to get the path picker dialog's window title.
-        
-        @return window title
-        @rtype str
-        """
-        return self.__windowTitle
-    
-    def setFilters(self, filters):
-        """
-        Public method to set the filters for the path picker dialog.
-        
-        Note: Multiple filters must be separated by ';;'.
-        
-        @param filters string containing the file filters
-        @type str
-        """
-        self.__filters = filters
-    
-    def filters(self):
-        """
-        Public methods to get the filter string.
-        
-        @return filter string
-        @rtype str
-        """
-        return self.__filters
-    
-    def setNameFilters(self, filters):
-        """
-        Public method to set the name filters for the completer.
-        
-        @param filters list of file name filters
-        @type list of str
-        """
-        if self._completer:
-            self._completer.model().setNameFilters(filters)
-    
-    def setButtonToolTip(self, tooltip):
-        """
-        Public method to set the tool button tool tip.
-        
-        @param tooltip text to be set as a tool tip
-        @type str
-        """
-        self.__button.setToolTip(tooltip)
-    
-    def buttonToolTip(self):
-        """
-        Public method to get the tool button tool tip.
-        
-        @return tool tip text
-        @rtype str
-        """
-        return self.__button.toolTip()
-    
-    def setEditorToolTip(self, tooltip):
-        """
-        Public method to set the editor tool tip.
-        
-        @param tooltip text to be set as a tool tip
-        @type str
-        """
-        self._editor.setToolTip(tooltip)
-    
-    def editorToolTip(self):
-        """
-        Public method to get the editor tool tip.
-        
-        @return tool tip text
-        @rtype str
-        """
-        return self._editor.toolTip()
-    
-    def __showPathPickerDialog(self):
-        """
-        Private slot to show the path picker dialog.
-        """
-        if self.__mode == E5PathPickerModes.NO_MODE:
-            return
-        
-        if self.__mode == E5PathPickerModes.CUSTOM_MODE:
-            self.pickerButtonClicked.emit()
-            return
-        
-        self.aboutToShowPathPickerDialog.emit()
-        
-        windowTitle = self.__windowTitle
-        if not windowTitle:
-            if self.__mode == E5PathPickerModes.OPEN_FILE_MODE:
-                windowTitle = self.tr("Choose a file to open")
-            elif self.__mode == E5PathPickerModes.OPEN_FILES_MODE:
-                windowTitle = self.tr("Choose files to open")
-            elif self.__mode in [
-                E5PathPickerModes.SAVE_FILE_MODE,
-                    E5PathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE,
-                    E5PathPickerModes.SAVE_FILE_OVERWRITE_MODE]:
-                windowTitle = self.tr("Choose a file to save")
-            elif self.__mode == E5PathPickerModes.DIRECTORY_MODE:
-                windowTitle = self.tr("Choose a directory")
-        
-        directory = self._editorText()
-        if not directory and self.__defaultDirectory:
-            directory = self.__defaultDirectory
-        directory = (
-            os.path.expanduser(directory.split(";")[0])
-            if self.__mode == E5PathPickerModes.OPEN_FILES_MODE else
-            os.path.expanduser(directory)
-        )
-        if not os.path.isabs(directory) and self.__defaultDirectory:
-            directory = os.path.join(self.__defaultDirectory, directory)
-        directory = QDir.fromNativeSeparators(directory)
-        
-        if self.__mode == E5PathPickerModes.OPEN_FILE_MODE:
-            path = E5FileDialog.getOpenFileName(
-                self,
-                windowTitle,
-                directory,
-                self.__filters)
-            path = QDir.toNativeSeparators(path)
-        elif self.__mode == E5PathPickerModes.OPEN_FILES_MODE:
-            paths = E5FileDialog.getOpenFileNames(
-                self,
-                windowTitle,
-                directory,
-                self.__filters)
-            path = ";".join([QDir.toNativeSeparators(path)
-                             for path in paths])
-        elif self.__mode == E5PathPickerModes.SAVE_FILE_MODE:
-            path = E5FileDialog.getSaveFileName(
-                self,
-                windowTitle,
-                directory,
-                self.__filters,
-                E5FileDialog.DontConfirmOverwrite)
-            path = QDir.toNativeSeparators(path)
-        elif self.__mode == E5PathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE:
-            path, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
-                self,
-                windowTitle,
-                directory,
-                self.__filters,
-                None,
-                E5FileDialog.DontConfirmOverwrite)
-            path = QDir.toNativeSeparators(path)
-            if path:
-                ext = QFileInfo(path).suffix()
-                if not ext:
-                    ex = selectedFilter.split("(*")[1].split(")")[0]
-                    if ex:
-                        path += ex
-        elif self.__mode == E5PathPickerModes.SAVE_FILE_OVERWRITE_MODE:
-            path = E5FileDialog.getSaveFileName(
-                self,
-                windowTitle,
-                directory,
-                self.__filters)
-            path = QDir.toNativeSeparators(path)
-        elif self.__mode == E5PathPickerModes.DIRECTORY_MODE:
-            path = E5FileDialog.getExistingDirectory(
-                self,
-                windowTitle,
-                directory,
-                E5FileDialog.ShowDirsOnly)
-            path = QDir.toNativeSeparators(path)
-            while path.endswith(os.sep):
-                path = path[:-1]
-        elif self.__mode == E5PathPickerModes.DIRECTORY_SHOW_FILES_MODE:
-            path = E5FileDialog.getExistingDirectory(
-                self,
-                windowTitle,
-                directory,
-                E5FileDialog.DontUseNativeDialog)
-            path = QDir.toNativeSeparators(path)
-            while path.endswith(os.sep):
-                path = path[:-1]
-        
-        if path:
-            self._setEditorText(path)
-            self.pathSelected.emit(path)
-    
-    def setReadOnly(self, readOnly):
-        """
-        Public method to set the path picker to read only mode.
-        
-        @param readOnly flag indicating read only mode
-        @type bool
-        """
-        try:
-            self._editor.setReadOnly(readOnly)
-        except AttributeError:
-            self._editor.setEditable(not readOnly)
-        self.setPickerEnabled(not readOnly)
-    
-    def isReadOnly(self):
-        """
-        Public method to check the path picker for read only mode.
-        
-        @return flg indicating read only mode
-        @rtype bool
-        """
-        try:
-            return self._editor.isReadOnly()
-        except AttributeError:
-            return not self._editor.isEditable()
-    
-    ##################################################################
-    ## Methods below emulate some of the QComboBox API
-    ##################################################################
-    
-    def addItems(self, pathsList):
-        """
-        Public method to add paths to the current list.
-        
-        @param pathsList list of paths to add
-        @type list of str
-        """
-        self._editor.addItems(pathsList)
-    
-    def addItem(self, path):
-        """
-        Public method to add a paths to the current list.
-        
-        @param path path to add
-        @type str
-        """
-        self._editor.addItem(path)
-    
-    def setPathsList(self, pathsList):
-        """
-        Public method to set the paths list.
-        
-        @param pathsList list of paths
-        @type list of str
-        """
-        self.clear()
-        self.addItems(pathsList)
-    
-    def setCurrentIndex(self, index):
-        """
-        Public slot to set the current index.
-        
-        @param index index of the item to set current
-        @type int
-        """
-        self._editor.setCurrentIndex(index)
-    
-    def setInsertPolicy(self, policy):
-        """
-        Public method to set the insertion policy of the combo box.
-        
-        @param policy insertion policy
-        @type QComboBox.InsertPolicy
-        """
-        self._editor.setInsertPolicy(policy)
-    
-    def setSizeAdjustPolicy(self, policy):
-        """
-        Public method to set the size adjust policy of the combo box.
-        
-        @param policy size adjust policy
-        @type QComboBox.SizeAdjustPolicy
-        """
-        self._editor.setSizeAdjustPolicy(policy)
-
-
-class E5PathPicker(E5PathPickerBase):
-    """
-    Class implementing a path picker widget consisting of a line edit and a
-    tool button to open a file dialog.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent, useLineEdit=True)
-
-
-class E5ComboPathPicker(E5PathPickerBase):
-    """
-    Class implementing a path picker widget consisting of a combobox and a
-    tool button to open a file dialog.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent, useLineEdit=False)
-    
-    def getPathItems(self):
-        """
-        Public method to get the list of remembered paths.
-        
-        @return list od remembered paths
-        @rtype list of str
-        """
-        paths = []
-        for index in range(self._editor.count()):
-            paths.append(self._editor.itemText(index))
-        return paths
--- a/eric7/E5Gui/E5PathPickerDialog.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2018 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to enter a file system path using a file picker.
-"""
-
-from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel
-
-from .E5PathPicker import E5PathPicker, E5PathPickerModes
-
-
-class E5PathPickerDialog(QDialog):
-    """
-    Class implementing a dialog to enter a file system path using a file
-    picker.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent)
-        
-        self.setMinimumWidth(400)
-        
-        self.__layout = QVBoxLayout(self)
-        
-        self.__label = QLabel(self)
-        self.__label.setWordWrap(True)
-        
-        self.__pathPicker = E5PathPicker(self)
-        self.__buttonBox = QDialogButtonBox(
-            QDialogButtonBox.StandardButton.Cancel |
-            QDialogButtonBox.StandardButton.Ok, self)
-        
-        self.__layout.addWidget(self.__label)
-        self.__layout.addWidget(self.__pathPicker)
-        self.__layout.addWidget(self.__buttonBox)
-        
-        self.__buttonBox.accepted.connect(self.accept)
-        self.__buttonBox.rejected.connect(self.reject)
-    
-    def setLabelText(self, text):
-        """
-        Public method to set the label text.
-        
-        @param text label text
-        @type str
-        """
-        self.__label.setText(text)
-    
-    def setTitle(self, title):
-        """
-        Public method to set the window title.
-        
-        @param title window title
-        @type str
-        """
-        self.setWindowTitle(title)
-        self.__pathPicker.setWindowTitle(title)
-    
-    def setPickerMode(self, mode):
-        """
-        Public method to set the mode of the path picker.
-        
-        @param mode picker mode
-        @type E5PathPickerModes
-        """
-        self.__pathPicker.setMode(mode)
-    
-    def setPickerPath(self, path):
-        """
-        Public method to set the path of the path picker.
-        
-        @param path path to be set
-        @type str
-        """
-        self.__pathPicker.setPath(path)
-    
-    def setDefaultDirectory(self, directory):
-        """
-        Public method to set the default directory of the path picker.
-        
-        @param directory default directory
-        @type str
-        """
-        self.__pathPicker.setDefaultDirectory(directory)
-    
-    def setPickerFilters(self, filters):
-        """
-        Public method to set the filters of the path picker.
-        
-        Note: Multiple filters must be separated by ';;'.
-        
-        @param filters string containing the file filters
-        @type str
-        """
-        self.__pathPicker.setFilters(filters)
-    
-    def getPath(self):
-        """
-        Public method to get the current path.
-        
-        @return current path
-        @rtype str
-        """
-        return self.__pathPicker.path()
-
-
-def getPath(parent, title, label, mode=E5PathPickerModes.OPEN_FILE_MODE,
-            path="", defaultDirectory="", filters=None):
-    """
-    Function to get a file or directory path from the user.
-    
-    @param parent reference to the parent widget
-    @type QWidget
-    @param title title of the dialog
-    @type str
-    @param label text to be shown above the path picker
-    @type str
-    @param mode mode of the path picker
-    @type E5PathPickerModes
-    @param path initial path to be shown
-    @type str
-    @param defaultDirectory default directory of the path picker selection
-        dialog
-    @type str
-    @param filters list of file filters
-    @type list of str
-    @return tuple containing the entered path and a flag indicating that the
-        user pressed the OK button
-    @rtype tuple of (str, bool)
-    """
-    # step 1: setup of the dialog
-    dlg = E5PathPickerDialog(parent)
-    if title:
-        dlg.setTitle(title)
-    if label:
-        dlg.setLabelText(label)
-    dlg.setPickerMode(mode)
-    if path:
-        dlg.setPickerPath(path)
-    if defaultDirectory:
-        dlg.setDefaultDirectory(defaultDirectory)
-    if filters is not None and len(filters) > 0:
-        dlg.setPickerFilters(";;".join(filters))
-    
-    # step 2: show the dialog and get the result
-    if dlg.exec() == QDialog.DialogCode.Accepted:
-        ok = True
-        path = dlg.getPath().strip()
-    else:
-        ok = False
-        path = ""
-    
-    # step 3: return the result
-    return path, ok
--- a/eric7/E5Gui/E5PlainTextDialog.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2020 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show some plain text.
-"""
-
-from PyQt6.QtCore import pyqtSlot
-from PyQt6.QtGui import QGuiApplication
-from PyQt6.QtWidgets import QDialog, QDialogButtonBox
-
-from .Ui_E5PlainTextDialog import Ui_E5PlainTextDialog
-
-
-class E5PlainTextDialog(QDialog, Ui_E5PlainTextDialog):
-    """
-    Class implementing a dialog to show some plain text.
-    """
-    def __init__(self, title="", text="", parent=None):
-        """
-        Constructor
-        
-        @param title title of the window
-        @type str
-        @param text text to be shown
-        @type str
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent)
-        self.setupUi(self)
-        
-        self.copyButton = self.buttonBox.addButton(
-            self.tr("Copy to Clipboard"),
-            QDialogButtonBox.ButtonRole.ActionRole)
-        self.copyButton.clicked.connect(self.on_copyButton_clicked)
-        
-        self.setWindowTitle(title)
-        self.textEdit.setPlainText(text)
-    
-    @pyqtSlot()
-    def on_copyButton_clicked(self):
-        """
-        Private slot to copy the text to the clipboard.
-        """
-        txt = self.textEdit.toPlainText()
-        cb = QGuiApplication.clipboard()
-        cb.setText(txt)
--- a/eric7/E5Gui/E5PlainTextDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>E5PlainTextDialog</class>
- <widget class="QDialog" name="E5PlainTextDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string/>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QPlainTextEdit" name="textEdit">
-     <property name="readOnly">
-      <bool>true</bool>
-     </property>
-     <property name="textInteractionFlags">
-      <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>E5PlainTextDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>E5PlainTextDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric7/E5Gui/E5ProcessDialog.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,314 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2019 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog starting a process and showing its output.
-"""
-
-import os
-import re
-
-from PyQt6.QtCore import (
-    QProcess, QTimer, pyqtSlot, Qt, QCoreApplication, QProcessEnvironment
-)
-from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QLineEdit
-
-from E5Gui import E5MessageBox
-
-from .Ui_E5ProcessDialog import Ui_E5ProcessDialog
-
-from Globals import strToQByteArray
-import Preferences
-
-
-class E5ProcessDialog(QDialog, Ui_E5ProcessDialog):
-    """
-    Class implementing a dialog starting a process and showing its output.
-    
-    It starts a QProcess and displays a dialog that shows the output of the
-    process. The dialog is modal, which causes a synchronized execution of
-    the process.
-    """
-    def __init__(self, outputTitle="", windowTitle="", showProgress=False,
-                 parent=None):
-        """
-        Constructor
-        
-        @param outputTitle title for the output group
-        @type str
-        @param windowTitle title of the dialog
-        @type str
-        @param showProgress flag indicating to show a progress bar
-        @type bool
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent)
-        self.setupUi(self)
-        
-        self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Close).setEnabled(False)
-        self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Cancel).setDefault(True)
-        
-        font = Preferences.getEditorOtherFonts("MonospacedFont")
-        self.resultbox.setFontFamily(font.family())
-        self.resultbox.setFontPointSize(font.pointSize())
-        self.errors.setFontFamily(font.family())
-        self.errors.setFontPointSize(font.pointSize())
-        
-        if windowTitle:
-            self.setWindowTitle(windowTitle)
-        if outputTitle:
-            self.outputGroup.setTitle(outputTitle)
-        self.__showProgress = showProgress
-        self.progressBar.setVisible(self.__showProgress)
-        
-        self.__process = None
-        self.__progressRe = re.compile(r"""(\d{1,3})\s*%""")
-        
-        self.show()
-        QCoreApplication.processEvents()
-    
-    def __finish(self):
-        """
-        Private slot called when the process finished or the user pressed
-        the button.
-        """
-        if (
-            self.__process is not None and
-            self.__process.state() != QProcess.ProcessState.NotRunning
-        ):
-            self.__process.terminate()
-            QTimer.singleShot(2000, self.__process.kill)
-            self.__process.waitForFinished(3000)
-        
-        self.inputGroup.setEnabled(False)
-        self.inputGroup.hide()
-        
-        self.__process = None
-        
-        self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Close).setEnabled(True)
-        self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Cancel).setEnabled(False)
-        self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Close).setDefault(True)
-        self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Close).setFocus(
-            Qt.FocusReason.OtherFocusReason)
-    
-    def on_buttonBox_clicked(self, button):
-        """
-        Private slot called by a button of the button box clicked.
-        
-        @param button button that was clicked
-        @type QAbstractButton
-        """
-        if button == self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Close
-        ):
-            self.close()
-        elif button == self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Cancel
-        ):
-            self.statusLabel.setText(self.tr("Process canceled."))
-            self.__finish()
-    
-    def __procFinished(self, exitCode, exitStatus):
-        """
-        Private slot connected to the finished signal.
-        
-        @param exitCode exit code of the process
-        @type int
-        @param exitStatus exit status of the process
-        @type QProcess.ExitStatus
-        """
-        self.__normal = (
-            (exitStatus == QProcess.ExitStatus.NormalExit) and
-            (exitCode == 0)
-        )
-        if self.__normal:
-            self.statusLabel.setText(self.tr("Process finished successfully."))
-        elif exitStatus == QProcess.ExitStatus.CrashExit:
-            self.statusLabel.setText(self.tr("Process crashed."))
-        else:
-            self.statusLabel.setText(
-                self.tr("Process finished with exit code {0}")
-                .format(exitCode))
-        self.__finish()
-    
-    def startProcess(self, program, args, workingDir=None, showArgs=True,
-                     environment=None):
-        """
-        Public slot used to start the process.
-        
-        @param program path of the program to be executed
-        @type str
-        @param args list of arguments for the process
-        @type list of str
-        @param workingDir working directory for the process
-        @type str
-        @param showArgs flag indicating to show the arguments
-        @type bool
-        @param environment dictionary of environment settings to add
-            or change for the process
-        @type dict
-        @return flag indicating a successful start of the process
-        @rtype bool
-        """
-        self.errorGroup.hide()
-        self.__normal = False
-        self.__intercept = False
-        
-        if environment is None:
-            environment = {}
-        
-        if showArgs:
-            self.resultbox.append(program + ' ' + ' '.join(args))
-            self.resultbox.append('')
-        
-        self.__process = QProcess()
-        if environment:
-            env = QProcessEnvironment.systemEnvironment()
-            for key, value in environment.items():
-                env.insert(key, value)
-            self.__process.setProcessEnvironment(env)
-        
-        self.__process.finished.connect(self.__procFinished)
-        self.__process.readyReadStandardOutput.connect(self.__readStdout)
-        self.__process.readyReadStandardError.connect(self.__readStderr)
-        
-        if workingDir:
-            self.__process.setWorkingDirectory(workingDir)
-        
-        self.__process.start(program, args)
-        procStarted = self.__process.waitForStarted(10000)
-        if not procStarted:
-            self.buttonBox.setFocus()
-            self.inputGroup.setEnabled(False)
-            E5MessageBox.critical(
-                self,
-                self.tr('Process Generation Error'),
-                self.tr(
-                    '<p>The process <b>{0}</b> could not be started.</p>'
-                ).format(program))
-        else:
-            self.inputGroup.setEnabled(True)
-            self.inputGroup.show()
-        
-        return procStarted
-    
-    def normalExit(self):
-        """
-        Public method to check for a normal process termination.
-        
-        @return flag indicating normal process termination
-        @rtype bool
-        """
-        return self.__normal
-    
-    def normalExitWithoutErrors(self):
-        """
-        Public method to check for a normal process termination without
-        error messages.
-        
-        @return flag indicating normal process termination
-        @rtype bool
-        """
-        return self.__normal and self.errors.toPlainText() == ""
-    
-    def __readStdout(self):
-        """
-        Private slot to handle the readyReadStandardOutput signal.
-        
-        It reads the output of the process and inserts it into the
-        output pane.
-        """
-        if self.__process is not None:
-            s = str(self.__process.readAllStandardOutput(),
-                    Preferences.getSystem("IOEncoding"),
-                    'replace')
-            if self.__showProgress:
-                match = self.__progressRe.search(s)
-                if match:
-                    progress = int(match.group(1))
-                    self.progressBar.setValue(progress)
-                    if not s.endswith("\n"):
-                        s += "\n"
-            self.resultbox.insertPlainText(s)
-            self.resultbox.ensureCursorVisible()
-            
-            QCoreApplication.processEvents()
-    
-    def __readStderr(self):
-        """
-        Private slot to handle the readyReadStandardError signal.
-        
-        It reads the error output of the process and inserts it into the
-        error pane.
-        """
-        if self.__process is not None:
-            s = str(self.__process.readAllStandardError(),
-                    Preferences.getSystem("IOEncoding"),
-                    'replace')
-            
-            self.errorGroup.show()
-            self.errors.insertPlainText(s)
-            self.errors.ensureCursorVisible()
-            
-            QCoreApplication.processEvents()
-    
-    def on_passwordCheckBox_toggled(self, isOn):
-        """
-        Private slot to handle the password checkbox toggled.
-        
-        @param isOn flag indicating the status of the check box
-        @type bool
-        """
-        if isOn:
-            self.input.setEchoMode(QLineEdit.EchoMode.Password)
-        else:
-            self.input.setEchoMode(QLineEdit.EchoMode.Normal)
-    
-    @pyqtSlot()
-    def on_sendButton_clicked(self):
-        """
-        Private slot to send the input to the git process.
-        """
-        inputTxt = self.input.text()
-        inputTxt += os.linesep
-        
-        if self.passwordCheckBox.isChecked():
-            self.errors.insertPlainText(os.linesep)
-            self.errors.ensureCursorVisible()
-        else:
-            self.errors.insertPlainText(inputTxt)
-            self.errors.ensureCursorVisible()
-        
-        self.__process.write(strToQByteArray(inputTxt))
-        
-        self.passwordCheckBox.setChecked(False)
-        self.input.clear()
-    
-    def on_input_returnPressed(self):
-        """
-        Private slot to handle the press of the return key in the input field.
-        """
-        self.__intercept = True
-        self.on_sendButton_clicked()
-    
-    def keyPressEvent(self, evt):
-        """
-        Protected slot to handle a key press event.
-        
-        @param evt the key press event (QKeyEvent)
-        """
-        if self.__intercept:
-            self.__intercept = False
-            evt.accept()
-            return
-        
-        super().keyPressEvent(evt)
--- a/eric7/E5Gui/E5ProcessDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>E5ProcessDialog</class>
- <widget class="QDialog" name="E5ProcessDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>600</width>
-    <height>500</height>
-   </rect>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QGroupBox" name="outputGroup">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
-       <horstretch>0</horstretch>
-       <verstretch>2</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Output</string>
-     </property>
-     <layout class="QVBoxLayout">
-      <item>
-       <widget class="QTextEdit" name="resultbox">
-        <property name="readOnly">
-         <bool>true</bool>
-        </property>
-        <property name="acceptRichText">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QProgressBar" name="progressBar">
-     <property name="value">
-      <number>0</number>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="statusLabel"/>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="errorGroup">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
-       <horstretch>0</horstretch>
-       <verstretch>1</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Errors</string>
-     </property>
-     <layout class="QVBoxLayout">
-      <item>
-       <widget class="QTextEdit" name="errors">
-        <property name="readOnly">
-         <bool>true</bool>
-        </property>
-        <property name="acceptRichText">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="inputGroup">
-     <property name="title">
-      <string>Input</string>
-     </property>
-     <layout class="QGridLayout">
-      <item row="1" column="1">
-       <spacer>
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeType">
-         <enum>QSizePolicy::Expanding</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>327</width>
-          <height>29</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="1" column="2">
-       <widget class="QPushButton" name="sendButton">
-        <property name="toolTip">
-         <string>Press to send the input to the running process</string>
-        </property>
-        <property name="text">
-         <string>&amp;Send</string>
-        </property>
-        <property name="shortcut">
-         <string>Alt+S</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="0" colspan="3">
-       <widget class="QLineEdit" name="input">
-        <property name="toolTip">
-         <string>Enter data to be sent to the running process</string>
-        </property>
-        <property name="clearButtonEnabled">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QCheckBox" name="passwordCheckBox">
-        <property name="toolTip">
-         <string>Select to switch the input field to password mode</string>
-        </property>
-        <property name="text">
-         <string>&amp;Password Mode</string>
-        </property>
-        <property name="shortcut">
-         <string>Alt+P</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
- <tabstops>
-  <tabstop>resultbox</tabstop>
-  <tabstop>errors</tabstop>
-  <tabstop>input</tabstop>
-  <tabstop>passwordCheckBox</tabstop>
-  <tabstop>sendButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric7/E5Gui/E5ProgressDialog.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2013 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a progress dialog allowing a customized progress bar label.
-"""
-
-from PyQt6.QtCore import Qt
-from PyQt6.QtWidgets import QProgressBar, QProgressDialog
-
-
-class E5ProgressDialog(QProgressDialog):
-    """
-    Class implementing a progress dialog allowing a customized progress bar
-    label.
-    """
-    def __init__(self, labelText, cancelButtonText, minimum, maximum,
-                 labelFormat=None, parent=None, flags=None):
-        """
-        Constructor
-        
-        @param labelText text of the dialog label (string)
-        @param cancelButtonText text of the cancel button (string)
-        @param minimum minimum value (integer)
-        @param maximum maximum value (integer)
-        @param labelFormat label format of the progress bar (string)
-        @param parent reference to the parent widget (QWidget)
-        @param flags window flags of the dialog (Qt.WindowFlags)
-        """
-        if flags is None:
-            flags = Qt.WindowType(0)
-        super().__init__(
-            labelText, cancelButtonText, minimum, maximum, parent, flags)
-        
-        self.__progressBar = QProgressBar(self)
-        self.__progressBar.setMinimum(minimum)
-        self.__progressBar.setMaximum(maximum)
-        if labelFormat:
-            self.__progressBar.setFormat(labelFormat)
-        
-        self.setBar(self.__progressBar)
-    
-    def format(self):
-        """
-        Public method to get the progress bar format.
-        
-        @return progress bar format (string)
-        """
-        return self.__progressBar.format()
-    
-    def setFormat(self, labelFormat):
-        """
-        Public method to set the progress bar format.
-        
-        @param labelFormat progress bar format (string)
-        """
-        self.__progressBar.setFormat(labelFormat)
--- a/eric7/E5Gui/E5SideBar.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,706 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2008 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a sidebar class.
-"""
-
-import enum
-import json
-
-from PyQt6.QtCore import QEvent, QSize, Qt, QTimer
-from PyQt6.QtWidgets import (
-    QTabBar, QWidget, QStackedWidget, QBoxLayout, QToolButton, QSizePolicy
-)
-
-from E5Gui.E5Application import e5App
-
-import UI.PixmapCache
-
-
-class E5SideBarSide(enum.Enum):
-    """
-    Class defining the sidebar sides.
-    """
-    NORTH = 0
-    EAST = 1
-    SOUTH = 2
-    WEST = 3
-
-
-class E5SideBar(QWidget):
-    """
-    Class implementing a sidebar with a widget area, that is hidden or shown,
-    if the current tab is clicked again.
-    """
-    Version = 2
-    
-    def __init__(self, orientation=None, delay=200, parent=None):
-        """
-        Constructor
-        
-        @param orientation orientation of the sidebar widget
-        @type E5SideBarSide
-        @param delay value for the expand/shrink delay in milliseconds
-        @type int
-        @param parent parent widget
-        @type QWidget
-        """
-        super().__init__(parent)
-        
-        self.__tabBar = QTabBar()
-        self.__tabBar.setDrawBase(True)
-        self.__tabBar.setShape(QTabBar.Shape.RoundedNorth)
-        self.__tabBar.setUsesScrollButtons(True)
-        self.__tabBar.setDrawBase(False)
-        self.__stackedWidget = QStackedWidget(self)
-        self.__stackedWidget.setContentsMargins(0, 0, 0, 0)
-        self.__autoHideButton = QToolButton()
-        self.__autoHideButton.setCheckable(True)
-        self.__autoHideButton.setIcon(
-            UI.PixmapCache.getIcon("autoHideOff"))
-        self.__autoHideButton.setChecked(True)
-        self.__autoHideButton.setToolTip(
-            self.tr("Deselect to activate automatic collapsing"))
-        self.barLayout = QBoxLayout(QBoxLayout.Direction.LeftToRight)
-        self.barLayout.setContentsMargins(0, 0, 0, 0)
-        self.layout = QBoxLayout(QBoxLayout.Direction.TopToBottom)
-        self.layout.setContentsMargins(0, 0, 0, 0)
-        self.layout.setSpacing(0)
-        self.barLayout.addWidget(self.__autoHideButton)
-        self.barLayout.addWidget(self.__tabBar)
-        self.layout.addLayout(self.barLayout)
-        self.layout.addWidget(self.__stackedWidget)
-        self.setLayout(self.layout)
-        
-        # initialize the delay timer
-        self.__actionMethod = None
-        self.__delayTimer = QTimer(self)
-        self.__delayTimer.setSingleShot(True)
-        self.__delayTimer.setInterval(delay)
-        self.__delayTimer.timeout.connect(self.__delayedAction)
-        
-        self.__minimized = False
-        self.__minSize = 0
-        self.__maxSize = 0
-        self.__bigSize = QSize()
-        
-        self.splitter = None
-        self.splitterSizes = []
-        
-        self.__hasFocus = False
-        # flag storing if this widget or any child has the focus
-        self.__autoHide = False
-        
-        self.__tabBar.installEventFilter(self)
-        
-        self.__orientation = E5SideBarSide.NORTH
-        if orientation is None:
-            orientation = E5SideBarSide.NORTH
-        self.setOrientation(orientation)
-        
-        self.__tabBar.currentChanged[int].connect(
-            self.__stackedWidget.setCurrentIndex)
-        e5App().focusChanged.connect(self.__appFocusChanged)
-        self.__autoHideButton.toggled[bool].connect(self.__autoHideToggled)
-    
-    def setSplitter(self, splitter):
-        """
-        Public method to set the splitter managing the sidebar.
-        
-        @param splitter reference to the splitter (QSplitter)
-        """
-        self.splitter = splitter
-        self.splitter.splitterMoved.connect(self.__splitterMoved)
-        self.splitter.setChildrenCollapsible(False)
-        index = self.splitter.indexOf(self)
-        self.splitter.setCollapsible(index, False)
-    
-    def __splitterMoved(self, pos, index):
-        """
-        Private slot to react on splitter moves.
-        
-        @param pos new position of the splitter handle (integer)
-        @param index index of the splitter handle (integer)
-        """
-        if self.splitter:
-            self.splitterSizes = self.splitter.sizes()
-    
-    def __delayedAction(self):
-        """
-        Private slot to handle the firing of the delay timer.
-        """
-        if self.__actionMethod is not None:
-            self.__actionMethod()
-    
-    def setDelay(self, delay):
-        """
-        Public method to set the delay value for the expand/shrink delay in
-        milliseconds.
-        
-        @param delay value for the expand/shrink delay in milliseconds
-            (integer)
-        """
-        self.__delayTimer.setInterval(delay)
-    
-    def delay(self):
-        """
-        Public method to get the delay value for the expand/shrink delay in
-        milliseconds.
-        
-        @return value for the expand/shrink delay in milliseconds (integer)
-        """
-        return self.__delayTimer.interval()
-    
-    def __cancelDelayTimer(self):
-        """
-        Private method to cancel the current delay timer.
-        """
-        self.__delayTimer.stop()
-        self.__actionMethod = None
-    
-    def shrink(self):
-        """
-        Public method to record a shrink request.
-        """
-        self.__delayTimer.stop()
-        self.__actionMethod = self.__shrinkIt
-        self.__delayTimer.start()
-   
-    def __shrinkIt(self):
-        """
-        Private method to shrink the sidebar.
-        """
-        self.__minimized = True
-        self.__bigSize = self.size()
-        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
-            self.__minSize = self.minimumSizeHint().height()
-            self.__maxSize = self.maximumHeight()
-        else:
-            self.__minSize = self.minimumSizeHint().width()
-            self.__maxSize = self.maximumWidth()
-        if self.splitter:
-            self.splitterSizes = self.splitter.sizes()
-        
-        self.__stackedWidget.hide()
-        
-        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
-            self.setFixedHeight(self.__tabBar.minimumSizeHint().height())
-        else:
-            self.setFixedWidth(self.__tabBar.minimumSizeHint().width())
-        
-        self.__actionMethod = None
-    
-    def expand(self):
-        """
-        Public method to record a expand request.
-        """
-        self.__delayTimer.stop()
-        self.__actionMethod = self.__expandIt
-        self.__delayTimer.start()
-    
-    def __expandIt(self):
-        """
-        Private method to expand the sidebar.
-        """
-        self.__minimized = False
-        self.__stackedWidget.show()
-        self.resize(self.__bigSize)
-        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
-            minSize = max(self.__minSize, self.minimumSizeHint().height())
-            self.setMinimumHeight(minSize)
-            self.setMaximumHeight(self.__maxSize)
-        else:
-            minSize = max(self.__minSize, self.minimumSizeHint().width())
-            self.setMinimumWidth(minSize)
-            self.setMaximumWidth(self.__maxSize)
-        if self.splitter:
-            self.splitter.setSizes(self.splitterSizes)
-        
-        self.__actionMethod = None
-    
-    def isMinimized(self):
-        """
-        Public method to check the minimized state.
-        
-        @return flag indicating the minimized state (boolean)
-        """
-        return self.__minimized
-    
-    def isAutoHiding(self):
-        """
-        Public method to check, if the auto hide function is active.
-        
-        @return flag indicating the state of auto hiding (boolean)
-        """
-        return self.__autoHide
-    
-    def eventFilter(self, obj, evt):
-        """
-        Public method to handle some events for the tabbar.
-        
-        @param obj reference to the object (QObject)
-        @param evt reference to the event object (QEvent)
-        @return flag indicating, if the event was handled (boolean)
-        """
-        if obj == self.__tabBar:
-            if evt.type() == QEvent.Type.MouseButtonPress:
-                pos = evt.position().toPoint()
-                for i in range(self.__tabBar.count()):
-                    if self.__tabBar.tabRect(i).contains(pos):
-                        break
-                
-                if i == self.__tabBar.currentIndex():
-                    if self.isMinimized():
-                        self.expand()
-                    else:
-                        self.shrink()
-                    return True
-                elif self.isMinimized():
-                    self.expand()
-            elif evt.type() == QEvent.Type.Wheel:
-                delta = evt.angleDelta().y()
-                if delta > 0:
-                    self.prevTab()
-                else:
-                    self.nextTab()
-                return True
-        
-        return QWidget.eventFilter(self, obj, evt)
-    
-    def addTab(self, widget, iconOrLabel, label=None):
-        """
-        Public method to add a tab to the sidebar.
-        
-        @param widget reference to the widget to add (QWidget)
-        @param iconOrLabel reference to the icon or the label text of the tab
-            (QIcon, string)
-        @param label the labeltext of the tab (string) (only to be
-            used, if the second parameter is a QIcon)
-        """
-        if label:
-            index = self.__tabBar.addTab(iconOrLabel, label)
-            self.__tabBar.setTabToolTip(index, label)
-        else:
-            index = self.__tabBar.addTab(iconOrLabel)
-            self.__tabBar.setTabToolTip(index, iconOrLabel)
-        self.__stackedWidget.addWidget(widget)
-        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
-            self.__minSize = self.minimumSizeHint().height()
-        else:
-            self.__minSize = self.minimumSizeHint().width()
-    
-    def insertTab(self, index, widget, iconOrLabel, label=None):
-        """
-        Public method to insert a tab into the sidebar.
-        
-        @param index the index to insert the tab at (integer)
-        @param widget reference to the widget to insert (QWidget)
-        @param iconOrLabel reference to the icon or the labeltext of the tab
-            (QIcon, string)
-        @param label the labeltext of the tab (string) (only to be
-            used, if the second parameter is a QIcon)
-        """
-        if label:
-            index = self.__tabBar.insertTab(index, iconOrLabel, label)
-            self.__tabBar.setTabToolTip(index, label)
-        else:
-            index = self.__tabBar.insertTab(index, iconOrLabel)
-            self.__tabBar.setTabToolTip(index, iconOrLabel)
-        self.__stackedWidget.insertWidget(index, widget)
-        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
-            self.__minSize = self.minimumSizeHint().height()
-        else:
-            self.__minSize = self.minimumSizeHint().width()
-    
-    def removeTab(self, index):
-        """
-        Public method to remove a tab.
-        
-        @param index the index of the tab to remove (integer)
-        """
-        self.__stackedWidget.removeWidget(self.__stackedWidget.widget(index))
-        self.__tabBar.removeTab(index)
-        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
-            self.__minSize = self.minimumSizeHint().height()
-        else:
-            self.__minSize = self.minimumSizeHint().width()
-    
-    def clear(self):
-        """
-        Public method to remove all tabs.
-        """
-        while self.count() > 0:
-            self.removeTab(0)
-    
-    def prevTab(self):
-        """
-        Public slot used to show the previous tab.
-        """
-        ind = self.currentIndex() - 1
-        if ind == -1:
-            ind = self.count() - 1
-            
-        self.setCurrentIndex(ind)
-        self.currentWidget().setFocus()
-    
-    def nextTab(self):
-        """
-        Public slot used to show the next tab.
-        """
-        ind = self.currentIndex() + 1
-        if ind == self.count():
-            ind = 0
-            
-        self.setCurrentIndex(ind)
-        self.currentWidget().setFocus()
-    
-    def count(self):
-        """
-        Public method to get the number of tabs.
-        
-        @return number of tabs in the sidebar (integer)
-        """
-        return self.__tabBar.count()
-    
-    def currentIndex(self):
-        """
-        Public method to get the index of the current tab.
-        
-        @return index of the current tab (integer)
-        """
-        return self.__stackedWidget.currentIndex()
-    
-    def setCurrentIndex(self, index):
-        """
-        Public slot to set the current index.
-        
-        @param index the index to set as the current index (integer)
-        """
-        self.__tabBar.setCurrentIndex(index)
-        self.__stackedWidget.setCurrentIndex(index)
-        if self.isMinimized():
-            self.expand()
-    
-    def currentWidget(self):
-        """
-        Public method to get a reference to the current widget.
-        
-        @return reference to the current widget (QWidget)
-        """
-        return self.__stackedWidget.currentWidget()
-    
-    def setCurrentWidget(self, widget):
-        """
-        Public slot to set the current widget.
-        
-        @param widget reference to the widget to become the current widget
-            (QWidget)
-        """
-        self.__stackedWidget.setCurrentWidget(widget)
-        self.__tabBar.setCurrentIndex(self.__stackedWidget.currentIndex())
-        if self.isMinimized():
-            self.expand()
-    
-    def indexOf(self, widget):
-        """
-        Public method to get the index of the given widget.
-        
-        @param widget reference to the widget to get the index of (QWidget)
-        @return index of the given widget (integer)
-        """
-        return self.__stackedWidget.indexOf(widget)
-    
-    def isTabEnabled(self, index):
-        """
-        Public method to check, if a tab is enabled.
-        
-        @param index index of the tab to check (integer)
-        @return flag indicating the enabled state (boolean)
-        """
-        return self.__tabBar.isTabEnabled(index)
-    
-    def setTabEnabled(self, index, enabled):
-        """
-        Public method to set the enabled state of a tab.
-        
-        @param index index of the tab to set (integer)
-        @param enabled enabled state to set (boolean)
-        """
-        self.__tabBar.setTabEnabled(index, enabled)
-    
-    def orientation(self):
-        """
-        Public method to get the orientation of the sidebar.
-        
-        @return orientation of the sidebar
-        @rtype E5SideBarSide
-        """
-        return self.__orientation
-    
-    def setOrientation(self, orient):
-        """
-        Public method to set the orientation of the sidebar.
-
-        @param orient orientation of the sidebar
-        @type E5SideBarSide
-        """
-        if orient == E5SideBarSide.NORTH:
-            self.__tabBar.setShape(QTabBar.Shape.RoundedNorth)
-            self.__tabBar.setSizePolicy(
-                QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
-            self.barLayout.setDirection(QBoxLayout.Direction.LeftToRight)
-            self.layout.setDirection(QBoxLayout.Direction.TopToBottom)
-            self.layout.setAlignment(self.barLayout,
-                                     Qt.AlignmentFlag.AlignLeft)
-        elif orient == E5SideBarSide.EAST:
-            self.__tabBar.setShape(QTabBar.Shape.RoundedEast)
-            self.__tabBar.setSizePolicy(
-                QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding)
-            self.barLayout.setDirection(QBoxLayout.Direction.TopToBottom)
-            self.layout.setDirection(QBoxLayout.Direction.RightToLeft)
-            self.layout.setAlignment(self.barLayout, Qt.AlignmentFlag.AlignTop)
-        elif orient == E5SideBarSide.SOUTH:
-            self.__tabBar.setShape(QTabBar.Shape.RoundedSouth)
-            self.__tabBar.setSizePolicy(
-                QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
-            self.barLayout.setDirection(QBoxLayout.Direction.LeftToRight)
-            self.layout.setDirection(QBoxLayout.Direction.BottomToTop)
-            self.layout.setAlignment(self.barLayout,
-                                     Qt.AlignmentFlag.AlignLeft)
-        elif orient == E5SideBarSide.WEST:
-            self.__tabBar.setShape(QTabBar.Shape.RoundedWest)
-            self.__tabBar.setSizePolicy(
-                QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding)
-            self.barLayout.setDirection(QBoxLayout.Direction.TopToBottom)
-            self.layout.setDirection(QBoxLayout.Direction.LeftToRight)
-            self.layout.setAlignment(self.barLayout, Qt.AlignmentFlag.AlignTop)
-        self.__orientation = orient
-    
-    def tabIcon(self, index):
-        """
-        Public method to get the icon of a tab.
-        
-        @param index index of the tab (integer)
-        @return icon of the tab (QIcon)
-        """
-        return self.__tabBar.tabIcon(index)
-    
-    def setTabIcon(self, index, icon):
-        """
-        Public method to set the icon of a tab.
-        
-        @param index index of the tab (integer)
-        @param icon icon to be set (QIcon)
-        """
-        self.__tabBar.setTabIcon(index, icon)
-    
-    def tabText(self, index):
-        """
-        Public method to get the text of a tab.
-        
-        @param index index of the tab (integer)
-        @return text of the tab (string)
-        """
-        return self.__tabBar.tabText(index)
-    
-    def setTabText(self, index, text):
-        """
-        Public method to set the text of a tab.
-        
-        @param index index of the tab (integer)
-        @param text text to set (string)
-        """
-        self.__tabBar.setTabText(index, text)
-    
-    def tabToolTip(self, index):
-        """
-        Public method to get the tooltip text of a tab.
-        
-        @param index index of the tab (integer)
-        @return tooltip text of the tab (string)
-        """
-        return self.__tabBar.tabToolTip(index)
-    
-    def setTabToolTip(self, index, tip):
-        """
-        Public method to set the tooltip text of a tab.
-        
-        @param index index of the tab (integer)
-        @param tip tooltip text to set (string)
-        """
-        self.__tabBar.setTabToolTip(index, tip)
-    
-    def tabWhatsThis(self, index):
-        """
-        Public method to get the WhatsThis text of a tab.
-        
-        @param index index of the tab (integer)
-        @return WhatsThis text of the tab (string)
-        """
-        return self.__tabBar.tabWhatsThis(index)
-    
-    def setTabWhatsThis(self, index, text):
-        """
-        Public method to set the WhatsThis text of a tab.
-        
-        @param index index of the tab (integer)
-        @param text WhatsThis text to set (string)
-        """
-        self.__tabBar.setTabWhatsThis(index, text)
-    
-    def widget(self, index):
-        """
-        Public method to get a reference to the widget associated with a tab.
-        
-        @param index index of the tab (integer)
-        @return reference to the widget (QWidget)
-        """
-        return self.__stackedWidget.widget(index)
-    
-    def saveState(self):
-        """
-        Public method to save the state of the sidebar.
-        
-        @return saved state as a byte array (QByteArray)
-        """
-        if len(self.splitterSizes) == 0:
-            if self.splitter:
-                self.splitterSizes = self.splitter.sizes()
-            self.__bigSize = self.size()
-            if self.__orientation in (
-                E5SideBarSide.NORTH, E5SideBarSide.SOUTH
-            ):
-                self.__minSize = self.minimumSizeHint().height()
-                self.__maxSize = self.maximumHeight()
-            else:
-                self.__minSize = self.minimumSizeHint().width()
-                self.__maxSize = self.maximumWidth()
-        
-        dataDict = {
-            "version": self.Version,
-            "minimized": self.__minimized,
-            "big_size": [self.__bigSize.width(), self.__bigSize.height()],
-            "min_size": self.__minSize,
-            "max_size": self.__maxSize,
-            "splitter_sizes": self.splitterSizes,
-            "auto_hide": self.__autoHide
-        }
-        data = json.dumps(dataDict)
-        
-        return data
-    
-    def restoreState(self, state):
-        """
-        Public method to restore the state of the sidebar.
-        
-        @param state byte array containing the saved state (QByteArray)
-        @return flag indicating success (boolean)
-        """
-        if not isinstance(state, str) or state == "":
-            return False
-        
-        try:
-            stateDict = json.loads(state)
-        except json.JSONDecodeError:
-            return False
-        
-        if not stateDict:
-            return False
-        
-        if self.__orientation in (E5SideBarSide.NORTH, E5SideBarSide.SOUTH):
-            minSize = self.layout.minimumSize().height()
-            maxSize = self.maximumHeight()
-        else:
-            minSize = self.layout.minimumSize().width()
-            maxSize = self.maximumWidth()
-        
-        if stateDict["version"] == 2:
-            if stateDict["minimized"] and not self.__minimized:
-                self.shrink()
-            
-            self.__bigSize = QSize(*stateDict["big_size"])
-            self.__minSize = max(stateDict["min_size"], minSize)
-            self.__maxSize = max(stateDict["max_size"], maxSize)
-            self.splitterSizes = stateDict["splitter_sizes"]
-            
-            self.__autoHide = stateDict["auto_hide"]
-            self.__autoHideButton.setChecked(not self.__autoHide)
-            
-            if not stateDict["minimized"]:
-                self.expand()
-            
-            return True
-        
-        return False
-    
-    #######################################################################
-    ## methods below implement the autohide functionality
-    #######################################################################
-    
-    def __autoHideToggled(self, checked):
-        """
-        Private slot to handle the toggling of the autohide button.
-        
-        @param checked flag indicating the checked state of the button
-            (boolean)
-        """
-        self.__autoHide = not checked
-        if self.__autoHide:
-            self.__autoHideButton.setIcon(
-                UI.PixmapCache.getIcon("autoHideOn"))
-        else:
-            self.__autoHideButton.setIcon(
-                UI.PixmapCache.getIcon("autoHideOff"))
-    
-    def __appFocusChanged(self, old, now):
-        """
-        Private slot to handle a change of the focus.
-        
-        @param old reference to the widget, that lost focus (QWidget or None)
-        @param now reference to the widget having the focus (QWidget or None)
-        """
-        if isinstance(now, QWidget):
-            self.__hasFocus = self.isAncestorOf(now)
-            if (
-                self.__autoHide and
-                not self.__hasFocus and
-                not self.isMinimized()
-            ):
-                self.shrink()
-            elif self.__autoHide and self.__hasFocus and self.isMinimized():
-                self.expand()
-    
-    def enterEvent(self, event):
-        """
-        Protected method to handle the mouse entering this widget.
-        
-        @param event reference to the event (QEvent)
-        """
-        if self.__autoHide and self.isMinimized():
-            self.expand()
-        else:
-            self.__cancelDelayTimer()
-    
-    def leaveEvent(self, event):
-        """
-        Protected method to handle the mouse leaving this widget.
-        
-        @param event reference to the event (QEvent)
-        """
-        if self.__autoHide and not self.__hasFocus and not self.isMinimized():
-            self.shrink()
-        else:
-            self.__cancelDelayTimer()
-    
-    def shutdown(self):
-        """
-        Public method to shut down the object.
-        
-        This method does some preparations so the object can be deleted
-        properly. It disconnects from the focusChanged signal in order to
-        avoid trouble later on.
-        """
-        e5App().focusChanged.disconnect(self.__appFocusChanged)
--- a/eric7/E5Gui/E5SimpleHelpDialog.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show some help text.
-"""
-
-from PyQt6.QtCore import Qt
-from PyQt6.QtWidgets import QDialog
-
-from .Ui_E5SimpleHelpDialog import Ui_E5SimpleHelpDialog
-
-
-class E5SimpleHelpDialog(QDialog, Ui_E5SimpleHelpDialog):
-    """
-    Class implementing a dialog to show some help text.
-    """
-    def __init__(self, title="", label="", helpStr="", parent=None):
-        """
-        Constructor
-        
-        @param title title of the window
-        @type str
-        @param label label for the help
-        @type str
-        @param helpStr HTML help text
-        @type str
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.WindowType.Window)
-        
-        self.setWindowTitle(title)
-        if label:
-            self.helpLabel.setText(label)
-        else:
-            self.helpLabel.hide()
-        self.helpEdit.setHtml(helpStr)
--- a/eric7/E5Gui/E5SimpleHelpDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>E5SimpleHelpDialog</class>
- <widget class="QDialog" name="E5SimpleHelpDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>600</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string/>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="helpLabel"/>
-   </item>
-   <item>
-    <widget class="QTextBrowser" name="helpEdit">
-     <property name="tabChangesFocus">
-      <bool>true</bool>
-     </property>
-     <property name="readOnly">
-      <bool>true</bool>
-     </property>
-     <property name="textInteractionFlags">
-      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
-     </property>
-     <property name="openExternalLinks">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>E5SimpleHelpDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>E5SimpleHelpDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric7/E5Gui/E5SingleApplication.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2004 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the single application server and client.
-"""
-
-import os
-
-from E5Gui.E5Application import e5App
-
-from Toolbox.SingleApplication import (
-    SingleApplicationClient, SingleApplicationServer
-)
-
-import Utilities
-
-###########################################################################
-## define some module global stuff
-###########################################################################
-
-SAFile = "eric7"
-
-# define the protocol tokens
-SAOpenFile = 'OpenFile'
-SAOpenProject = 'OpenProject'
-SAOpenMultiProject = 'OpenMultiProject'
-SAArguments = 'Arguments'
-
-
-class E5SingleApplicationServer(SingleApplicationServer):
-    """
-    Class implementing the single application server embedded within the IDE.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        SingleApplicationServer.__init__(self, SAFile)
-
-    def handleCommand(self, command, arguments):
-        """
-        Public slot to handle the command sent by the client.
-        
-        @param command command sent by the client
-        @type str
-        @param arguments list of command arguments
-        @type list of str
-        """
-        if command == SAOpenFile:
-            self.__saOpenFile(arguments[0])
-            return
-
-        if command == SAOpenProject:
-            self.__saOpenProject(arguments[0])
-            return
-
-        if command == SAOpenMultiProject:
-            self.__saOpenMultiProject(arguments[0])
-            return
-
-        if command == SAArguments:
-            self.__saArguments(arguments[0])
-            return
-
-    def __saOpenFile(self, fname):
-        """
-        Private method used to handle the "Open File" command.
-        
-        @param fname filename to be opened (string)
-        """
-        e5App().getObject("ViewManager").openSourceFile(fname)
-        
-    def __saOpenProject(self, pfname):
-        """
-        Private method used to handle the "Open Project" command.
-        
-        @param pfname filename of the project to be opened (string)
-        """
-        e5App().getObject("Project").openProject(pfname)
-        
-    def __saOpenMultiProject(self, pfname):
-        """
-        Private method used to handle the "Open Multi-Project" command.
-        
-        @param pfname filename of the multi project to be opened (string)
-        """
-        e5App().getObject("MultiProject").openMultiProject(pfname)
-        
-    def __saArguments(self, argsStr):
-        """
-        Private method used to handle the "Arguments" command.
-        
-        @param argsStr space delimited list of command args(string)
-        """
-        e5App().getObject("DebugUI").setArgvHistory(argsStr)
-
-
-class E5SingleApplicationClient(SingleApplicationClient):
-    """
-    Class implementing the single application client of the IDE.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        SingleApplicationClient.__init__(self, SAFile)
-        
-    def processArgs(self, args):
-        """
-        Public method to process the command line args passed to the UI.
-        
-        @param args list of files to open
-        """
-        # no args, return
-        if args is None:
-            return
-        
-        # holds space delimited list of command args, if any
-        argsStr = None
-        # flag indicating '--' options was found
-        ddseen = False
-        
-        argChars = ['-', '/'] if Utilities.isWindowsPlatform() else ['-']
-        
-        for arg in args:
-            if arg == '--' and not ddseen:
-                ddseen = True
-                continue
-                
-            if arg[0] in argChars or ddseen:
-                if argsStr is None:
-                    argsStr = arg
-                else:
-                    argsStr = "{0} {1}".format(argsStr, arg)
-                continue
-            
-            ext = os.path.splitext(arg)[1]
-            ext = os.path.normcase(ext)
-            
-            if ext in ('.epj', '.e4p'):
-                self.__openProject(arg)
-            elif ext in ('.emj', '.e4m', '.e5m'):
-                self.__openMultiProject(arg)
-            else:
-                self.__openFile(arg)
-        
-        # send any args we had
-        if argsStr is not None:
-            self.__sendArguments(argsStr)
-        
-        self.disconnect()
-        
-    def __openFile(self, fname):
-        """
-        Private method to open a file in the application server.
-        
-        @param fname name of file to be opened (string)
-        """
-        self.sendCommand(SAOpenFile, [os.path.abspath(fname)])
-        
-    def __openProject(self, pfname):
-        """
-        Private method to open a project in the application server.
-        
-        @param pfname name of the projectfile to be opened (string)
-        """
-        self.sendCommand(SAOpenProject, [os.path.abspath(pfname)])
-        
-    def __openMultiProject(self, pfname):
-        """
-        Private method to open a project in the application server.
-        
-        @param pfname name of the projectfile to be opened (string)
-        """
-        self.sendCommand(SAOpenMultiProject, [os.path.abspath(pfname)])
-        
-    def __sendArguments(self, argsStr):
-        """
-        Private method to set the command arguments in the application server.
-        
-        @param argsStr space delimited list of command args (string)
-        """
-        self.sendCommand(SAArguments, [argsStr])
--- a/eric7/E5Gui/E5SqueezeLabels.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2008 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing labels that squeeze their contents to fit the size of the
-label.
-"""
-
-from PyQt6.QtCore import Qt
-from PyQt6.QtWidgets import QLabel
-
-from Utilities import compactPath
-
-
-class E5SqueezeLabel(QLabel):
-    """
-    Class implementing a label that squeezes its contents to fit its size.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent Widget (QWidget)
-        """
-        super().__init__(parent)
-        
-        self.__text = ''
-        self.__elided = ''
-    
-    def paintEvent(self, event):
-        """
-        Protected method called when some painting is required.
-        
-        @param event reference to the paint event (QPaintEvent)
-        """
-        fm = self.fontMetrics()
-        try:
-            pixelLength = fm.horizontalAdvance(self.__text)
-        except AttributeError:
-            pixelLength = fm.width(self.__text)
-        if pixelLength > self.contentsRect().width():
-            self.__elided = fm.elidedText(
-                self.text(), Qt.TextElideMode.ElideMiddle, self.width())
-            super().setText(self.__elided)
-        else:
-            super().setText(self.__text)
-        super().paintEvent(event)
-    
-    def setText(self, txt):
-        """
-        Public method to set the label's text.
-        
-        @param txt the text to be shown (string)
-        """
-        self.__text = txt
-        super().setText(self.__text)
-
-
-class E5SqueezeLabelPath(QLabel):
-    """
-    Class implementing a label showing a file path compacted to fit its size.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent Widget (QWidget)
-        """
-        super().__init__(parent)
-        
-        self.__path = ''
-        self.__surrounding = "{0}"
-    
-    def setSurrounding(self, surrounding):
-        """
-        Public method to set the surrounding of the path string.
-        
-        @param surrounding the a string containg placeholders for the path
-            (string)
-        """
-        self.__surrounding = surrounding
-        super().setText(
-            self.__surrounding.format(self.__path))
-    
-    def setPath(self, path):
-        """
-        Public method to set the path of the label.
-        
-        @param path path to be shown (string)
-        """
-        self.__path = path
-        super().setText(
-            self.__surrounding.format(self.__path))
-    
-    def setTextPath(self, surrounding, path):
-        """
-        Public method to set the surrounding and the path of the label.
-        
-        @param surrounding the a string containg placeholders for the path
-            (string)
-        @param path path to be shown (string)
-        """
-        self.__surrounding = surrounding
-        self.__path = path
-        super().setText(
-            self.__surrounding.format(self.__path))
-    
-    def paintEvent(self, event):
-        """
-        Protected method called when some painting is required.
-        
-        @param event reference to the paint event (QPaintEvent)
-        """
-        if self.length(self.__path) > self.contentsRect().width():
-            super().setText(
-                self.__surrounding.format(compactPath(self.__path,
-                                          self.contentsRect().width(),
-                                          self.length))
-            )
-        else:
-            super().setText(
-                self.__surrounding.format(self.__path))
-        super().paintEvent(event)
-    
-    def length(self, txt):
-        """
-        Public method to return the length of a text in pixels.
-        
-        @param txt text to calculate the length for after wrapped (string)
-        @return length of the wrapped text in pixels (integer)
-        """
-        fm = self.fontMetrics()
-        try:
-            return fm.horizontalAdvance(self.__surrounding.format(txt))
-        except AttributeError:
-            return fm.width(self.__surrounding.format(txt))
--- a/eric7/E5Gui/E5StringListEditWidget.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to edit a list of strings.
-"""
-
-from PyQt6.QtCore import (
-    pyqtSlot, pyqtSignal, Qt, QSortFilterProxyModel, QStringListModel
-)
-from PyQt6.QtWidgets import QWidget, QInputDialog, QLineEdit
-
-from .Ui_E5StringListEditWidget import Ui_E5StringListEditWidget
-
-
-class E5StringListEditWidget(QWidget, Ui_E5StringListEditWidget):
-    """
-    Class implementing a dialog to edit a list of strings.
-    
-    @signal setToDefault() emitted to request the default list of values
-    """
-    setToDefault = pyqtSignal()
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-        self.setupUi(self)
-        
-        self.__model = QStringListModel(self)
-        self.__proxyModel = QSortFilterProxyModel(self)
-        self.__proxyModel.setFilterCaseSensitivity(
-            Qt.CaseSensitivity.CaseInsensitive)
-        self.__proxyModel.setSourceModel(self.__model)
-        self.stringList.setModel(self.__proxyModel)
-        
-        self.defaultButton.hide()
-        
-        self.searchEdit.textChanged.connect(
-            self.__proxyModel.setFilterFixedString)
-        
-        self.removeButton.clicked.connect(self.stringList.removeSelected)
-        self.removeAllButton.clicked.connect(self.stringList.removeAll)
-        self.defaultButton.clicked.connect(self.setToDefault)
-    
-    def setList(self, stringList):
-        """
-        Public method to set the list of strings to be edited.
-        
-        @param stringList list of strings to be edited (list of string)
-        """
-        self.__model.setStringList(stringList)
-        self.__model.sort(0)
-    
-    def getList(self):
-        """
-        Public method to get the edited list of strings.
-        
-        @return edited list of string (list of string)
-        """
-        return self.__model.stringList()[:]
-    
-    def setListWhatsThis(self, txt):
-        """
-        Public method to set a what's that help text for the string list.
-        
-        @param txt help text to be set (string)
-        """
-        self.stringList.setWhatsThis(txt)
-    
-    def setDefaultVisible(self, visible):
-        """
-        Public method to show or hide the default button.
-        
-        @param visible flag indicating the visibility of the default button
-        @type bool
-        """
-        self.defaultButton.setVisible(visible)
-    
-    def setAddVisible(self, visible):
-        """
-        Public method to show or hide the add button.
-        
-        @param visible flag indicating the visibility of the add button
-        @type bool
-        """
-        self.addButton.setVisible(visible)
-        self.addLine.setVisible(visible)
-    
-    @pyqtSlot()
-    def on_addButton_clicked(self):
-        """
-        Private slot to add an entry to the list.
-        """
-        entry, ok = QInputDialog.getText(
-            self,
-            self.tr("Add Entry"),
-            self.tr("Enter the entry to add to the list:"),
-            QLineEdit.EchoMode.Normal)
-        if ok and entry != "" and entry not in self.__model.stringList():
-            self.__model.insertRow(self.__model.rowCount())
-            self.__model.setData(
-                self.__model.index(self.__model.rowCount() - 1), entry)
-            self.__model.sort(0)
--- a/eric7/E5Gui/E5StringListEditWidget.ui	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,173 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>E5StringListEditWidget</class>
- <widget class="QWidget" name="E5StringListEditWidget">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>300</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string/>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="leftMargin">
-    <number>0</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <item>
-    <layout class="QGridLayout" name="gridLayout_4">
-     <property name="horizontalSpacing">
-      <number>0</number>
-     </property>
-     <item row="0" column="1">
-      <widget class="QLineEdit" name="searchEdit">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="minimumSize">
-        <size>
-         <width>300</width>
-         <height>0</height>
-        </size>
-       </property>
-       <property name="toolTip">
-        <string>Enter search term for strings</string>
-       </property>
-       <property name="clearButtonEnabled">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="0">
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0" rowspan="6">
-      <widget class="E5ListView" name="stringList">
-       <property name="alternatingRowColors">
-        <bool>true</bool>
-       </property>
-       <property name="selectionMode">
-        <enum>QAbstractItemView::ExtendedSelection</enum>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QPushButton" name="addButton">
-       <property name="toolTip">
-        <string>Press to add an entry</string>
-       </property>
-       <property name="text">
-        <string>&amp;Add...</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="Line" name="addLine">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QPushButton" name="removeButton">
-       <property name="toolTip">
-        <string>Press to remove the selected entries</string>
-       </property>
-       <property name="text">
-        <string>&amp;Remove</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
-      <widget class="QPushButton" name="removeAllButton">
-       <property name="toolTip">
-        <string>Press to remove all entries</string>
-       </property>
-       <property name="text">
-        <string>R&amp;emove All</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="4" column="1">
-      <spacer name="verticalSpacer_3">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>40</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item row="5" column="1">
-      <widget class="QPushButton" name="defaultButton">
-       <property name="toolTip">
-        <string>Press to set the default list of values</string>
-       </property>
-       <property name="text">
-        <string>&amp;Default</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ListView</class>
-   <extends>QListView</extends>
-   <header>E5Gui/E5ListView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>stringList</tabstop>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>addButton</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>removeAllButton</tabstop>
-  <tabstop>defaultButton</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric7/E5Gui/E5TabWidget.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,358 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2005 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a TabWidget class substituting QTabWidget.
-"""
-
-import contextlib
-
-from PyQt6.QtCore import pyqtSignal, Qt, QPoint, QMimeData
-from PyQt6.QtGui import QDrag
-from PyQt6.QtWidgets import QTabWidget, QTabBar, QApplication, QStyle
-
-from E5Gui.E5AnimatedLabel import E5AnimatedLabel
-
-
-class E5WheelTabBar(QTabBar):
-    """
-    Class implementing a tab bar class substituting QTabBar to support wheel
-    events.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-        self._tabWidget = parent
-    
-    def wheelEvent(self, event):
-        """
-        Protected slot to support wheel events.
-        
-        @param event reference to the wheel event (QWheelEvent)
-        """
-        with contextlib.suppress(AttributeError):
-            delta = event.angleDelta().y()
-            if delta > 0:
-                self._tabWidget.prevTab()
-            elif delta < 0:
-                self._tabWidget.nextTab()
-            
-            event.accept()
-
-
-class E5DnDTabBar(E5WheelTabBar):
-    """
-    Class implementing a tab bar class substituting QTabBar.
-    
-    @signal tabMoveRequested(int, int) emitted to signal a tab move request
-        giving the old and new index position
-    """
-    tabMoveRequested = pyqtSignal(int, int)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        E5WheelTabBar.__init__(self, parent)
-        self.setAcceptDrops(True)
-        
-        self.__dragStartPos = QPoint()
-    
-    def mousePressEvent(self, event):
-        """
-        Protected method to handle mouse press events.
-        
-        @param event reference to the mouse press event (QMouseEvent)
-        """
-        if event.button() == Qt.MouseButton.LeftButton:
-            self.__dragStartPos = QPoint(event.position().toPoint())
-        E5WheelTabBar.mousePressEvent(self, event)
-    
-    def mouseMoveEvent(self, event):
-        """
-        Protected method to handle mouse move events.
-        
-        @param event reference to the mouse move event (QMouseEvent)
-        """
-        if (
-            event.buttons() == Qt.MouseButton.LeftButton and
-            (event.position().toPoint() - self.__dragStartPos)
-            .manhattanLength() > QApplication.startDragDistance()
-        ):
-            drag = QDrag(self)
-            mimeData = QMimeData()
-            index = self.tabAt(event.position().toPoint())
-            mimeData.setText(self.tabText(index))
-            mimeData.setData("action", b"tab-reordering")
-            mimeData.setData("tabbar-id", str(id(self)).encode("utf-8"))
-            drag.setMimeData(mimeData)
-            drag.exec()
-        E5WheelTabBar.mouseMoveEvent(self, event)
-    
-    def dragEnterEvent(self, event):
-        """
-        Protected method to handle drag enter events.
-        
-        @param event reference to the drag enter event (QDragEnterEvent)
-        """
-        mimeData = event.mimeData()
-        formats = mimeData.formats()
-        if (
-            "action" in formats and
-            mimeData.data("action") == b"tab-reordering" and
-            "tabbar-id" in formats and
-            int(mimeData.data("tabbar-id")) == id(self)
-        ):
-            event.acceptProposedAction()
-        E5WheelTabBar.dragEnterEvent(self, event)
-    
-    def dropEvent(self, event):
-        """
-        Protected method to handle drop events.
-        
-        @param event reference to the drop event (QDropEvent)
-        """
-        fromIndex = self.tabAt(self.__dragStartPos)
-        toIndex = self.tabAt(event.position().toPoint())
-        if fromIndex != toIndex:
-            self.tabMoveRequested.emit(fromIndex, toIndex)
-            event.acceptProposedAction()
-        E5WheelTabBar.dropEvent(self, event)
-
-
-class E5TabWidget(QTabWidget):
-    """
-    Class implementing a tab widget class substituting QTabWidget.
-    
-    It provides slots to show the previous and next tab and give
-    them the input focus and it allows to have a context menu for the tabs.
-    
-    @signal customTabContextMenuRequested(const QPoint & point, int index)
-        emitted when a context menu for a tab is requested
-    """
-    customTabContextMenuRequested = pyqtSignal(QPoint, int)
-    
-    def __init__(self, parent=None, dnd=False):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        @param dnd flag indicating the support for Drag & Drop (boolean)
-        """
-        super().__init__(parent)
-        
-        if dnd:
-            if not hasattr(self, 'setMovable'):
-                self.__tabBar = E5DnDTabBar(self)
-                self.__tabBar.tabMoveRequested.connect(self.moveTab)
-                self.setTabBar(self.__tabBar)
-            else:
-                self.__tabBar = E5WheelTabBar(self)
-                self.setTabBar(self.__tabBar)
-                self.setMovable(True)
-        else:
-            self.__tabBar = E5WheelTabBar(self)
-            self.setTabBar(self.__tabBar)
-        
-        self.__lastCurrentIndex = -1
-        self.__currentIndex = -1
-        self.currentChanged.connect(self.__currentChanged)
-    
-    def setCustomTabBar(self, dnd, tabBar):
-        """
-        Public method to set a custom tab bar.
-        
-        @param dnd flag indicating the support for Drag & Drop (boolean)
-        @param tabBar reference to the tab bar to set (QTabBar)
-        """
-        self.__tabBar = tabBar
-        self.setTabBar(self.__tabBar)
-        if dnd:
-            if isinstance(tabBar, E5DnDTabBar):
-                self.__tabBar.tabMoveRequested.connect(self.moveTab)
-            else:
-                self.setMovable(True)
-    
-    def __currentChanged(self, index):
-        """
-        Private slot to handle the currentChanged signal.
-        
-        @param index index of the current tab
-        """
-        if index == -1:
-            self.__lastCurrentIndex = -1
-        else:
-            self.__lastCurrentIndex = self.__currentIndex
-        self.__currentIndex = index
-        
-    def switchTab(self):
-        """
-        Public slot used to switch between the current and the previous
-        current tab.
-        """
-        if self.__lastCurrentIndex == -1 or self.__currentIndex == -1:
-            return
-        
-        self.setCurrentIndex(self.__lastCurrentIndex)
-        self.currentWidget().setFocus()
-        
-    def nextTab(self):
-        """
-        Public slot used to show the next tab.
-        """
-        ind = self.currentIndex() + 1
-        if ind == self.count():
-            ind = 0
-            
-        self.setCurrentIndex(ind)
-        self.currentWidget().setFocus()
-
-    def prevTab(self):
-        """
-        Public slot used to show the previous tab.
-        """
-        ind = self.currentIndex() - 1
-        if ind == -1:
-            ind = self.count() - 1
-            
-        self.setCurrentIndex(ind)
-        self.currentWidget().setFocus()
-
-    def setTabContextMenuPolicy(self, policy):
-        """
-        Public method to set the context menu policy of the tab.
-        
-        @param policy context menu policy to set (Qt.ContextMenuPolicy)
-        """
-        self.tabBar().setContextMenuPolicy(policy)
-        if policy == Qt.ContextMenuPolicy.CustomContextMenu:
-            self.tabBar().customContextMenuRequested.connect(
-                self.__handleTabCustomContextMenuRequested)
-        else:
-            self.tabBar().customContextMenuRequested.disconnect(
-                self.__handleTabCustomContextMenuRequested)
-
-    def __handleTabCustomContextMenuRequested(self, point):
-        """
-        Private slot to handle the context menu request for the tabbar.
-        
-        @param point point the context menu was requested (QPoint)
-        """
-        _tabbar = self.tabBar()
-        for index in range(_tabbar.count()):
-            rect = _tabbar.tabRect(index)
-            if rect.contains(point):
-                self.customTabContextMenuRequested.emit(
-                    _tabbar.mapToParent(point), index)
-                return
-        
-        self.customTabContextMenuRequested.emit(_tabbar.mapToParent(point), -1)
-    
-    def selectTab(self, pos):
-        """
-        Public method to get the index of a tab given a position.
-        
-        @param pos position determining the tab index (QPoint)
-        @return index of the tab (integer)
-        """
-        _tabbar = self.tabBar()
-        for index in range(_tabbar.count()):
-            rect = _tabbar.tabRect(index)
-            if rect.contains(pos):
-                return index
-        
-        return -1
-
-    def moveTab(self, curIndex, newIndex):
-        """
-        Public method to move a tab to a new index.
-        
-        @param curIndex index of tab to be moved (integer)
-        @param newIndex index the tab should be moved to (integer)
-        """
-        # step 1: save the tab data of tab to be moved
-        toolTip = self.tabToolTip(curIndex)
-        text = self.tabText(curIndex)
-        icon = self.tabIcon(curIndex)
-        whatsThis = self.tabWhatsThis(curIndex)
-        widget = self.widget(curIndex)
-        curWidget = self.currentWidget()
-        
-        # step 2: move the tab
-        self.removeTab(curIndex)
-        self.insertTab(newIndex, widget, icon, text)
-        
-        # step 3: set the tab data again
-        self.setTabToolTip(newIndex, toolTip)
-        self.setTabWhatsThis(newIndex, whatsThis)
-        
-        # step 4: set current widget
-        self.setCurrentWidget(curWidget)
-    
-    def __freeSide(self):
-        """
-        Private method to determine the free side of a tab.
-        
-        @return free side (QTabBar.ButtonPosition)
-        """
-        side = self.__tabBar.style().styleHint(
-            QStyle.StyleHint.SH_TabBar_CloseButtonPosition,
-            None, None, None)
-        side = (
-            QTabBar.ButtonPosition.RightSide
-            if side == QTabBar.ButtonPosition.LeftSide else
-            QTabBar.ButtonPosition.LeftSide
-        )
-        return side
-    
-    def animationLabel(self, index, animationFile, interval=100):
-        """
-        Public slot to set an animated icon.
-        
-        @param index tab index
-        @type int
-        @param animationFile name of the file containing the animation
-        @type str
-        @param interval interval in milliseconds between animation frames
-        @type int
-        @return reference to the created label
-        @rtype E5AnimatedLabel
-        """
-        if index == -1:
-            return None
-        
-        if hasattr(self.__tabBar, 'setTabButton'):
-            side = self.__freeSide()
-            animation = E5AnimatedLabel(
-                self, animationFile=animationFile, interval=interval)
-            self.__tabBar.setTabButton(index, side, None)
-            self.__tabBar.setTabButton(index, side, animation)
-            animation.start()
-            return animation
-        else:
-            return None
-    
-    def resetAnimation(self, index):
-        """
-        Public slot to reset an animated icon.
-        
-        @param index tab index (integer)
-        """
-        if index == -1:
-            return
-        
-        if hasattr(self.__tabBar, 'tabButton'):
-            side = self.__freeSide()
-            animation = self.__tabBar.tabButton(index, side)
-            if animation is not None:
-                animation.stop()
-                self.__tabBar.setTabButton(index, side, None)
-                del animation
--- a/eric7/E5Gui/E5TableView.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing specialized table views.
-"""
-
-from PyQt6.QtCore import Qt, QItemSelectionModel
-from PyQt6.QtWidgets import QTableView
-
-
-class E5TableView(QTableView):
-    """
-    Class implementing a table view supporting removal of entries.
-    """
-    def keyPressEvent(self, evt):
-        """
-        Protected method implementing special key handling.
-        
-        @param evt reference to the event (QKeyEvent)
-        """
-        if (
-            evt.key() in [Qt.Key.Key_Delete, Qt.Key.Key_Backspace] and
-            self.model() is not None
-        ):
-            self.removeSelected()
-            evt.setAccepted(True)
-        else:
-            super().keyPressEvent(evt)
-    
-    def removeSelected(self):
-        """
-        Public method to remove the selected entries.
-        """
-        if self.model() is None or self.selectionModel() is None:
-            # no models available
-            return
-        
-        row = 0
-        selectedRows = self.selectionModel().selectedRows()
-        for selectedRow in reversed(selectedRows):
-            row = selectedRow.row()
-            self.model().removeRow(row, self.rootIndex())
-        
-        idx = self.model().index(row, 0, self.rootIndex())
-        if not idx.isValid():
-            idx = self.model().index(row - 1, 0, self.rootIndex())
-        self.selectionModel().select(
-            idx,
-            QItemSelectionModel.SelectionFlag.SelectCurrent |
-            QItemSelectionModel.SelectionFlag.Rows)
-        self.setCurrentIndex(idx)
-    
-    def removeAll(self):
-        """
-        Public method to clear the view.
-        """
-        if self.model() is not None:
-            self.model().removeRows(0, self.model().rowCount(self.rootIndex()),
-                                    self.rootIndex())
--- a/eric7/E5Gui/E5TextEditSearchWidget.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,378 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a horizontal search widget for QTextEdit.
-"""
-
-import enum
-
-from PyQt6.QtCore import pyqtSlot, Qt, QMetaObject, QSize
-from PyQt6.QtGui import QPalette, QBrush, QColor, QTextDocument, QTextCursor
-from PyQt6.QtWidgets import (
-    QWidget, QVBoxLayout, QHBoxLayout, QLabel, QComboBox, QCheckBox,
-    QToolButton, QSizePolicy
-)
-
-import UI.PixmapCache
-
-
-class E5TextEditType(enum.Enum):
-    """
-    Class defining the supported text edit types.
-    """
-    UNKNOWN = 0
-    QTEXTEDIT = 1
-    QTEXTBROWSER = 2
-    QWEBENGINEVIEW = 3
-
-
-class E5TextEditSearchWidget(QWidget):
-    """
-    Class implementing a horizontal search widget for QTextEdit.
-    """
-    def __init__(self, parent=None, widthForHeight=True):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget
-        @type QWidget
-        @param widthForHeight flag indicating to prefer width for height.
-            If this parameter is False, some widgets are shown in a third
-            line.
-        @type bool
-        """
-        super().__init__(parent)
-        self.__setupUi(widthForHeight)
-        
-        self.__textedit = None
-        self.__texteditType = E5TextEditType.UNKNOWN
-        self.__findBackwards = True
-        
-        self.__defaultBaseColor = (
-            self.findtextCombo.lineEdit().palette().color(
-                QPalette.ColorRole.Base)
-        )
-        self.__defaultTextColor = (
-            self.findtextCombo.lineEdit().palette().color(
-                QPalette.ColorRole.Text)
-        )
-        
-        self.findHistory = []
-        
-        self.findtextCombo.setCompleter(None)
-        self.findtextCombo.lineEdit().returnPressed.connect(
-            self.__findByReturnPressed)
-        
-        self.__setSearchButtons(False)
-        self.infoLabel.hide()
-        
-        self.setFocusProxy(self.findtextCombo)
-    
-    def __setupUi(self, widthForHeight):
-        """
-        Private method to generate the UI.
-        
-        @param widthForHeight flag indicating to prefer width for height
-        @type bool
-        """
-        self.setObjectName("E5TextEditSearchWidget")
-        
-        self.verticalLayout = QVBoxLayout(self)
-        self.verticalLayout.setObjectName("verticalLayout")
-        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
-        
-        # row 1 of widgets
-        self.horizontalLayout1 = QHBoxLayout()
-        self.horizontalLayout1.setObjectName("horizontalLayout1")
-        
-        self.label = QLabel(self)
-        self.label.setObjectName("label")
-        self.label.setText(self.tr("Find:"))
-        self.horizontalLayout1.addWidget(self.label)
-        
-        self.findtextCombo = QComboBox(self)
-        self.findtextCombo.setEditable(True)
-        self.findtextCombo.lineEdit().setClearButtonEnabled(True)
-        sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding,
-                                 QSizePolicy.Policy.Fixed)
-        sizePolicy.setHorizontalStretch(0)
-        sizePolicy.setVerticalStretch(0)
-        sizePolicy.setHeightForWidth(
-            self.findtextCombo.sizePolicy().hasHeightForWidth())
-        self.findtextCombo.setSizePolicy(sizePolicy)
-        self.findtextCombo.setMinimumSize(QSize(100, 0))
-        self.findtextCombo.setEditable(True)
-        self.findtextCombo.setInsertPolicy(QComboBox.InsertPolicy.InsertAtTop)
-        self.findtextCombo.setDuplicatesEnabled(False)
-        self.findtextCombo.setObjectName("findtextCombo")
-        self.horizontalLayout1.addWidget(self.findtextCombo)
-        
-        # row 2 (maybe) of widgets
-        self.horizontalLayout2 = QHBoxLayout()
-        self.horizontalLayout2.setObjectName("horizontalLayout2")
-        
-        self.caseCheckBox = QCheckBox(self)
-        self.caseCheckBox.setObjectName("caseCheckBox")
-        self.caseCheckBox.setText(self.tr("Match case"))
-        self.horizontalLayout2.addWidget(self.caseCheckBox)
-        
-        self.wordCheckBox = QCheckBox(self)
-        self.wordCheckBox.setObjectName("wordCheckBox")
-        self.wordCheckBox.setText(self.tr("Whole word"))
-        self.horizontalLayout2.addWidget(self.wordCheckBox)
-        
-        # layout for the navigation buttons
-        self.horizontalLayout3 = QHBoxLayout()
-        self.horizontalLayout3.setSpacing(0)
-        self.horizontalLayout3.setObjectName("horizontalLayout3")
-        
-        self.findPrevButton = QToolButton(self)
-        self.findPrevButton.setObjectName("findPrevButton")
-        self.findPrevButton.setToolTip(self.tr(
-            "Press to find the previous occurrence"))
-        self.findPrevButton.setIcon(UI.PixmapCache.getIcon("1leftarrow"))
-        self.horizontalLayout3.addWidget(self.findPrevButton)
-        
-        self.findNextButton = QToolButton(self)
-        self.findNextButton.setObjectName("findNextButton")
-        self.findNextButton.setToolTip(self.tr(
-            "Press to find the next occurrence"))
-        self.findNextButton.setIcon(UI.PixmapCache.getIcon("1rightarrow"))
-        self.horizontalLayout3.addWidget(self.findNextButton)
-        
-        self.horizontalLayout2.addLayout(self.horizontalLayout3)
-        
-        # info label (in row 2 or 3)
-        self.infoLabel = QLabel(self)
-        self.infoLabel.setText("")
-        self.infoLabel.setObjectName("infoLabel")
-        
-        # place everything together
-        self.verticalLayout.addLayout(self.horizontalLayout1)
-        self.__addWidthForHeightLayout(widthForHeight)
-        self.verticalLayout.addWidget(self.infoLabel)
-        
-        QMetaObject.connectSlotsByName(self)
-        
-        self.setTabOrder(self.findtextCombo, self.caseCheckBox)
-        self.setTabOrder(self.caseCheckBox, self.wordCheckBox)
-        self.setTabOrder(self.wordCheckBox, self.findPrevButton)
-        self.setTabOrder(self.findPrevButton, self.findNextButton)
-    
-    def setWidthForHeight(self, widthForHeight):
-        """
-        Public method to set the 'width for height'.
-        
-        @param widthForHeight flag indicating to prefer width
-        @type bool
-        """
-        if self.__widthForHeight:
-            self.horizontalLayout1.takeAt(self.__widthForHeightLayoutIndex)
-        else:
-            self.verticalLayout.takeAt(self.__widthForHeightLayoutIndex)
-        self.__addWidthForHeightLayout(widthForHeight)
-    
-    def __addWidthForHeightLayout(self, widthForHeight):
-        """
-        Private method to set the middle part of the layout.
-        
-        @param widthForHeight flag indicating to prefer width
-        @type bool
-        """
-        if widthForHeight:
-            self.horizontalLayout1.addLayout(self.horizontalLayout2)
-            self.__widthForHeightLayoutIndex = 2
-        else:
-            self.verticalLayout.insertLayout(1, self.horizontalLayout2)
-            self.__widthForHeightLayoutIndex = 1
-        
-        self.__widthForHeight = widthForHeight
-    
-    def attachTextEdit(self, textedit, editType=E5TextEditType.QTEXTEDIT):
-        """
-        Public method to attach a QTextEdit widget.
-        
-        @param textedit reference to the edit widget to be attached
-        @type QTextEdit, QWebEngineView or QWebView
-        @param editType type of the attached edit widget
-        @type E5TextEditType
-        """
-        self.__textedit = textedit
-        self.__texteditType = editType
-        
-        self.wordCheckBox.setVisible(editType == "QTextEdit")
-    
-    def keyPressEvent(self, event):
-        """
-        Protected slot to handle key press events.
-        
-        @param event reference to the key press event (QKeyEvent)
-        """
-        if self.__textedit and event.key() == Qt.Key.Key_Escape:
-            self.__textedit.setFocus(Qt.FocusReason.ActiveWindowFocusReason)
-            event.accept()
-    
-    @pyqtSlot(str)
-    def on_findtextCombo_editTextChanged(self, txt):
-        """
-        Private slot to enable/disable the find buttons.
-        
-        @param txt text of the combobox (string)
-        """
-        self.__setSearchButtons(txt != "")
-        
-        self.infoLabel.hide()
-        self.__setFindtextComboBackground(False)
-    
-    def __setSearchButtons(self, enabled):
-        """
-        Private slot to set the state of the search buttons.
-        
-        @param enabled flag indicating the state (boolean)
-        """
-        self.findPrevButton.setEnabled(enabled)
-        self.findNextButton.setEnabled(enabled)
-    
-    def __findByReturnPressed(self):
-        """
-        Private slot to handle the returnPressed signal of the findtext
-        combobox.
-        """
-        self.__find(self.__findBackwards)
-    
-    @pyqtSlot()
-    def on_findPrevButton_clicked(self):
-        """
-        Private slot to find the previous occurrence.
-        """
-        self.__find(True)
-    
-    @pyqtSlot()
-    def on_findNextButton_clicked(self):
-        """
-        Private slot to find the next occurrence.
-        """
-        self.__find(False)
-    
-    def __find(self, backwards):
-        """
-        Private method to search the associated text edit.
-        
-        @param backwards flag indicating a backwards search (boolean)
-        """
-        if not self.__textedit:
-            return
-        
-        self.infoLabel.clear()
-        self.infoLabel.hide()
-        self.__setFindtextComboBackground(False)
-        
-        txt = self.findtextCombo.currentText()
-        if not txt:
-            return
-        self.__findBackwards = backwards
-        
-        # This moves any previous occurrence of this statement to the head
-        # of the list and updates the combobox
-        if txt in self.findHistory:
-            self.findHistory.remove(txt)
-        self.findHistory.insert(0, txt)
-        self.findtextCombo.clear()
-        self.findtextCombo.addItems(self.findHistory)
-        
-        if self.__texteditType in (
-            E5TextEditType.QTEXTBROWSER, E5TextEditType.QTEXTEDIT
-        ):
-            ok = self.__findPrevNextQTextEdit(backwards)
-            self.__findNextPrevCallback(ok)
-        elif self.__texteditType == E5TextEditType.QWEBENGINEVIEW:
-            self.__findPrevNextQWebEngineView(backwards)
-    
-    def __findPrevNextQTextEdit(self, backwards):
-        """
-        Private method to to search the associated edit widget of
-        type QTextEdit.
-        
-        @param backwards flag indicating a backwards search
-        @type bool
-        @return flag indicating the search result
-        @rtype bool
-        """
-        flags = (
-            QTextDocument.FindFlag.FindBackward
-            if backwards else
-            QTextDocument.FindFlag(0)
-        )
-        if self.caseCheckBox.isChecked():
-            flags |= QTextDocument.FindFlag.FindCaseSensitively
-        if self.wordCheckBox.isChecked():
-            flags |= QTextDocument.FindFlag.FindWholeWords
-        
-        ok = self.__textedit.find(self.findtextCombo.currentText(), flags)
-        if not ok:
-            # wrap around once
-            cursor = self.__textedit.textCursor()
-            if backwards:
-                moveOp = QTextCursor.MoveOperation.End
-                # move to end of document
-            else:
-                moveOp = QTextCursor.MoveOperation.Start
-                # move to start of document
-            cursor.movePosition(moveOp)
-            self.__textedit.setTextCursor(cursor)
-            ok = self.__textedit.find(self.findtextCombo.currentText(), flags)
-        
-        return ok
-    
-    def __findPrevNextQWebEngineView(self, backwards):
-        """
-        Private method to to search the associated edit widget of
-        type QWebEngineView.
-        
-        @param backwards flag indicating a backwards search
-        @type bool
-        """
-        from PyQt6.QtWebEngineWidgets import QWebEnginePage
-        
-        findFlags = QWebEnginePage.FindFlag(0)
-        if self.caseCheckBox.isChecked():
-            findFlags |= QWebEnginePage.FindFlag.FindCaseSensitively
-        if backwards:
-            findFlags |= QWebEnginePage.FindFlag.FindBackward
-        self.__textedit.findText(self.findtextCombo.currentText(),
-                                 findFlags, self.__findNextPrevCallback)
-    
-    def __findNextPrevCallback(self, found):
-        """
-        Private method to process the result of the last search.
-        
-        @param found flag indicating if the last search succeeded
-        @type bool
-        """
-        if not found:
-            txt = self.findtextCombo.currentText()
-            self.infoLabel.setText(
-                self.tr("'{0}' was not found.").format(txt))
-            self.infoLabel.show()
-            self.__setFindtextComboBackground(True)
-    
-    def __setFindtextComboBackground(self, error):
-        """
-        Private slot to change the findtext combo background to indicate
-        errors.
-        
-        @param error flag indicating an error condition (boolean)
-        """
-        le = self.findtextCombo.lineEdit()
-        p = le.palette()
-        if error:
-            p.setBrush(QPalette.ColorRole.Base, QBrush(QColor("#FF6666")))
-            p.setBrush(QPalette.ColorRole.Text, QBrush(QColor("#000000")))
-        else:
-            p.setBrush(QPalette.ColorRole.Base, self.__defaultBaseColor)
-            p.setBrush(QPalette.ColorRole.Text, self.__defaultTextColor)
-        le.setPalette(p)
-        le.update()
--- a/eric7/E5Gui/E5TextInputDialog.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2018 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to enter some text.
-"""
-
-from PyQt6.QtWidgets import (
-    QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QLineEdit
-)
-
-
-class E5TextInputDialog(QDialog):
-    """
-    Class implementing a dialog to enter some text.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent)
-        
-        self.setMaximumWidth(600)
-        
-        self.__layout = QVBoxLayout(self)
-        
-        self.__label = QLabel(self)
-        self.__layout.addWidget(self.__label)
-        
-        self.__lineEdit = QLineEdit(self)
-        self.__lineEdit.setClearButtonEnabled(True)
-        self.__layout.addWidget(self.__lineEdit)
-        
-        self.__buttonBox = QDialogButtonBox(
-            QDialogButtonBox.StandardButton.Ok |
-            QDialogButtonBox.StandardButton.Cancel, self)
-        self.__layout.addWidget(self.__buttonBox)
-        
-        self.__buttonBox.accepted.connect(self.accept)
-        self.__buttonBox.rejected.connect(self.reject)
-        
-        msh = self.minimumSizeHint()
-        self.resize(max(self.width(), msh.width()), msh.height())
-    
-    def setTextEchoMode(self, echoMode):
-        """
-        Public method to set the echo mode of the line edit.
-        
-        @param echoMode echo mode of the line edit
-        @type QLineEdit.EchoMode
-        """
-        self.__lineEdit.setEchoMode(echoMode)
-    
-    def textEchoMode(self):
-        """
-        Public method to get the current echo mode of the line edit.
-        
-        @return echo mode of the line edit
-        @rtype QLineEdit.EchoMode
-        """
-        return self.__lineEdit.echoMode()
-    
-    def setTextValue(self, text):
-        """
-        Public method to set the text of the line edit.
-        
-        @param text text for the line edit
-        @type str
-        """
-        self.__lineEdit.setText(text)
-    
-    def textValue(self):
-        """
-        Public method to get the text of the line edit.
-        
-        @return text of the line edit
-        @rtype str
-        """
-        return self.__lineEdit.text()
-    
-    def setLabelText(self, text):
-        """
-        Public method to set the label text.
-        
-        @param text label text
-        @type str
-        """
-        self.__label.setText(text)
-        
-        msh = self.minimumSizeHint()
-        labelSizeHint = self.__label.sizeHint()
-        self.resize(max(self.width(), msh.width(), labelSizeHint.width()),
-                    msh.height())
-    
-    def labelText(self):
-        """
-        Public method to get the current label text.
-        
-        @return current label text
-        @rtype str
-        """
-        return self.label.text()
-
-
-def getText(parent, title, label, mode=QLineEdit.EchoMode.Normal, text="",
-            minimumWidth=300):
-    """
-    Function to get create a dialog to enter some text and return it.
-    
-    @param parent reference to the parent widget
-    @type QWidget
-    @param title title of the dialog
-    @type str
-    @param label label of the dialog
-    @type str
-    @param mode echo mode of the line edit
-    @type QLineEdit.EchoMode
-    @param text initial text of the line edit
-    @type str
-    @param minimumWidth minimum width of the dialog
-    @type int
-    @return tuple containing a flag indicating the dialog was accepted and the
-        entered text
-    @rtype tuple of (bool, str)
-    """
-    dlg = E5TextInputDialog(parent)
-    dlg.setWindowTitle(title)
-    dlg.setLabelText(label)
-    dlg.setTextEchoMode(mode)
-    dlg.setTextValue(text)
-    dlg.setMinimumWidth(minimumWidth)
-    
-    if dlg.exec() == QDialog.DialogCode.Accepted:
-        return True, dlg.textValue()
-    else:
-        return False, ""
--- a/eric7/E5Gui/E5TextSpinBox.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a spinbox with textual entries.
-"""
-
-from PyQt6.QtWidgets import QSpinBox
-
-
-class E5TextSpinBox(QSpinBox):
-    """
-    Class implementing a spinbox with textual entries.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-        
-        self.__items = []
-        
-        self.setMinimum(0)
-        self.setMaximum(0)
-    
-    def addItem(self, txt, data=None):
-        """
-        Public method to add an item with item data.
-        
-        @param txt text to be shown (string)
-        @param data associated data
-        """
-        self.__items.append((txt, data))
-        self.setMaximum(len(self.__items) - 1)
-    
-    def itemData(self, index):
-        """
-        Public method to retrieve the data associated with an item.
-        
-        @param index index of the item (integer)
-        @return associated data
-        """
-        try:
-            return self.__items[index][1]
-        except IndexError:
-            return None
-    
-    def currentIndex(self):
-        """
-        Public method to retrieve the current index.
-        
-        @return current index (integer)
-        """
-        return self.value()
-    
-    def textFromValue(self, value):
-        """
-        Public method to convert a value to text.
-        
-        @param value value to be converted (integer)
-        @return text for the given value (string)
-        """
-        try:
-            return self.__items[value][0]
-        except IndexError:
-            return ""
-    
-    def valueFromText(self, txt):
-        """
-        Public method to convert a text to a value.
-        
-        @param txt text to be converted (string)
-        @return value for the given text (integer)
-        """
-        for index in range(len(self.__items)):
-            if self.__items[index][0] == txt:
-                return index
-        
-        return self.minimum()
--- a/eric7/E5Gui/E5ToolBarDialog.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,525 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2008 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a toolbar configuration dialog.
-"""
-
-from PyQt6.QtCore import pyqtSlot, Qt
-from PyQt6.QtGui import QColor
-from PyQt6.QtWidgets import (
-    QDialog, QDialogButtonBox, QTreeWidgetItem, QInputDialog, QLineEdit,
-    QListWidgetItem, QAbstractButton
-)
-
-from E5Gui import E5MessageBox
-
-from .Ui_E5ToolBarDialog import Ui_E5ToolBarDialog
-
-import UI.PixmapCache
-
-
-class E5ToolBarItem:
-    """
-    Class storing data belonging to a toolbar entry of the toolbar dialog.
-    """
-    def __init__(self, toolBarId, actionIDs, default):
-        """
-        Constructor
-        
-        @param toolBarId id of the toolbar object (integer)
-        @param actionIDs list of action IDs belonging to the toolbar
-            (list of integer)
-        @param default flag indicating a default toolbar (boolean)
-        """
-        self.toolBarId = toolBarId
-        self.actionIDs = actionIDs[:]
-        self.isDefault = default
-        self.title = ""
-        self.isChanged = False
-    
-
-class E5ToolBarDialog(QDialog, Ui_E5ToolBarDialog):
-    """
-    Class implementing a toolbar configuration dialog.
-    """
-    ActionIdRole = Qt.ItemDataRole.UserRole
-    WidgetActionRole = Qt.ItemDataRole.UserRole + 1
-    
-    def __init__(self, toolBarManager, parent=None):
-        """
-        Constructor
-        
-        @param toolBarManager reference to a toolbar manager object
-            (E5ToolBarManager)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-        self.setupUi(self)
-        
-        self.__manager = toolBarManager
-        self.__toolbarItems = {}
-        # maps toolbar item IDs to toolbar items
-        self.__currentToolBarItem = None
-        self.__removedToolBarIDs = []
-        # remember custom toolbars to be deleted
-        
-        self.__widgetActionToToolBarItemID = {}
-        # maps widget action IDs to toolbar item IDs
-        self.__toolBarItemToWidgetActionID = {}
-        # maps toolbar item IDs to widget action IDs
-        
-        self.upButton.setIcon(UI.PixmapCache.getIcon("1uparrow"))
-        self.downButton.setIcon(UI.PixmapCache.getIcon("1downarrow"))
-        self.leftButton.setIcon(UI.PixmapCache.getIcon("1leftarrow"))
-        self.rightButton.setIcon(UI.PixmapCache.getIcon("1rightarrow"))
-        
-        self.__restoreDefaultsButton = self.buttonBox.button(
-            QDialogButtonBox.StandardButton.RestoreDefaults)
-        self.__resetButton = self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Reset)
-        
-        self.actionsTree.header().hide()
-        self.__separatorText = self.tr("--Separator--")
-        itm = QTreeWidgetItem(self.actionsTree, [self.__separatorText])
-        self.actionsTree.setCurrentItem(itm)
-        
-        for category in sorted(self.__manager.categories()):
-            categoryItem = QTreeWidgetItem(self.actionsTree, [category])
-            for action in self.__manager.categoryActions(category):
-                item = QTreeWidgetItem(categoryItem)
-                item.setText(0, action.text())
-                item.setIcon(0, action.icon())
-                item.setTextAlignment(
-                    0,
-                    Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignVCenter
-                )
-                item.setData(0, E5ToolBarDialog.ActionIdRole, int(id(action)))
-                item.setData(0, E5ToolBarDialog.WidgetActionRole, False)
-                if self.__manager.isWidgetAction(action):
-                    item.setData(0, E5ToolBarDialog.WidgetActionRole, True)
-                    item.setData(0, Qt.ItemDataRole.ForegroundRole,
-                                 QColor(Qt.GlobalColor.blue))
-                    self.__widgetActionToToolBarItemID[id(action)] = None
-            categoryItem.setExpanded(True)
-        
-        for tbID, actions in list(self.__manager.toolBarsActions().items()):
-            tb = self.__manager.toolBarById(tbID)
-            default = self.__manager.isDefaultToolBar(tb)
-            tbItem = E5ToolBarItem(tbID, [], default)
-            self.__toolbarItems[id(tbItem)] = tbItem
-            self.__toolBarItemToWidgetActionID[id(tbItem)] = []
-            actionIDs = []
-            for action in actions:
-                if action is None:
-                    actionIDs.append(None)
-                else:
-                    aID = id(action)
-                    actionIDs.append(aID)
-                    if aID in self.__widgetActionToToolBarItemID:
-                        self.__widgetActionToToolBarItemID[aID] = id(tbItem)
-                        self.__toolBarItemToWidgetActionID[id(tbItem)].append(
-                            aID)
-            tbItem.actionIDs = actionIDs
-            self.toolbarComboBox.addItem(tb.windowTitle(), int(id(tbItem)))
-            if default:
-                self.toolbarComboBox.setItemData(
-                    self.toolbarComboBox.count() - 1,
-                    QColor(Qt.GlobalColor.darkGreen),
-                    Qt.ItemDataRole.ForegroundRole)
-        self.toolbarComboBox.model().sort(0)
-        
-        self.toolbarComboBox.currentIndexChanged[int].connect(
-            self.__toolbarComboBox_currentIndexChanged)
-        self.toolbarComboBox.setCurrentIndex(0)
-    
-    @pyqtSlot()
-    def on_newButton_clicked(self):
-        """
-        Private slot to create a new toolbar.
-        """
-        name, ok = QInputDialog.getText(
-            self,
-            self.tr("New Toolbar"),
-            self.tr("Toolbar Name:"),
-            QLineEdit.EchoMode.Normal)
-        if ok and name:
-            if self.toolbarComboBox.findText(name) != -1:
-                # toolbar with this name already exists
-                E5MessageBox.critical(
-                    self,
-                    self.tr("New Toolbar"),
-                    self.tr(
-                        """A toolbar with the name <b>{0}</b> already"""
-                        """ exists.""")
-                    .format(name))
-                return
-            
-            tbItem = E5ToolBarItem(None, [], False)
-            tbItem.title = name
-            tbItem.isChanged = True
-            self.__toolbarItems[id(tbItem)] = tbItem
-            self.__toolBarItemToWidgetActionID[id(tbItem)] = []
-            self.toolbarComboBox.addItem(name, int(id(tbItem)))
-            self.toolbarComboBox.model().sort(0)
-            self.toolbarComboBox.setCurrentIndex(
-                self.toolbarComboBox.findText(name))
-    
-    @pyqtSlot()
-    def on_removeButton_clicked(self):
-        """
-        Private slot to remove a custom toolbar.
-        """
-        name = self.toolbarComboBox.currentText()
-        res = E5MessageBox.yesNo(
-            self,
-            self.tr("Remove Toolbar"),
-            self.tr(
-                """Should the toolbar <b>{0}</b> really be removed?""")
-            .format(name))
-        if res:
-            index = self.toolbarComboBox.currentIndex()
-            tbItemID = self.toolbarComboBox.itemData(index)
-            tbItem = self.__toolbarItems[tbItemID]
-            if (
-                tbItem.toolBarId is not None and
-                tbItem.toolBarId not in self.__removedToolBarIDs
-            ):
-                self.__removedToolBarIDs.append(tbItem.toolBarId)
-            del self.__toolbarItems[tbItemID]
-            for widgetActionID in self.__toolBarItemToWidgetActionID[tbItemID]:
-                self.__widgetActionToToolBarItemID[widgetActionID] = None
-            del self.__toolBarItemToWidgetActionID[tbItemID]
-            self.toolbarComboBox.removeItem(index)
-    
-    @pyqtSlot()
-    def on_renameButton_clicked(self):
-        """
-        Private slot to rename a custom toolbar.
-        """
-        oldName = self.toolbarComboBox.currentText()
-        newName, ok = QInputDialog.getText(
-            self,
-            self.tr("Rename Toolbar"),
-            self.tr("New Toolbar Name:"),
-            QLineEdit.EchoMode.Normal,
-            oldName)
-        if ok and newName:
-            if oldName == newName:
-                return
-            if self.toolbarComboBox.findText(newName) != -1:
-                # toolbar with this name already exists
-                E5MessageBox.critical(
-                    self,
-                    self.tr("Rename Toolbar"),
-                    self.tr(
-                        """A toolbar with the name <b>{0}</b> already"""
-                        """ exists.""")
-                    .format(newName))
-                return
-            index = self.toolbarComboBox.currentIndex()
-            self.toolbarComboBox.setItemText(index, newName)
-            tbItem = self.__toolbarItems[self.toolbarComboBox.itemData(index)]
-            tbItem.title = newName
-            tbItem.isChanged = True
-    
-    def __setupButtons(self):
-        """
-        Private slot to set the buttons state.
-        """
-        index = self.toolbarComboBox.currentIndex()
-        if index > -1:
-            itemID = self.toolbarComboBox.itemData(index)
-            self.__currentToolBarItem = self.__toolbarItems[itemID]
-            self.renameButton.setEnabled(
-                not self.__currentToolBarItem.isDefault)
-            self.removeButton.setEnabled(
-                not self.__currentToolBarItem.isDefault)
-            self.__restoreDefaultsButton.setEnabled(
-                self.__currentToolBarItem.isDefault)
-            self.__resetButton.setEnabled(
-                self.__currentToolBarItem.toolBarId is not None)
-        
-        row = self.toolbarActionsList.currentRow()
-        self.upButton.setEnabled(row > 0)
-        self.downButton.setEnabled(row < self.toolbarActionsList.count() - 1)
-        self.leftButton.setEnabled(self.toolbarActionsList.count() > 0)
-        rightEnable = (
-            self.actionsTree.currentItem().parent() is not None or
-            self.actionsTree.currentItem().text(0) == self.__separatorText
-        )
-        self.rightButton.setEnabled(rightEnable)
-    
-    @pyqtSlot(int)
-    def __toolbarComboBox_currentIndexChanged(self, index):
-        """
-        Private slot called upon a selection of the current toolbar.
-        
-        @param index index of the new current toolbar (integer)
-        """
-        itemID = self.toolbarComboBox.itemData(index)
-        self.__currentToolBarItem = self.__toolbarItems[itemID]
-        self.toolbarActionsList.clear()
-        for actionID in self.__currentToolBarItem.actionIDs:
-            item = QListWidgetItem(self.toolbarActionsList)
-            if actionID is None:
-                item.setText(self.__separatorText)
-            else:
-                action = self.__manager.actionById(actionID)
-                item.setText(action.text())
-                item.setIcon(action.icon())
-                item.setTextAlignment(Qt.AlignmentFlag.AlignLeft |
-                                      Qt.AlignmentFlag.AlignVCenter)
-                item.setData(E5ToolBarDialog.ActionIdRole, int(id(action)))
-                item.setData(E5ToolBarDialog.WidgetActionRole, False)
-                if self.__manager.isWidgetAction(action):
-                    item.setData(E5ToolBarDialog.WidgetActionRole, True)
-                    item.setData(Qt.ItemDataRole.ForegroundRole,
-                                 QColor(Qt.GlobalColor.blue))
-        self.toolbarActionsList.setCurrentRow(0)
-        
-        self.__setupButtons()
-    
-    @pyqtSlot(QTreeWidgetItem, QTreeWidgetItem)
-    def on_actionsTree_currentItemChanged(self, current, previous):
-        """
-        Private slot called, when the currently selected action changes.
-        
-        @param current reference to the current item (QTreeWidgetItem)
-        @param previous reference to the previous current item
-            (QTreeWidgetItem)
-        """
-        self.__setupButtons()
-    
-    @pyqtSlot(QListWidgetItem, QListWidgetItem)
-    def on_toolbarActionsList_currentItemChanged(self, current, previous):
-        """
-        Private slot to handle a change of the current item.
-        
-        @param current reference to the current item (QListWidgetItem)
-        @param previous reference to the previous current item
-            (QListWidgetItem)
-        """
-        self.__setupButtons()
-    
-    @pyqtSlot()
-    def on_upButton_clicked(self):
-        """
-        Private slot used to move an action up in the list.
-        """
-        row = self.toolbarActionsList.currentRow()
-        if row == 0:
-            # we're already at the top
-            return
-        
-        actionID = self.__currentToolBarItem.actionIDs.pop(row)
-        self.__currentToolBarItem.actionIDs.insert(row - 1, actionID)
-        self.__currentToolBarItem.isChanged = True
-        itm = self.toolbarActionsList.takeItem(row)
-        self.toolbarActionsList.insertItem(row - 1, itm)
-        self.toolbarActionsList.setCurrentItem(itm)
-        self.__setupButtons()
-    
-    @pyqtSlot()
-    def on_downButton_clicked(self):
-        """
-        Private slot used to move an action down in the list.
-        """
-        row = self.toolbarActionsList.currentRow()
-        if row == self.toolbarActionsList.count() - 1:
-            # we're already at the end
-            return
-        
-        actionID = self.__currentToolBarItem.actionIDs.pop(row)
-        self.__currentToolBarItem.actionIDs.insert(row + 1, actionID)
-        self.__currentToolBarItem.isChanged = True
-        itm = self.toolbarActionsList.takeItem(row)
-        self.toolbarActionsList.insertItem(row + 1, itm)
-        self.toolbarActionsList.setCurrentItem(itm)
-        self.__setupButtons()
-    
-    @pyqtSlot()
-    def on_leftButton_clicked(self):
-        """
-        Private slot to delete an action from the list.
-        """
-        row = self.toolbarActionsList.currentRow()
-        actionID = self.__currentToolBarItem.actionIDs.pop(row)
-        self.__currentToolBarItem.isChanged = True
-        if actionID in self.__widgetActionToToolBarItemID:
-            self.__widgetActionToToolBarItemID[actionID] = None
-            self.__toolBarItemToWidgetActionID[
-                id(self.__currentToolBarItem)].remove(actionID)
-        itm = self.toolbarActionsList.takeItem(row)
-        del itm
-        self.toolbarActionsList.setCurrentRow(row)
-        self.__setupButtons()
-    
-    @pyqtSlot()
-    def on_rightButton_clicked(self):
-        """
-        Private slot to add an action to the list.
-        """
-        row = self.toolbarActionsList.currentRow() + 1
-            
-        item = QListWidgetItem()
-        if self.actionsTree.currentItem().text(0) == self.__separatorText:
-            item.setText(self.__separatorText)
-            actionID = None
-        else:
-            actionID = self.actionsTree.currentItem().data(
-                0, E5ToolBarDialog.ActionIdRole)
-            action = self.__manager.actionById(actionID)
-            item.setText(action.text())
-            item.setIcon(action.icon())
-            item.setTextAlignment(Qt.AlignmentFlag.AlignLeft |
-                                  Qt.AlignmentFlag.AlignVCenter)
-            item.setData(E5ToolBarDialog.ActionIdRole, int(id(action)))
-            item.setData(E5ToolBarDialog.WidgetActionRole, False)
-            if self.__manager.isWidgetAction(action):
-                item.setData(E5ToolBarDialog.WidgetActionRole, True)
-                item.setData(Qt.ItemDataRole.ForegroundRole,
-                             QColor(Qt.GlobalColor.blue))
-                oldTbItemID = self.__widgetActionToToolBarItemID[actionID]
-                if oldTbItemID is not None:
-                    self.__toolbarItems[oldTbItemID].actionIDs.remove(actionID)
-                    self.__toolbarItems[oldTbItemID].isChanged = True
-                    self.__toolBarItemToWidgetActionID[oldTbItemID].remove(
-                        actionID)
-                self.__widgetActionToToolBarItemID[actionID] = id(
-                    self.__currentToolBarItem)
-                self.__toolBarItemToWidgetActionID[
-                    id(self.__currentToolBarItem)].append(actionID)
-        self.toolbarActionsList.insertItem(row, item)
-        self.__currentToolBarItem.actionIDs.insert(row, actionID)
-        self.__currentToolBarItem.isChanged = True
-        self.toolbarActionsList.setCurrentRow(row)
-        self.__setupButtons()
-    
-    @pyqtSlot(QAbstractButton)
-    def on_buttonBox_clicked(self, button):
-        """
-        Private slot called, when a button of the button box was clicked.
-        
-        @param button reference to the button clicked (QAbstractButton)
-        """
-        if button == self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Cancel
-        ):
-            self.reject()
-        elif button == self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Apply
-        ):
-            self.__saveToolBars()
-            self.__setupButtons()
-        elif button == self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Ok
-        ):
-            self.__saveToolBars()
-            self.accept()
-        elif button == self.buttonBox.button(
-            QDialogButtonBox.StandardButton.Reset
-        ):
-            self.__resetCurrentToolbar()
-            self.__setupButtons()
-        elif button == self.buttonBox.button(
-            QDialogButtonBox.StandardButton.RestoreDefaults
-        ):
-            self.__restoreCurrentToolbarToDefault()
-            self.__setupButtons()
-    
-    def __saveToolBars(self):
-        """
-        Private method to save the configured toolbars.
-        
-        @exception RuntimeError raised to indicate an invalid action
-        """
-        # step 1: remove toolbars marked for deletion
-        for tbID in self.__removedToolBarIDs:
-            tb = self.__manager.toolBarById(tbID)
-            self.__manager.deleteToolBar(tb)
-        self.__removedToolBarIDs = []
-        
-        # step 2: save configured toolbars
-        for tbItem in list(self.__toolbarItems.values()):
-            if not tbItem.isChanged:
-                continue
-            
-            if tbItem.toolBarId is None:
-                # new custom toolbar
-                tb = self.__manager.createToolBar(tbItem.title)
-                tbItem.toolBarId = id(tb)
-            else:
-                tb = self.__manager.toolBarById(tbItem.toolBarId)
-                if not tbItem.isDefault and tbItem.title:
-                    self.__manager.renameToolBar(tb, tbItem.title)
-            
-            actions = []
-            for actionID in tbItem.actionIDs:
-                if actionID is None:
-                    actions.append(None)
-                else:
-                    action = self.__manager.actionById(actionID)
-                    if action is None:
-                        raise RuntimeError(
-                            "No such action, id: 0x{0:x}".format(actionID))
-                    actions.append(action)
-            self.__manager.setToolBar(tb, actions)
-            tbItem.isChanged = False
-    
-    def __restoreCurrentToolbar(self, actions):
-        """
-        Private methdo to restore the current toolbar to the given list of
-        actions.
-        
-        @param actions list of actions to set for the current toolbar
-        (list of QAction)
-        """
-        tbItemID = id(self.__currentToolBarItem)
-        for widgetActionID in self.__toolBarItemToWidgetActionID[tbItemID]:
-            self.__widgetActionToToolBarItemID[widgetActionID] = None
-        self.__toolBarItemToWidgetActionID[tbItemID] = []
-        self.__currentToolBarItem.actionIDs = []
-        
-        for action in actions:
-            if action is None:
-                self.__currentToolBarItem.actionIDs.append(None)
-            else:
-                actionID = id(action)
-                self.__currentToolBarItem.actionIDs.append(actionID)
-                if actionID in self.__widgetActionToToolBarItemID:
-                    oldTbItemID = self.__widgetActionToToolBarItemID[actionID]
-                    if oldTbItemID is not None:
-                        self.__toolbarItems[oldTbItemID].actionIDs.remove(
-                            actionID)
-                        self.__toolbarItems[oldTbItemID].isChanged = True
-                        self.__toolBarItemToWidgetActionID[oldTbItemID].remove(
-                            actionID)
-                    self.__widgetActionToToolBarItemID[actionID] = tbItemID
-                    self.__toolBarItemToWidgetActionID[tbItemID].append(
-                        actionID)
-        self.__toolbarComboBox_currentIndexChanged(
-            self.toolbarComboBox.currentIndex())
-    
-    def __resetCurrentToolbar(self):
-        """
-        Private method to revert all changes made to the current toolbar.
-        """
-        tbID = self.__currentToolBarItem.toolBarId
-        actions = self.__manager.toolBarActions(tbID)
-        self.__restoreCurrentToolbar(actions)
-        self.__currentToolBarItem.isChanged = False
-    
-    def __restoreCurrentToolbarToDefault(self):
-        """
-        Private method to set the current toolbar to its default configuration.
-        """
-        if not self.__currentToolBarItem.isDefault:
-            return
-        
-        tbID = self.__currentToolBarItem.toolBarId
-        actions = self.__manager.defaultToolBarActions(tbID)
-        self.__restoreCurrentToolbar(actions)
-        self.__currentToolBarItem.isChanged = True
--- a/eric7/E5Gui/E5ToolBarDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>E5ToolBarDialog</class>
- <widget class="QDialog" name="E5ToolBarDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>600</width>
-    <height>500</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Configure Toolbars</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout">
-   <item>
-    <layout class="QHBoxLayout">
-     <item>
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>&amp;Toolbar:</string>
-       </property>
-       <property name="buddy">
-        <cstring>toolbarComboBox</cstring>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QComboBox" name="toolbarComboBox">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="toolTip">
-        <string>Select the toolbar to configure</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="newButton">
-       <property name="toolTip">
-        <string>Press to create a new toolbar</string>
-       </property>
-       <property name="text">
-        <string>&amp;New</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="removeButton">
-       <property name="toolTip">
-        <string>Press to remove the selected toolbar</string>
-       </property>
-       <property name="text">
-        <string>&amp;Remove</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="renameButton">
-       <property name="toolTip">
-        <string>Press to rename the selected toolbar</string>
-       </property>
-       <property name="text">
-        <string>R&amp;ename</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="Line" name="line">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QGridLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>Actions:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="2">
-      <widget class="QLabel" name="label_3">
-       <property name="text">
-        <string>Current Toolbar Actions:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0" rowspan="3">
-      <widget class="QTreeWidget" name="actionsTree">
-       <property name="toolTip">
-        <string>Select the action to add to the current toolbar</string>
-       </property>
-       <property name="alternatingRowColors">
-        <bool>true</bool>
-       </property>
-       <property name="rootIsDecorated">
-        <bool>false</bool>
-       </property>
-       <column>
-        <property name="text">
-         <string/>
-        </property>
-       </column>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <spacer>
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>40</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item row="1" column="2" rowspan="3">
-      <widget class="QListWidget" name="toolbarActionsList">
-       <property name="toolTip">
-        <string>Select the action to work on</string>
-       </property>
-       <property name="whatsThis">
-        <string>&lt;b&gt;Current Toolbar Actions&lt;/b&gt;&lt;p&gt;This list shows the actions of the selected toolbar. Select an action and use the up or down button to change the order of actions or the left button to delete it. To add an action to the toolbar, select it in the list of available actions and press the right button.&lt;/p&gt;</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <layout class="QGridLayout">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <item row="0" column="1">
-        <widget class="QToolButton" name="upButton">
-         <property name="toolTip">
-          <string>Press to move the selected action up.</string>
-         </property>
-         <property name="text">
-          <string/>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="0">
-        <widget class="QToolButton" name="leftButton">
-         <property name="toolTip">
-          <string>Press to delete the selected action from the toolbar</string>
-         </property>
-         <property name="text">
-          <string/>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="2">
-        <widget class="QToolButton" name="rightButton">
-         <property name="toolTip">
-          <string>Press to add the selected action to the toolbar</string>
-         </property>
-         <property name="text">
-          <string/>
-         </property>
-        </widget>
-       </item>
-       <item row="2" column="1">
-        <widget class="QToolButton" name="downButton">
-         <property name="toolTip">
-          <string>Press to move the selected action down.</string>
-         </property>
-         <property name="text">
-          <string/>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-     <item row="3" column="1">
-      <spacer>
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>40</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Reset|QDialogButtonBox::RestoreDefaults</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>toolbarComboBox</tabstop>
-  <tabstop>newButton</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>renameButton</tabstop>
-  <tabstop>actionsTree</tabstop>
-  <tabstop>toolbarActionsList</tabstop>
-  <tabstop>upButton</tabstop>
-  <tabstop>downButton</tabstop>
-  <tabstop>rightButton</tabstop>
-  <tabstop>leftButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric7/E5Gui/E5ToolBarManager.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,728 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2008 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a toolbar manager class.
-"""
-
-from PyQt6.QtCore import QObject, QByteArray, QDataStream, QIODevice
-from PyQt6.QtWidgets import QToolBar
-
-import Utilities
-
-
-class E5ToolBarManager(QObject):
-    """
-    Class implementing a toolbar manager.
-    """
-    VersionMarker = 0xffff
-    ToolBarMarker = 0xfefe
-    CustomToolBarMarker = 0xfdfd
-    
-    def __init__(self, ui=None, parent=None):
-        """
-        Constructor
-        
-        @param ui reference to the user interface object (UI.UserInterface)
-        @param parent reference to the parent object (QObject)
-        """
-        super().__init__(parent)
-        
-        self.__mainWindow = None
-        self.__ui = ui
-        
-        self.__toolBars = {}
-        # maps toolbar IDs to actions
-        self.__toolBarsWithSeparators = {}
-        # maps toolbar IDs to actions incl. separators
-        self.__defaultToolBars = {}
-        # maps default toolbar IDs to actions
-        self.__customToolBars = []
-        # list of custom toolbars
-        self.__allToolBars = {}
-        # maps toolbar IDs to toolbars
-        
-        self.__categoryToActions = {}
-        # maps categories to actions
-        self.__actionToCategory = {}
-        # maps action IDs to categories
-        self.__allActions = {}
-        # maps action IDs to actions
-        self.__actionToToolBars = {}
-        # maps action IDs to toolbars
-        
-        self.__widgetActions = {}
-        # maps widget action IDs to toolbars
-        self.__allWidgetActions = {}
-        # maps widget action IDs to widget actions
-    
-    ######################################################
-    ## Private methods
-    ######################################################
-    
-    def __toolBarByName(self, name):
-        """
-        Private slot to get a toolbar by its object name.
-        
-        @param name object name of the toolbar (string)
-        @return reference to the toolbar (QToolBar)
-        """
-        for toolBar in list(self.__allToolBars.values()):
-            if toolBar.objectName() == name:
-                return toolBar
-        return None
-    
-    def __findAction(self, name):
-        """
-        Private method to find an action by name.
-        
-        @param name name of the action to search for (string)
-        @return reference to the action (QAction)
-        """
-        # check objectName() first
-        for action in list(self.__allActions.values()):
-            if action.objectName() == name:
-                return action
-        
-        # check text() next
-        for action in list(self.__allActions.values()):
-            if action.text() == name:
-                return action
-        
-        return None
-    
-    def __findDefaultToolBar(self, name):
-        """
-        Private method to find a default toolbar by name.
-        
-        @param name name of the default toolbar to search for (string)
-        @return reference to the default toolbar (QToolBar)
-        """
-        # check objectName() first
-        for tbID in self.__defaultToolBars:
-            tb = self.__allToolBars[tbID]
-            if tb.objectName() == name:
-                return tb
-        
-        # check windowTitle() next
-        for tbID in self.__defaultToolBars:
-            tb = self.__allToolBars[tbID]
-            if tb.windowTitle() == name:
-                return tb
-        
-        return None
-    
-    ######################################################
-    ## Public methods
-    ######################################################
-    
-    def setMainWindow(self, mainWindow):
-        """
-        Public method to set the reference to the main window.
-        
-        @param mainWindow reference to the main window (QMainWindow)
-        """
-        self.__mainWindow = mainWindow
-    
-    def mainWindow(self):
-        """
-        Public method to get the reference to the main window.
-        
-        @return reference to the main window (QMainWindow)
-        """
-        return self.__mainWindow
-    
-    def addToolBar(self, toolBar, category):
-        """
-        Public method to add a toolbar to be managed.
-        
-        @param toolBar reference to the toolbar to be managed (QToolBar)
-        @param category category for the toolbar (string)
-        """
-        if toolBar is None:
-            return
-        
-        newActions = []
-        newActionsWithSeparators = []
-        actions = toolBar.actions()
-        for action in actions:
-            actID = id(action)
-            self.addAction(action, category)
-            if actID in self.__widgetActions:
-                self.__widgetActions[actID] = toolBar
-            newActionsWithSeparators.append(action)
-            if action.isSeparator():
-                action = None
-            else:
-                if toolBar not in self.__actionToToolBars[actID]:
-                    self.__actionToToolBars[actID].append(toolBar)
-            newActions.append(action)
-        tbID = id(toolBar)
-        self.__defaultToolBars[tbID] = newActions
-        self.__toolBars[tbID] = newActions
-        self.__toolBarsWithSeparators[tbID] = newActionsWithSeparators
-        self.__allToolBars[tbID] = toolBar
-    
-    def removeToolBar(self, toolBar):
-        """
-        Public method to remove a toolbar added with addToolBar().
-        
-        @param toolBar reference to the toolbar to be removed (QToolBar)
-        """
-        if toolBar is None:
-            return
-        
-        tbID = id(toolBar)
-        
-        if tbID not in self.__defaultToolBars:
-            return
-        
-        defaultActions = self.__defaultToolBars[tbID][:]
-        self.setToolBar(toolBar, [])
-        for action in defaultActions:
-            self.removeAction(action)
-        
-        del self.__defaultToolBars[tbID]
-        del self.__toolBars[tbID]
-        del self.__toolBarsWithSeparators[tbID]
-        del self.__allToolBars[tbID]
-        
-        for action in defaultActions:
-            if action is None:
-                toolBar.addSeparator()
-            else:
-                toolBar.addAction(action)
-    
-    def setToolBars(self, toolBars):
-        """
-        Public method to set the actions of several toolbars.
-        
-        @param toolBars dictionary with toolbar id as key and
-            a list of actions as value
-        """
-        for key, actions in list(toolBars.items()):
-            tb = self.__allToolBars[key]
-            self.setToolBar(tb, actions)
-    
-    def setToolBar(self, toolBar, actions):
-        """
-        Public method to set the actions of a toolbar.
-        
-        @param toolBar reference to the toolbar to configure (QToolBar)
-        @param actions list of actions to be set (list of QAction)
-        """
-        if toolBar is None:
-            return
-        
-        tbID = id(toolBar)
-        if tbID not in self.__toolBars:
-            return
-        if self.__toolBars[tbID] == actions:
-            return
-        
-        # step 1: check list of actions
-        toRemove = {}
-        newActions = []
-        for action in actions:
-            if (
-                action is None or
-                (action not in newActions and
-                 id(action) in self.__allActions)
-            ):
-                newActions.append(action)
-            oldTB = self.toolBarWidgetAction(action)
-            if oldTB is not None and oldTB != toolBar:
-                if id(oldTB) not in toRemove:
-                    toRemove[id(oldTB)] = []
-                toRemove[id(oldTB)].append(action)
-        self.removeWidgetActions(toRemove)
-        
-        # step 2: remove all toolbar actions
-        for action in self.__toolBarsWithSeparators[tbID]:
-            if self.toolBarWidgetAction(action) == tbID:
-                self.__widgetActions[id(action)] = None
-            toolBar.removeAction(action)
-            if action.isSeparator():
-                del action
-            else:
-                self.__actionToToolBars[id(action)].remove(toolBar)
-        
-        # step 3: set the actions as requested
-        newActionsWithSeparators = []
-        for action in newActions:
-            newAction = None
-            if action is None:
-                newAction = toolBar.addSeparator()
-            elif id(action) in self.__allActions:
-                toolBar.addAction(action)
-                newAction = action
-                self.__actionToToolBars[id(action)].append(toolBar)
-                if id(action) in self.__widgetActions:
-                    self.__widgetActions[id(action)] = toolBar
-            else:
-                continue
-            newActionsWithSeparators.append(newAction)
-        
-        if toolBar.isVisible():
-            toolBar.hide()
-            toolBar.show()
-        self.__toolBars[tbID] = newActions
-        self.__toolBarsWithSeparators[tbID] = newActionsWithSeparators
-    
-    def resetToolBar(self, toolBar):
-        """
-        Public method to reset a toolbar to its default state.
-        
-        @param toolBar reference to the toolbar to configure (QToolBar)
-        """
-        if not self.isDefaultToolBar():
-            return
-        self.setToolBar(toolBar, self.__defaultToolBars[id(toolBar)])
-    
-    def resetAllToolBars(self):
-        """
-        Public method to reset all toolbars to their default state.
-        """
-        self.setToolBars(self.__defaultToolBars)
-        for toolBar in self.__customToolBars[:]:
-            self.deleteToolBar(toolBar)
-        
-    def defaultToolBars(self):
-        """
-        Public method to get all toolbars added with addToolBar().
-        
-        @return list of all default toolbars (list of QToolBar)
-        """
-        return list(self.__defaultToolBars.values())
-    
-    def isDefaultToolBar(self, toolBar):
-        """
-        Public method to check, if a toolbar was added with addToolBar().
-        
-        @param toolBar reference to the toolbar to be checked (QToolBar)
-        @return flag indicating an added toolbar (boolean)
-        """
-        return (
-            toolBar is not None and
-            id(toolBar) in self.__defaultToolBars
-        )
-    
-    def createToolBar(self, title, name=""):
-        """
-        Public method to create a custom toolbar.
-        
-        @param title title to be used for the toolbar (string)
-        @param name optional name for the new toolbar (string)
-        @return reference to the created toolbar (QToolBar)
-        """
-        if self.__mainWindow is None:
-            return None
-        
-        toolBar = QToolBar(title, self.__mainWindow)
-        toolBar.setToolTip(title)
-        if not name:
-            index = 1
-            customPrefix = "__CustomPrefix__"
-            name = "{0}{1:d}".format(customPrefix, index)
-            while self.__toolBarByName(name) is not None:
-                index += 1
-                name = "{0}{1:d}".format(customPrefix, index)
-        toolBar.setObjectName(name)
-        self.__mainWindow.addToolBar(toolBar)
-        
-        tbID = id(toolBar)
-        self.__customToolBars.append(toolBar)
-        self.__allToolBars[tbID] = toolBar
-        self.__toolBars[tbID] = []
-        self.__toolBarsWithSeparators[tbID] = []
-        
-        if self.__ui is not None:
-            toolBar.setIconSize(self.__ui.getToolBarIconSize())
-            self.__ui.registerToolbar(name, title, toolBar)
-        
-        return toolBar
-    
-    def deleteToolBar(self, toolBar):
-        """
-        Public method to remove a custom toolbar created with createToolBar().
-        
-        @param toolBar reference to the toolbar to be managed (QToolBar)
-        """
-        if toolBar is None:
-            return
-        
-        tbID = id(toolBar)
-        if tbID not in self.__toolBars:
-            return
-        if tbID in self.__defaultToolBars:
-            return
-        
-        if self.__ui is not None:
-            self.__ui.unregisterToolbar(toolBar.objectName())
-        
-        self.setToolBar(toolBar, [])
-        
-        del self.__allToolBars[tbID]
-        del self.__toolBars[tbID]
-        del self.__toolBarsWithSeparators[tbID]
-        self.__customToolBars.remove(toolBar)
-        self.__mainWindow.removeToolBar(toolBar)
-        del toolBar
-    
-    def renameToolBar(self, toolBar, title):
-        """
-        Public method to give a toolbar a new title.
-        
-        @param toolBar reference to the toolbar to be managed (QToolBar)
-        @param title title to be used for the toolbar (string)
-        """
-        if toolBar is None:
-            return
-        
-        toolBar.setWindowTitle(title)
-        
-        if self.__ui is not None:
-            self.__ui.reregisterToolbar(toolBar.objectName(), title)
-    
-    def toolBars(self):
-        """
-        Public method to get all toolbars.
-        
-        @return list of all toolbars (list of QToolBar)
-        """
-        return list(self.__allToolBars.values())
-    
-    def addAction(self, action, category):
-        """
-        Public method to add an action to be managed.
-        
-        @param action reference to the action to be managed (QAction)
-        @param category category for the toolbar (string)
-        """
-        if action is None:
-            return
-        if action.isSeparator():
-            return
-        if id(action) in self.__allActions:
-            return
-        
-        if action.metaObject().className() == "QWidgetAction":
-            self.__widgetActions[id(action)] = None
-            self.__allWidgetActions[id(action)] = action
-        self.__allActions[id(action)] = action
-        if category not in self.__categoryToActions:
-            self.__categoryToActions[category] = []
-        self.__categoryToActions[category].append(action)
-        self.__actionToCategory[id(action)] = category
-        self.__actionToToolBars[id(action)] = []
-    
-    def addActions(self, actions, category):
-        """
-        Public method to add actions to be managed.
-        
-        @param actions list of actions to be managed
-        @type list of QAction
-        @param category category for the toolbar
-        @type str
-        """
-        for action in actions:
-            self.addAction(action, category)
-    
-    def removeAction(self, action):
-        """
-        Public method to remove an action from the manager.
-        
-        @param action reference to the action to be removed (QAction)
-        """
-        aID = id(action)
-        
-        if aID not in self.__allActions:
-            return
-        
-        toolBars = self.__actionToToolBars[aID]
-        for toolBar in toolBars:
-            tbID = id(toolBar)
-            self.__toolBars[tbID].remove(action)
-            self.__toolBarsWithSeparators[tbID].remove(action)
-            toolBar.removeAction(action)
-            if toolBar.isVisible():
-                toolBar.hide()
-                toolBar.show()
-        
-        for tbID in self.__defaultToolBars:
-            if action in self.__defaultToolBars[tbID]:
-                self.__defaultToolBars[tbID].remove(action)
-        
-        del self.__allActions[aID]
-        if aID in self.__widgetActions:
-            del self.__widgetActions[aID]
-            del self.__allWidgetActions[aID]
-        del self.__actionToCategory[aID]
-        del self.__actionToToolBars[aID]
-        
-        for category in self.__categoryToActions:
-            if action in self.__categoryToActions[category]:
-                self.__categoryToActions[category].remove(action)
-    
-    def removeCategoryActions(self, category):
-        """
-        Public method to remove the actions belonging to a category.
-        
-        @param category category for the actions (string)
-        """
-        for action in self.categoryActions(category):
-            self.removeAction(action)
-    
-    def saveState(self, version=0):
-        """
-        Public method to save the state of the toolbar manager.
-        
-        @param version version number stored with the data (integer)
-        @return saved state as a byte array (QByteArray)
-        """
-        data = QByteArray()
-        stream = QDataStream(data, QIODevice.OpenModeFlag.WriteOnly)
-        stream.setVersion(QDataStream.Version.Qt_4_6)
-        stream.writeUInt16(E5ToolBarManager.VersionMarker)
-        stream.writeUInt16(version)
-        
-        # save default toolbars
-        stream.writeUInt16(E5ToolBarManager.ToolBarMarker)
-        stream.writeUInt16(len(self.__defaultToolBars))
-        for tbID in self.__defaultToolBars:
-            tb = self.__allToolBars[tbID]
-            if tb.objectName():
-                stream.writeString(tb.objectName().encode("utf-8"))
-            else:
-                stream.writeString(tb.windowTitle().encode("utf-8"))
-            stream.writeUInt16(len(self.__toolBars[tbID]))
-            for action in self.__toolBars[tbID]:
-                if action is not None:
-                    if action.objectName():
-                        stream.writeString(action.objectName().encode("utf-8"))
-                    else:
-                        stream.writeString(action.text().encode("utf-8"))
-                else:
-                    stream.writeString("".encode("utf-8"))
-        
-        # save the custom toolbars
-        stream.writeUInt16(E5ToolBarManager.CustomToolBarMarker)
-        stream.writeUInt16(len(self.__toolBars) - len(self.__defaultToolBars))
-        for tbID in self.__toolBars:
-            if tbID not in self.__defaultToolBars:
-                tb = self.__allToolBars[tbID]
-                stream.writeString(tb.objectName().encode("utf-8"))
-                stream.writeString(tb.windowTitle().encode("utf-8"))
-                stream.writeUInt16(len(self.__toolBars[tbID]))
-                for action in self.__toolBars[tbID]:
-                    if action is not None:
-                        if action.objectName():
-                            stream.writeString(action.objectName()
-                                               .encode("utf-8"))
-                        else:
-                            stream.writeString(action.text().encode("utf-8"))
-                    else:
-                        stream.writeString("".encode("utf-8"))
-        
-        return data
-    
-    def restoreState(self, state, version=0):
-        """
-        Public method to restore the state of the toolbar manager.
-        
-        @param state byte array containing the saved state (QByteArray)
-        @param version version number stored with the data (integer)
-        @return flag indicating success (boolean)
-        """
-        if state.isEmpty():
-            return False
-        
-        data = QByteArray(state)
-        stream = QDataStream(data, QIODevice.OpenModeFlag.ReadOnly)
-        stream.setVersion(QDataStream.Version.Qt_4_6)
-        marker = stream.readUInt16()
-        vers = stream.readUInt16()
-        if marker != E5ToolBarManager.VersionMarker or vers != version:
-            return False
-        
-        tmarker = stream.readUInt16()
-        if tmarker != E5ToolBarManager.ToolBarMarker:
-            return False
-        
-        toolBarCount = stream.readUInt16()
-        for _i in range(toolBarCount):
-            objectName = Utilities.readStringFromStream(stream)
-            actionCount = stream.readUInt16()
-            actions = []
-            for _j in range(actionCount):
-                actionName = Utilities.readStringFromStream(stream)
-                if actionName:
-                    action = self.__findAction(actionName)
-                    if action is not None:
-                        actions.append(action)
-                else:
-                    actions.append(None)
-            toolBar = self.__findDefaultToolBar(objectName)
-            if toolBar is not None:
-                self.setToolBar(toolBar, actions)
-        
-        cmarker = stream.readUInt16()
-        if cmarker != E5ToolBarManager.CustomToolBarMarker:
-            return False
-        
-        oldCustomToolBars = self.__customToolBars[:]
-        
-        toolBarCount = stream.readUInt16()
-        for _i in range(toolBarCount):
-            objectName = Utilities.readStringFromStream(stream)
-            toolBarTitle = Utilities.readStringFromStream(stream)
-            actionCount = stream.readUInt16()
-            actions = []
-            for _j in range(actionCount):
-                actionName = Utilities.readStringFromStream(stream)
-                if actionName:
-                    action = self.__findAction(actionName)
-                    if action is not None:
-                        actions.append(action)
-                else:
-                    actions.append(None)
-            toolBar = self.__toolBarByName(objectName)
-            if toolBar is not None:
-                toolBar.setWindowTitle(toolBarTitle)
-                oldCustomToolBars.remove(toolBar)
-            else:
-                toolBar = self.createToolBar(toolBarTitle, objectName)
-            if toolBar is not None:
-                toolBar.setObjectName(objectName)
-                self.setToolBar(toolBar, actions)
-        
-        for tb in oldCustomToolBars:
-            self.deleteToolBar(tb)
-        
-        return True
-    
-    def toolBarWidgetAction(self, action):
-        """
-        Public method to get the toolbar for a widget action.
-        
-        @param action widget action to check for (QAction)
-        @return reference to the toolbar containing action (QToolBar)
-        """
-        aID = id(action)
-        if aID in self.__widgetActions:
-            return self.__widgetActions[aID]
-        return None
-    
-    def removeWidgetActions(self, actions):
-        """
-        Public method to remove widget actions.
-        
-        @param actions dictionary with toolbar id as key and
-            a list of widget actions as value
-        """
-        for tbID in list(actions.keys())[:]:
-            toolBar = self.__allToolBars[tbID]
-            newActions = self.__toolBars[tbID][:]
-            newActionsWithSeparators = self.__toolBarsWithSeparators[tbID][:]
-            
-            removedActions = []
-            for action in actions[tbID]:
-                if (
-                    action in newActions and
-                    self.toolBarWidgetAction(action) == toolBar
-                ):
-                    newActions.remove(action)
-                    newActionsWithSeparators.remove(action)
-                    removedActions.append(action)
-            
-            self.__toolBars[tbID] = newActions
-            self.__toolBarsWithSeparators[tbID] = newActionsWithSeparators
-            
-            for action in removedActions:
-                self.__widgetActions[id(action)] = None
-                self.__actionToToolBars[id(action)].remove(toolBar)
-                toolBar.removeAction(action)
-    
-    def isWidgetAction(self, action):
-        """
-        Public method to check, if action is a widget action.
-        
-        @param action reference to the action to be checked (QAction)
-        @return flag indicating a widget action (boolean)
-        """
-        return id(action) in self.__allWidgetActions
-    
-    def categories(self):
-        """
-        Public method to get the list of categories.
-        
-        @return list of categories (list of string)
-        """
-        return list(self.__categoryToActions.keys())
-    
-    def categoryActions(self, category):
-        """
-        Public method to get the actions belonging to a category.
-        
-        @param category category for the actions (string)
-        @return list of actions (list of QAction)
-        """
-        if category not in self.__categoryToActions:
-            return []
-        
-        return self.__categoryToActions[category][:]
-    
-    def actionById(self, aID):
-        """
-        Public method to get an action given its id.
-        
-        @param aID id of the action object (integer)
-        @return reference to the action (QAction)
-        """
-        if aID not in self.__allActions:
-            return None
-        return self.__allActions[aID]
-    
-    def toolBarById(self, tbID):
-        """
-        Public method to get a toolbar given its id.
-        
-        @param tbID id of the toolbar object (integer)
-        @return reference to the toolbar (QToolBar)
-        """
-        if tbID not in self.__allToolBars:
-            return None
-        return self.__allToolBars[tbID]
-    
-    def toolBarActions(self, tbID):
-        """
-        Public method to get a toolbar's actions given its id.
-        
-        @param tbID id of the toolbar object (integer)
-        @return list of actions (list of QAction)
-        """
-        if tbID not in self.__toolBars:
-            return []
-        return self.__toolBars[tbID][:]
-    
-    def toolBarsActions(self):
-        """
-        Public method to get all toolbars and their actions.
-        
-        @return reference to dictionary of toolbar IDs as key and list
-            of actions as values
-        """
-        return self.__toolBars
-    
-    def defaultToolBarActions(self, tbID):
-        """
-        Public method to get a default toolbar's actions given its id.
-        
-        @param tbID id of the default toolbar object (integer)
-        @return list of actions (list of QAction)
-        """
-        if tbID not in self.__defaultToolBars:
-            return []
-        return self.__defaultToolBars[tbID][:]
--- a/eric7/E5Gui/E5ToolBox.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2008 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a horizontal and a vertical toolbox class.
-"""
-
-from PyQt6.QtWidgets import QToolBox, QTabWidget
-
-from .E5TabWidget import E5TabWidget
-
-
-class E5VerticalToolBox(QToolBox):
-    """
-    Class implementing a ToolBox class substituting QToolBox to support wheel
-    events.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-
-
-class E5HorizontalToolBox(E5TabWidget):
-    """
-    Class implementing a vertical QToolBox like widget.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        E5TabWidget.__init__(self, parent)
-        self.setTabPosition(QTabWidget.TabPosition.West)
-        self.setUsesScrollButtons(True)
-    
-    def addItem(self, widget, icon, text):
-        """
-        Public method to add a widget to the toolbox.
-        
-        @param widget reference to the widget to be added (QWidget)
-        @param icon the icon to be shown (QIcon)
-        @param text the text to be shown (string)
-        @return index of the added widget (integer)
-        """
-        index = self.addTab(widget, icon, "")
-        self.setTabToolTip(index, text)
-        return index
-    
-    def insertItem(self, index, widget, icon, text):
-        """
-        Public method to add a widget to the toolbox.
-        
-        @param index position at which the widget should be inserted (integer)
-        @param widget reference to the widget to be added (QWidget)
-        @param icon the icon to be shown (QIcon)
-        @param text the text to be shown (string)
-        @return index of the added widget (integer)
-        """
-        index = self.insertTab(index, widget, icon, "")
-        self.setTabToolTip(index, text)
-        return index
-    
-    def removeItem(self, index):
-        """
-        Public method to remove a widget from the toolbox.
-        
-        @param index index of the widget to remove (integer)
-        """
-        self.removeTab(index)
-    
-    def setItemToolTip(self, index, toolTip):
-        """
-        Public method to set the tooltip of an item.
-        
-        @param index index of the item (integer)
-        @param toolTip tooltip text to be set (string)
-        """
-        self.setTabToolTip(index, toolTip)
-    
-    def setItemEnabled(self, index, enabled):
-        """
-        Public method to set the enabled state of an item.
-        
-        @param index index of the item (integer)
-        @param enabled flag indicating the enabled state (boolean)
-        """
-        self.setTabEnabled(index, enabled)
--- a/eric7/E5Gui/E5ToolButton.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,302 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2017 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a specialized tool button subclass.
-"""
-
-import enum
-
-from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QTimer, QSize
-from PyQt6.QtWidgets import (
-    QToolButton, QStyle, QStyleOptionToolButton, QStyleOption, QApplication,
-    QLabel
-)
-
-
-class E5ToolButtonOptions(enum.IntEnum):
-    """
-    Class defining the tool button options.
-    """
-    DEFAULT = 0
-    SHOW_MENU_INSIDE = 1
-    TOOLBAR_LOOKUP = 2
-
-
-class E5ToolButton(QToolButton):
-    """
-    Class implementing a specialized tool button subclass.
-    
-    @signal aboutToShowMenu() emitted before the tool button menu is shown
-    @signal aboutToHideMenu() emitted before the tool button menu is hidden
-    @signal middleClicked() emitted when the middle mouse button was clicked
-    @signal controlClicked() emitted when the left mouse button was
-        clicked while pressing the Ctrl key
-    @signal doubleClicked() emitted when the left mouse button was
-        double clicked
-    """
-    aboutToShowMenu = pyqtSignal()
-    aboutToHideMenu = pyqtSignal()
-    middleClicked = pyqtSignal()
-    controlClicked = pyqtSignal()
-    doubleClicked = pyqtSignal()
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super().__init__(parent)
-        
-        self.setMinimumWidth(16)
-        
-        self.__menu = None
-        self.__options = E5ToolButtonOptions.DEFAULT
-        
-        self.__badgeLabel = QLabel(self)
-        font = self.__badgeLabel.font()
-        font.setPixelSize(self.__badgeLabel.height() / 2.5)
-        self.__badgeLabel.setFont(font)
-        self.__badgeLabel.hide()
-        
-        opt = QStyleOptionToolButton()
-        self.initStyleOption(opt)
-        
-        self.__pressTimer = QTimer()
-        self.__pressTimer.setSingleShot(True)
-        self.__pressTimer.setInterval(
-            QApplication.style().styleHint(
-                QStyle.StyleHint.SH_ToolButton_PopupDelay, opt, self))
-        self.__pressTimer.timeout.connect(self.__showMenu)
-    
-    ##################################################################
-    ## Menu handling methods below.
-    ##
-    ## The menu is handled in E5ToolButton and is not passed to
-    ## QToolButton. No menu indicator will be shown in the button.
-    ##################################################################
-    
-    def menu(self):
-        """
-        Public method to get a reference to the tool button menu.
-        
-        @return reference to the tool button menu
-        @rtype QMenu
-        """
-        return self.__menu
-    
-    def setMenu(self, menu):
-        """
-        Public method to set the tool button menu.
-        
-        @param menu reference to the tool button menu
-        @type QMenu
-        """
-        if menu is not None:
-            if self.__menu:
-                self.__menu.aboutToHide.disconnect(self.__menuAboutToHide)
-            
-            self.__menu = menu
-            self.__menu.aboutToHide.connect(self.__menuAboutToHide)
-    
-    def showMenuInside(self):
-        """
-        Public method to check, if the menu edge shall be aligned with
-        the button.
-        
-        @return flag indicating that the menu edge shall be aligned
-        @rtype bool
-        """
-        return bool(self.__options & E5ToolButtonOptions.SHOW_MENU_INSIDE)
-    
-    def setShowMenuInside(self, enable):
-        """
-        Public method to set a flag to show the menu edge aligned with
-        the button.
-        
-        @param enable flag indicating to align the menu edge to the button
-        @type bool
-        """
-        if enable:
-            self.__options |= E5ToolButtonOptions.SHOW_MENU_INSIDE
-        else:
-            self.__options &= ~E5ToolButtonOptions.SHOW_MENU_INSIDE
-    
-    @pyqtSlot()
-    def __showMenu(self):
-        """
-        Private slot to show the tool button menu.
-        """
-        if self.__menu is None or self.__menu.isVisible():
-            return
-        
-        self.aboutToShowMenu.emit()
-        
-        if self.__options & E5ToolButtonOptions.SHOW_MENU_INSIDE:
-            pos = self.mapToGlobal(self.rect().bottomRight())
-            if (
-                QApplication.layoutDirection() ==
-                Qt.LayoutDirection.RightToLeft
-            ):
-                pos.setX(pos.x() - self.rect().width())
-            else:
-                pos.setX(pos.x() - self.__menu.sizeHint().width())
-        else:
-            pos = self.mapToGlobal(self.rect().bottomLeft())
-        
-        self.__menu.popup(pos)
-    
-    @pyqtSlot()
-    def __menuAboutToHide(self):
-        """
-        Private slot to handle the tool button menu about to be hidden.
-        """
-        self.setDown(False)
-        self.aboutToHideMenu.emit()
-    
-    ##################################################################
-    ## Methods to handle the tool button look
-    ##################################################################
-    
-    def toolbarButtonLook(self):
-        """
-        Public method to check, if the button has the toolbar look.
-        
-        @return flag indicating toolbar look
-        @rtype bool
-        """
-        return bool(self.__options & E5ToolButtonOptions.TOOLBAR_LOOKUP)
-    
-    def setToolbarButtonLook(self, enable):
-        """
-        Public method to set the toolbar look state.
-        
-        @param enable flag indicating toolbar look
-        @type bool
-        """
-        if enable:
-            self.__options |= E5ToolButtonOptions.TOOLBAR_LOOKUP
-            
-            opt = QStyleOption()
-            opt.initFrom(self)
-            size = self.style().pixelMetric(
-                QStyle.PixelMetric.PM_ToolBarIconSize, opt, self)
-            self.setIconSize(QSize(size, size))
-        else:
-            self.__options &= ~E5ToolButtonOptions.TOOLBAR_LOOKUP
-        
-        self.setProperty("toolbar-look", enable)
-        self.style().unpolish(self)
-        self.style().polish(self)
-    
-    ##################################################################
-    ## Methods to handle some event types
-    ##################################################################
-    
-    def mousePressEvent(self, evt):
-        """
-        Protected method to handle mouse press events.
-        
-        @param evt reference to the mouse event
-        @type QMouseEvent
-        """
-        if self.popupMode() == QToolButton.ToolButtonPopupMode.DelayedPopup:
-            self.__pressTimer.start()
-        
-        if (
-            (evt.buttons() == Qt.MouseButton.LeftButton and
-             self.__menu is not None and
-             (self.popupMode() ==
-              QToolButton.ToolButtonPopupMode.InstantPopup)) or
-            (evt.buttons() == Qt.MouseButton.RightButton and
-             self.__menu is not None)
-        ):
-            self.setDown(True)
-            self.__showMenu()
-        else:
-            super().mousePressEvent(evt)
-    
-    def mouseReleaseEvent(self, evt):
-        """
-        Protected method to handle mouse release events.
-        
-        @param evt reference to the mouse event
-        @type QMouseEvent
-        """
-        self.__pressTimer.stop()
-        
-        if (
-            evt.button() == Qt.MouseButton.MiddleButton and
-            self.rect().contains(evt.position().toPoint())
-        ):
-            self.middleClicked.emit()
-            self.setDown(False)
-        elif (
-            evt.button() == Qt.MouseButton.LeftButton and
-            self.rect().contains(evt.position().toPoint()) and
-            evt.modifiers() == Qt.KeyboardModifier.ControlModifier
-        ):
-            self.controlClicked.emit()
-            self.setDown(False)
-        else:
-            super().mouseReleaseEvent(evt)
-    
-    def mouseDoubleClickEvent(self, evt):
-        """
-        Protected method to handle mouse double click events.
-        
-        @param evt reference to the mouse event
-        @type QMouseEvent
-        """
-        super().mouseDoubleClickEvent(evt)
-        
-        self.__pressTimer.stop()
-        
-        if evt.buttons() == Qt.MouseButton.LeftButton:
-            self.doubleClicked.emit()
-    
-    def contextMenuEvent(self, evt):
-        """
-        Protected method to handle context menu events.
-        
-        @param evt reference to the context menu event
-        @type QContextMenuEvent
-        """
-        # block to prevent showing the context menu and the tool button menu
-        if self.__menu is not None:
-            return
-        
-        super().contextMenuEvent(evt)
-    
-    ##################################################################
-    ## Methods to handle the tool button badge
-    ##################################################################
-    
-    def setBadgeText(self, text):
-        """
-        Public method to set the badge text.
-        
-        @param text badge text to be set
-        @type str
-        """
-        if text:
-            self.__badgeLabel.setText(text)
-            self.__badgeLabel.resize(self.__badgeLabel.sizeHint())
-            self.__badgeLabel.move(self.width() - self.__badgeLabel.width(), 0)
-            self.__badgeLabel.show()
-        else:
-            self.__badgeLabel.clear()
-            self.__badgeLabel.hide()
-    
-    def badgeText(self):
-        """
-        Public method to get the badge text.
-        
-        @return badge text
-        @rtype str
-        """
-        return self.__badgeLabel.text()
--- a/eric7/E5Gui/E5TreeSortFilterProxyModel.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a modified QSortFilterProxyModel.
-"""
-
-from PyQt6.QtCore import Qt, QModelIndex, QSortFilterProxyModel
-
-
-class E5TreeSortFilterProxyModel(QSortFilterProxyModel):
-    """
-    Class implementing a modified QSortFilterProxyModel.
-   
-    It always accepts the root nodes in the tree so filtering is only done
-    on the children.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super().__init__(parent)
-        
-        self.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
-    
-    def filterAcceptsRow(self, sourceRow, sourceParent):
-        """
-        Public method to determine, if the row is acceptable.
-        
-        @param sourceRow row number in the source model (integer)
-        @param sourceParent index of the source item (QModelIndex)
-        @return flag indicating acceptance (boolean)
-        """
-        idx = self.sourceModel().index(sourceRow, 0, sourceParent)
-        if self.sourceModel().hasChildren(idx):
-            return True
-        
-        return QSortFilterProxyModel.filterAcceptsRow(
-            self, sourceRow, sourceParent)
-    
-    def hasChildren(self, parent=None):
-        """
-        Public method to check, if a parent node has some children.
-        
-        @param parent index of the parent node (QModelIndex)
-        @return flag indicating the presence of children (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        sindex = self.mapToSource(parent)
-        return self.sourceModel().hasChildren(sindex)
--- a/eric7/E5Gui/E5TreeView.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing specialized tree views.
-"""
-
-from PyQt6.QtCore import Qt
-from PyQt6.QtWidgets import QTreeView
-
-
-class E5TreeView(QTreeView):
-    """
-    Class implementing a tree view supporting removal of entries.
-    """
-    def keyPressEvent(self, evt):
-        """
-        Protected method implementing special key handling.
-        
-        @param evt reference to the event (QKeyEvent)
-        """
-        if (
-            evt.key() in [Qt.Key.Key_Delete, Qt.Key.Key_Backspace] and
-            self.model() is not None
-        ):
-            self.removeSelected()
-            evt.setAccepted(True)
-        else:
-            super().keyPressEvent(evt)
-    
-    def removeSelected(self):
-        """
-        Public method to remove the selected entries.
-        """
-        if (
-            self.model() is None or
-            self.selectionModel() is None or
-            not self.selectionModel().hasSelection()
-        ):
-            # no models available or nothing selected
-            return
-        
-        selectedRows = self.selectionModel().selectedRows()
-        for idx in reversed(sorted(selectedRows)):
-            self.model().removeRow(idx.row(), idx.parent())
-    
-    def removeAll(self):
-        """
-        Public method to clear the view.
-        """
-        if self.model() is not None:
-            self.model().removeRows(0, self.model().rowCount(self.rootIndex()),
-                                    self.rootIndex())
--- a/eric7/E5Gui/E5TreeWidget.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing specialized tree views.
-"""
-
-import enum
-
-from PyQt6.QtCore import pyqtSignal, Qt
-from PyQt6.QtWidgets import QTreeWidget, QTreeWidgetItem, QAbstractItemView
-
-
-class E5TreeWidgetItemsState(enum.Enum):
-    """
-    Class defining the items expansion state.
-    """
-    COLLAPSED = 0
-    EXPANDED = 1
-
-
-class E5TreeWidget(QTreeWidget):
-    """
-    Class implementing an extended tree widget.
-    
-    @signal itemControlClicked(QTreeWidgetItem) emitted after a Ctrl-Click
-            on an item
-    @signal itemMiddleButtonClicked(QTreeWidgetItem) emitted after a click
-            of the middle button on an item
-    """
-    itemControlClicked = pyqtSignal(QTreeWidgetItem)
-    itemMiddleButtonClicked = pyqtSignal(QTreeWidgetItem)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-        
-        self.__refreshAllItemsNeeded = True
-        self.__allTreeItems = []
-        self.__showMode = E5TreeWidgetItemsState.COLLAPSED
-        
-        self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
-        
-        self.itemChanged.connect(self.__scheduleRefresh)
-    
-    def setDefaultItemShowMode(self, mode):
-        """
-        Public method to set the default item show mode.
-        
-        @param mode default mode
-        @type E5TreeWidgetItemsState
-        """
-        self.__showMode = mode
-    
-    def allItems(self):
-        """
-        Public method to get a list of all items.
-        
-        @return list of all items (list of QTreeWidgetItem)
-        """
-        if self.__refreshAllItemsNeeded:
-            self.__allTreeItems = []
-            self.__iterateAllItems(None)
-            self.__refreshAllItemsNeeded = False
-        
-        return self.__allTreeItems
-    
-    def appendToParentItem(self, parent, item):
-        """
-        Public method to append an item to a parent item.
-        
-        @param parent text of the parent item (string) or
-            the parent item (QTreeWidgetItem)
-        @param item item to be appended (QTreeWidgetItem)
-        @return flag indicating success (boolean)
-        @exception RuntimeError raised to indicate an illegal type for
-            the parent
-        """
-        if not isinstance(parent, (QTreeWidgetItem, str)):
-            raise RuntimeError("illegal type for parent")
-        
-        if isinstance(parent, QTreeWidgetItem):
-            if parent is None or parent.treeWidget() != self:
-                return False
-            parentItem = parent
-        else:
-            lst = self.findItems(parent, Qt.MatchFlag.MatchExactly)
-            if not lst:
-                return False
-            parentItem = lst[0]
-            if parentItem is None:
-                return False
-        
-        self.__allTreeItems.append(item)
-        parentItem.addChild(item)
-        return True
-    
-    def prependToParentItem(self, parent, item):
-        """
-        Public method to prepend an item to a parent item.
-        
-        @param parent text of the parent item (string) or
-            the parent item (QTreeWidgetItem)
-        @param item item to be prepended (QTreeWidgetItem)
-        @return flag indicating success (boolean)
-        @exception RuntimeError raised to indicate an illegal type for
-            the parent
-        """
-        if not isinstance(parent, (QTreeWidgetItem, str)):
-            raise RuntimeError("illegal type for parent")
-        
-        if isinstance(parent, QTreeWidgetItem):
-            if parent is None or parent.treeWidget() != self:
-                return False
-            parentItem = parent
-        else:
-            lst = self.findItems(parent, Qt.MatchFlag.MatchExactly)
-            if not lst:
-                return False
-            parentItem = lst[0]
-            if parentItem is None:
-                return False
-        
-        self.__allTreeItems.append(item)
-        parentItem.insertChild(0, item)
-        return True
-    
-    def addTopLevelItem(self, item):
-        """
-        Public method to add a top level item.
-        
-        @param item item to be added as a top level item (QTreeWidgetItem)
-        """
-        self.__allTreeItems.append(item)
-        super().addTopLevelItem(item)
-    
-    def addTopLevelItems(self, items):
-        """
-        Public method to add a list of top level items.
-        
-        @param items items to be added as top level items
-            (list of QTreeWidgetItem)
-        """
-        self.__allTreeItems.extend(items)
-        super().addTopLevelItems(items)
-    
-    def insertTopLevelItem(self, index, item):
-        """
-        Public method to insert a top level item.
-        
-        @param index index for the insertion (integer)
-        @param item item to be inserted as a top level item (QTreeWidgetItem)
-        """
-        self.__allTreeItems.append(item)
-        super().insertTopLevelItem(index, item)
-    
-    def insertTopLevelItems(self, index, items):
-        """
-        Public method to insert a list of top level items.
-        
-        @param index index for the insertion (integer)
-        @param items items to be inserted as top level items
-            (list of QTreeWidgetItem)
-        """
-        self.__allTreeItems.extend(items)
-        super().insertTopLevelItems(index, items)
-    
-    def deleteItem(self, item):
-        """
-        Public method to delete an item.
-        
-        @param item item to be deleted (QTreeWidgetItem)
-        """
-        if item in self.__allTreeItems:
-            self.__allTreeItems.remove(item)
-        
-        self.__refreshAllItemsNeeded = True
-        
-        del item
-    
-    def deleteItems(self, items):
-        """
-        Public method to delete a list of items.
-        
-        @param items items to be deleted (list of QTreeWidgetItem)
-        """
-        for item in items:
-            self.deleteItem(item)
-    
-    def filterString(self, filterStr):
-        """
-        Public slot to set a new filter.
-        
-        @param filterStr filter to be set (string)
-        """
-        self.expandAll()
-        allItems = self.allItems()
-        
-        if filterStr:
-            lFilter = filterStr.lower()
-            for itm in allItems:
-                itm.setHidden(lFilter not in itm.text(0).lower())
-                itm.setExpanded(True)
-            for index in range(self.topLevelItemCount()):
-                self.topLevelItem(index).setHidden(False)
-            
-            firstItm = self.topLevelItem(0)
-            belowItm = self.itemBelow(firstItm)
-            topLvlIndex = 0
-            while firstItm:
-                if lFilter in firstItm.text(0).lower():
-                    firstItm.setHidden(False)
-                elif (
-                    not firstItm.parent() and
-                    (not belowItm or not belowItm.parent())
-                ):
-                    firstItm.setHidden(True)
-                elif not belowItm:
-                    break
-                
-                topLvlIndex += 1
-                firstItm = self.topLevelItem(topLvlIndex)
-                belowItm = self.itemBelow(firstItm)
-        else:
-            for itm in allItems:
-                itm.setHidden(False)
-            for index in range(self.topLevelItemCount()):
-                self.topLevelItem(index).setHidden(False)
-            if self.__showMode == E5TreeWidgetItemsState.COLLAPSED:
-                self.collapseAll()
-    
-    def clear(self):
-        """
-        Public slot to clear the tree.
-        """
-        self.__allTreeItems = []
-        super().clear()
-    
-    def __scheduleRefresh(self):
-        """
-        Private slot to schedule a refresh of the tree.
-        """
-        self.__refreshAllItemsNeeded = True
-    
-    def mousePressEvent(self, evt):
-        """
-        Protected method handling mouse press events.
-        
-        @param evt mouse press event (QMouseEvent)
-        """
-        if (
-            evt.modifiers() == Qt.KeyboardModifier.ControlModifier and
-            evt.buttons() == Qt.MouseButton.LeftButton
-        ):
-            self.itemControlClicked.emit(self.itemAt(evt.position().toPoint()))
-            return
-        elif evt.buttons() == Qt.MouseButton.MiddleButton:
-            self.itemMiddleButtonClicked.emit(self.itemAt(evt.position().toPoint()))
-            return
-        else:
-            super().mousePressEvent(evt)
-    
-    def __iterateAllItems(self, parent):
-        """
-        Private method to iterate over the child items of the parent.
-        
-        @param parent parent item to iterate (QTreeWidgetItem)
-        """
-        count = parent.childCount() if parent else self.topLevelItemCount()
-        
-        for index in range(count):
-            itm = parent.child(index) if parent else self.topLevelItem(index)
-            
-            if itm.childCount() == 0:
-                self.__allTreeItems.append(itm)
-            
-            self.__iterateAllItems(itm)
--- a/eric7/E5Gui/E5ZoomWidget.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,314 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2013 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a zoom widget for the status bar.
-"""
-
-from PyQt6.QtCore import pyqtSlot, pyqtSignal
-from PyQt6.QtWidgets import QWidget
-
-from .Ui_E5ZoomWidget import Ui_E5ZoomWidget
-
-
-class E5ZoomWidget(QWidget, Ui_E5ZoomWidget):
-    """
-    Class implementing a zoom widget for the status bar.
-    
-    @signal valueChanged(value) emitted to indicate the new zoom value (int)
-    """
-    valueChanged = pyqtSignal(int)
-    
-    def __init__(self, outPix, inPix, resetPix, parent=None):
-        """
-        Constructor
-        
-        @param outPix pixmap for the zoom out button (QPixmap)
-        @param inPix pixmap for the zoom in button (QPixmap)
-        @param resetPix pixmap for the zoom reset button (QPixmap)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super().__init__(parent)
-        self.setupUi(self)
-        
-        self.zoomOutLabel.setPixmap(outPix.scaled(16, 16))
-        self.zoomInLabel.setPixmap(inPix.scaled(16, 16))
-        self.zoomResetLabel.setPixmap(resetPix.scaled(16, 16))
-        
-        self.zoomOutLabel.clicked.connect(self.__zoomOut)
-        self.zoomInLabel.clicked.connect(self.__zoomIn)
-        self.zoomResetLabel.clicked.connect(self.__zoomReset)
-        
-        self.slider.valueChanged.connect(self._sliderValueChanged)
-        
-        self.__default = 0
-        self.__percent = False
-        
-        # mapped slider
-        self.__mapped = False
-        self.__mapping = []
-        
-        self.__setValueLabelWidth()
-    
-    @pyqtSlot(int)
-    def on_slider_sliderMoved(self, value):
-        """
-        Private slot to handle changes of the zoom value.
-        
-        @param value value of the slider (integer)
-        """
-        if self.__mapped:
-            self.valueChanged.emit(self.__mapping[value])
-        else:
-            self.valueChanged.emit(value)
-    
-    def setValue(self, value):
-        """
-        Public slot to set the value.
-        
-        @param value new zoom value (integer)
-        """
-        self.slider.setValue(self.__indexForValue(value))
-    
-    def value(self):
-        """
-        Public method to get the current value.
-        
-        @return current zoom value (integer)
-        """
-        if self.__mapped:
-            return self.__mapping[self.slider.value()]
-        else:
-            return self.slider.value()
-    
-    def setMinimum(self, minimum):
-        """
-        Public method to set the minimum value.
-        
-        @param minimum new minimum value (integer)
-        """
-        if not self.__mapped:
-            self.slider.setMinimum(minimum)
-            self.__setValueLabelWidth()
-    
-    def minimum(self):
-        """
-        Public method to get the minimum value.
-        
-        @return minimum value (integer)
-        """
-        if self.__mapped:
-            return self.__mapping[0]
-        else:
-            return self.slider.minimum()
-    
-    def setMaximum(self, maximum):
-        """
-        Public method to set the maximum value.
-        
-        @param maximum new maximum value (integer)
-        """
-        if not self.__mapped:
-            self.slider.setMaximum(maximum)
-            self.__setValueLabelWidth()
-    
-    def maximum(self):
-        """
-        Public method to get the maximum value.
-        
-        @return maximum value (integer)
-        """
-        if self.__mapped:
-            return self.__mapping[-1]
-        else:
-            return self.slider.maximum()
-    
-    def setSingleStep(self, value):
-        """
-        Public method to set the single step value.
-        
-        @param value value for the single step (integer)
-        """
-        self.slider.setSingleStep(value)
-    
-    def singleStep(self):
-        """
-        Public method to get the single step value.
-        
-        @return single step value (integer)
-        """
-        return self.slider.singleStep()
-    
-    def setPageStep(self, value):
-        """
-        Public method to set the page step value.
-        
-        @param value page step value (integer)
-        """
-        self.slider.setPageStep(value)
-    
-    def pageStep(self):
-        """
-        Public method to get the page step value.
-        
-        @return page step value (integer)
-        """
-        return self.slider.pageStep()
-    
-    def setDefault(self, value):
-        """
-        Public method to set the default zoom value.
-        
-        @param value default zoom value (integer)
-        """
-        self.__default = self.__indexForValue(value)
-    
-    def default(self):
-        """
-        Public method to get the default zoom value.
-        
-        @return default zoom value (integer)
-        """
-        if self.__mapped:
-            return self.__mapping[self.__default]
-        else:
-            return self.__default
-    
-    def setPercent(self, on):
-        """
-        Public method to set the percent mode of the widget.
-        
-        @param on flag indicating percent mode (boolean)
-        """
-        self.__percent = on
-        self.__setValueLabelWidth()
-    
-    def isPercent(self):
-        """
-        Public method to get the percent mode.
-        
-        @return flag indicating percent mode (boolean)
-        """
-        return self.__percent
-    
-    def setMapping(self, mapping, default, percent=True):
-        """
-        Public method to set a zoom level mapping.
-        
-        When zoom level mapping is activated, the slider covers
-        values from 0 to the max. index of the mapping list. The
-        default value is the value of the default zoom level. If
-        percent is given, the zoom level is shown as a percent value.
-        
-        @param mapping list of mapping values (list of integer)
-        @param default index of the default value (integer)
-        @param percent flag indicating to show zoom value in percent
-            (boolean)
-        """
-        if mapping:
-            self.__mapping = mapping[:]
-            self.__mapped = True
-            self.slider.setMinimum(0)
-            self.slider.setMaximum(len(self.__mapping) - 1)
-            self.__default = self.__indexForValue(default)
-            self.__percent = percent
-            self.slider.setValue(self.__default)
-        else:
-            # switch back to default values
-            self.__mapping = []
-            self.__mapped = False
-            self.slider.setMinimum(-10)
-            self.slider.setMaximum(20)
-            self.__default = 0
-            self.__percent = False
-            self.slider.setValue(0)
-        self.__setValueLabelWidth()
-    
-    def mapping(self):
-        """
-        Public method to get the current mapping.
-        
-        @return tuple of the mapping and the default index
-            (list of integer, integer)
-        """
-        return self.__mapping[:], self.__default
-    
-    def isMapped(self):
-        """
-        Public method to check for a mapped zoom widget.
-        
-        @return flag indicating a mapped zoom widget (boolean)
-        """
-        return self.__mapped
-    
-    def __zoomReset(self):
-        """
-        Private slot to reset the value.
-        """
-        self.slider.setValue(self.__default)
-        self.valueChanged.emit(self.value())
-    
-    def __zoomOut(self):
-        """
-        Private slot to zoom out one step.
-        """
-        self.slider.setValue(self.slider.value() - self.slider.singleStep())
-        self.valueChanged.emit(self.value())
-    
-    def __zoomIn(self):
-        """
-        Private slot to zoom in one step.
-        """
-        self.slider.setValue(self.slider.value() + self.slider.singleStep())
-        self.valueChanged.emit(self.value())
-    
-    def _sliderValueChanged(self, value):
-        """
-        Protected slot to handle changes of the slider value.
-        
-        @param value slider value (integer)
-        """
-        val = self.__mapping[value] if self.__mapped else value
-        fmtStr = "{0}%" if self.__percent else "{0}"
-        self.valueLabel.setText(fmtStr.format(val))
-        self.valueChanged.emit(val)
-    
-    def __setValueLabelWidth(self):
-        """
-        Private slot to determine the width of the zoom value label.
-        """
-        labelLen = (
-            max(len(str(v)) for v in self.__mapping)
-            if self.__mapped else
-            max(len(str(self.slider.maximum())),
-                len(str(self.slider.minimum())))
-        )
-        fmtStr = "{0}%" if self.__percent else "{0}"
-        label = fmtStr.format("0" * labelLen)
-        try:
-            width = self.valueLabel.fontMetrics().horizontalAdvance(label)
-        except AttributeError:
-            width = self.valueLabel.fontMetrics().width(label)
-        self.valueLabel.setMinimumWidth(width)
-        self.valueLabel.setMaximumWidth(width)
-    
-    def __indexForValue(self, value):
-        """
-        Private method to get the nearest index for a given value.
-        
-        @param value value to get the index for (integer)
-        @return index into the mapping list or the unchanged value,
-            if mapping is not set (integer)
-        """
-        if self.__mapped:
-            try:
-                index = self.__mapping.index(value)
-            except ValueError:
-                for index in range(len(self.__mapping)):
-                    if value <= self.__mapping[index]:
-                        break
-        else:
-            index = value
-        return index
--- a/eric7/E5Gui/E5ZoomWidget.ui	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>E5ZoomWidget</class>
- <widget class="QWidget" name="E5ZoomWidget">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>242</width>
-    <height>21</height>
-   </rect>
-  </property>
-  <property name="sizePolicy">
-   <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
-    <horstretch>0</horstretch>
-    <verstretch>0</verstretch>
-   </sizepolicy>
-  </property>
-  <layout class="QHBoxLayout" name="horizontalLayout">
-   <property name="leftMargin">
-    <number>0</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <item>
-    <widget class="QLabel" name="valueLabel">
-     <property name="minimumSize">
-      <size>
-       <width>0</width>
-       <height>16</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>16777215</width>
-       <height>16</height>
-      </size>
-     </property>
-     <property name="text">
-      <string notr="true">0</string>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="E5ClickableLabel" name="zoomOutLabel">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="minimumSize">
-      <size>
-       <width>16</width>
-       <height>16</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>16</width>
-       <height>16</height>
-      </size>
-     </property>
-     <property name="toolTip">
-      <string>Zoom out</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QSlider" name="slider">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="minimumSize">
-      <size>
-       <width>160</width>
-       <height>16</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>160</width>
-       <height>16</height>
-      </size>
-     </property>
-     <property name="focusPolicy">
-      <enum>Qt::NoFocus</enum>
-     </property>
-     <property name="toolTip">
-      <string>Drag to zoom</string>
-     </property>
-     <property name="minimum">
-      <number>-10</number>
-     </property>
-     <property name="maximum">
-      <number>20</number>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="tickPosition">
-      <enum>QSlider::NoTicks</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="E5ClickableLabel" name="zoomInLabel">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="minimumSize">
-      <size>
-       <width>16</width>
-       <height>16</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>16</width>
-       <height>16</height>
-      </size>
-     </property>
-     <property name="toolTip">
-      <string>Zoom in</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="E5ClickableLabel" name="zoomResetLabel">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="minimumSize">
-      <size>
-       <width>16</width>
-       <height>16</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>16</width>
-       <height>16</height>
-      </size>
-     </property>
-     <property name="toolTip">
-      <string>Zoom reset</string>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClickableLabel</class>
-   <extends>QLabel</extends>
-   <header>E5Gui/E5ClickableLabel.h</header>
-  </customwidget>
- </customwidgets>
- <resources/>
- <connections/>
-</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricAction.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,223 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2006 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing an Action class extending QAction.
+
+This extension is necessary in order to support alternate keyboard
+shortcuts.
+"""
+
+from PyQt6.QtGui import QIcon, QKeySequence, QAction, QActionGroup
+
+from E5Gui.EricApplication import ericApp
+
+
+class ArgumentsError(RuntimeError):
+    """
+    Class implementing an exception, which is raised, if the wrong number of
+    arguments are given.
+    """
+    def __init__(self, error):
+        """
+        Constructor
+        
+        @param error error message of the exception (string)
+        """
+        self.errorMessage = str(error)
+        
+    def __repr__(self):
+        """
+        Special method returning a representation of the exception.
+        
+        @return string representing the error message
+        """
+        return str(self.errorMessage)
+        
+    def __str__(self):
+        """
+        Special method returning a string representation of the exception.
+        
+        @return string representing the error message
+        """
+        return str(self.errorMessage)
+
+
+class EricAction(QAction):
+    """
+    Class implementing an Action class extending QAction.
+    """
+    def __init__(self, *args):
+        """
+        Constructor
+        
+        @param args argument list of the constructor. This list is one of
+            <ul>
+            <li>text (string), icon (QIcon), menu text (string),
+                accelarator (QKeySequence), alternative accelerator
+                (QKeySequence), parent (QObject), name (string), toggle
+                (boolean)</li>
+            <li>text (string), icon (QIcon), menu text (string),
+                accelarator (QKeySequence), alternative accelerator
+                (QKeySequence), parent (QObject), name (string)</li>
+            <li>text (string), menu text (string),
+                accelarator (QKeySequence), alternative accelerator
+                (QKeySequence), parent (QObject), name (string), toggle
+                (boolean)</li>
+            <li>text (string), menu text (string),
+                accelarator (QKeySequence), alternative accelerator
+                (QKeySequence), parent (QObject), name (string)</li>
+            </ul>
+        @exception ArgumentsError raised to indicate invalid arguments
+        """
+        if isinstance(args[1], QIcon):
+            icon = args[1]
+            incr = 1
+        else:
+            icon = None
+            incr = 0
+        if len(args) < 6 + incr:
+            raise ArgumentsError(
+                "Not enough arguments, {0:d} expected, got {1:d}".format(
+                    6 + incr, len(args)))
+        elif len(args) > 7 + incr:
+            raise ArgumentsError(
+                "Too many arguments, max. {0:d} expected, got {1:d}".format(
+                    7 + incr, len(args)))
+            
+        parent = args[4 + incr]
+        super().__init__(parent)
+        name = args[5 + incr]
+        if name:
+            self.setObjectName(name)
+        
+        if args[1 + incr]:
+            self.setText(args[1 + incr])
+        
+        if args[0]:
+            self.setIconText(args[0])
+        if args[2 + incr]:
+            self.setShortcut(QKeySequence(args[2 + incr]))
+        
+        if args[3 + incr]:
+            self.setAlternateShortcut(QKeySequence(args[3 + incr]))
+        
+        if icon:
+            self.setIcon(icon)
+        
+        if len(args) == 7 + incr:
+            self.setCheckable(args[6 + incr])
+        
+        self.__ammendToolTip()
+        
+    def setAlternateShortcut(self, shortcut, removeEmpty=False):
+        """
+        Public slot to set the alternative keyboard shortcut.
+        
+        @param shortcut the alternative accelerator (QKeySequence)
+        @param removeEmpty flag indicating to remove the alternate shortcut,
+            if it is empty (boolean)
+        """
+        if not shortcut.isEmpty():
+            shortcuts = self.shortcuts()
+            if len(shortcuts) > 0:
+                if len(shortcuts) == 1:
+                    shortcuts.append(shortcut)
+                else:
+                    shortcuts[1] = shortcut
+                self.setShortcuts(shortcuts)
+        elif removeEmpty:
+            shortcuts = self.shortcuts()
+            if len(shortcuts) == 2:
+                del shortcuts[1]
+                self.setShortcuts(shortcuts)
+        
+    def alternateShortcut(self):
+        """
+        Public method to retrieve the alternative keyboard shortcut.
+        
+        @return the alternative accelerator (QKeySequence)
+        """
+        shortcuts = self.shortcuts()
+        if len(shortcuts) < 2:
+            return QKeySequence()
+        else:
+            return shortcuts[1]
+        
+    def setShortcut(self, shortcut):
+        """
+        Public slot to set the keyboard shortcut.
+        
+        @param shortcut the accelerator (QKeySequence)
+        """
+        super().setShortcut(shortcut)
+        self.__ammendToolTip()
+        
+    def setShortcuts(self, shortcuts):
+        """
+        Public slot to set the list of keyboard shortcuts.
+        
+        @param shortcuts list of keyboard accelerators (list of QKeySequence)
+            or key for a platform dependent list of accelerators
+            (QKeySequence.StandardKey)
+        """
+        super().setShortcuts(shortcuts)
+        self.__ammendToolTip()
+        
+    def setIconText(self, text):
+        """
+        Public slot to set the icon text of the action.
+        
+        @param text new icon text (string)
+        """
+        super().setIconText(text)
+        self.__ammendToolTip()
+        
+    def __ammendToolTip(self):
+        """
+        Private slot to add the primary keyboard accelerator to the tooltip.
+        """
+        shortcut = self.shortcut().toString(
+            QKeySequence.SequenceFormat.NativeText)
+        if shortcut:
+            if ericApp().isLeftToRight():
+                fmt = "{0} ({1})"
+            else:
+                fmt = "({1}) {0}"
+            self.setToolTip(fmt.format(self.iconText(), shortcut))
+
+
+def addActions(target, actions):
+    """
+    Module function to add a list of actions to a widget.
+    
+    @param target reference to the target widget (QWidget)
+    @param actions list of actions to be added to the target. A
+        None indicates a separator (list of QActions)
+    """
+    if target is None:
+        return
+    
+    for action in actions:
+        if action is None:
+            target.addSeparator()
+        else:
+            target.addAction(action)
+
+
+def createActionGroup(parent, name=None, exclusive=False):
+    """
+    Module function to create an action group.
+    
+    @param parent parent object of the action group (QObject)
+    @param name name of the action group object (string)
+    @param exclusive flag indicating an exclusive action group (boolean)
+    @return reference to the created action group (QActionGroup)
+    """
+    actGrp = QActionGroup(parent)
+    if name:
+        actGrp.setObjectName(name)
+    actGrp.setExclusive(exclusive)
+    return actGrp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricAnimatedLabel.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,180 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2020 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a label widget showing an animated pixmap.
+"""
+
+from PyQt6.QtCore import pyqtSlot, QTimer
+from PyQt6.QtGui import QPixmap
+from PyQt6.QtWidgets import QLabel
+
+import UI.PixmapCache
+
+
+class EricAnimatedLabel(QLabel):
+    """
+    Class implementing a label widget showing an animated pixmap.
+    """
+    def __init__(self, parent=None, *, animationFile="", interval=100):
+        """
+        Constructor
+        
+        @param parent reference to the parent window
+        @type QWidget
+        @keyparam animationFile path to the file containing the animation data
+        @type str
+        @keyparam interval interval in milliseconds between animation frames
+        @type int
+        """
+        super().__init__(parent)
+        
+        self.__timer = QTimer(self)
+        self.__timer.setInterval(interval)
+        self.__timer.timeout.connect(self.__animate)
+        
+        self.__currentFrame = 0
+        self.__frames = 0
+        self.__pixmap = None
+        self.__pixmapHeight = 0
+        self.__animationFile = ""
+        self.__animationFileLoaded = False
+        
+        self.__loadAnimationFile(animationFile)
+    
+    def __loadAnimationFile(self, animationFile):
+        """
+        Private method to load an animation file.
+        
+        @param animationFile path to the file containing the animation data
+        @type str
+        """
+        self.__animationFile = animationFile
+        
+        pixmap = UI.PixmapCache.getPixmap(animationFile)
+        if not pixmap.isNull():
+            self.__pixmap = pixmap
+            self.__pixmapHeight = pixmap.height()
+            self.__frames = pixmap.width() // pixmap.height()
+            # assume quadratic animation frames
+            self.__animationFileLoaded = True
+        else:
+            self.__pixmap = QPixmap()
+            self.__pixmapHeight = 0
+            self.__frames = 0
+            self.__animationFileLoaded = False
+        
+        self.reset()
+    
+    @pyqtSlot()
+    def __animate(self):
+        """
+        Private slot to animate the pixmap.
+        """
+        if self.__animationFileLoaded:
+            self.__currentFrame = (self.__currentFrame + 1) % self.__frames
+            super().setPixmap(self.__pixmap.copy(
+                self.__currentFrame * self.__pixmapHeight,
+                0,
+                self.__pixmapHeight,
+                self.__pixmapHeight
+            ))
+        else:
+            self.clear()
+    
+    @pyqtSlot()
+    def reset(self):
+        """
+        Public slot to reset the animation.
+        """
+        self.__currentFrame = -1
+        self.__animate()
+    
+    @pyqtSlot()
+    def start(self):
+        """
+        Public slot to start the animation.
+        """
+        if self.__animationFileLoaded:
+            self.__timer.start()
+    
+    @pyqtSlot()
+    def stop(self):
+        """
+        Public slot to stop the animation.
+        """
+        self.__timer.stop()
+    
+    def isActive(self):
+        """
+        Public method to check, if the animation is active.
+        
+        @return flag indicating an active animation
+        @rtype bool
+        """
+        return self.__timer.isActive() and self.__animationFileLoaded
+    
+    def setAnimationFile(self, animationFile):
+        """
+        Public method to set the name of the animation file.
+        
+        @param animationFile path to the file containing the animation data
+        @type str
+        """
+        active = self.__timer.isActive()
+        self.__timer.stop()
+        self.__loadAnimationFile(animationFile)
+        if active and self.__animationFileLoaded:
+            self.__timer.start()
+    
+    def getAnimationFile(self):
+        """
+        Public method to get the name of the animation file.
+        
+        @return path to the file containing the animation data
+        @rtype str
+        """
+        return self.__animationFile
+    
+    def isAnimationFileLoaded(self):
+        """
+        Public method to check, if the animation file was loaded.
+        
+        @return flag indicating a successfully loaded animation file
+        @rtype bool
+        """
+        return self.__animationFileLoaded
+    
+    def setInterval(self, interval):
+        """
+        Public method to set the interval between the animated frames.
+        
+        @param interval interval in milliseconds between animation frames
+        @type int
+        """
+        self.__timer.setInterval(interval)
+    
+    def getInterval(self):
+        """
+        Public method to get the interval between the animated frames.
+        
+        @return interval in milliseconds between animation frames
+        @rtype int
+        """
+        return self.__timer.interval()
+    
+    def setPixmap(self, pixmap):
+        """
+        Public slot to set the pixmap of the label.
+        
+        Setting a standard pixmap will stop the animation and set the given
+        pixmap without animating it. Thereafter the animation has to be
+        restarted with the start() method.
+        
+        @param pixmap pixmap to be set
+        @type QPixmap
+        """
+        self.stop()
+        super().setPixmap(pixmap)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricAnimatedWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,121 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing an animated widget.
+"""
+
+#
+# Code was inspired by qupzilla web browser
+#
+
+from PyQt6.QtCore import pyqtSlot, QTimeLine, QPoint
+from PyQt6.QtWidgets import QWidget
+
+
+class EricAnimatedWidget(QWidget):
+    """
+    Class implementing an animated widget.
+    """
+    DirectionDown = 0
+    DirectionUp = 1
+    
+    def __init__(self, direction=DirectionDown, duration=300, parent=None):
+        """
+        Constructor
+        
+        @param direction direction of the animation
+        @type int (one of DirectionDown or DirectionUp)
+        @param duration duration of the animation
+        @type int
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent)
+        
+        self.__direction = direction
+        self.__stepHeight = 0.0
+        self.__stepY = 0.0
+        self.__startY = 0
+        self.__widget = QWidget(self)
+        
+        self.__timeline = QTimeLine(duration)
+        self.__timeline.setFrameRange(0, 100)
+        self.__timeline.frameChanged.connect(self.__animateFrame)
+        
+        self.setMaximumHeight(0)
+    
+    def widget(self):
+        """
+        Public method to get a reference to the animated widget.
+        
+        @return reference to the animated widget
+        @rtype QWidget
+        """
+        return self.__widget
+    
+    @pyqtSlot()
+    def startAnimation(self):
+        """
+        Public slot to start the animation.
+        """
+        if self.__timeline.state() == QTimeLine.State.Running:
+            return
+        
+        shown = 0
+        hidden = 0
+        
+        if self.__direction == self.DirectionDown:
+            shown = 0
+            hidden = -self.__widget.height()
+        
+        self.__widget.move(QPoint(self.__widget.pos().x(), hidden))
+        
+        self.__stepY = (hidden - shown) / 100.0
+        self.__startY = hidden
+        self.__stepHeight = self.__widget.height() / 100.0
+        
+        self.__timeline.setDirection(QTimeLine.Direction.Forward)
+        self.__timeline.start()
+    
+    @pyqtSlot(int)
+    def __animateFrame(self, frame):
+        """
+        Private slot to animate the next frame.
+        
+        @param frame frame number
+        @type int
+        """
+        self.setFixedHeight(frame * self.__stepHeight)
+        self.__widget.move(self.pos().x(),
+                           self.__startY - frame * self.__stepY)
+    
+    @pyqtSlot()
+    def hide(self):
+        """
+        Public slot to hide the animated widget.
+        """
+        if self.__timeline.state() == QTimeLine.State.Running:
+            return
+        
+        self.__timeline.setDirection(QTimeLine.Direction.Backward)
+        self.__timeline.finished.connect(self.close)
+        self.__timeline.start()
+        
+        p = self.parentWidget()
+        if p is not None:
+            p.setFocus()
+    
+    def resizeEvent(self, evt):
+        """
+        Protected method to handle a resize event.
+        
+        @param evt reference to the event object
+        @type QResizeEvent
+        """
+        if evt.size().width() != self.__widget.width():
+            self.__widget.resize(evt.size().width(), self.__widget.height())
+        
+        super().resizeEvent(evt)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricApplication.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,152 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Class implementing a specialized application class.
+"""
+
+from PyQt6.QtCore import Qt, QCoreApplication
+from PyQt6.QtGui import QPalette
+from PyQt6.QtWidgets import QApplication
+
+QCoreApplication.setAttribute(
+    Qt.ApplicationAttribute.AA_ShareOpenGLContexts, True)
+
+
+class EricApplication(QApplication):
+    """
+    Eric application class with an object registry.
+    """
+    def __init__(self, argv):
+        """
+        Constructor
+        
+        @param argv command line arguments
+        @type list
+        """
+        super().__init__(argv)
+        
+        QCoreApplication.setAttribute(
+            Qt.ApplicationAttribute.AA_DontCreateNativeWidgetSiblings, True)
+        
+        self.__objectRegistry = {}
+        self.__pluginObjectRegistry = {}
+    
+    def registerObject(self, name, objectRef):
+        """
+        Public method to register an object in the object registry.
+        
+        @param name name of the object
+        @type str
+        @param objectRef reference to the object
+        @type any
+        @exception KeyError raised when the given name is already in use
+        """
+        if name in self.__objectRegistry:
+            raise KeyError('Object "{0}" already registered.'.format(name))
+        else:
+            self.__objectRegistry[name] = objectRef
+    
+    def getObject(self, name):
+        """
+        Public method to get a reference to a registered object.
+        
+        @param name name of the object
+        @type str
+        @return reference to the registered object
+        @rtype any
+        @exception KeyError raised when the given name is not known
+        """
+        if name not in self.__objectRegistry:
+            raise KeyError('Object "{0}" is not registered.'.format(name))
+        
+        return self.__objectRegistry[name]
+    
+    def registerPluginObject(self, name, objectRef, pluginType=None):
+        """
+        Public method to register a plugin object in the object registry.
+        
+        @param name name of the plugin object
+        @type str
+        @param objectRef reference to the plugin object
+        @type any
+        @param pluginType type of the plugin object
+        @type str
+        @exception KeyError raised when the given name is already in use
+        """
+        if name in self.__pluginObjectRegistry:
+            raise KeyError(
+                'Pluginobject "{0}" already registered.'.format(name))
+        else:
+            self.__pluginObjectRegistry[name] = (objectRef, pluginType)
+    
+    def unregisterPluginObject(self, name):
+        """
+        Public method to unregister a plugin object in the object registry.
+        
+        @param name name of the plugin object
+        @type str
+        """
+        if name in self.__pluginObjectRegistry:
+            del self.__pluginObjectRegistry[name]
+    
+    def getPluginObject(self, name):
+        """
+        Public method to get a reference to a registered plugin object.
+        
+        @param name name of the plugin object
+        @type str
+        @return reference to the registered plugin object
+        @rtype any
+        @exception KeyError raised when the given name is not known
+        """
+        if name not in self.__pluginObjectRegistry:
+            raise KeyError(
+                'Pluginobject "{0}" is not registered.'.format(name))
+        
+        return self.__pluginObjectRegistry[name][0]
+    
+    def getPluginObjects(self):
+        """
+        Public method to get a list of (name, reference) pairs of all
+        registered plugin objects.
+        
+        @return list of (name, reference) pairs
+        @rtype list of (str, any)
+        """
+        objects = []
+        for name in self.__pluginObjectRegistry:
+            objects.append((name, self.__pluginObjectRegistry[name][0]))
+        return objects
+    
+    def getPluginObjectType(self, name):
+        """
+        Public method to get the type of a registered plugin object.
+        
+        @param name name of the plugin object
+        @type str
+        @return type of the plugin object
+        @rtype str
+        @exception KeyError raised when the given name is not known
+        """
+        if name not in self.__pluginObjectRegistry:
+            raise KeyError(
+                'Pluginobject "{0}" is not registered.'.format(name))
+        
+        return self.__pluginObjectRegistry[name][1]
+    
+    def usesDarkPalette(self):
+        """
+        Public method to check, if the application uses a palette with a dark
+        background.
+        
+        @return flag indicating the use of a palette with a dark background
+        @rtype bool
+        """
+        palette = self.palette()
+        lightness = palette.color(QPalette.ColorRole.Window).lightness()
+        return lightness <= 128
+
+ericApp = QCoreApplication.instance
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricClickableLabel.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a clickable label.
+"""
+
+from PyQt6.QtCore import pyqtSignal, Qt, QPoint
+from PyQt6.QtWidgets import QLabel
+
+
+class EricClickableLabel(QLabel):
+    """
+    Class implementing a clickable label.
+    
+    @signal clicked(QPoint) emitted upon a click on the label
+        with the left button
+    @signal middleClicked(QPoint) emitted upon a click on the label
+        with the middle button or CTRL and left button
+    """
+    clicked = pyqtSignal(QPoint)
+    middleClicked = pyqtSignal(QPoint)
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        self.setCursor(Qt.CursorShape.PointingHandCursor)
+    
+    def mouseReleaseEvent(self, evt):
+        """
+        Protected method handling mouse release events.
+        
+        @param evt mouse event (QMouseEvent)
+        """
+        if (
+            evt.button() == Qt.MouseButton.LeftButton and
+            self.rect().contains(evt.position().toPoint())
+        ):
+            if evt.modifiers() == Qt.KeyboardModifier.ControlModifier:
+                self.middleClicked.emit(evt.globalPosition().toPoint())
+            else:
+                self.clicked.emit(evt.globalPosition().toPoint())
+        elif (
+            evt.button() == Qt.MouseButton.MiddleButton and
+            self.rect().contains(evt.position().toPoint())
+        ):
+            self.middleClicked.emit(evt.globalPosition().toPoint())
+        else:
+            super().mouseReleaseEvent(evt)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricComboSelectionDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,69 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to select one entry from a list of strings.
+"""
+
+from PyQt6.QtCore import pyqtSlot
+from PyQt6.QtWidgets import QDialog, QDialogButtonBox
+
+from .Ui_E5ComboSelectionDialog import Ui_E5ComboSelectionDialog
+
+
+class EricComboSelectionDialog(QDialog, Ui_E5ComboSelectionDialog):
+    """
+    Class implementing a dialog to select one entry from a list of strings.
+    """
+    def __init__(self, entries, title="", message="", parent=None):
+        """
+        Constructor
+        
+        @param entries list of entries to select from
+        @type list of str or list of tuples of (str, any)
+        @param title title of the dialog (defaults to "")
+        @type str (optional)
+        @param message message to be show in the dialog (defaults to "")
+        @type str (optional)
+        @param parent reference to the parent widget (defaults to None)
+        @type QWidget (optional)
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        for entry in entries:
+            if isinstance(entry, tuple):
+                self.selectionComboBox.addItem(*entry)
+            else:
+                self.selectionComboBox.addItem(entry)
+        
+        self.on_selectionComboBox_currentTextChanged(
+            self.selectionComboBox.itemText(0))
+        
+        msh = self.minimumSizeHint()
+        self.resize(max(self.width(), msh.width()), msh.height())
+    
+    @pyqtSlot(str)
+    def on_selectionComboBox_currentTextChanged(self, txt):
+        """
+        Private slot to react upon changes of the selected entry.
+        
+        @param txt text of the selected entry
+        @type str
+        """
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Ok).setEnabled(bool(txt))
+    
+    def getSelection(self):
+        """
+        Public method to retrieve the selected item and its data.
+        
+        @return tuple containing the selected entry and its associated data
+        @rtype tuple of (str, any)
+        """
+        return (
+            self.selectionComboBox.currentText(),
+            self.selectionComboBox.currentData()
+        )
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricComboSelectionDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EricComboSelectionDialog</class>
+ <widget class="QDialog" name="EricComboSelectionDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>100</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Select from List</string>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QLabel" name="messageLabel">
+     <property name="text">
+      <string>Select from the list below:</string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QComboBox" name="selectionComboBox"/>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>EricComboSelectionDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>EricComboSelectionDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricCompleters.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,156 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2007 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing various kinds of completers.
+"""
+
+import os
+
+from PyQt6.QtCore import QDir, Qt, QStringListModel
+from PyQt6.QtGui import QFileSystemModel
+from PyQt6.QtWidgets import QCompleter
+
+from Globals import isWindowsPlatform
+
+
+class EricFileCompleter(QCompleter):
+    """
+    Class implementing a completer for file names.
+    """
+    def __init__(self, parent=None,
+                 completionMode=QCompleter.CompletionMode.PopupCompletion,
+                 showHidden=False):
+        """
+        Constructor
+        
+        @param parent parent widget of the completer (QWidget)
+        @param completionMode completion mode of the
+            completer (QCompleter.CompletionMode)
+        @param showHidden flag indicating to show hidden entries as well
+            (boolean)
+        """
+        super().__init__(parent)
+        self.__model = QFileSystemModel(self)
+        if showHidden:
+            self.__model.setFilter(
+                QDir.Filter.Dirs |
+                QDir.Filter.Files |
+                QDir.Filter.Drives |
+                QDir.Filter.AllDirs |
+                QDir.Filter.Hidden)
+        else:
+            self.__model.setFilter(
+                QDir.Filter.Dirs |
+                QDir.Filter.Files |
+                QDir.Filter.Drives |
+                QDir.Filter.AllDirs)
+        self.__model.setRootPath("")
+        self.setModel(self.__model)
+        self.setCompletionMode(completionMode)
+        if isWindowsPlatform():
+            self.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
+        if parent:
+            parent.setCompleter(self)
+    
+    def setRootPath(self, path):
+        """
+        Public method to set the root path of the model.
+        
+        @param path root path for the model
+        @type str
+        """
+        if not os.path.isdir(path):
+            path = os.path.dirname(path)
+        self.__model.setRootPath(path)
+    
+    def rootPath(self):
+        """
+        Public method to get the root path of the model.
+        
+        @return root path of the model
+        @rtype str
+        """
+        return self.__model.rootPath()
+
+
+class EricDirCompleter(QCompleter):
+    """
+    Class implementing a completer for directory names.
+    """
+    def __init__(self, parent=None,
+                 completionMode=QCompleter.CompletionMode.PopupCompletion,
+                 showHidden=False):
+        """
+        Constructor
+        
+        @param parent parent widget of the completer (QWidget)
+        @param completionMode completion mode of the
+            completer (QCompleter.CompletionMode)
+        @param showHidden flag indicating to show hidden entries as well
+            (boolean)
+        """
+        super().__init__(parent)
+        self.__model = QFileSystemModel(self)
+        if showHidden:
+            self.__model.setFilter(
+                QDir.Filter.Drives |
+                QDir.Filter.AllDirs |
+                QDir.Filter.Hidden)
+        else:
+            self.__model.setFilter(
+                QDir.Filter.Drives | QDir.Filter.AllDirs)
+        self.__model.setRootPath("")
+        self.setModel(self.__model)
+        self.setCompletionMode(completionMode)
+        if isWindowsPlatform():
+            self.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
+        if parent:
+            parent.setCompleter(self)
+    
+    def setRootPath(self, path):
+        """
+        Public method to set the root path of the model.
+        
+        @param path root path for the model
+        @type str
+        """
+        if not os.path.isdir(path):
+            path = os.path.dirname(path)
+        self.__model.setRootPath(path)
+    
+    def rootPath(self):
+        """
+        Public method to get the root path of the model.
+        
+        @return root path of the model
+        @rtype str
+        """
+        return self.__model.rootPath()
+
+
+class EricStringListCompleter(QCompleter):
+    """
+    Class implementing a completer for string lists.
+    """
+    def __init__(self, parent=None, strings=None,
+                 completionMode=QCompleter.CompletionMode.PopupCompletion):
+        """
+        Constructor
+        
+        @param parent parent widget of the completer (QWidget)
+        @param strings list of string to load into the completer
+            (list of strings)
+        @param completionMode completion mode of the
+            completer (QCompleter.CompletionMode)
+        """
+        super().__init__(parent)
+        self.__model = QStringListModel(
+            [] if strings is None else strings[:],
+            parent)
+        self.setModel(self.__model)
+        self.setCompletionMode(completionMode)
+        if parent:
+            parent.setCompleter(self)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricErrorMessage.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,220 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2013 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a specialized error message dialog.
+"""
+
+import contextlib
+
+from PyQt6.QtCore import (
+    qInstallMessageHandler, Qt, Q_ARG, QSettings, QtMsgType, QThread,
+    QMetaObject
+)
+from PyQt6.QtWidgets import QErrorMessage, QDialog
+
+from E5Gui.EricApplication import ericApp
+
+import Globals
+import Utilities
+import Preferences
+
+
+_msgHandlerDialog = None
+_origMsgHandler = None
+
+_filterSettings = QSettings(
+    QSettings.Format.IniFormat,
+    QSettings.Scope.UserScope,
+    Globals.settingsNameOrganization,
+    "eric7messagefilters")
+_defaultFilters = [
+    "QFont::",
+    "QCocoaMenu::removeMenuItem",
+    "QCocoaMenu::insertNative",
+    ",type id:",
+    "Remote debugging server started successfully",
+    "Uncaught SecurityError:",
+    "Content Security Policy",
+    "QXcbClipboard:",
+    "QXcbConnection: XCB error",
+    "libpng warning: iCCP:",
+    "Uncaught ReferenceError: $ is not defined",
+]
+
+
+def filterMessage(message):
+    """
+    Module function to filter messages.
+    
+    @param message message to be checked
+    @type str
+    @return flag indicating that the message should be filtered out
+    @rtype bool
+    """
+    return any(
+        filterStr in message
+        for filterStr in Globals.toList(_filterSettings.value(
+            "MessageFilters", [])) + _defaultFilters
+    )
+
+
+class EricErrorMessage(QErrorMessage):
+    """
+    Class implementing a specialized error message dialog.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent)
+    
+    def showMessage(self, message, msgType=""):
+        """
+        Public method to show a message.
+        
+        @param message error message to be shown
+        @type str
+        @param msgType type of the error message
+        @type str
+        """
+        if not filterMessage(message):
+            if msgType:
+                super().showMessage(message, msgType)
+            else:
+                super().showMessage(message)
+    
+    def editMessageFilters(self):
+        """
+        Public method to edit the list of message filters.
+        """
+        from .EricErrorMessageFilterDialog import EricErrorMessageFilterDialog
+        dlg = EricErrorMessageFilterDialog(
+            Globals.toList(_filterSettings.value(
+                "MessageFilters", [])))
+        if dlg.exec() == QDialog.DialogCode.Accepted:
+            filters = dlg.getFilters()
+            _filterSettings.setValue("MessageFilters", filters)
+
+
+def messageHandler(msgType, context, message):
+    """
+    Module function handling messages.
+    
+    @param msgType type of the message
+    @type  int, QtMsgType
+    @param context context information
+    @type QMessageLogContext
+    @param message message to be shown
+    @type bytes
+    """
+    if _msgHandlerDialog:
+        if msgType.value < Preferences.getUI("MinimumMessageTypeSeverity"):
+            # severity is lower than configured
+            # just ignore the message
+            return
+        
+        with contextlib.suppress(RuntimeError):
+            if msgType == QtMsgType.QtDebugMsg:
+                messageType = "Debug Message:"
+            elif msgType == QtMsgType.QtInfoMsg:
+                messageType = "Info Message:"
+            elif msgType == QtMsgType.QtWarningMsg:
+                messageType = "Warning:"
+            elif msgType == QtMsgType.QtCriticalMsg:
+                messageType = "Critical:"
+            elif msgType == QtMsgType.QtFatalMsg:
+                messageType = "Fatal Error:"
+            if isinstance(message, bytes):
+                message = Utilities.decodeBytes(message)
+            if filterMessage(message):
+                return
+            message = (
+                message.replace("\r\n", "<br/>")
+                .replace("\n", "<br/>")
+                .replace("\r", "<br/>")
+            )
+            msg = (
+                (
+                    "<p><b>{0}</b></p><p>{1}</p><p>File: {2}</p>"
+                    "<p>Line: {3}</p><p>Function: {4}</p>"
+                ).format(messageType, Utilities.html_uencode(message),
+                         context.file, context.line, context.function)
+                if context.file is not None else
+                "<p><b>{0}</b></p><p>{1}</p>".format(
+                    messageType, Utilities.html_uencode(message))
+            )
+            if QThread.currentThread() == ericApp().thread():
+                _msgHandlerDialog.showMessage(msg)
+            else:
+                QMetaObject.invokeMethod(
+                    _msgHandlerDialog,
+                    "showMessage",
+                    Qt.ConnectionType.QueuedConnection,
+                    Q_ARG(str, msg))
+            return
+    elif _origMsgHandler:
+        _origMsgHandler(msgType, message)
+        return
+    
+    if msgType == QtMsgType.QtDebugMsg:
+        messageType = "Debug Message"
+    elif msgType == QtMsgType.QtInfoMsg:
+        messageType = "Info Message:"
+    elif msgType == QtMsgType.QtWarningMsg:
+        messageType = "Warning"
+    elif msgType == QtMsgType.QtCriticalMsg:
+        messageType = "Critical"
+    elif msgType == QtMsgType.QtFatalMsg:
+        messageType = "Fatal Error"
+    if isinstance(message, bytes):
+        message = message.decode()
+    print("{0}: {1} in {2} at line {3} ({4})".format(
+        messageType, message, context.file, context.line,
+        context.function))
+
+
+def qtHandler():
+    """
+    Module function to install an EricErrorMessage dialog as the global
+    message handler.
+    
+    @return reference to the message handler dialog
+    @rtype EricErrorMessage
+    """
+    global _msgHandlerDialog, _origMsgHandler
+    
+    if _msgHandlerDialog is None:
+        # Install an EricErrorMessage dialog as the global message handler.
+        _msgHandlerDialog = EricErrorMessage()
+        _origMsgHandler = qInstallMessageHandler(messageHandler)
+    
+    return _msgHandlerDialog
+
+
+def editMessageFilters():
+    """
+    Module function to edit the list of message filters.
+    """
+    if _msgHandlerDialog:
+        _msgHandlerDialog.editMessageFilters()
+    else:
+        print("No message handler installed.")
+
+
+def messageHandlerInstalled():
+    """
+    Module function to check, if a message handler was installed.
+    
+    @return flag indicating an installed message handler
+    @rtype bool
+    """
+    return _msgHandlerDialog is not None
+
+#
+# eflag: noqa = M801
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricErrorMessageFilterDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2013 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to manage the list of messages to be ignored.
+"""
+
+from PyQt6.QtWidgets import QDialog
+
+from .Ui_EricErrorMessageFilterDialog import Ui_EricErrorMessageFilterDialog
+
+
+class EricErrorMessageFilterDialog(QDialog, Ui_EricErrorMessageFilterDialog):
+    """
+    Class implementing a dialog to manage the list of messages to be ignored.
+    """
+    def __init__(self, messageFilters, parent=None):
+        """
+        Constructor
+        
+        @param messageFilters list of message filters to be edited
+        @type list of str
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        self.filtersEditWidget.setList(messageFilters)
+        self.filtersEditWidget.setListWhatsThis(self.tr(
+            "<b>Error Message Filters</b>"
+            "<p>This list shows the configured message filters used to"
+            " suppress error messages from within Qt.</p>"
+            "<p>A default list of message filters is added to this"
+            " user list.</p>"
+        ))
+    
+    def getFilters(self):
+        """
+        Public method to get the list of message filters.
+        
+        @return error message filters (list of strings)
+        """
+        return self.filtersEditWidget.getList()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricErrorMessageFilterDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EricErrorMessageFilterDialog</class>
+ <widget class="QDialog" name="EricErrorMessageFilterDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>500</width>
+    <height>350</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Error Messages Filter</string>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="EricStringListEditWidget" name="filtersEditWidget" native="true"/>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>EricStringListEditWidget</class>
+   <extends>QWidget</extends>
+   <header>E5Gui/EricStringListEditWidget.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <tabstops>
+  <tabstop>buttonBox</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>EricErrorMessageFilterDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>227</x>
+     <y>329</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>EricErrorMessageFilterDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>295</x>
+     <y>335</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricFileDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,197 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing alternative functions for the QFileDialog static methods
+to cope with distributor's usage of KDE wrapper dialogs for Qt file dialogs.
+"""
+
+from PyQt6.QtWidgets import QFileDialog
+
+import Globals
+
+##Options = QFileDialog.Options
+Option = QFileDialog.Option
+
+ShowDirsOnly = QFileDialog.Option.ShowDirsOnly
+DontResolveSymlinks = QFileDialog.Option.DontResolveSymlinks
+DontConfirmOverwrite = QFileDialog.Option.DontConfirmOverwrite
+DontUseNativeDialog = QFileDialog.Option.DontUseNativeDialog
+ReadOnly = QFileDialog.Option.ReadOnly
+HideNameFilterDetails = QFileDialog.Option.HideNameFilterDetails
+##DontUseSheet = QFileDialog.Option.DontUseSheet
+DontUseCustomDirectoryIcons = QFileDialog.Option.DontUseCustomDirectoryIcons
+
+
+def __reorderFilter(filterStr, initialFilter=""):
+    """
+    Private function to reorder the file filter to cope with a KDE issue
+    introduced by distributor's usage of KDE file dialogs.
+    
+    @param filterStr Qt file filter (string)
+    @param initialFilter initial filter (string)
+    @return the rearranged Qt file filter (string)
+    """
+    if initialFilter and not Globals.isMacPlatform():
+        fileFilters = filterStr.split(';;')
+        if len(fileFilters) < 10 and initialFilter in fileFilters:
+            fileFilters.remove(initialFilter)
+        fileFilters.insert(0, initialFilter)
+        return ";;".join(fileFilters)
+    else:
+        return filterStr
+
+
+def getOpenFileName(parent=None, caption="", directory="",
+                    filterStr="", options=None):
+    """
+    Module function to get the name of a file for opening it.
+    
+    @param parent parent widget of the dialog (QWidget)
+    @param caption window title of the dialog (string)
+    @param directory working directory of the dialog (string)
+    @param filterStr filter string for the dialog (string)
+    @param options various options for the dialog (QFileDialog.Options)
+    @return name of file to be opened (string)
+    """
+    if options is None:
+        options = QFileDialog.Option(0)
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.Option.DontUseNativeDialog
+    return QFileDialog.getOpenFileName(
+        parent, caption, directory, filterStr, "", options)[0]
+
+
+def getOpenFileNameAndFilter(parent=None, caption="", directory="",
+                             filterStr="", initialFilter="",
+                             options=None):
+    """
+    Module function to get the name of a file for opening it and the selected
+    file name filter.
+    
+    @param parent parent widget of the dialog (QWidget)
+    @param caption window title of the dialog (string)
+    @param directory working directory of the dialog (string)
+    @param filterStr filter string for the dialog (string)
+    @param initialFilter initial filter for the dialog (string)
+    @param options various options for the dialog (QFileDialog.Options)
+    @return name of file to be opened and selected filter (string, string)
+    """
+    if options is None:
+        options = QFileDialog.Option(0)
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.Option.DontUseNativeDialog
+    newfilter = __reorderFilter(filterStr, initialFilter)
+    return QFileDialog.getOpenFileName(
+        parent, caption, directory, newfilter, initialFilter, options)
+
+
+def getOpenFileNames(parent=None, caption="", directory="",
+                     filterStr="", options=None):
+    """
+    Module function to get a list of names of files for opening.
+    
+    @param parent parent widget of the dialog (QWidget)
+    @param caption window title of the dialog (string)
+    @param directory working directory of the dialog (string)
+    @param filterStr filter string for the dialog (string)
+    @param options various options for the dialog (QFileDialog.Options)
+    @return list of file names to be opened (list of string)
+    """
+    if options is None:
+        options = QFileDialog.Option(0)
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.Option.DontUseNativeDialog
+    return QFileDialog.getOpenFileNames(
+        parent, caption, directory, filterStr, "", options)[0]
+
+
+def getOpenFileNamesAndFilter(parent=None, caption="", directory="",
+                              filterStr="", initialFilter="",
+                              options=None):
+    """
+    Module function to get a list of names of files for opening and the
+    selected file name filter.
+    
+    @param parent parent widget of the dialog (QWidget)
+    @param caption window title of the dialog (string)
+    @param directory working directory of the dialog (string)
+    @param filterStr filter string for the dialog (string)
+    @param initialFilter initial filter for the dialog (string)
+    @param options various options for the dialog (QFileDialog.Options)
+    @return list of file names to be opened and selected filter
+        (list of string, string)
+    """
+    if options is None:
+        options = QFileDialog.Option(0)
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.Option.DontUseNativeDialog
+    newfilter = __reorderFilter(filterStr, initialFilter)
+    return QFileDialog.getOpenFileNames(
+        parent, caption, directory, newfilter, initialFilter, options)
+
+
+def getSaveFileName(parent=None, caption="", directory="",
+                    filterStr="", options=None):
+    """
+    Module function to get the name of a file for saving it.
+    
+    @param parent parent widget of the dialog (QWidget)
+    @param caption window title of the dialog (string)
+    @param directory working directory of the dialog (string)
+    @param filterStr filter string for the dialog (string)
+    @param options various options for the dialog (QFileDialog.Options)
+    @return name of file to be saved (string)
+    """
+    if options is None:
+        options = QFileDialog.Option(0)
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.Option.DontUseNativeDialog
+    return QFileDialog.getSaveFileName(
+        parent, caption, directory, filterStr, "", options)[0]
+
+
+def getSaveFileNameAndFilter(parent=None, caption="", directory="",
+                             filterStr="", initialFilter="",
+                             options=None):
+    """
+    Module function to get the name of a file for saving it and the selected
+    file name filter.
+    
+    @param parent parent widget of the dialog (QWidget)
+    @param caption window title of the dialog (string)
+    @param directory working directory of the dialog (string)
+    @param filterStr filter string for the dialog (string)
+    @param initialFilter initial filter for the dialog (string)
+    @param options various options for the dialog (QFileDialog.Options)
+    @return name of file to be saved and selected filter (string, string)
+    """
+    if options is None:
+        options = QFileDialog.Option(0)
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.Option.DontUseNativeDialog
+    newfilter = __reorderFilter(filterStr, initialFilter)
+    return QFileDialog.getSaveFileName(
+        parent, caption, directory, newfilter, initialFilter, options)
+
+
+def getExistingDirectory(parent=None, caption="",
+                         directory="",
+                         options=QFileDialog.Option.ShowDirsOnly):
+    """
+    Module function to get the name of a directory.
+    
+    @param parent parent widget of the dialog (QWidget)
+    @param caption window title of the dialog (string)
+    @param directory working directory of the dialog (string)
+    @param options various options for the dialog (QFileDialog.Options)
+    @return name of selected directory (string)
+    """
+    if options is None:
+        options = QFileDialog.Option(0)
+    if Globals.isLinuxPlatform():
+        options |= QFileDialog.Option.DontUseNativeDialog
+    return QFileDialog.getExistingDirectory(parent, caption, directory,
+                                            options)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricFileSaveConfirmDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,148 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2018 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to enter a file system path using a file picker.
+"""
+
+import os
+
+from PyQt6.QtWidgets import (
+    QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QLineEdit
+)
+
+from .EricPathPicker import EricPathPicker, EricPathPickerModes
+
+
+class EricFileSaveConfirmDialog(QDialog):
+    """
+    Class implementing a dialog to enter a file system path using a file
+    picker.
+    """
+    def __init__(self, filename, title, message="", picker=True, parent=None):
+        """
+        Constructor
+        
+        @param filename file name to be shown
+        @type str
+        @param title title for the dialog
+        @type str
+        @param message message to be shown
+        @type str
+        @param picker flag indicating to use a path picker
+        @type bool
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent)
+        
+        self.setMinimumWidth(400)
+        
+        self.__selectedAction = "cancel"
+        self.__filename = filename
+        
+        self.__layout = QVBoxLayout(self)
+        
+        self.__label = QLabel(self)
+        self.__label.setWordWrap(True)
+        if message:
+            self.__label.setText(message)
+        else:
+            self.__label.setText(self.tr("The given file exists already."))
+        
+        if picker:
+            self.__pathPicker = EricPathPicker(self)
+            self.__pathPicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
+        else:
+            self.__pathPicker = QLineEdit(self)
+            self.__pathPicker.setClearButtonEnabled(True)
+        
+        self.__buttonBox = QDialogButtonBox(self)
+        self.__cancelButton = self.__buttonBox.addButton(
+            QDialogButtonBox.StandardButton.Cancel)
+        self.__overwriteButton = self.__buttonBox.addButton(
+            self.tr("Overwrite"), QDialogButtonBox.ButtonRole.AcceptRole)
+        self.__renameButton = self.__buttonBox.addButton(
+            self.tr("Rename"), QDialogButtonBox.ButtonRole.AcceptRole)
+        
+        self.__layout.addWidget(self.__label)
+        self.__layout.addWidget(self.__pathPicker)
+        self.__layout.addWidget(self.__buttonBox)
+        
+        # set values and states
+        self.__pathPicker.setText(filename)
+        if picker:
+            self.__pathPicker.setDefaultDirectory(os.path.dirname(filename))
+        self.__renameButton.setEnabled(False)
+        self.__cancelButton.setDefault(True)
+        
+        self.__buttonBox.clicked.connect(self.__buttonBoxClicked)
+        self.__pathPicker.textChanged.connect(self.__filenameChanged)
+    
+    def __buttonBoxClicked(self, button):
+        """
+        Private slot to handle the user clicking a button.
+        
+        @param button reference to the clicked button
+        @type QAbstractButton
+        """
+        if button == self.__cancelButton:
+            self.__selectedAction = "cancel"
+            self.reject()
+        elif button == self.__renameButton:
+            self.__selectedAction = "rename"
+            self.accept()
+        elif button == self.__overwriteButton:
+            self.__selectedAction = "overwrite"
+            self.accept()
+    
+    def __filenameChanged(self, text):
+        """
+        Private slot to handle a change of the file name.
+        
+        @param text new file name
+        @type str
+        """
+        self.__renameButton.setEnabled(text != self.__filename)
+    
+    def selectedAction(self):
+        """
+        Public method to get the selected action and associated data.
+        
+        @return tuple containing the selected action (cancel, rename,
+            overwrite) and the filename (in case of 'rename' or 'overwrite')
+        @rtype tuple of (str, str)
+        """
+        if self.__selectedAction == "rename":
+            filename = self.__pathPicker.text()
+        elif self.__selectedAction == "overwrite":
+            filename = self.__filename
+        else:
+            filename = ""
+        return self.__selectedAction, filename
+
+
+def confirmOverwrite(filename, title, message="", picker=True, parent=None):
+    """
+    Function to confirm that a file shall be overwritten.
+    
+    @param filename file name to be shown
+    @type str
+    @param title title for the dialog
+    @type str
+    @param message message to be shown
+    @type str
+    @param picker flag indicating to use a path picker
+    @type bool
+    @param parent reference to the parent widget
+    @type QWidget
+    @return tuple containing the selected action (cancel, rename,
+        overwrite) and the filename (in case of 'rename' or 'overwrite')
+    @rtype tuple of (str, str)
+    """
+    dlg = EricFileSaveConfirmDialog(filename, title, message=message,
+                                  picker=picker, parent=parent)
+    dlg.exec()
+    return dlg.selectedAction()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricGenericDiffHighlighter.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,172 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a syntax highlighter for diff outputs.
+"""
+
+import re
+
+from PyQt6.QtGui import QSyntaxHighlighter, QTextCharFormat, QFont
+
+import Preferences
+
+
+def TERMINAL(pattern):
+    """
+    Function to mark a pattern as the final one to search for.
+    
+    @param pattern pattern to be marked (string)
+    @return marked pattern (string)
+    """
+    return "__TERMINAL__:{0}".format(pattern)
+
+# Cache the results of re.compile for performance reasons
+_REGEX_CACHE = {}
+
+
+class EricGenericDiffHighlighter(QSyntaxHighlighter):
+    """
+    Class implementing a generic diff highlighter.
+    """
+    def __init__(self, doc):
+        """
+        Constructor
+        
+        @param doc reference to the text document (QTextDocument)
+        """
+        super().__init__(doc)
+        
+        self.regenerateRules()
+    
+    def __initColours(self):
+        """
+        Private method to initialize the highlighter colours.
+        """
+        self.textColor = Preferences.getDiffColour("TextColor")
+        self.addedColor = Preferences.getDiffColour("AddedColor")
+        self.removedColor = Preferences.getDiffColour("RemovedColor")
+        self.replacedColor = Preferences.getDiffColour("ReplacedColor")
+        self.contextColor = Preferences.getDiffColour("ContextColor")
+        self.headerColor = Preferences.getDiffColour("HeaderColor")
+        self.whitespaceColor = Preferences.getDiffColour("BadWhitespaceColor")
+    
+    def createRules(self, *rules):
+        """
+        Public method to create the highlighting rules.
+        
+        @param rules set of highlighting rules (list of tuples of rule
+            pattern (string) and highlighting format (QTextCharFormat))
+        """
+        for _idx, ruleFormat in enumerate(rules):
+            rule, formats = ruleFormat
+            terminal = rule.startswith(TERMINAL(''))
+            if terminal:
+                rule = rule[len(TERMINAL('')):]
+            try:
+                regex = _REGEX_CACHE[rule]
+            except KeyError:
+                regex = _REGEX_CACHE[rule] = re.compile(rule)
+            self._rules.append((regex, formats, terminal))
+    
+    def formats(self, line):
+        """
+        Public method to determine the highlighting formats for a line of
+        text.
+        
+        @param line text line to be highlighted (string)
+        @return list of matched highlighting rules (list of tuples of match
+            object and format (QTextCharFormat))
+        """
+        matched = []
+        for rx, formats, terminal in self._rules:
+            match = rx.match(line)
+            if not match:
+                continue
+            matched.append([match, formats])
+            if terminal:
+                return matched
+        
+        return matched
+    
+    def makeFormat(self, fg=None, bg=None, bold=False):
+        """
+        Public method to generate a format definition.
+        
+        @param fg foreground color (QColor)
+        @param bg background color (QColor)
+        @param bold flag indicating bold text (boolean)
+        @return format definiton (QTextCharFormat)
+        """
+        font = Preferences.getEditorOtherFonts("MonospacedFont")
+        charFormat = QTextCharFormat()
+        charFormat.setFontFamilies([font.family()])
+        charFormat.setFontPointSize(font.pointSize())
+        
+        if fg:
+            charFormat.setForeground(fg)
+        
+        if bg:
+            charFormat.setBackground(bg)
+        
+        if bold:
+            charFormat.setFontWeight(QFont.Weight.Bold)
+        
+        return charFormat
+    
+    def highlightBlock(self, text):
+        """
+        Public method to highlight a block of text.
+        
+        @param text text to be highlighted (string)
+        """
+        formats = self.formats(text)
+        if not formats:
+            # nothing matched
+            self.setFormat(0, len(text), self.normalFormat)
+            return
+        
+        for match, formatStr in formats:
+            start = match.start()
+            groups = match.groups()
+
+            # No groups in the regex, assume this is a single rule
+            # that spans the entire line
+            if not groups:
+                self.setFormat(0, len(text), formatStr)
+                continue
+
+            # Groups exist, rule is a tuple corresponding to group
+            for groupIndex, group in enumerate(groups):
+                if not group:
+                    # empty match
+                    continue
+                
+                # allow None as a no-op format
+                length = len(group)
+                if formatStr[groupIndex]:
+                    self.setFormat(start, start + length,
+                                   formatStr[groupIndex])
+                start += length
+    
+    def regenerateRules(self):
+        """
+        Public method to initialize or regenerate the syntax highlighter rules.
+        """
+        self.normalFormat = self.makeFormat()
+        
+        self.__initColours()
+        
+        self._rules = []
+        self.generateRules()
+    
+    def generateRules(self):
+        """
+        Public method to generate the rule set.
+        
+        Note: This method must me implemented by derived syntax
+        highlighters.
+        """
+        pass
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricLed.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,336 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2006 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a LED widget.
+
+It was inspired by KLed.
+"""
+
+import enum
+
+from PyQt6.QtCore import pyqtSignal, Qt, QSize, QPoint
+from PyQt6.QtGui import QColor, QRadialGradient, QPalette, QPainter, QBrush
+from PyQt6.QtWidgets import QWidget
+
+
+class EricLedType(enum.Enum):
+    """
+    Class defining the LED types.
+    """
+    RECTANGULAR = 0
+    CIRCULAR = 1
+
+
+class EricLed(QWidget):
+    """
+    Class implementing a LED widget.
+    """
+    def __init__(self, parent=None, color=None, shape=EricLedType.CIRCULAR,
+                 rectRatio=1):
+        """
+        Constructor
+        
+        @param parent reference to parent widget
+        @type QWidget
+        @param color color of the LED
+        @type QColor
+        @param shape shape of the LED
+        @type EricLedType
+        @param rectRatio ratio width to height, if shape is rectangular
+        @type float
+        """
+        super().__init__(parent)
+        
+        if color is None:
+            color = QColor("green")
+        
+        self.__led_on = True
+        self.__dark_factor = 300
+        self.__offcolor = color.darker(self.__dark_factor)
+        self.__led_color = color
+        self.__framedLed = True
+        self.__shape = shape
+        self.__rectRatio = rectRatio
+        
+        self.setColor(color)
+        
+    def paintEvent(self, evt):
+        """
+        Protected slot handling the paint event.
+        
+        @param evt paint event object
+        @type QPaintEvent
+        """
+        if self.__shape == EricLedType.CIRCULAR:
+            self.__paintRound()
+        elif self.__shape == EricLedType.RECTANGULAR:
+            self.__paintRectangular()
+    
+    def __getBestRoundSize(self):
+        """
+        Private method to calculate the width of the LED.
+        
+        @return new width of the LED (integer)
+        """
+        width = min(self.width(), self.height())
+        width -= 2  # leave one pixel border
+        return width > -1 and width or 0
+        
+    def __paintRound(self):
+        """
+        Private method to paint a round raised LED.
+        """
+        # Initialize coordinates, width and height of the LED
+        width = self.__getBestRoundSize()
+        
+        # Calculate the gradient for the LED
+        wh = width / 2
+        color = self.__led_on and self.__led_color or self.__offcolor
+        gradient = QRadialGradient(wh, wh, wh, 0.8 * wh, 0.8 * wh)
+        gradient.setColorAt(0.0, color.lighter(200))
+        gradient.setColorAt(0.6, color)
+        if self.__framedLed:
+            gradient.setColorAt(0.9, color.darker())
+            gradient.setColorAt(
+                1.0, self.palette().color(QPalette.ColorRole.Dark))
+        else:
+            gradient.setColorAt(1.0, color.darker())
+        
+        # now do the drawing
+        paint = QPainter(self)
+        paint.setRenderHint(QPainter.RenderHint.Antialiasing, True)
+        paint.setBrush(QBrush(gradient))
+        paint.setPen(Qt.PenStyle.NoPen)
+        paint.drawEllipse(1, 1, width, width)
+        paint.end()
+        
+    def __paintRectangular(self):
+        """
+        Private method to paint a rectangular raised LED.
+        """
+        # Initialize coordinates, width and height of the LED
+        width = self.height() * self.__rectRatio
+        left = max(0, int((self.width() - width) / 2) - 1)
+        right = min(int((self.width() + width) / 2), self.width())
+        height = self.height()
+        
+        # now do the drawing
+        painter = QPainter(self)
+        painter.setRenderHint(QPainter.RenderHint.Antialiasing, True)
+        color = self.__led_on and self.__led_color or self.__offcolor
+
+        painter.setPen(color.lighter(200))
+        painter.drawLine(left, 0, left, height - 1)
+        painter.drawLine(left + 1, 0, right - 1, 0)
+        if self.__framedLed:
+            painter.setPen(self.palette().color(QPalette.ColorRole.Dark))
+        else:
+            painter.setPen(color.darker())
+        painter.drawLine(left + 1, height - 1, right - 1, height - 1)
+        painter.drawLine(right - 1, 1, right - 1, height - 1)
+        painter.fillRect(left + 1, 1, right - 2, height - 2, QBrush(color))
+        painter.end()
+        
+    def isOn(self):
+        """
+        Public method to return the LED state.
+        
+        @return flag indicating the light state (boolean)
+        """
+        return self.__led_on
+        
+    def shape(self):
+        """
+        Public method to return the LED shape.
+        
+        @return LED shape
+        @rtype EricLedType
+        """
+        return self.__shape
+        
+    def ratio(self):
+        """
+        Public method to return the LED rectangular ratio [= width / height].
+        
+        @return LED rectangular ratio (float)
+        """
+        return self.__rectRatio
+        
+    def color(self):
+        """
+        Public method to return the LED color.
+        
+        @return color of the LED (QColor)
+        """
+        return self.__led_color
+        
+    def setOn(self, state):
+        """
+        Public method to set the LED to on.
+        
+        @param state new state of the LED (boolean)
+        """
+        if self.__led_on != state:
+            self.__led_on = state
+            self.update()
+        
+    def setShape(self, shape):
+        """
+        Public method to set the LED shape.
+        
+        @param shape new LED shape
+        @type EricLedType
+        """
+        if self.__shape != shape:
+            self.__shape = shape
+            self.update()
+        
+    def setRatio(self, ratio):
+        """
+        Public method to set the LED rectangular ratio (width / height).
+        
+        @param ratio new LED rectangular ratio (float)
+        """
+        if self.__rectRatio != ratio:
+            self.__rectRatio = ratio
+            self.update()
+        
+    def setColor(self, color):
+        """
+        Public method to set the LED color.
+        
+        @param color color for the LED (QColor)
+        """
+        if self.__led_color != color:
+            self.__led_color = color
+            self.__offcolor = color.darker(self.__dark_factor)
+            self.update()
+        
+    def setDarkFactor(self, darkfactor):
+        """
+        Public method to set the dark factor.
+        
+        @param darkfactor value to set for the dark factor (integer)
+        """
+        if self.__dark_factor != darkfactor:
+            self.__dark_factor = darkfactor
+            self.__offcolor = self.__led_color.darker(darkfactor)
+            self.update()
+        
+    def darkFactor(self):
+        """
+        Public method to return the dark factor.
+        
+        @return the current dark factor (integer)
+        """
+        return self.__dark_factor
+        
+    def toggle(self):
+        """
+        Public slot to toggle the LED state.
+        """
+        self.setOn(not self.__led_on)
+        
+    def on(self):
+        """
+        Public slot to set the LED to on.
+        """
+        self.setOn(True)
+        
+    def off(self):
+        """
+        Public slot to set the LED to off.
+        """
+        self.setOn(False)
+        
+    def setFramed(self, framed):
+        """
+        Public slot to set the __framedLed attribute.
+        
+        @param framed flag indicating the framed state (boolean)
+        """
+        if self.__framedLed != framed:
+            self.__framedLed = framed
+            self.__off_map = None
+            self.__on_map = None
+            self.update()
+        
+    def isFramed(self):
+        """
+        Public method to return the framed state.
+        
+        @return flag indicating the current framed state (boolean)
+        """
+        return self.__framedLed
+        
+    def sizeHint(self):
+        """
+        Public method to give a hint about our desired size.
+        
+        @return size hint (QSize)
+        """
+        return QSize(18, 18)
+        
+    def minimumSizeHint(self):
+        """
+        Public method to give a hint about our minimum size.
+        
+        @return size hint (QSize)
+        """
+        return QSize(18, 18)
+
+
+class EricClickableLed(EricLed):
+    """
+    Class implementing a clickable LED widget.
+    
+    @signal clicked(QPoint) emitted upon a click on the LED with the
+        left button
+    @signal middleClicked(QPoint) emitted upon a click on the LED with
+        the middle button or CTRL and left button
+    """
+    clicked = pyqtSignal(QPoint)
+    middleClicked = pyqtSignal(QPoint)
+    
+    def __init__(self, parent=None, color=None, shape=EricLedType.CIRCULAR,
+                 rectRatio=1):
+        """
+        Constructor
+        
+        @param parent reference to parent widget
+        @type QWidget
+        @param color color of the LED
+        @type QColor
+        @param shape shape of the LED
+        @type EricLedType
+        @param rectRatio ratio width to height, if shape is rectangular
+        @type float
+        """
+        super().__init__(parent, color, shape, rectRatio)
+        
+        self.setCursor(Qt.CursorShape.PointingHandCursor)
+    
+    def mouseReleaseEvent(self, evt):
+        """
+        Protected method handling mouse release events.
+        
+        @param evt mouse event (QMouseEvent)
+        """
+        if (
+            evt.button() == Qt.MouseButton.LeftButton and
+            self.rect().contains(evt.position().toPoint())
+        ):
+            if evt.modifiers() == Qt.KeyboardModifier.ControlModifier:
+                self.middleClicked.emit(evt.globalPosition().toPoint())
+            else:
+                self.clicked.emit(evt.globalPosition().toPoint())
+        elif (
+            evt.button() == Qt.MouseButton.MiddleButton and
+            self.rect().contains(evt.position().toPoint())
+        ):
+            self.middleClicked.emit(evt.globalPosition().toPoint())
+        else:
+            super().mouseReleaseEvent(evt)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricLineEdit.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,264 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing specialized line edits.
+"""
+
+import enum
+
+from PyQt6.QtCore import pyqtSignal, Qt, QEvent
+from PyQt6.QtWidgets import (
+    QLineEdit, QWidget, QHBoxLayout, QBoxLayout, QLayout, QApplication,
+    QSpacerItem, QSizePolicy
+)
+
+
+class EricLineEditSideWidget(QWidget):
+    """
+    Class implementing the side widgets for the line edit class.
+    
+    @signal sizeHintChanged() emitted to indicate a change of the size hint
+    """
+    sizeHintChanged = pyqtSignal()
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+    
+    def event(self, evt):
+        """
+        Public method to handle events.
+        
+        @param evt reference to the event (QEvent)
+        @return flag indicating, whether the event was recognized (boolean)
+        """
+        if evt.type() == QEvent.Type.LayoutRequest:
+            self.sizeHintChanged.emit()
+        return QWidget.event(self, evt)
+
+
+class EricLineEditSide(enum.Enum):
+    """
+    Class defining the line edit sides.
+    """
+    LEFT = 0
+    RIGHT = 1
+
+
+class EricLineEdit(QLineEdit):
+    """
+    Class implementing a line edit widget showing some inactive text.
+    """
+    def __init__(self, parent=None, placeholderText=""):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        @param placeholderText text to be shown on inactivity
+        @type str
+        """
+        super().__init__(parent)
+        
+        self.setMinimumHeight(22)
+        
+        self.setPlaceholderText(placeholderText)
+        
+        self.__mainLayout = QHBoxLayout(self)
+        self.__mainLayout.setContentsMargins(0, 0, 0, 0)
+        self.__mainLayout.setSpacing(0)
+        
+        self.__leftMargin = 0
+        self.__leftWidget = EricLineEditSideWidget(self)
+        self.__leftWidget.resize(0, 0)
+        self.__leftLayout = QHBoxLayout(self.__leftWidget)
+        self.__leftLayout.setContentsMargins(0, 0, 2, 0)
+        if QApplication.isRightToLeft():
+            self.__leftLayout.setDirection(QBoxLayout.Direction.RightToLeft)
+        else:
+            self.__leftLayout.setDirection(QBoxLayout.Direction.LeftToRight)
+        self.__leftLayout.setSizeConstraint(
+            QLayout.SizeConstraint.SetFixedSize)
+        
+        self.__rightWidget = EricLineEditSideWidget(self)
+        self.__rightWidget.resize(0, 0)
+        self.__rightLayout = QHBoxLayout(self.__rightWidget)
+        self.__rightLayout.setContentsMargins(0, 0, 2, 0)
+        if self.isRightToLeft():
+            self.__rightLayout.setDirection(QBoxLayout.Direction.RightToLeft)
+        else:
+            self.__rightLayout.setDirection(QBoxLayout.Direction.LeftToRight)
+        
+        horizontalSpacer = QSpacerItem(
+            0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+        self.__mainLayout.addWidget(
+            self.__leftWidget, 0,
+            Qt.AlignmentFlag.AlignVCenter | Qt.AlignmentFlag.AlignLeft)
+        self.__mainLayout.addItem(horizontalSpacer)
+        self.__mainLayout.addWidget(
+            self.__rightWidget, 0,
+            Qt.AlignmentFlag.AlignVCenter | Qt.AlignmentFlag.AlignRight)
+        if self.isRightToLeft():
+            self.__mainLayout.setDirection(QBoxLayout.Direction.RightToLeft)
+        else:
+            self.__mainLayout.setDirection(QBoxLayout.Direction.LeftToRight)
+        
+        self.setWidgetSpacing(3)
+        self.__leftWidget.sizeHintChanged.connect(self._updateTextMargins)
+        self.__rightWidget.sizeHintChanged.connect(self._updateTextMargins)
+    
+    def setLeftMargin(self, margin):
+        """
+        Public method to set the left margin.
+        
+        @param margin left margin in pixel (integer)
+        """
+        self.__leftMargin = margin
+    
+    def leftMargin(self):
+        """
+        Public method to get the size of the left margin.
+        
+        @return left margin in pixel (integer)
+        """
+        return self.__leftMargin
+    
+    def event(self, evt):
+        """
+        Public method to handle events.
+        
+        @param evt reference to the event (QEvent)
+        @return flag indicating, whether the event was recognized (boolean)
+        """
+        if evt.type() == QEvent.Type.LayoutDirectionChange:
+            if self.isRightToLeft():
+                self.__mainLayout.setDirection(
+                    QBoxLayout.Direction.RightToLeft)
+                self.__leftLayout.setDirection(
+                    QBoxLayout.Direction.RightToLeft)
+                self.__rightLayout.setDirection(
+                    QBoxLayout.Direction.RightToLeft)
+            else:
+                self.__mainLayout.setDirection(
+                    QBoxLayout.Direction.LeftToRight)
+                self.__leftLayout.setDirection(
+                    QBoxLayout.Direction.LeftToRight)
+                self.__rightLayout.setDirection(
+                    QBoxLayout.Direction.LeftToRight)
+        return QLineEdit.event(self, evt)
+    
+    def _updateTextMargins(self):
+        """
+        Protected slot to update the text margins.
+        """
+        left = (
+            self.__leftWidget.sizeHint().width()
+            if self.__leftMargin == 0 else
+            self.__leftMargin
+        )
+        right = self.__rightWidget.sizeHint().width()
+        top = 0
+        bottom = 0
+        self.setTextMargins(left, top, right, bottom)
+    
+    def addWidget(self, widget, position):
+        """
+        Public method to add a widget to a side.
+        
+        @param widget reference to the widget to add
+        @type QWidget
+        @param position position to add to
+        @type EricLineEditSide
+        """
+        if widget is None:
+            return
+        
+        if self.isRightToLeft():
+            if position == EricLineEditSide.LEFT:
+                position = EricLineEditSide.RIGHT
+            else:
+                position = EricLineEditSide.LEFT
+        if position == EricLineEditSide.LEFT:
+            self.__leftLayout.addWidget(widget)
+        else:
+            self.__rightLayout.insertWidget(1, widget)
+    
+    def removeWidget(self, widget):
+        """
+        Public method to remove a widget from a side.
+        
+        @param widget reference to the widget to remove
+        @type QWidget
+        """
+        if widget is None:
+            return
+        
+        self.__leftLayout.removeWidget(widget)
+        self.__rightLayout.removeWidget(widget)
+        widget.hide()
+    
+    def widgetSpacing(self):
+        """
+        Public method to get the side widget spacing.
+        
+        @return side widget spacing (integer)
+        """
+        return self.__leftLayout.spacing()
+    
+    def setWidgetSpacing(self, spacing):
+        """
+        Public method to set the side widget spacing.
+        
+        @param spacing side widget spacing (integer)
+        """
+        self.__leftLayout.setSpacing(spacing)
+        self.__rightLayout.setSpacing(spacing)
+        self._updateTextMargins()
+    
+    def textMargin(self, position):
+        """
+        Public method to get the text margin for a side.
+        
+        @param position side to get margin for
+        @type EricLineEditSide
+        @return text margin
+        @rtype int
+        """
+        spacing = self.__rightLayout.spacing()
+        w = 0
+        w = (
+            self.__leftWidget.sizeHint().width()
+            if position == EricLineEditSide.LEFT else
+            self.__rightWidget.sizeHint().width()
+        )
+        if w == 0:
+            return 0
+        return w + spacing * 2
+
+class EricClearableLineEdit(EricLineEdit):
+    """
+    Class implementing a line edit widget showing some inactive text and a
+    clear button, if it has some contents.
+    """
+    def __init__(self, parent=None, placeholderText="",
+                 side=EricLineEditSide.RIGHT):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        @param placeholderText text to be shown on inactivity
+        @type str
+        @param side side the clear button should be shown at
+        @type EricLineEditSide
+        """
+        super().__init__(parent, placeholderText)
+        
+        self.setClearButtonEnabled(True)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricLineEditButton.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,97 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a button class to be used with EricLineEdit.
+"""
+
+from PyQt6.QtCore import Qt, QPoint, QPointF
+from PyQt6.QtGui import QPainter, QPainterPath
+from PyQt6.QtWidgets import QAbstractButton
+
+
+# TODO: Get rid of this
+class EricLineEditButton(QAbstractButton):
+    """
+    Class implementing a button to be used with EricLineEdit.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        self.__menu = None
+        self.__image = None
+        
+        self.setFocusPolicy(Qt.FocusPolicy.NoFocus)
+        self.setCursor(Qt.CursorShape.ArrowCursor)
+        self.setMinimumSize(16, 16)
+        
+        self.clicked.connect(self.__clicked)
+    
+    def setMenu(self, menu):
+        """
+        Public method to set the button menu.
+        
+        @param menu reference to the menu (QMenu)
+        """
+        self.__menu = menu
+        self.update()
+    
+    def menu(self):
+        """
+        Public method to get a reference to the menu.
+        
+        @return reference to the associated menu (QMenu)
+        """
+        return self.__menu
+    
+    def setIcon(self, icon):
+        """
+        Public method to set the button icon.
+        
+        @param icon icon to be set (QIcon)
+        """
+        if icon.isNull():
+            self.__image = None
+        else:
+            self.__image = icon.pixmap(16, 16).toImage()
+        super().setIcon(icon)
+    
+    def __clicked(self):
+        """
+        Private slot to handle a button click.
+        """
+        if self.__menu:
+            pos = self.mapToGlobal(QPoint(0, self.height()))
+            self.__menu.exec(pos)
+    
+    def paintEvent(self, evt):
+        """
+        Protected method handling a paint event.
+        
+        @param evt reference to the paint event (QPaintEvent)
+        """
+        painter = QPainter(self)
+        
+        if self.__image is not None and not self.__image.isNull():
+            x = (self.width() - self.__image.width()) // 2 - 1
+            y = (self.height() - self.__image.height()) // 2 - 1
+            painter.drawImage(x, y, self.__image)
+        
+        if self.__menu is not None:
+            triagPath = QPainterPath()
+            startPos = QPointF(self.width() - 5, self.height() - 3)
+            triagPath.moveTo(startPos)
+            triagPath.lineTo(startPos.x() + 4, startPos.y())
+            triagPath.lineTo(startPos.x() + 2, startPos.y() + 2)
+            triagPath.closeSubpath()
+            painter.setPen(Qt.GlobalColor.black)
+            painter.setBrush(Qt.GlobalColor.black)
+            painter.setRenderHint(QPainter.RenderHint.Antialiasing, False)
+            painter.drawPath(triagPath)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricListSelectionDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,111 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2016 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to select from a list of strings.
+"""
+
+from PyQt6.QtCore import pyqtSlot, Qt
+from PyQt6.QtWidgets import (
+    QDialog, QDialogButtonBox, QAbstractItemView, QListWidgetItem
+)
+
+from .Ui_EricListSelectionDialog import Ui_EricListSelectionDialog
+
+
+class EricListSelectionDialog(QDialog, Ui_EricListSelectionDialog):
+    """
+    Class implementing a dialog to select from a list of strings.
+    """
+    def __init__(self, entries,
+                 selectionMode=QAbstractItemView.SelectionMode
+                 .ExtendedSelection,
+                 title="", message="", checkBoxSelection=False, parent=None):
+        """
+        Constructor
+        
+        @param entries list of entries to select from
+        @type list of str
+        @param selectionMode selection mode for the list
+        @type QAbstractItemView.SelectionMode
+        @param title title of the dialog
+        @type str
+        @param message message to be show in the dialog
+        @type str
+        @param checkBoxSelection flag indicating to select items via their
+            checkbox
+        @type bool
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        if title:
+            self.setWindowTitle(title)
+        if message:
+            self.messageLabel.setText(message)
+        
+        self.__checkCount = 0
+        self.__isCheckBoxSelection = checkBoxSelection
+        if self.__isCheckBoxSelection:
+            self.selectionList.setSelectionMode(
+                QAbstractItemView.SelectionMode.NoSelection)
+            for entry in entries:
+                itm = QListWidgetItem(entry)
+                itm.setFlags(Qt.ItemFlag.ItemIsUserCheckable |
+                             Qt.ItemFlag.ItemIsEnabled)
+                itm.setCheckState(Qt.CheckState.Unchecked)
+                self.selectionList.addItem(itm)
+        else:
+            self.selectionList.setSelectionMode(selectionMode)
+            self.selectionList.addItems(entries)
+        
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Ok).setEnabled(False)
+    
+    @pyqtSlot()
+    def on_selectionList_itemSelectionChanged(self):
+        """
+        Private slot handling a change of the selection.
+        """
+        if not self.__isCheckBoxSelection:
+            self.buttonBox.button(
+                QDialogButtonBox.StandardButton.Ok).setEnabled(
+                    len(self.selectionList.selectedItems()) > 0)
+    
+    def on_selectionList_itemChanged(self, itm):
+        """
+        Private slot handling a change of an item.
+        
+        @param itm reference to the changed item
+        @type QListWidgetItem
+        """
+        if self.__isCheckBoxSelection:
+            if itm.checkState() == Qt.CheckState.Checked:
+                self.__checkCount += 1
+            else:
+                self.__checkCount -= 1
+            self.buttonBox.button(
+                QDialogButtonBox.StandardButton.Ok).setEnabled(
+                self.__checkCount > 0)
+    
+    def getSelection(self):
+        """
+        Public method to retrieve the selected items.
+        
+        @return selected entries
+        @rtype list of str
+        """
+        entries = []
+        if self.__isCheckBoxSelection:
+            for row in range(self.selectionList.count()):
+                item = self.selectionList.item(row)
+                if item.checkState() == Qt.CheckState.Checked:
+                    entries.append(item.text())
+        else:
+            for item in self.selectionList.selectedItems():
+                entries.append(item.text())
+        return entries
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricListSelectionDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EricListSelectionDialog</class>
+ <widget class="QDialog" name="EricListSelectionDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>500</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Select from List</string>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QLabel" name="messageLabel">
+     <property name="text">
+      <string>Select from the list below:</string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QListWidget" name="selectionList">
+     <property name="alternatingRowColors">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>EricListSelectionDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>EricListSelectionDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricListView.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing specialized list views.
+"""
+
+from PyQt6.QtCore import Qt, QItemSelectionModel
+from PyQt6.QtWidgets import QListView
+
+
+class EricListView(QListView):
+    """
+    Class implementing a list view supporting removal of entries.
+    """
+    def keyPressEvent(self, evt):
+        """
+        Protected method implementing special key handling.
+        
+        @param evt reference to the event (QKeyEvent)
+        """
+        if (
+            evt.key() in [Qt.Key.Key_Delete, Qt.Key.Key_Backspace] and
+            self.model() is not None
+        ):
+            self.removeSelected()
+            evt.setAccepted(True)
+        else:
+            super().keyPressEvent(evt)
+    
+    def removeSelected(self):
+        """
+        Public method to remove the selected entries.
+        """
+        if self.model() is None or self.selectionModel() is None:
+            # no models available
+            return
+        
+        row = 0
+        selectedRows = self.selectionModel().selectedRows()
+        for selectedRow in reversed(selectedRows):
+            row = selectedRow.row()
+            self.model().removeRow(row, self.rootIndex())
+        
+        idx = self.model().index(row, 0, self.rootIndex())
+        if not idx.isValid():
+            idx = self.model().index(row - 1, 0, self.rootIndex())
+        self.selectionModel().select(
+            idx,
+            QItemSelectionModel.SelectionFlag.SelectCurrent |
+            QItemSelectionModel.SelectionFlag.Rows)
+        self.setCurrentIndex(idx)
+    
+    def removeAll(self):
+        """
+        Public method to clear the view.
+        """
+        if self.model() is not None:
+            self.model().removeRows(0, self.model().rowCount(self.rootIndex()),
+                                    self.rootIndex())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricMainWindow.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a main window class with styling support.
+"""
+
+from PyQt6.QtCore import QCoreApplication
+from PyQt6.QtWidgets import QMainWindow, QStyleFactory, QApplication
+
+from .EricApplication import ericApp
+from . import EricMessageBox
+
+
+class EricMainWindow(QMainWindow):
+    """
+    Class implementing a main window with styling support.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        self.defaultStyleName = QApplication.style().objectName()
+    
+    def setStyle(self, styleName, styleSheetFile):
+        """
+        Public method to set the style of the interface.
+        
+        @param styleName name of the style to set (string)
+        @param styleSheetFile name of a style sheet file to read to overwrite
+            defaults of the given style (string)
+        """
+        # step 1: set the style
+        style = None
+        if styleName != "System" and styleName in QStyleFactory.keys():
+            # __IGNORE_WARNING_Y118__
+            style = QStyleFactory.create(styleName)
+        if style is None:
+            style = QStyleFactory.create(self.defaultStyleName)
+        if style is not None:
+            QApplication.setStyle(style)
+        
+        # step 2: set a style sheet
+        if styleSheetFile:
+            try:
+                with open(styleSheetFile, "r", encoding="utf-8") as f:
+                    styleSheet = f.read()
+            except OSError as msg:
+                EricMessageBox.warning(
+                    self,
+                    QCoreApplication.translate(
+                        "EricMainWindow", "Loading Style Sheet"),
+                    QCoreApplication.translate(
+                        "EricMainWindow",
+                        """<p>The Qt Style Sheet file <b>{0}</b> could"""
+                        """ not be read.<br>Reason: {1}</p>""")
+                    .format(styleSheetFile, str(msg)))
+                return
+        else:
+            styleSheet = ""
+        
+        ericApp().setStyleSheet(styleSheet)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricMapWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,352 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2014 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a base class for showing a document map.
+"""
+
+from PyQt6.QtCore import Qt, QSize, QRect, QCoreApplication
+from PyQt6.QtGui import QColor, QBrush, QPainter
+from PyQt6.QtWidgets import QWidget, QAbstractScrollArea
+
+
+class EricMapWidget(QWidget):
+    """
+    Class implementing a base class for showing a document map.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        self.setAttribute(Qt.WidgetAttribute.WA_OpaquePaintEvent)
+        
+        self.__width = 14
+        self.__lineBorder = 1
+        self.__lineHeight = 2
+        self.__backgroundColor = QColor("#e7e7e7")
+        self.__setSliderColor()
+        
+        self._master = None
+        self.__enabled = False
+        self.__rightSide = True
+        
+        if parent is not None and isinstance(parent, QAbstractScrollArea):
+            self.setMaster(parent)
+    
+    def __setSliderColor(self):
+        """
+        Private method to set the slider color depending upon the background
+        color.
+        """
+        if self.__backgroundColor.toHsv().value() < 128:
+            # dark background, use white slider
+            self.__sliderColor = Qt.GlobalColor.white
+        else:
+            # light background, use black slider
+            self.__sliderColor = Qt.GlobalColor.black
+    
+    def __updateMasterViewportWidth(self):
+        """
+        Private method to update the master's viewport width.
+        """
+        if self._master:
+            if self.__enabled:
+                width = self.__width
+            else:
+                width = 0
+            if self.__rightSide:
+                self._master.setViewportMargins(0, 0, width, 0)
+            else:
+                self._master.setViewportMargins(width, 0, 0, 0)
+    
+    def setMaster(self, master):
+        """
+        Public method to set the map master widget.
+        
+        @param master map master widget (QAbstractScrollArea)
+        """
+        self._master = master
+        self._master.setVerticalScrollBarPolicy(
+            Qt.ScrollBarPolicy.ScrollBarAlwaysOn)
+        self._master.verticalScrollBar().valueChanged.connect(self.update)
+        self._master.verticalScrollBar().rangeChanged.connect(self.update)
+        self.__updateMasterViewportWidth()
+    
+    def setWidth(self, width):
+        """
+        Public method to set the widget width.
+        
+        @param width widget width (integer)
+        """
+        if width != self.__width:
+            self.__width = max(6, width)    # minimum width 6 pixels
+            self.__updateMasterViewportWidth()
+            self.update()
+    
+    def width(self):
+        """
+        Public method to get the widget's width.
+        
+        @return widget width (integer)
+        """
+        return self.__width
+    
+    def setMapPosition(self, onRight):
+        """
+        Public method to set, whether the map should be shown to the right or
+        left of the master widget.
+        
+        @param onRight flag indicating to show the map on the right side of
+            the master widget
+        @type bool
+        """
+        if onRight != self.__rightSide:
+            self.__rightSide = onRight
+            self.__updateMasterViewportWidth()
+            self.update()
+    
+    def isOnRightSide(self):
+        """
+        Public method to test, if the map is shown on the right side of the
+        master widget.
+        
+        @return flag indicating that the map is to the right of the master
+            widget
+        @rtype bool
+        """
+        return self.__rightSide
+    
+    def setLineDimensions(self, border, height):
+        """
+        Public method to set the line (indicator) dimensions.
+        
+        @param border border width on each side in x-direction (integer)
+        @param height height of the line in pixels (integer)
+        """
+        if border != self.__lineBorder or height != self.__lineHeight:
+            self.__lineBorder = max(1, border)  # min border 1 pixel
+            self.__lineHeight = max(1, height)  # min height 1 pixel
+            self.update()
+    
+    def lineDimensions(self):
+        """
+        Public method to get the line (indicator) dimensions.
+        
+        @return tuple with border width (integer) and line height (integer)
+        """
+        return self.__lineBorder, self.__lineHeight
+    
+    def setEnabled(self, enable):
+        """
+        Public method to set the enabled state.
+        
+        @param enable flag indicating the enabled state (boolean)
+        """
+        if enable != self.__enabled:
+            self.__enabled = enable
+            self.setVisible(enable)
+            self.__updateMasterViewportWidth()
+    
+    def isEnabled(self):
+        """
+        Public method to check the enabled state.
+        
+        @return flag indicating the enabled state (boolean)
+        """
+        return self.__enabled
+    
+    def setBackgroundColor(self, color):
+        """
+        Public method to set the widget background color.
+        
+        @param color color for the background (QColor)
+        """
+        if color != self.__backgroundColor:
+            self.__backgroundColor = color
+            self.__setSliderColor()
+            self.update()
+    
+    def backgroundColor(self):
+        """
+        Public method to get the background color.
+        
+        @return background color (QColor)
+        """
+        return QColor(self.__backgroundColor)
+    
+    def sizeHint(self):
+        """
+        Public method to give an indication about the preferred size.
+        
+        @return preferred size (QSize)
+        """
+        return QSize(self.__width, 0)
+    
+    def paintEvent(self, event):
+        """
+        Protected method to handle a paint event.
+        
+        @param event paint event (QPaintEvent)
+        """
+        # step 1: fill the whole painting area
+        painter = QPainter(self)
+        painter.fillRect(event.rect(), self.__backgroundColor)
+        
+        # step 2: paint the indicators
+        self._paintIt(painter)
+        
+        # step 3: paint the slider
+        if self._master:
+            penColor = self.__sliderColor
+            painter.setPen(penColor)
+            brushColor = Qt.GlobalColor.transparent
+            painter.setBrush(QBrush(brushColor))
+            painter.drawRect(self.__generateSliderRange(
+                self._master.verticalScrollBar()))
+    
+    def _paintIt(self, painter):
+        """
+        Protected method for painting the widget's indicators.
+        
+        Note: This method should be implemented by subclasses.
+        
+        @param painter reference to the painter object (QPainter)
+        """
+        pass
+    
+    def mousePressEvent(self, event):
+        """
+        Protected method to handle a mouse button press.
+        
+        @param event reference to the mouse event (QMouseEvent)
+        """
+        if event.button() == Qt.MouseButton.LeftButton and self._master:
+            vsb = self._master.verticalScrollBar()
+            value = self.position2Value(event.position().toPoint().y() - 1)
+            vsb.setValue(value - 0.5 * vsb.pageStep())  # center on page
+        self.__mousePressPos = None
+    
+    def mouseMoveEvent(self, event):
+        """
+        Protected method to handle a mouse moves.
+        
+        @param event reference to the mouse event (QMouseEvent)
+        """
+        if event.buttons() & Qt.MouseButton.LeftButton and self._master:
+            vsb = self._master.verticalScrollBar()
+            value = self.position2Value(event.position().toPoint().y() - 1)
+            vsb.setValue(value - 0.5 * vsb.pageStep())  # center on page
+    
+    def wheelEvent(self, event):
+        """
+        Protected slot handling mouse wheel events.
+        
+        @param event reference to the wheel event (QWheelEvent)
+        """
+        isVertical = event.angleDelta().x() == 0
+        if (
+            self._master and
+            event.modifiers() == Qt.KeyboardModifier.NoModifier and
+            isVertical
+        ):
+            QCoreApplication.sendEvent(self._master.verticalScrollBar(), event)
+    
+    def calculateGeometry(self):
+        """
+        Public method to recalculate the map widget's geometry.
+        """
+        if self._master:
+            cr = self._master.contentsRect()
+            vsb = self._master.verticalScrollBar()
+            if vsb.isVisible():
+                vsbw = vsb.contentsRect().width()
+            else:
+                vsbw = 0
+            margins = self._master.contentsMargins()
+            if margins.right() > vsbw:
+                vsbw = 0
+            if self.__rightSide:
+                self.setGeometry(
+                    QRect(cr.right() - self.__width - vsbw, cr.top(),
+                          self.__width, cr.height()))
+            else:
+                self.setGeometry(
+                    QRect(0, cr.top(), self.__width, cr.height()))
+            self.update()
+    
+    def scaleFactor(self, slider=False):
+        """
+        Public method to determine the scrollbar's scale factor.
+        
+        @param slider flag indicating to calculate the result for the slider
+            (boolean)
+        @return scale factor (float)
+        """
+        if self._master:
+            delta = 0 if slider else 2
+            vsb = self._master.verticalScrollBar()
+            posHeight = vsb.height() - delta - 1
+            valHeight = vsb.maximum() - vsb.minimum() + vsb.pageStep()
+            return float(posHeight) / valHeight
+        else:
+            return 1.0
+    
+    def value2Position(self, value, slider=False):
+        """
+        Public method to convert a scrollbar value into a position.
+        
+        @param value value to convert (integer)
+        @param slider flag indicating to calculate the result for the slider
+            (boolean)
+        @return position (integer)
+        """
+        if self._master:
+            offset = 0 if slider else 1
+            vsb = self._master.verticalScrollBar()
+            return (value - vsb.minimum()) * self.scaleFactor(slider) + offset
+        else:
+            return value
+    
+    def position2Value(self, position, slider=False):
+        """
+        Public method to convert a position into a scrollbar value.
+        
+        @param position scrollbar position to convert (integer)
+        @param slider flag indicating to calculate the result for the slider
+            (boolean)
+        @return scrollbar value (integer)
+        """
+        if self._master:
+            offset = 0 if slider else 1
+            vsb = self._master.verticalScrollBar()
+            return vsb.minimum() + max(
+                0, (position - offset) / self.scaleFactor(slider))
+        else:
+            return position
+    
+    def generateIndicatorRect(self, position):
+        """
+        Public method to generate an indicator rectangle.
+        
+        @param position indicator position (integer)
+        @return indicator rectangle (QRect)
+        """
+        return QRect(self.__lineBorder, position - self.__lineHeight // 2,
+                     self.__width - self.__lineBorder, self.__lineHeight)
+    
+    def __generateSliderRange(self, scrollbar):
+        """
+        Private method to generate the slider rectangle.
+        
+        @param scrollbar reference to the vertical scrollbar (QScrollBar)
+        @return slider rectangle (QRect)
+        """
+        pos1 = self.value2Position(scrollbar.value(), slider=True)
+        pos2 = self.value2Position(scrollbar.value() + scrollbar.pageStep(),
+                                   slider=True)
+        return QRect(0, pos1, self.__width - 1, pos2 - pos1)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricMessageBox.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,303 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing QMessageBox replacements and more convenience function.
+"""
+
+from PyQt6.QtCore import Qt
+from PyQt6.QtWidgets import QMessageBox, QApplication
+
+###############################################################################
+##  Mappings to standard QMessageBox                                         ##
+###############################################################################
+
+# QMessageBox.Icon
+NoIcon = QMessageBox.Icon.NoIcon
+Critical = QMessageBox.Icon.Critical
+Information = QMessageBox.Icon.Information
+Question = QMessageBox.Icon.Question
+Warning = QMessageBox.Icon.Warning       # __IGNORE_WARNING_M131__
+
+# QMessageBox.StandardButton
+Abort = QMessageBox.StandardButton.Abort
+Apply = QMessageBox.StandardButton.Apply
+Cancel = QMessageBox.StandardButton.Cancel
+Close = QMessageBox.StandardButton.Close
+Discard = QMessageBox.StandardButton.Discard
+Help = QMessageBox.StandardButton.Help
+Ignore = QMessageBox.StandardButton.Ignore
+No = QMessageBox.StandardButton.No
+NoToAll = QMessageBox.StandardButton.NoToAll
+Ok = QMessageBox.StandardButton.Ok
+Open = QMessageBox.StandardButton.Open
+Reset = QMessageBox.StandardButton.Reset
+RestoreDefaults = QMessageBox.StandardButton.RestoreDefaults
+Retry = QMessageBox.StandardButton.Retry
+Save = QMessageBox.StandardButton.Save
+SaveAll = QMessageBox.StandardButton.SaveAll
+Yes = QMessageBox.StandardButton.Yes
+YesToAll = QMessageBox.StandardButton.YesToAll
+NoButton = QMessageBox.StandardButton.NoButton
+
+# QMessageBox.ButtonRole
+AcceptRole = QMessageBox.ButtonRole.AcceptRole
+ActionRole = QMessageBox.ButtonRole.ActionRole
+ApplyRole = QMessageBox.ButtonRole.ApplyRole
+DestructiveRole = QMessageBox.ButtonRole.DestructiveRole
+InvalidRole = QMessageBox.ButtonRole.InvalidRole
+HelpRole = QMessageBox.ButtonRole.HelpRole
+NoRole = QMessageBox.ButtonRole.NoRole
+RejectRole = QMessageBox.ButtonRole.RejectRole
+ResetRole = QMessageBox.ButtonRole.ResetRole
+YesRole = QMessageBox.ButtonRole.YesRole
+
+###############################################################################
+##  Replacement for the QMessageBox class                                    ##
+###############################################################################
+
+
+class EricMessageBox(QMessageBox):
+    """
+    Class implementing a replacement for QMessageBox.
+    """
+    def __init__(self, icon, title, text, modal=False,
+                 buttons=QMessageBox.StandardButton.NoButton,
+                 parent=None):
+        """
+        Constructor
+        
+        @param icon type of icon to be shown (QMessageBox.Icon)
+        @param title caption of the message box (string)
+        @param text text to be shown by the message box (string)
+        @param modal flag indicating a modal dialog (boolean)
+        @param buttons set of standard buttons to generate (StandardButtons)
+        @param parent parent widget of the message box (QWidget)
+        """
+        super().__init__(parent)
+        self.setIcon(icon)
+        if modal:
+            if parent is not None:
+                self.setWindowModality(Qt.WindowModality.WindowModal)
+            else:
+                self.setWindowModality(Qt.WindowModality.ApplicationModal)
+        else:
+            self.setWindowModality(Qt.WindowModality.NonModal)
+        if title == "":
+            self.setWindowTitle("{0}".format(
+                QApplication.applicationName()))
+        else:
+            self.setWindowTitle("{0} - {1}".format(
+                QApplication.applicationName(), title))
+        self.setText(text)
+        self.setStandardButtons(buttons)
+
+###############################################################################
+##  Replacements for QMessageBox static methods                              ##
+###############################################################################
+
+
+def __messageBox(parent, title, text, icon,
+                 buttons=QMessageBox.StandardButton.Ok,
+                 defaultButton=QMessageBox.StandardButton.NoButton,
+                 textFormat=Qt.TextFormat.AutoText):
+    """
+    Private module function to show a modal message box.
+    
+    @param parent parent widget of the message box (QWidget)
+    @param title caption of the message box (string)
+    @param text text to be shown by the message box (string)
+    @param icon type of icon to be shown (QMessageBox.Icon)
+    @param buttons flags indicating which buttons to show
+        (QMessageBox.StandardButtons)
+    @param defaultButton flag indicating the default button
+        (QMessageBox.StandardButton)
+    @param textFormat format of the text (Qt.TextFormat)
+    @return button pressed by the user (QMessageBox.StandardButton)
+    """
+    messageBox = QMessageBox(parent)
+    messageBox.setIcon(icon)
+    if parent is not None:
+        messageBox.setWindowModality(Qt.WindowModality.WindowModal)
+    if title == "":
+        messageBox.setWindowTitle("{0}".format(
+            QApplication.applicationName()))
+    else:
+        messageBox.setWindowTitle("{0} - {1}".format(
+            QApplication.applicationName(), title))
+    messageBox.setTextFormat(textFormat)
+    messageBox.setText(text)
+    messageBox.setStandardButtons(buttons)
+    messageBox.setDefaultButton(defaultButton)
+    messageBox.exec()
+    clickedButton = messageBox.clickedButton()
+    if clickedButton is None:
+        return QMessageBox.StandardButton.NoButton
+    else:
+        return messageBox.standardButton(clickedButton)
+
+# the about functions are here for consistancy
+about = QMessageBox.about
+aboutQt = QMessageBox.aboutQt
+
+
+def critical(parent, title, text,
+             buttons=QMessageBox.StandardButton.Ok,
+             defaultButton=QMessageBox.StandardButton.NoButton):
+    """
+    Function to show a modal critical message box.
+    
+    @param parent parent widget of the message box (QWidget)
+    @param title caption of the message box (string)
+    @param text text to be shown by the message box (string)
+    @param buttons flags indicating which buttons to show
+        (QMessageBox.StandardButtons)
+    @param defaultButton flag indicating the default button
+        (QMessageBox.StandardButton)
+    @return button pressed by the user (QMessageBox.StandardButton)
+    """
+    return __messageBox(parent, title, text, QMessageBox.Icon.Critical,
+                        buttons, defaultButton)
+
+
+def information(parent, title, text,
+                buttons=QMessageBox.StandardButton.Ok,
+                defaultButton=QMessageBox.StandardButton.NoButton):
+    """
+    Function to show a modal information message box.
+    
+    @param parent parent widget of the message box (QWidget)
+    @param title caption of the message box (string)
+    @param text text to be shown by the message box (string)
+    @param buttons flags indicating which buttons to show
+        (QMessageBox.StandardButtons)
+    @param defaultButton flag indicating the default button
+        (QMessageBox.StandardButton)
+    @return button pressed by the user (QMessageBox.StandardButton)
+    """
+    return __messageBox(parent, title, text, QMessageBox.Icon.Information,
+                        buttons, defaultButton)
+
+
+def question(parent, title, text,
+             buttons=QMessageBox.StandardButton.Ok,
+             defaultButton=QMessageBox.StandardButton.NoButton):
+    """
+    Function to show a modal question message box.
+    
+    @param parent parent widget of the message box (QWidget)
+    @param title caption of the message box (string)
+    @param text text to be shown by the message box (string)
+    @param buttons flags indicating which buttons to show
+        (QMessageBox.StandardButtons)
+    @param defaultButton flag indicating the default button
+        (QMessageBox.StandardButton)
+    @return button pressed by the user (QMessageBox.StandardButton)
+    """
+    return __messageBox(parent, title, text, QMessageBox.Icon.Question,
+                        buttons, defaultButton)
+
+
+def warning(parent, title, text,
+            buttons=QMessageBox.StandardButton.Ok,
+            defaultButton=QMessageBox.StandardButton.NoButton):
+    """
+    Function to show a modal warning message box.
+    
+    @param parent parent widget of the message box (QWidget)
+    @param title caption of the message box (string)
+    @param text text to be shown by the message box (string)
+    @param buttons flags indicating which buttons to show
+        (QMessageBox.StandardButtons)
+    @param defaultButton flag indicating the default button
+        (QMessageBox.StandardButton)
+    @return button pressed by the user (QMessageBox.StandardButton)
+    """
+    return __messageBox(parent, title, text, QMessageBox.Icon.Warning,
+                        buttons, defaultButton)
+
+###############################################################################
+##  Additional convenience functions                                         ##
+###############################################################################
+
+
+def yesNo(parent, title, text, icon=Question, yesDefault=False,
+          textFormat=Qt.TextFormat.AutoText):
+    """
+    Function to show a model yes/no message box.
+    
+    @param parent parent widget of the message box (QWidget)
+    @param title caption of the message box (string)
+    @param text text to be shown by the message box (string)
+    @param icon icon for the dialog (Critical, Information, Question or
+        Warning)
+    @param yesDefault flag indicating that the Yes button should be the
+        default button (boolean)
+    @param textFormat format of the text (Qt.TextFormat)
+    @return flag indicating the selection of the Yes button (boolean)
+    @exception ValueError raised to indicate a bad parameter value
+    """
+    if icon not in [Critical, Information, Question, Warning]:
+        raise ValueError("Bad value for 'icon' parameter.")
+    
+    res = __messageBox(
+        parent, title, text, icon,
+        QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No,
+        yesDefault and QMessageBox.StandardButton.Yes or
+        QMessageBox.StandardButton.No,
+        textFormat)
+    return res == QMessageBox.StandardButton.Yes
+
+
+def retryAbort(parent, title, text, icon=Question,
+               textFormat=Qt.TextFormat.AutoText):
+    """
+    Function to show a model abort/retry message box.
+    
+    @param parent parent widget of the message box (QWidget)
+    @param title caption of the message box (string)
+    @param text text to be shown by the message box (string)
+    @param icon icon for the dialog (Critical, Information, Question or
+        Warning)
+    @param textFormat format of the text (Qt.TextFormat)
+    @return flag indicating the selection of the Retry button (boolean)
+    @exception ValueError raised to indicate a bad parameter value
+    """
+    if icon not in [Critical, Information, Question, Warning]:
+        raise ValueError("Bad value for 'icon' parameter.")
+    
+    res = __messageBox(
+        parent, title, text, icon,
+        QMessageBox.StandardButton.Retry | QMessageBox.StandardButton.Abort,
+        QMessageBox.StandardButton.Retry,
+        textFormat)
+    return res == QMessageBox.StandardButton.Retry
+
+
+def okToClearData(parent, title, text, saveFunc,
+                  textFormat=Qt.TextFormat.AutoText):
+    """
+    Function to show a model message box to ask for clearing the data.
+    
+    @param parent parent widget of the message box (QWidget)
+    @param title caption of the message box (string)
+    @param text text to be shown by the message box (string)
+    @param saveFunc reference to a function performing the save action. It
+        must be a parameterless function returning a flag indicating success.
+    @param textFormat format of the text (Qt.TextFormat)
+    @return flag indicating that it is ok to clear the data (boolean)
+    """
+    res = __messageBox(
+        parent, title, text, QMessageBox.Icon.Warning,
+        (QMessageBox.StandardButton.Abort |
+         QMessageBox.StandardButton.Discard |
+         QMessageBox.StandardButton.Save),
+        QMessageBox.StandardButton.Save,
+        textFormat)
+    if res == QMessageBox.StandardButton.Abort:
+        return False
+    if res == QMessageBox.StandardButton.Save:
+        return saveFunc()
+    return True
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricModelMenu.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,441 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a menu populated from a QAbstractItemModel.
+"""
+
+from PyQt6.QtCore import pyqtSignal, Qt, QModelIndex, QPoint
+from PyQt6.QtGui import QFontMetrics, QDrag, QAction
+from PyQt6.QtWidgets import QMenu, QApplication
+
+import UI.PixmapCache
+
+
+class EricModelMenu(QMenu):
+    """
+    Class implementing a menu populated from a QAbstractItemModel.
+    
+    @signal activated(QModelIndex) emitted when an action has been triggered
+    """
+    activated = pyqtSignal(QModelIndex)
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        self.__maxRows = -1
+        self.__firstSeparator = -1
+        self.__maxWidth = -1
+        self.__statusBarTextRole = 0
+        self.__separatorRole = 0
+        self.__model = None
+        self.__root = QModelIndex()
+        self.__dragStartPosition = QPoint()
+        
+        self.setAcceptDrops(True)
+        
+        self._mouseButton = Qt.MouseButton.NoButton
+        self._keyboardModifiers = Qt.KeyboardModifier.NoModifier
+        self.__dropRow = -1
+        self.__dropIndex = None
+        
+        # This is to ensure it will be shown on Mac OS X
+        self.addAction("--not populated--")
+        
+        self.aboutToShow.connect(self.__aboutToShow)
+        self.triggered.connect(self.__actionTriggered)
+    
+    def prePopulated(self):
+        """
+        Public method to add any actions before the tree.
+       
+        @return flag indicating if any actions were added
+        """
+        return False
+    
+    def postPopulated(self):
+        """
+        Public method to add any actions after the tree.
+        """
+        pass
+    
+    def setModel(self, model):
+        """
+        Public method to set the model for the menu.
+        
+        @param model reference to the model (QAbstractItemModel)
+        """
+        self.__model = model
+    
+    def model(self):
+        """
+        Public method to get a reference to the model.
+        
+        @return reference to the model (QAbstractItemModel)
+        """
+        return self.__model
+    
+    def setMaxRows(self, rows):
+        """
+        Public method to set the maximum number of entries to show.
+        
+        @param rows maximum number of entries to show (integer)
+        """
+        self.__maxRows = rows
+    
+    def maxRows(self):
+        """
+        Public method to get the maximum number of entries to show.
+        
+        @return maximum number of entries to show (integer)
+        """
+        return self.__maxRows
+    
+    def setFirstSeparator(self, offset):
+        """
+        Public method to set the first separator.
+        
+        @param offset row number of the first separator (integer)
+        """
+        self.__firstSeparator = offset
+    
+    def firstSeparator(self):
+        """
+        Public method to get the first separator.
+        
+        @return row number of the first separator (integer)
+        """
+        return self.__firstSeparator
+    
+    def setRootIndex(self, index):
+        """
+        Public method to set the index of the root item.
+        
+        @param index index of the root item (QModelIndex)
+        """
+        self.__root = index
+    
+    def rootIndex(self):
+        """
+        Public method to get the index of the root item.
+        
+        @return index of the root item (QModelIndex)
+        """
+        return self.__root
+    
+    def setStatusBarTextRole(self, role):
+        """
+        Public method to set the role of the status bar text.
+        
+        @param role role of the status bar text (integer)
+        """
+        self.__statusBarTextRole = role
+    
+    def statusBarTextRole(self):
+        """
+        Public method to get the role of the status bar text.
+        
+        @return role of the status bar text (integer)
+        """
+        return self.__statusBarTextRole
+    
+    def setSeparatorRole(self, role):
+        """
+        Public method to set the role of the separator.
+        
+        @param role role of the separator (integer)
+        """
+        self.__separatorRole = role
+    
+    def separatorRole(self):
+        """
+        Public method to get the role of the separator.
+        
+        @return role of the separator (integer)
+        """
+        return self.__separatorRole
+    
+    def __aboutToShow(self):
+        """
+        Private slot to show the menu.
+        """
+        self.clear()
+        
+        if self.prePopulated():
+            self.addSeparator()
+        max_ = self.__maxRows
+        if max_ != -1:
+            max_ += self.__firstSeparator
+        self.createMenu(self.__root, max_, self, self)
+        self.postPopulated()
+    
+    def createBaseMenu(self):
+        """
+        Public method to get the menu that is used to populate sub menu's.
+        
+        @return reference to the menu (EricModelMenu)
+        """
+        return EricModelMenu(self)
+    
+    def createMenu(self, parent, max_, parentMenu=None, menu=None):
+        """
+        Public method to put all the children of a parent into a menu of a
+        given length.
+        
+        @param parent index of the parent item (QModelIndex)
+        @param max_ maximum number of entries (integer)
+        @param parentMenu reference to the parent menu (QMenu)
+        @param menu reference to the menu to be populated (QMenu)
+        """
+        if menu is None:
+            v = parent
+            
+            title = parent.data()
+            modelMenu = self.createBaseMenu()
+            # triggered goes all the way up the menu structure
+            modelMenu.triggered.disconnect(modelMenu.__actionTriggered)
+            modelMenu.setTitle(title)
+            
+            icon = parent.data(Qt.ItemDataRole.DecorationRole)
+            if icon == NotImplemented or icon is None:
+                icon = UI.PixmapCache.getIcon("defaultIcon")
+            modelMenu.setIcon(icon)
+            if parentMenu is not None:
+                parentMenu.addMenu(modelMenu).setData(v)
+            modelMenu.setRootIndex(parent)
+            modelMenu.setModel(self.__model)
+            return
+        
+        if self.__model is None:
+            return
+        
+        end = self.__model.rowCount(parent)
+        if max_ != -1:
+            end = min(max_, end)
+        
+        for i in range(end):
+            idx = self.__model.index(i, 0, parent)
+            if self.__model.hasChildren(idx):
+                self.createMenu(idx, -1, menu)
+            else:
+                if (
+                    self.__separatorRole != 0 and
+                    idx.data(self.__separatorRole)
+                ):
+                    self.addSeparator()
+                else:
+                    menu.addAction(self.__makeAction(idx))
+            
+            if menu == self and i == self.__firstSeparator - 1:
+                self.addSeparator()
+    
+    def __makeAction(self, idx):
+        """
+        Private method to create an action.
+        
+        @param idx index of the item to create an action for (QModelIndex)
+        @return reference to the created action (QAction)
+        """
+        icon = idx.data(Qt.ItemDataRole.DecorationRole)
+        if icon == NotImplemented or icon is None:
+            icon = UI.PixmapCache.getIcon("defaultIcon")
+        action = self.makeAction(icon, idx.data(), self)
+        action.setStatusTip(idx.data(self.__statusBarTextRole))
+        
+        v = idx
+        action.setData(v)
+        
+        return action
+    
+    def makeAction(self, icon, text, parent):
+        """
+        Public method to create an action.
+        
+        @param icon icon of the action (QIcon)
+        @param text text of the action (string)
+        @param parent reference to the parent object (QObject)
+        @return reference to the created action (QAction)
+        """
+        fm = QFontMetrics(self.font())
+        if self.__maxWidth == -1:
+            try:
+                self.__maxWidth = fm.horizontalAdvance("m") * 30
+            except AttributeError:
+                self.__maxWidth = fm.width('m') * 30
+        smallText = fm.elidedText(text, Qt.TextElideMode.ElideMiddle,
+                                  self.__maxWidth)
+        
+        return QAction(icon, smallText, parent)
+    
+    def __actionTriggered(self, action):
+        """
+        Private slot to handle the triggering of an action.
+        
+        @param action reference to the action that was triggered (QAction)
+        """
+        idx = self.index(action)
+        if idx.isValid():
+            self._keyboardModifiers = QApplication.keyboardModifiers()
+            self.activated[QModelIndex].emit(idx)
+    
+    def index(self, action):
+        """
+        Public method to get the index of an action.
+        
+        @param action reference to the action to get the index for (QAction)
+        @return index of the action (QModelIndex)
+        """
+        if action is None:
+            return QModelIndex()
+        
+        idx = action.data()
+        if idx is None:
+            return QModelIndex()
+        
+        if not isinstance(idx, QModelIndex):
+            return QModelIndex()
+        
+        return idx
+    
+    def dragEnterEvent(self, evt):
+        """
+        Protected method to handle drag enter events.
+        
+        @param evt reference to the event (QDragEnterEvent)
+        """
+        if self.__model is not None:
+            mimeTypes = self.__model.mimeTypes()
+            for mimeType in mimeTypes:
+                if evt.mimeData().hasFormat(mimeType):
+                    evt.acceptProposedAction()
+        
+        super().dragEnterEvent(evt)
+    
+    def dropEvent(self, evt):
+        """
+        Protected method to handle drop events.
+        
+        @param evt reference to the event (QDropEvent)
+        """
+        if self.__model is not None:
+            act = self.actionAt(evt.position().toPoint())
+            parentIndex = self.__root
+            if act is None:
+                row = self.__model.rowCount(self.__root)
+            else:
+                idx = self.index(act)
+                if not idx.isValid():
+                    super().dropEvent(evt)
+                    return
+                
+                row = idx.row()
+                if self.__model.hasChildren(idx):
+                    parentIndex = idx
+                    row = self.__model.rowCount(idx)
+            
+            self.__dropRow = row
+            self.__dropIndex = parentIndex
+            evt.acceptProposedAction()
+            self.__model.dropMimeData(evt.mimeData(), evt.dropAction(),
+                                      row, 0, parentIndex)
+            self.close()
+        
+        super().dropEvent(evt)
+    
+    def mousePressEvent(self, evt):
+        """
+        Protected method handling mouse press events.
+        
+        @param evt reference to the event object (QMouseEvent)
+        """
+        if evt.button() == Qt.MouseButton.LeftButton:
+            self.__dragStartPosition = evt.position().toPoint()
+        super().mousePressEvent(evt)
+    
+    def mouseMoveEvent(self, evt):
+        """
+        Protected method to handle mouse move events.
+        
+        @param evt reference to the event (QMouseEvent)
+        """
+        if self.__model is None:
+            super().mouseMoveEvent(evt)
+            return
+        
+        if not (evt.buttons() & Qt.MouseButton.LeftButton):
+            super().mouseMoveEvent(evt)
+            return
+        
+        if self.__dragStartPosition.isNull():
+            super().mouseMoveEvent(evt)
+            return
+        
+        manhattanLength = (evt.position().toPoint() -
+                           self.__dragStartPosition).manhattanLength()
+        if manhattanLength <= QApplication.startDragDistance():
+            super().mouseMoveEvent(evt)
+            return
+        
+        act = self.actionAt(self.__dragStartPosition)
+        if act is None:
+            super().mouseMoveEvent(evt)
+            return
+        
+        idx = self.index(act)
+        if not idx.isValid():
+            super().mouseMoveEvent(evt)
+            return
+        
+        drag = QDrag(self)
+        drag.setMimeData(self.__model.mimeData([idx]))
+        actionRect = self.actionGeometry(act)
+        drag.setPixmap(self.grab(actionRect))
+        
+        if drag.exec() == Qt.DropAction.MoveAction:
+            row = idx.row()
+            if self.__dropIndex == idx.parent() and self.__dropRow <= row:
+                row += 1
+            self.__model.removeRow(row, self.__root)
+            
+            if not self.isAncestorOf(drag.target()):
+                self.close()
+            else:
+                self.aboutToShow.emit()
+    
+    def mouseReleaseEvent(self, evt):
+        """
+        Protected method handling mouse release events.
+        
+        @param evt reference to the event object (QMouseEvent)
+        """
+        self._mouseButton = evt.button()
+        self._keyboardModifiers = evt.modifiers()
+        
+        if evt.button() == Qt.MouseButton.LeftButton:
+            self.__dragStartPosition = QPoint()
+        
+        super().mouseReleaseEvent(evt)
+    
+    def resetFlags(self):
+        """
+        Public method to reset the saved internal state.
+        """
+        self._mouseButton = Qt.MouseButton.NoButton
+        self._keyboardModifiers = Qt.KeyboardModifier.NoModifier
+    
+    def removeEntry(self, idx):
+        """
+        Public method to remove a menu entry.
+        
+        @param idx index of the entry to be removed (QModelIndex)
+        """
+        row = idx.row()
+        self.__model.removeRow(row, self.__root)
+        self.aboutToShow.emit()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricModelToolBar.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,293 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a tool bar populated from a QAbstractItemModel.
+"""
+
+from PyQt6.QtCore import pyqtSignal, Qt, QModelIndex, QPoint, QEvent
+from PyQt6.QtGui import QDrag, QIcon
+from PyQt6.QtWidgets import QApplication, QToolBar, QToolButton
+
+
+class EricModelToolBar(QToolBar):
+    """
+    Class implementing a tool bar populated from a QAbstractItemModel.
+    
+    @signal activated(QModelIndex) emitted when an action has been triggered
+    """
+    activated = pyqtSignal(QModelIndex)
+    
+    def __init__(self, title=None, parent=None):
+        """
+        Constructor
+        
+        @param title title for the tool bar (string)
+        @param parent reference to the parent widget (QWidget)
+        """
+        if title is not None:
+            super().__init__(title, parent)
+        else:
+            super().__init__(parent)
+        
+        self.__model = None
+        
+        self.__root = QModelIndex()
+        self.__dragStartPosition = QPoint()
+        
+        if self.isVisible():
+            self._build()
+        
+        self.setAcceptDrops(True)
+        
+        self._mouseButton = Qt.MouseButton.NoButton
+        self._keyboardModifiers = Qt.KeyboardModifier.NoModifier
+        self.__dropRow = -1
+        self.__dropIndex = None
+    
+    def setModel(self, model):
+        """
+        Public method to set the model for the tool bar.
+        
+        @param model reference to the model (QAbstractItemModel)
+        """
+        if self.__model is not None:
+            self.__model.modelReset.disconnect(self._build)
+            self.__model.rowsInserted[QModelIndex, int, int].disconnect(
+                self._build)
+            self.__model.rowsRemoved[QModelIndex, int, int].disconnect(
+                self._build)
+            self.__model.dataChanged.disconnect(
+                self._build)
+        
+        self.__model = model
+        
+        if self.__model is not None:
+            self.__model.modelReset.connect(self._build)
+            self.__model.rowsInserted[QModelIndex, int, int].connect(
+                self._build)
+            self.__model.rowsRemoved[QModelIndex, int, int].connect(
+                self._build)
+            self.__model.dataChanged.connect(
+                self._build)
+    
+    def model(self):
+        """
+        Public method to get a reference to the model.
+        
+        @return reference to the model (QAbstractItemModel)
+        """
+        return self.__model
+    
+    def setRootIndex(self, idx):
+        """
+        Public method to set the root index.
+        
+        @param idx index to be set as the root index (QModelIndex)
+        """
+        self.__root = idx
+    
+    def rootIndex(self):
+        """
+        Public method to get the root index.
+        
+        @return root index (QModelIndex)
+        """
+        return self.__root
+    
+    def _build(self):
+        """
+        Protected slot to build the tool bar.
+        """
+        if self.__model is None:
+            return
+        
+        self.clear()
+        
+        for i in range(self.__model.rowCount(self.__root)):
+            idx = self.__model.index(i, 0, self.__root)
+            
+            title = idx.data(Qt.ItemDataRole.DisplayRole)
+            icon = idx.data(Qt.ItemDataRole.DecorationRole)
+            if icon == NotImplemented or icon is None:
+                icon = QIcon()
+            folder = self.__model.hasChildren(idx)
+            
+            act = self.addAction(icon, title)
+            act.setData(idx)
+            
+            button = self.widgetForAction(act)
+            button.installEventFilter(self)
+            
+            if folder:
+                menu = self._createMenu()
+                menu.setModel(self.__model)
+                menu.setRootIndex(idx)
+                button.setMenu(menu)
+                button.setPopupMode(
+                    QToolButton.ToolButtonPopupMode.InstantPopup)
+                button.setToolButtonStyle(
+                    Qt.ToolButtonStyle.ToolButtonTextBesideIcon)
+    
+    def index(self, action):
+        """
+        Public method to get the index of an action.
+        
+        @param action reference to the action to get the index for (QAction)
+        @return index of the action (QModelIndex)
+        """
+        if action is None:
+            return QModelIndex()
+        
+        idx = action.data()
+        if idx is None:
+            return QModelIndex()
+        
+        if not isinstance(idx, QModelIndex):
+            return QModelIndex()
+        
+        return idx
+    
+    def _createMenu(self):
+        """
+        Protected method to create the menu for a tool bar action.
+        
+        @return menu for a tool bar action (EricModelMenu)
+        """
+        from .EricModelMenu import EricModelMenu
+        return EricModelMenu(self)
+    
+    def eventFilter(self, obj, evt):
+        """
+        Public method to handle event for other objects.
+        
+        @param obj reference to the object (QObject)
+        @param evt reference to the event (QEvent)
+        @return flag indicating that the event should be filtered out (boolean)
+        """
+        if evt.type() == QEvent.Type.MouseButtonRelease:
+            self._mouseButton = evt.button()
+            self._keyboardModifiers = evt.modifiers()
+            act = obj.defaultAction()
+            idx = self.index(act)
+            if idx.isValid():
+                self.activated[QModelIndex].emit(idx)
+        elif (
+            evt.type() == QEvent.Type.MouseButtonPress and
+            evt.buttons() & Qt.MouseButton.LeftButton
+        ):
+            self.__dragStartPosition = self.mapFromGlobal(evt.globalPosition().toPoint())
+        
+        return False
+    
+    def dragEnterEvent(self, evt):
+        """
+        Protected method to handle drag enter events.
+        
+        @param evt reference to the event (QDragEnterEvent)
+        """
+        if self.__model is not None:
+            mimeTypes = self.__model.mimeTypes()
+            for mimeType in mimeTypes:
+                if evt.mimeData().hasFormat(mimeType):
+                    evt.acceptProposedAction()
+        
+        super().dragEnterEvent(evt)
+    
+    def dropEvent(self, evt):
+        """
+        Protected method to handle drop events.
+        
+        @param evt reference to the event (QDropEvent)
+        @exception RuntimeError raised to indicate an invalid model index
+        """
+        if self.__model is not None:
+            act = self.actionAt(evt.position().toPoint())
+            parentIndex = self.__root
+            if act is None:
+                row = self.__model.rowCount(self.__root)
+            else:
+                idx = self.index(act)
+                if not idx.isValid():
+                    raise RuntimeError("invalid index")
+                row = idx.row()
+                if self.__model.hasChildren(idx):
+                    parentIndex = idx
+                    row = self.__model.rowCount(idx)
+            
+            self.__dropRow = row
+            self.__dropIndex = parentIndex
+            evt.acceptProposedAction()
+            self.__model.dropMimeData(evt.mimeData(), evt.dropAction(),
+                                      row, 0, parentIndex)
+        
+        super().dropEvent(evt)
+    
+    def mouseMoveEvent(self, evt):
+        """
+        Protected method to handle mouse move events.
+        
+        @param evt reference to the event (QMouseEvent)
+        @exception RuntimeError raised to indicate an invalid model index
+        """
+        if self.__model is None:
+            super().mouseMoveEvent(evt)
+            return
+        
+        if not (evt.buttons() & Qt.MouseButton.LeftButton):
+            super().mouseMoveEvent(evt)
+            return
+        
+        manhattanLength = (evt.position().toPoint() -
+                           self.__dragStartPosition).manhattanLength()
+        if manhattanLength <= QApplication.startDragDistance():
+            super().mouseMoveEvent(evt)
+            return
+        
+        act = self.actionAt(self.__dragStartPosition)
+        if act is None:
+            super().mouseMoveEvent(evt)
+            return
+        
+        idx = self.index(act)
+        if not idx.isValid():
+            raise RuntimeError("invalid index")
+        
+        drag = QDrag(self)
+        drag.setMimeData(self.__model.mimeData([idx]))
+        actionRect = self.actionGeometry(act)
+        drag.setPixmap(self.grab(actionRect))
+        
+        if drag.exec() == Qt.DropAction.MoveAction:
+            row = idx.row()
+            if self.__dropIndex == idx.parent() and self.__dropRow <= row:
+                row += 1
+            self.__model.removeRow(row, self.__root)
+    
+    def hideEvent(self, evt):
+        """
+        Protected method to handle hide events.
+        
+        @param evt reference to the hide event (QHideEvent)
+        """
+        self.clear()
+        super().hideEvent(evt)
+    
+    def showEvent(self, evt):
+        """
+        Protected method to handle show events.
+        
+        @param evt reference to the hide event (QHideEvent)
+        """
+        if len(self.actions()) == 0:
+            self._build()
+        super().showEvent(evt)
+    
+    def resetFlags(self):
+        """
+        Public method to reset the saved internal state.
+        """
+        self._mouseButton = Qt.MouseButton.NoButton
+        self._keyboardModifiers = Qt.KeyboardModifier.NoModifier
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricOverrideCursor.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,145 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2020 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a context manager class for an override cursor and a
+QProcess class controlling an override cursor.
+"""
+
+import contextlib
+
+from PyQt6.QtCore import pyqtSlot, Qt, QProcess, QEventLoop
+from PyQt6.QtGui import QCursor, QGuiApplication
+
+
+class EricOverrideCursor(contextlib.AbstractContextManager):
+    """
+    Class implementing a context manager class for an override cursor.
+    """
+    def __init__(self, cursorShape=Qt.CursorShape.WaitCursor):
+        """
+        Constructor
+        
+        @param cursorShape shape of the override cursor
+        @type Qt.CursorShape
+        """
+        self.__cursorShape = cursorShape
+    
+    def __enter__(self):
+        """
+        Special method called when entering the runtime ccontext.
+        
+        @return reference to the context manager object
+        @rtype EricOverrideCursor
+        """
+        QGuiApplication.setOverrideCursor(QCursor(self.__cursorShape))
+        QGuiApplication.processEvents(
+            QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
+        
+        return self
+    
+    def __exit__(self, exc_type, exc_value, traceback):
+        """
+        Special method called when exiting the runtime ccontext.
+        
+        @param exc_type type of an exception raised in the runtime context
+        @param exc_value value of an exception raised in the runtime context
+        @param traceback traceback of an exception raised in the runtime
+            context
+        @return always returns None to not suppress any exception
+        @rtype None
+        """
+        QGuiApplication.restoreOverrideCursor()
+        QGuiApplication.processEvents(
+            QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
+        
+        return None     # __IGNORE_WARNING_M831__
+
+
+class EricOverridenCursor(contextlib.AbstractContextManager):
+    """
+    Class implementing a context manager class for an overriden cursor.
+    
+    The cursor is reset upon entering the runtime context and restored
+    upon exiting it.
+    """
+    def __init__(self):
+        """
+        Constructor
+        """
+        self.__cursorShape = None
+    
+    def __enter__(self):
+        """
+        Special method called when entering the runtime ccontext.
+        
+        @return reference to the context manager object
+        @rtype EricOverrideCursor
+        """
+        cursor = QGuiApplication.overrideCursor()
+        if cursor is not None:
+            self.__cursorShape = cursor.shape()
+            QGuiApplication.restoreOverrideCursor()
+            QGuiApplication.processEvents(
+                QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
+        
+        return self
+    
+    def __exit__(self, exc_type, exc_value, traceback):
+        """
+        Special method called when exiting the runtime ccontext.
+        
+        @param exc_type type of an exception raised in the runtime context
+        @param exc_value value of an exception raised in the runtime context
+        @param traceback traceback of an exception raised in the runtime
+            context
+        @return always returns None to not suppress any exception
+        @rtype None
+        """
+        if self.__cursorShape is not None:
+            QGuiApplication.setOverrideCursor(QCursor(self.__cursorShape))
+            QGuiApplication.processEvents(
+                QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
+        
+        return None     # __IGNORE_WARNING_M831__
+
+
+class EricOverrideCursorProcess(QProcess):
+    """
+    Class implementing a QProcess subclass controlling an override cursor.
+    """
+    def __init__(self, parent=None, cursorShape=Qt.CursorShape.WaitCursor):
+        """
+        Constructor
+        
+        @param parent reference to the parent object
+        @type QObject
+        @param cursorShape shape of the override cursor
+        @type Qt.CursorShape
+        """
+        super().__init__(parent)
+        
+        self.__cursorShape = cursorShape
+        
+        self.started.connect(self.__processStarted)
+        self.finished.connect(self.__processFinished)
+    
+    @pyqtSlot()
+    def __processStarted(self):
+        """
+        Private slot setting the cursor after the process has started.
+        """
+        QGuiApplication.setOverrideCursor(QCursor(self.__cursorShape))
+        QGuiApplication.processEvents(
+            QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
+    
+    @pyqtSlot()
+    def __processFinished(self):
+        """
+        Private slot resetting the cursor when the process finished.
+        """
+        QGuiApplication.restoreOverrideCursor()
+        QGuiApplication.processEvents(
+            QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricPassivePopup.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,254 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing dialog-like popup that displays messages without
+interrupting the user.
+"""
+
+import enum
+
+from PyQt6.QtCore import pyqtSignal, Qt, QTimer, QPoint, QRect
+from PyQt6.QtWidgets import QFrame, QVBoxLayout, QApplication
+
+
+class EricPassivePopupStyle(enum.Enum):
+    """
+    Class defining the popup styles.
+    """
+    BOXED = 0           # box with no shadow
+    STYLED = 1          # styled panel with no shadow
+    CUSTOM = 128        # reserved for extensions
+
+
+class EricPassivePopup(QFrame):
+    """
+    Class implementing dialog-like popup that displays messages without
+    interrupting the user.
+    
+    @signal clicked emitted to indicate a mouse button click
+    """
+    DefaultPopupTime = 6 * 1000     # time im milliseconds
+    
+    clicked = pyqtSignal((), (QPoint, ))
+    
+    def __init__(self, style=EricPassivePopupStyle.BOXED, parent=None):
+        """
+        Constructor
+        
+        @param style style of the popup
+        @type EricPassivePopupStyle
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(None)
+        
+        self.__msgView = None
+        self.__topLayout = None
+        self.__hideDelay = EricPassivePopup.DefaultPopupTime
+        self.__hideTimer = QTimer(self)
+        self.__autoDelete = False
+        self.__fixedPosition = QPoint()
+        
+        self.setWindowFlags(
+            Qt.WindowType.Tool |
+            Qt.WindowType.X11BypassWindowManagerHint |
+            Qt.WindowType.WindowStaysOnTopHint |
+            Qt.WindowType.FramelessWindowHint
+        )
+        if style == EricPassivePopupStyle.STYLED:
+            self.setFrameStyle(QFrame.Shape.StyledPanel | QFrame.Shadow.Plain)
+        else:
+            # default style is Boxed - Plain
+            self.setFrameStyle(QFrame.Shape.Box | QFrame.Shadow.Plain)
+        self.setLineWidth(2)
+        self.__hideTimer.timeout.connect(self.hide)
+        self.clicked.connect(self.hide)
+        
+        self.__customData = {}  # dictionary to store some custom data
+    
+    def setView(self, child):
+        """
+        Public method to set the message view.
+        
+        @param child reference to the widget to set as the message view
+            (QWidget)
+        """
+        self.__msgView = child
+        self.__topLayout = QVBoxLayout(self)
+        self.__topLayout.addWidget(self.__msgView)
+        self.__topLayout.activate()
+    
+    def view(self):
+        """
+        Public method to get a reference to the message view.
+        
+        @return reference to the message view (QWidget)
+        """
+        return self.__msgView
+    
+    def setVisible(self, visible):
+        """
+        Public method to show or hide the popup.
+        
+        @param visible flag indicating the visibility status (boolean)
+        """
+        if not visible:
+            super().setVisible(visible)
+            return
+        
+        if self.size() != self.sizeHint():
+            self.resize(self.sizeHint())
+        
+        if self.__fixedPosition.isNull():
+            self.__positionSelf()
+        else:
+            self.move(self.__fixedPosition)
+        super().setVisible(True)
+        
+        delay = self.__hideDelay
+        if delay < 0:
+            delay = EricPassivePopup.DefaultPopupTime
+        if delay > 0:
+            self.__hideTimer.start(delay)
+    
+    def show(self, p=None):
+        """
+        Public slot to show the popup.
+        
+        @param p position for the popup (QPoint)
+        """
+        if p is not None:
+            self.__fixedPosition = p
+        super().show()
+    
+    def setTimeout(self, delay):
+        """
+        Public method to set the delay for the popup is removed automatically.
+        
+        Setting the delay to 0 disables the timeout. If you're doing this, you
+        may want to connect the clicked() signal to the hide() slot. Setting
+        the delay to -1 makes it use the default value.
+        
+        @param delay value for the delay in milliseconds (integer)
+        """
+        self.__hideDelay = delay
+        if self.__hideTimer.isActive():
+            if delay:
+                if delay == -1:
+                    delay = EricPassivePopup.DefaultPopupTime
+                self.__hideTimer.start(delay)
+            else:
+                self.__hideTimer.stop()
+    
+    def timeout(self):
+        """
+        Public method to get the delay before the popup is removed
+        automatically.
+        
+        @return the delay before the popup is removed automatically (integer)
+        """
+        return self.__hideDelay
+    
+    def mouseReleaseEvent(self, evt):
+        """
+        Protected method to handle a mouse release event.
+        
+        @param evt reference to the mouse event (QMouseEvent)
+        """
+        self.clicked.emit()
+        self.clicked.emit(evt.position().toPoint())
+    
+    def hideEvent(self, evt):
+        """
+        Protected method to handle the hide event.
+        
+        @param evt reference to the hide event (QHideEvent)
+        """
+        self.__hideTimer.stop()
+    
+    def __defaultArea(self):
+        """
+        Private method to determine the default rectangle to be passed to
+        moveNear().
+        
+        @return default rectangle (QRect)
+        """
+        return QRect(100, 100, 200, 200)
+    
+    def __positionSelf(self):
+        """
+        Private method to position the popup.
+        """
+        self.__moveNear(self.__defaultArea())
+    
+    def __moveNear(self, target):
+        """
+        Private method to move the popup to be adjacent to the specified
+        rectangle.
+        
+        @param target rectangle to be placed at (QRect)
+        """
+        pos = self.__calculateNearbyPoint(target)
+        self.move(pos.x(), pos.y())
+    
+    def __calculateNearbyPoint(self, target):
+        """
+        Private method to calculate the position to place the popup near the
+        specified rectangle.
+        
+        @param target rectangle to be placed at (QRect)
+        @return position to place the popup (QPoint)
+        """
+        pos = target.topLeft()
+        x = pos.x()
+        y = pos.y()
+        w = self.minimumSizeHint().width()
+        h = self.minimumSizeHint().height()
+        
+        r = QApplication.screenAt(QPoint(x + w // 2, y + h // 2)).geometry()
+        
+        if x < r.center().x():
+            x += target.width()
+        else:
+            x -= w
+        
+        # It's apparently trying to go off screen, so display it ALL at the
+        # bottom.
+        if (y + h) > r.bottom():
+            y = r.bottom() - h
+        
+        if (x + w) > r.right():
+            x = r.right() - w
+        
+        if y < r.top():
+            y = r.top()
+        
+        if x < r.left():
+            x = r.left()
+        
+        return QPoint(x, y)
+    
+    def setCustomData(self, key, data):
+        """
+        Public method to set some custom data.
+        
+        @param key key for the custom data
+        @type str
+        @param data data to be stored
+        @type any
+        """
+        self.__customData[key] = data
+    
+    def getCustomData(self, key):
+        """
+        Public method to get some custom data.
+        
+        @param key key for the custom data
+        @type str
+        @return stored data
+        @rtype any
+        """
+        return self.__customData[key]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricPasswordMeter.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,102 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2011 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a custom widget indicating the strength of a password.
+"""
+
+from PyQt6.QtWidgets import QProgressBar
+
+from Utilities.PasswordChecker import PasswordChecker
+
+
+class EricPasswordMeter(QProgressBar):
+    """
+    Class implementing a custom widget indicating the strength of a password.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        super().setTextVisible(False)
+        super().setMaximum(100)
+        self.__increment = 100 // (PasswordChecker.Complexity_VeryStrong + 1)
+        
+        self.__indicatorColors = [
+            "#ff0000",      # red
+            "#ff8800",      # orange
+            "#ffff00",      # yellow
+            "#ccff00",      # yellow green
+            "#00ff00",      # green
+        ]
+        self.__noIndicator = "#ffffff"
+        
+        self.__styleSheetTemplate = (
+            "QProgressBar {{"
+            " border: 2px solid black;"
+            " border-radius: 5px;"
+            " text-align: center; }}"
+            "QProgressBar::chunk:horizontal {{"
+            " background-color: {0}; }}"
+        )
+        self.setStyleSheet(
+            self.__styleSheetTemplate.format(self.__noIndicator))
+    
+    def checkPasswordStrength(self, password):
+        """
+        Public slot to check the password strength and update the
+        progress bar accordingly.
+        
+        @param password password to be checked (string)
+        """
+        strength = PasswordChecker().checkPassword(password)
+        self.setStyleSheet(self.__styleSheetTemplate.format(
+            self.__indicatorColors[strength]))
+        super().setValue(
+            (strength + 1) * self.__increment)
+    
+    def setValue(self, value):
+        """
+        Public method to set the value.
+        
+        Overwritten to do nothing.
+        
+        @param value value (integer)
+        """
+        pass
+    
+    def setMaximum(self, value):
+        """
+        Public method to set the maximum value.
+        
+        Overwritten to do nothing.
+        
+        @param value maximum value (integer)
+        """
+        pass
+    
+    def setMinimum(self, value):
+        """
+        Public method to set the minimal value.
+        
+        Overwritten to do nothing.
+        
+        @param value minimum value (integer)
+        """
+        pass
+
+if __name__ == "__main__":
+    import sys
+    from PyQt6.QtWidgets import QApplication
+    
+    app = QApplication(sys.argv)
+    meter = EricPasswordMeter()
+    meter.show()
+    meter.checkPasswordStrength("Blah2+")
+    app.exec()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricPathPicker.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,718 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a path picker widget.
+"""
+
+import enum
+import os
+
+from PyQt6.QtCore import pyqtSignal, Qt, QFileInfo, QCoreApplication, QDir
+from PyQt6.QtWidgets import (
+    QWidget, QHBoxLayout, QToolButton, QSizePolicy, QLineEdit, QComboBox
+)
+
+from . import EricFileDialog
+from .EricCompleters import EricFileCompleter, EricDirCompleter
+
+import UI.PixmapCache
+
+
+class EricPathPickerModes(enum.Enum):
+    """
+    Class implementing the path picker modes.
+    """
+    OPEN_FILE_MODE = 0
+    OPEN_FILES_MODE = 1
+    SAVE_FILE_MODE = 2
+    SAVE_FILE_ENSURE_EXTENSION_MODE = 3
+    SAVE_FILE_OVERWRITE_MODE = 4
+    DIRECTORY_MODE = 5
+    DIRECTORY_SHOW_FILES_MODE = 6
+    CUSTOM_MODE = 99
+    NO_MODE = 100
+
+
+class EricPathPickerBase(QWidget):
+    """
+    Class implementing the base of a path picker widget consisting of a
+    line edit or combo box and a tool button to open a file dialog.
+    
+    @signal textChanged(path) emitted when the entered path has changed
+        (line edit based widget)
+    @signal editTextChanged(path) emitted when the entered path has changed
+        (combo box based widget)
+    @signal pathSelected(path) emitted after a path has been selected via the
+        file dialog
+    @signal aboutToShowPathPickerDialog emitted before the file dialog is shown
+    @signal pickerButtonClicked emitted when the picker button was pressed and
+        the widget mode is custom
+    """
+    DefaultMode = EricPathPickerModes.NO_MODE
+    
+    textChanged = pyqtSignal(str)
+    editTextChanged = pyqtSignal(str)
+    pathSelected = pyqtSignal(str)
+    aboutToShowPathPickerDialog = pyqtSignal()
+    pickerButtonClicked = pyqtSignal()
+    
+    def __init__(self, parent=None, useLineEdit=True):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        @param useLineEdit flag indicating the use of a line edit
+        @type bool
+        """
+        super().__init__(parent)
+        
+        self.__lineEditKind = useLineEdit
+        
+        self.__mode = EricPathPicker.DefaultMode
+        self.__editorEnabled = True
+        
+        self._completer = None
+        self.__filters = ""
+        self.__defaultDirectory = ""
+        self.__windowTitle = ""
+        
+        self.__layout = QHBoxLayout(self)
+        self.__layout.setSpacing(0)
+        self.__layout.setContentsMargins(0, 0, 0, 0)
+        self.setLayout(self.__layout)
+        
+        if useLineEdit:
+            self._editor = QLineEdit(self)
+            self._editor.setPlaceholderText(QCoreApplication.translate(
+                    "EricPathPickerBase", "Enter Path Name"))
+            self._editor.setClearButtonEnabled(True)
+        else:
+            self._editor = QComboBox(self)
+            self._editor.setEditable(True)
+            self._editor.lineEdit().setPlaceholderText(
+                QCoreApplication.translate(
+                    "EricPathPickerBase", "Enter Path Name"))
+            self._editor.lineEdit().setClearButtonEnabled(True)
+        
+        self.__button = QToolButton(self)
+        self.__button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly)
+        self.__button.setIcon(UI.PixmapCache.getIcon("open"))
+        
+        self.__layout.addWidget(self._editor)
+        self.__layout.addWidget(self.__button)
+        
+        self.__button.clicked.connect(self.__showPathPickerDialog)
+        if useLineEdit:
+            self._editor.textEdited.connect(self.__pathEdited)
+            self._editor.textChanged.connect(self.textChanged)
+        else:
+            self._editor.editTextChanged.connect(self.editTextChanged)
+        
+        self.setFocusProxy(self._editor)
+        self.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
+        self.setSizePolicy(QSizePolicy.Policy.Expanding,
+                           QSizePolicy.Policy.Preferred)
+        
+        self.__button.setEnabled(self.__mode != EricPathPickerModes.NO_MODE)
+    
+    def __pathEdited(self, path):
+        """
+        Private slot handling editing of the path.
+        
+        @param path current text of the path line edit
+        @type str
+        """
+        if self._completer and not self._completer.popup().isVisible():
+            self._completer.setRootPath(QDir.toNativeSeparators(path))
+    
+    def setMode(self, mode):
+        """
+        Public method to set the path picker mode.
+        
+        @param mode picker mode
+        @type EricPathPickerModes
+        @exception ValueError raised to indicate a bad parameter value
+        """
+        if mode not in EricPathPickerModes:
+            raise ValueError("Bad value for 'mode' parameter.")
+        
+        oldMode = self.__mode
+        self.__mode = mode
+        
+        if mode != oldMode or (self.__lineEditKind and not self._completer):
+            if self.__lineEditKind and self._completer:
+                # Remove current completer
+                self._editor.setCompleter(None)
+                self._completer = None
+            
+            if mode != EricPathPickerModes.NO_MODE:
+                if self.__lineEditKind:
+                    # Set a new completer
+                    if mode == EricPathPickerModes.DIRECTORY_MODE:
+                        self._completer = EricDirCompleter(self._editor)
+                    else:
+                        self._completer = EricFileCompleter(self._editor)
+                
+                # set inactive text
+                if mode == EricPathPickerModes.OPEN_FILES_MODE:
+                    self._editor.setPlaceholderText(
+                        self.tr("Enter Path Names separated by ';'"))
+                else:
+                    self._editor.setPlaceholderText(
+                        self.tr("Enter Path Name"))
+        self.__button.setEnabled(self.__mode != EricPathPickerModes.NO_MODE)
+    
+    def mode(self):
+        """
+        Public method to get the path picker mode.
+        
+        @return path picker mode
+        @rtype EricPathPickerModes
+        """
+        return self.__mode
+    
+    def setPickerEnabled(self, enable):
+        """
+        Public method to set the enabled state of the file dialog button.
+        
+        @param enable flag indicating the enabled state
+        @type bool
+        """
+        self.__button.setEnabled(enable)
+    
+    def isPickerEnabled(self):
+        """
+        Public method to get the file dialog button enabled state.
+        
+        @return flag indicating the enabled state
+        @rtype bool
+        """
+        return self.__button.isEnabled()
+    
+    def clear(self):
+        """
+        Public method to clear the current path or list of paths.
+        """
+        self._editor.clear()
+    
+    def clearEditText(self):
+        """
+        Public method to clear the current path.
+        """
+        if not self.__lineEditKind:
+            self._editor.clearEditText()
+    
+    def _setEditorText(self, text):
+        """
+        Protected method to set the text of the editor.
+        
+        @param text text to set
+        @type str
+        """
+        if self.__lineEditKind:
+            self._editor.setText(text)
+        else:
+            self._editor.setEditText(text)
+            if text and self._editor.findText(text) == -1:
+                self._editor.insertItem(0, text)
+    
+    def _editorText(self):
+        """
+        Protected method to get the text of the editor.
+        
+        @return text of the editor
+        @rtype str
+        """
+        if self.__lineEditKind:
+            return self._editor.text()
+        else:
+            return self._editor.currentText()
+    
+    def setText(self, path, toNative=True):
+        """
+        Public method to set the current path.
+        
+        @param path path to be set
+        @type str
+        @param toNative flag indicating to convert the path into
+            a native format
+        @type bool
+        """
+        if self.__mode == EricPathPickerModes.OPEN_FILES_MODE:
+            self._setEditorText(path)
+        else:
+            if toNative:
+                path = QDir.toNativeSeparators(path)
+            self._setEditorText(path)
+            if self._completer:
+                self._completer.setRootPath(path)
+    
+    def text(self, toNative=True):
+        """
+        Public method to get the current path.
+        
+        @param toNative flag indicating to convert the path into
+            a native format
+        @type bool
+        @return current path
+        @rtype str
+        """
+        if self.__mode == EricPathPickerModes.OPEN_FILES_MODE:
+            if toNative:
+                return ";".join(
+                    [QDir.toNativeSeparators(path)
+                     for path in self._editorText().split(";")])
+            else:
+                return self._editorText()
+        else:
+            if toNative:
+                return os.path.expanduser(
+                    QDir.toNativeSeparators(self._editorText()))
+            else:
+                return os.path.expanduser(self._editorText())
+    
+    def setEditText(self, path, toNative=True):
+        """
+        Public method to set the current path.
+        
+        @param path path to be set
+        @type str
+        @param toNative flag indicating to convert the path into
+            a native format
+        @type bool
+        """
+        self.setText(path, toNative=toNative)
+    
+    def currentText(self, toNative=True):
+        """
+        Public method to get the current path.
+        
+        @param toNative flag indicating to convert the path into
+            a native format
+        @type bool
+        @return current path
+        @rtype str
+        """
+        return self.text(toNative=toNative)
+    
+    def setPath(self, path, toNative=True):
+        """
+        Public method to set the current path.
+        
+        @param path path to be set
+        @type str
+        @param toNative flag indicating to convert the path into
+            a native format
+        @type bool
+        """
+        self.setText(path, toNative=toNative)
+    
+    def path(self, toNative=True):
+        """
+        Public method to get the current path.
+        
+        @param toNative flag indicating to convert the path into
+            a native format
+        @type bool
+        @return current path
+        @rtype str
+        """
+        return self.text(toNative=toNative)
+    
+    def paths(self, toNative=True):
+        """
+        Public method to get the list of entered paths.
+        
+        @param toNative flag indicating to convert the path into
+            a native format
+        @type bool
+        @return entered paths
+        @rtype list of str
+        """
+        if self.__mode == EricPathPickerModes.OPEN_FILES_MODE:
+            return self.path(toNative=toNative).split(";")
+        else:
+            return [self.path(toNative=toNative)]
+    
+    def firstPath(self, toNative=True):
+        """
+        Public method to get the first path of a list of entered paths.
+        
+        @param toNative flag indicating to convert the path into
+            a native format
+        @type bool
+        @return first path
+        @rtype str
+        """
+        return self.paths(toNative=toNative)[0]
+    
+    def lastPath(self, toNative=True):
+        """
+        Public method to get the last path of a list of entered paths.
+        
+        @param toNative flag indicating to convert the path into
+            a native format
+        @type bool
+        @return last path
+        @rtype str
+        """
+        return self.paths(toNative=toNative)[-1]
+    
+    def setEditorEnabled(self, enable):
+        """
+        Public method to set the path editor's enabled state.
+        
+        @param enable flag indicating the enable state
+        @type bool
+        """
+        if enable != self._editorEnabled:
+            self._editorEnabled = enable
+            self._editor.setEnabled(enable)
+    
+    def editorEnabled(self):
+        """
+        Public method to get the path editor's enabled state.
+        
+        @return flag indicating the enabled state
+        @rtype bool
+        """
+        return self._editorEnabled
+    
+    def setDefaultDirectory(self, directory):
+        """
+        Public method to set the default directory.
+        
+        @param directory default directory
+        @type str
+        """
+        self.__defaultDirectory = directory
+    
+    def defaultDirectory(self):
+        """
+        Public method to get the default directory.
+        
+        @return default directory
+        @rtype str
+        """
+        return self.__defaultDirectory
+    
+    def setWindowTitle(self, title):
+        """
+        Public method to set the path picker dialog window title.
+        
+        @param title window title
+        @type str
+        """
+        self.__windowTitle = title
+    
+    def windowTitle(self):
+        """
+        Public method to get the path picker dialog's window title.
+        
+        @return window title
+        @rtype str
+        """
+        return self.__windowTitle
+    
+    def setFilters(self, filters):
+        """
+        Public method to set the filters for the path picker dialog.
+        
+        Note: Multiple filters must be separated by ';;'.
+        
+        @param filters string containing the file filters
+        @type str
+        """
+        self.__filters = filters
+    
+    def filters(self):
+        """
+        Public methods to get the filter string.
+        
+        @return filter string
+        @rtype str
+        """
+        return self.__filters
+    
+    def setNameFilters(self, filters):
+        """
+        Public method to set the name filters for the completer.
+        
+        @param filters list of file name filters
+        @type list of str
+        """
+        if self._completer:
+            self._completer.model().setNameFilters(filters)
+    
+    def setButtonToolTip(self, tooltip):
+        """
+        Public method to set the tool button tool tip.
+        
+        @param tooltip text to be set as a tool tip
+        @type str
+        """
+        self.__button.setToolTip(tooltip)
+    
+    def buttonToolTip(self):
+        """
+        Public method to get the tool button tool tip.
+        
+        @return tool tip text
+        @rtype str
+        """
+        return self.__button.toolTip()
+    
+    def setEditorToolTip(self, tooltip):
+        """
+        Public method to set the editor tool tip.
+        
+        @param tooltip text to be set as a tool tip
+        @type str
+        """
+        self._editor.setToolTip(tooltip)
+    
+    def editorToolTip(self):
+        """
+        Public method to get the editor tool tip.
+        
+        @return tool tip text
+        @rtype str
+        """
+        return self._editor.toolTip()
+    
+    def __showPathPickerDialog(self):
+        """
+        Private slot to show the path picker dialog.
+        """
+        if self.__mode == EricPathPickerModes.NO_MODE:
+            return
+        
+        if self.__mode == EricPathPickerModes.CUSTOM_MODE:
+            self.pickerButtonClicked.emit()
+            return
+        
+        self.aboutToShowPathPickerDialog.emit()
+        
+        windowTitle = self.__windowTitle
+        if not windowTitle:
+            if self.__mode == EricPathPickerModes.OPEN_FILE_MODE:
+                windowTitle = self.tr("Choose a file to open")
+            elif self.__mode == EricPathPickerModes.OPEN_FILES_MODE:
+                windowTitle = self.tr("Choose files to open")
+            elif self.__mode in [
+                EricPathPickerModes.SAVE_FILE_MODE,
+                    EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE,
+                    EricPathPickerModes.SAVE_FILE_OVERWRITE_MODE]:
+                windowTitle = self.tr("Choose a file to save")
+            elif self.__mode == EricPathPickerModes.DIRECTORY_MODE:
+                windowTitle = self.tr("Choose a directory")
+        
+        directory = self._editorText()
+        if not directory and self.__defaultDirectory:
+            directory = self.__defaultDirectory
+        directory = (
+            os.path.expanduser(directory.split(";")[0])
+            if self.__mode == EricPathPickerModes.OPEN_FILES_MODE else
+            os.path.expanduser(directory)
+        )
+        if not os.path.isabs(directory) and self.__defaultDirectory:
+            directory = os.path.join(self.__defaultDirectory, directory)
+        directory = QDir.fromNativeSeparators(directory)
+        
+        if self.__mode == EricPathPickerModes.OPEN_FILE_MODE:
+            path = EricFileDialog.getOpenFileName(
+                self,
+                windowTitle,
+                directory,
+                self.__filters)
+            path = QDir.toNativeSeparators(path)
+        elif self.__mode == EricPathPickerModes.OPEN_FILES_MODE:
+            paths = EricFileDialog.getOpenFileNames(
+                self,
+                windowTitle,
+                directory,
+                self.__filters)
+            path = ";".join([QDir.toNativeSeparators(path)
+                             for path in paths])
+        elif self.__mode == EricPathPickerModes.SAVE_FILE_MODE:
+            path = EricFileDialog.getSaveFileName(
+                self,
+                windowTitle,
+                directory,
+                self.__filters,
+                EricFileDialog.DontConfirmOverwrite)
+            path = QDir.toNativeSeparators(path)
+        elif self.__mode == EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE:
+            path, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
+                self,
+                windowTitle,
+                directory,
+                self.__filters,
+                None,
+                EricFileDialog.DontConfirmOverwrite)
+            path = QDir.toNativeSeparators(path)
+            if path:
+                ext = QFileInfo(path).suffix()
+                if not ext:
+                    ex = selectedFilter.split("(*")[1].split(")")[0]
+                    if ex:
+                        path += ex
+        elif self.__mode == EricPathPickerModes.SAVE_FILE_OVERWRITE_MODE:
+            path = EricFileDialog.getSaveFileName(
+                self,
+                windowTitle,
+                directory,
+                self.__filters)
+            path = QDir.toNativeSeparators(path)
+        elif self.__mode == EricPathPickerModes.DIRECTORY_MODE:
+            path = EricFileDialog.getExistingDirectory(
+                self,
+                windowTitle,
+                directory,
+                EricFileDialog.ShowDirsOnly)
+            path = QDir.toNativeSeparators(path)
+            while path.endswith(os.sep):
+                path = path[:-1]
+        elif self.__mode == EricPathPickerModes.DIRECTORY_SHOW_FILES_MODE:
+            path = EricFileDialog.getExistingDirectory(
+                self,
+                windowTitle,
+                directory,
+                EricFileDialog.DontUseNativeDialog)
+            path = QDir.toNativeSeparators(path)
+            while path.endswith(os.sep):
+                path = path[:-1]
+        
+        if path:
+            self._setEditorText(path)
+            self.pathSelected.emit(path)
+    
+    def setReadOnly(self, readOnly):
+        """
+        Public method to set the path picker to read only mode.
+        
+        @param readOnly flag indicating read only mode
+        @type bool
+        """
+        try:
+            self._editor.setReadOnly(readOnly)
+        except AttributeError:
+            self._editor.setEditable(not readOnly)
+        self.setPickerEnabled(not readOnly)
+    
+    def isReadOnly(self):
+        """
+        Public method to check the path picker for read only mode.
+        
+        @return flg indicating read only mode
+        @rtype bool
+        """
+        try:
+            return self._editor.isReadOnly()
+        except AttributeError:
+            return not self._editor.isEditable()
+    
+    ##################################################################
+    ## Methods below emulate some of the QComboBox API
+    ##################################################################
+    
+    def addItems(self, pathsList):
+        """
+        Public method to add paths to the current list.
+        
+        @param pathsList list of paths to add
+        @type list of str
+        """
+        self._editor.addItems(pathsList)
+    
+    def addItem(self, path):
+        """
+        Public method to add a paths to the current list.
+        
+        @param path path to add
+        @type str
+        """
+        self._editor.addItem(path)
+    
+    def setPathsList(self, pathsList):
+        """
+        Public method to set the paths list.
+        
+        @param pathsList list of paths
+        @type list of str
+        """
+        self.clear()
+        self.addItems(pathsList)
+    
+    def setCurrentIndex(self, index):
+        """
+        Public slot to set the current index.
+        
+        @param index index of the item to set current
+        @type int
+        """
+        self._editor.setCurrentIndex(index)
+    
+    def setInsertPolicy(self, policy):
+        """
+        Public method to set the insertion policy of the combo box.
+        
+        @param policy insertion policy
+        @type QComboBox.InsertPolicy
+        """
+        self._editor.setInsertPolicy(policy)
+    
+    def setSizeAdjustPolicy(self, policy):
+        """
+        Public method to set the size adjust policy of the combo box.
+        
+        @param policy size adjust policy
+        @type QComboBox.SizeAdjustPolicy
+        """
+        self._editor.setSizeAdjustPolicy(policy)
+
+
+class EricPathPicker(EricPathPickerBase):
+    """
+    Class implementing a path picker widget consisting of a line edit and a
+    tool button to open a file dialog.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent, useLineEdit=True)
+
+
+class EricComboPathPicker(EricPathPickerBase):
+    """
+    Class implementing a path picker widget consisting of a combobox and a
+    tool button to open a file dialog.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent, useLineEdit=False)
+    
+    def getPathItems(self):
+        """
+        Public method to get the list of remembered paths.
+        
+        @return list od remembered paths
+        @rtype list of str
+        """
+        paths = []
+        for index in range(self._editor.count()):
+            paths.append(self._editor.itemText(index))
+        return paths
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricPathPickerDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,162 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2018 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to enter a file system path using a file picker.
+"""
+
+from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel
+
+from .EricPathPicker import EricPathPicker, EricPathPickerModes
+
+
+class EricPathPickerDialog(QDialog):
+    """
+    Class implementing a dialog to enter a file system path using a file
+    picker.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent)
+        
+        self.setMinimumWidth(400)
+        
+        self.__layout = QVBoxLayout(self)
+        
+        self.__label = QLabel(self)
+        self.__label.setWordWrap(True)
+        
+        self.__pathPicker = EricPathPicker(self)
+        self.__buttonBox = QDialogButtonBox(
+            QDialogButtonBox.StandardButton.Cancel |
+            QDialogButtonBox.StandardButton.Ok, self)
+        
+        self.__layout.addWidget(self.__label)
+        self.__layout.addWidget(self.__pathPicker)
+        self.__layout.addWidget(self.__buttonBox)
+        
+        self.__buttonBox.accepted.connect(self.accept)
+        self.__buttonBox.rejected.connect(self.reject)
+    
+    def setLabelText(self, text):
+        """
+        Public method to set the label text.
+        
+        @param text label text
+        @type str
+        """
+        self.__label.setText(text)
+    
+    def setTitle(self, title):
+        """
+        Public method to set the window title.
+        
+        @param title window title
+        @type str
+        """
+        self.setWindowTitle(title)
+        self.__pathPicker.setWindowTitle(title)
+    
+    def setPickerMode(self, mode):
+        """
+        Public method to set the mode of the path picker.
+        
+        @param mode picker mode
+        @type EricPathPickerModes
+        """
+        self.__pathPicker.setMode(mode)
+    
+    def setPickerPath(self, path):
+        """
+        Public method to set the path of the path picker.
+        
+        @param path path to be set
+        @type str
+        """
+        self.__pathPicker.setPath(path)
+    
+    def setDefaultDirectory(self, directory):
+        """
+        Public method to set the default directory of the path picker.
+        
+        @param directory default directory
+        @type str
+        """
+        self.__pathPicker.setDefaultDirectory(directory)
+    
+    def setPickerFilters(self, filters):
+        """
+        Public method to set the filters of the path picker.
+        
+        Note: Multiple filters must be separated by ';;'.
+        
+        @param filters string containing the file filters
+        @type str
+        """
+        self.__pathPicker.setFilters(filters)
+    
+    def getPath(self):
+        """
+        Public method to get the current path.
+        
+        @return current path
+        @rtype str
+        """
+        return self.__pathPicker.path()
+
+
+def getPath(parent, title, label, mode=EricPathPickerModes.OPEN_FILE_MODE,
+            path="", defaultDirectory="", filters=None):
+    """
+    Function to get a file or directory path from the user.
+    
+    @param parent reference to the parent widget
+    @type QWidget
+    @param title title of the dialog
+    @type str
+    @param label text to be shown above the path picker
+    @type str
+    @param mode mode of the path picker
+    @type EricPathPickerModes
+    @param path initial path to be shown
+    @type str
+    @param defaultDirectory default directory of the path picker selection
+        dialog
+    @type str
+    @param filters list of file filters
+    @type list of str
+    @return tuple containing the entered path and a flag indicating that the
+        user pressed the OK button
+    @rtype tuple of (str, bool)
+    """
+    # step 1: setup of the dialog
+    dlg = EricPathPickerDialog(parent)
+    if title:
+        dlg.setTitle(title)
+    if label:
+        dlg.setLabelText(label)
+    dlg.setPickerMode(mode)
+    if path:
+        dlg.setPickerPath(path)
+    if defaultDirectory:
+        dlg.setDefaultDirectory(defaultDirectory)
+    if filters is not None and len(filters) > 0:
+        dlg.setPickerFilters(";;".join(filters))
+    
+    # step 2: show the dialog and get the result
+    if dlg.exec() == QDialog.DialogCode.Accepted:
+        ok = True
+        path = dlg.getPath().strip()
+    else:
+        ok = False
+        path = ""
+    
+    # step 3: return the result
+    return path, ok
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricPlainTextDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2020 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to show some plain text.
+"""
+
+from PyQt6.QtCore import pyqtSlot
+from PyQt6.QtGui import QGuiApplication
+from PyQt6.QtWidgets import QDialog, QDialogButtonBox
+
+from .Ui_EricPlainTextDialog import Ui_EricPlainTextDialog
+
+
+class EricPlainTextDialog(QDialog, Ui_EricPlainTextDialog):
+    """
+    Class implementing a dialog to show some plain text.
+    """
+    def __init__(self, title="", text="", parent=None):
+        """
+        Constructor
+        
+        @param title title of the window
+        @type str
+        @param text text to be shown
+        @type str
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        self.copyButton = self.buttonBox.addButton(
+            self.tr("Copy to Clipboard"),
+            QDialogButtonBox.ButtonRole.ActionRole)
+        self.copyButton.clicked.connect(self.on_copyButton_clicked)
+        
+        self.setWindowTitle(title)
+        self.textEdit.setPlainText(text)
+    
+    @pyqtSlot()
+    def on_copyButton_clicked(self):
+        """
+        Private slot to copy the text to the clipboard.
+        """
+        txt = self.textEdit.toPlainText()
+        cb = QGuiApplication.clipboard()
+        cb.setText(txt)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricPlainTextDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EricPlainTextDialog</class>
+ <widget class="QDialog" name="EricPlainTextDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>500</width>
+    <height>400</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string/>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QPlainTextEdit" name="textEdit">
+     <property name="readOnly">
+      <bool>true</bool>
+     </property>
+     <property name="textInteractionFlags">
+      <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Close</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>EricPlainTextDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>EricPlainTextDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricProcessDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,314 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2019 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog starting a process and showing its output.
+"""
+
+import os
+import re
+
+from PyQt6.QtCore import (
+    QProcess, QTimer, pyqtSlot, Qt, QCoreApplication, QProcessEnvironment
+)
+from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QLineEdit
+
+from E5Gui import EricMessageBox
+
+from .Ui_EricProcessDialog import Ui_EricProcessDialog
+
+from Globals import strToQByteArray
+import Preferences
+
+
+class EricProcessDialog(QDialog, Ui_EricProcessDialog):
+    """
+    Class implementing a dialog starting a process and showing its output.
+    
+    It starts a QProcess and displays a dialog that shows the output of the
+    process. The dialog is modal, which causes a synchronized execution of
+    the process.
+    """
+    def __init__(self, outputTitle="", windowTitle="", showProgress=False,
+                 parent=None):
+        """
+        Constructor
+        
+        @param outputTitle title for the output group
+        @type str
+        @param windowTitle title of the dialog
+        @type str
+        @param showProgress flag indicating to show a progress bar
+        @type bool
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setEnabled(False)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel).setDefault(True)
+        
+        font = Preferences.getEditorOtherFonts("MonospacedFont")
+        self.resultbox.setFontFamily(font.family())
+        self.resultbox.setFontPointSize(font.pointSize())
+        self.errors.setFontFamily(font.family())
+        self.errors.setFontPointSize(font.pointSize())
+        
+        if windowTitle:
+            self.setWindowTitle(windowTitle)
+        if outputTitle:
+            self.outputGroup.setTitle(outputTitle)
+        self.__showProgress = showProgress
+        self.progressBar.setVisible(self.__showProgress)
+        
+        self.__process = None
+        self.__progressRe = re.compile(r"""(\d{1,3})\s*%""")
+        
+        self.show()
+        QCoreApplication.processEvents()
+    
+    def __finish(self):
+        """
+        Private slot called when the process finished or the user pressed
+        the button.
+        """
+        if (
+            self.__process is not None and
+            self.__process.state() != QProcess.ProcessState.NotRunning
+        ):
+            self.__process.terminate()
+            QTimer.singleShot(2000, self.__process.kill)
+            self.__process.waitForFinished(3000)
+        
+        self.inputGroup.setEnabled(False)
+        self.inputGroup.hide()
+        
+        self.__process = None
+        
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setEnabled(True)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel).setEnabled(False)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setDefault(True)
+        self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close).setFocus(
+            Qt.FocusReason.OtherFocusReason)
+    
+    def on_buttonBox_clicked(self, button):
+        """
+        Private slot called by a button of the button box clicked.
+        
+        @param button button that was clicked
+        @type QAbstractButton
+        """
+        if button == self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Close
+        ):
+            self.close()
+        elif button == self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel
+        ):
+            self.statusLabel.setText(self.tr("Process canceled."))
+            self.__finish()
+    
+    def __procFinished(self, exitCode, exitStatus):
+        """
+        Private slot connected to the finished signal.
+        
+        @param exitCode exit code of the process
+        @type int
+        @param exitStatus exit status of the process
+        @type QProcess.ExitStatus
+        """
+        self.__normal = (
+            (exitStatus == QProcess.ExitStatus.NormalExit) and
+            (exitCode == 0)
+        )
+        if self.__normal:
+            self.statusLabel.setText(self.tr("Process finished successfully."))
+        elif exitStatus == QProcess.ExitStatus.CrashExit:
+            self.statusLabel.setText(self.tr("Process crashed."))
+        else:
+            self.statusLabel.setText(
+                self.tr("Process finished with exit code {0}")
+                .format(exitCode))
+        self.__finish()
+    
+    def startProcess(self, program, args, workingDir=None, showArgs=True,
+                     environment=None):
+        """
+        Public slot used to start the process.
+        
+        @param program path of the program to be executed
+        @type str
+        @param args list of arguments for the process
+        @type list of str
+        @param workingDir working directory for the process
+        @type str
+        @param showArgs flag indicating to show the arguments
+        @type bool
+        @param environment dictionary of environment settings to add
+            or change for the process
+        @type dict
+        @return flag indicating a successful start of the process
+        @rtype bool
+        """
+        self.errorGroup.hide()
+        self.__normal = False
+        self.__intercept = False
+        
+        if environment is None:
+            environment = {}
+        
+        if showArgs:
+            self.resultbox.append(program + ' ' + ' '.join(args))
+            self.resultbox.append('')
+        
+        self.__process = QProcess()
+        if environment:
+            env = QProcessEnvironment.systemEnvironment()
+            for key, value in environment.items():
+                env.insert(key, value)
+            self.__process.setProcessEnvironment(env)
+        
+        self.__process.finished.connect(self.__procFinished)
+        self.__process.readyReadStandardOutput.connect(self.__readStdout)
+        self.__process.readyReadStandardError.connect(self.__readStderr)
+        
+        if workingDir:
+            self.__process.setWorkingDirectory(workingDir)
+        
+        self.__process.start(program, args)
+        procStarted = self.__process.waitForStarted(10000)
+        if not procStarted:
+            self.buttonBox.setFocus()
+            self.inputGroup.setEnabled(False)
+            EricMessageBox.critical(
+                self,
+                self.tr('Process Generation Error'),
+                self.tr(
+                    '<p>The process <b>{0}</b> could not be started.</p>'
+                ).format(program))
+        else:
+            self.inputGroup.setEnabled(True)
+            self.inputGroup.show()
+        
+        return procStarted
+    
+    def normalExit(self):
+        """
+        Public method to check for a normal process termination.
+        
+        @return flag indicating normal process termination
+        @rtype bool
+        """
+        return self.__normal
+    
+    def normalExitWithoutErrors(self):
+        """
+        Public method to check for a normal process termination without
+        error messages.
+        
+        @return flag indicating normal process termination
+        @rtype bool
+        """
+        return self.__normal and self.errors.toPlainText() == ""
+    
+    def __readStdout(self):
+        """
+        Private slot to handle the readyReadStandardOutput signal.
+        
+        It reads the output of the process and inserts it into the
+        output pane.
+        """
+        if self.__process is not None:
+            s = str(self.__process.readAllStandardOutput(),
+                    Preferences.getSystem("IOEncoding"),
+                    'replace')
+            if self.__showProgress:
+                match = self.__progressRe.search(s)
+                if match:
+                    progress = int(match.group(1))
+                    self.progressBar.setValue(progress)
+                    if not s.endswith("\n"):
+                        s += "\n"
+            self.resultbox.insertPlainText(s)
+            self.resultbox.ensureCursorVisible()
+            
+            QCoreApplication.processEvents()
+    
+    def __readStderr(self):
+        """
+        Private slot to handle the readyReadStandardError signal.
+        
+        It reads the error output of the process and inserts it into the
+        error pane.
+        """
+        if self.__process is not None:
+            s = str(self.__process.readAllStandardError(),
+                    Preferences.getSystem("IOEncoding"),
+                    'replace')
+            
+            self.errorGroup.show()
+            self.errors.insertPlainText(s)
+            self.errors.ensureCursorVisible()
+            
+            QCoreApplication.processEvents()
+    
+    def on_passwordCheckBox_toggled(self, isOn):
+        """
+        Private slot to handle the password checkbox toggled.
+        
+        @param isOn flag indicating the status of the check box
+        @type bool
+        """
+        if isOn:
+            self.input.setEchoMode(QLineEdit.EchoMode.Password)
+        else:
+            self.input.setEchoMode(QLineEdit.EchoMode.Normal)
+    
+    @pyqtSlot()
+    def on_sendButton_clicked(self):
+        """
+        Private slot to send the input to the git process.
+        """
+        inputTxt = self.input.text()
+        inputTxt += os.linesep
+        
+        if self.passwordCheckBox.isChecked():
+            self.errors.insertPlainText(os.linesep)
+            self.errors.ensureCursorVisible()
+        else:
+            self.errors.insertPlainText(inputTxt)
+            self.errors.ensureCursorVisible()
+        
+        self.__process.write(strToQByteArray(inputTxt))
+        
+        self.passwordCheckBox.setChecked(False)
+        self.input.clear()
+    
+    def on_input_returnPressed(self):
+        """
+        Private slot to handle the press of the return key in the input field.
+        """
+        self.__intercept = True
+        self.on_sendButton_clicked()
+    
+    def keyPressEvent(self, evt):
+        """
+        Protected slot to handle a key press event.
+        
+        @param evt the key press event (QKeyEvent)
+        """
+        if self.__intercept:
+            self.__intercept = False
+            evt.accept()
+            return
+        
+        super().keyPressEvent(evt)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricProcessDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EricProcessDialog</class>
+ <widget class="QDialog" name="EricProcessDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>600</width>
+    <height>500</height>
+   </rect>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QGroupBox" name="outputGroup">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+       <horstretch>0</horstretch>
+       <verstretch>2</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title">
+      <string>Output</string>
+     </property>
+     <layout class="QVBoxLayout">
+      <item>
+       <widget class="QTextEdit" name="resultbox">
+        <property name="readOnly">
+         <bool>true</bool>
+        </property>
+        <property name="acceptRichText">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QProgressBar" name="progressBar">
+     <property name="value">
+      <number>0</number>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="statusLabel"/>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="errorGroup">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+       <horstretch>0</horstretch>
+       <verstretch>1</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title">
+      <string>Errors</string>
+     </property>
+     <layout class="QVBoxLayout">
+      <item>
+       <widget class="QTextEdit" name="errors">
+        <property name="readOnly">
+         <bool>true</bool>
+        </property>
+        <property name="acceptRichText">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="inputGroup">
+     <property name="title">
+      <string>Input</string>
+     </property>
+     <layout class="QGridLayout">
+      <item row="1" column="1">
+       <spacer>
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeType">
+         <enum>QSizePolicy::Expanding</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>327</width>
+          <height>29</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="1" column="2">
+       <widget class="QPushButton" name="sendButton">
+        <property name="toolTip">
+         <string>Press to send the input to the running process</string>
+        </property>
+        <property name="text">
+         <string>&amp;Send</string>
+        </property>
+        <property name="shortcut">
+         <string>Alt+S</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" colspan="3">
+       <widget class="QLineEdit" name="input">
+        <property name="toolTip">
+         <string>Enter data to be sent to the running process</string>
+        </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
+       <widget class="QCheckBox" name="passwordCheckBox">
+        <property name="toolTip">
+         <string>Select to switch the input field to password mode</string>
+        </property>
+        <property name="text">
+         <string>&amp;Password Mode</string>
+        </property>
+        <property name="shortcut">
+         <string>Alt+P</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <tabstops>
+  <tabstop>resultbox</tabstop>
+  <tabstop>errors</tabstop>
+  <tabstop>input</tabstop>
+  <tabstop>passwordCheckBox</tabstop>
+  <tabstop>sendButton</tabstop>
+  <tabstop>buttonBox</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricProgressDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2013 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a progress dialog allowing a customized progress bar label.
+"""
+
+from PyQt6.QtCore import Qt
+from PyQt6.QtWidgets import QProgressBar, QProgressDialog
+
+
+class EricProgressDialog(QProgressDialog):
+    """
+    Class implementing a progress dialog allowing a customized progress bar
+    label.
+    """
+    def __init__(self, labelText, cancelButtonText, minimum, maximum,
+                 labelFormat=None, parent=None, flags=None):
+        """
+        Constructor
+        
+        @param labelText text of the dialog label (string)
+        @param cancelButtonText text of the cancel button (string)
+        @param minimum minimum value (integer)
+        @param maximum maximum value (integer)
+        @param labelFormat label format of the progress bar (string)
+        @param parent reference to the parent widget (QWidget)
+        @param flags window flags of the dialog (Qt.WindowFlags)
+        """
+        if flags is None:
+            flags = Qt.WindowType(0)
+        super().__init__(
+            labelText, cancelButtonText, minimum, maximum, parent, flags)
+        
+        self.__progressBar = QProgressBar(self)
+        self.__progressBar.setMinimum(minimum)
+        self.__progressBar.setMaximum(maximum)
+        if labelFormat:
+            self.__progressBar.setFormat(labelFormat)
+        
+        self.setBar(self.__progressBar)
+    
+    def format(self):
+        """
+        Public method to get the progress bar format.
+        
+        @return progress bar format (string)
+        """
+        return self.__progressBar.format()
+    
+    def setFormat(self, labelFormat):
+        """
+        Public method to set the progress bar format.
+        
+        @param labelFormat progress bar format (string)
+        """
+        self.__progressBar.setFormat(labelFormat)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricSideBar.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,706 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2008 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a sidebar class.
+"""
+
+import enum
+import json
+
+from PyQt6.QtCore import QEvent, QSize, Qt, QTimer
+from PyQt6.QtWidgets import (
+    QTabBar, QWidget, QStackedWidget, QBoxLayout, QToolButton, QSizePolicy
+)
+
+from E5Gui.EricApplication import ericApp
+
+import UI.PixmapCache
+
+
+class EricSideBarSide(enum.Enum):
+    """
+    Class defining the sidebar sides.
+    """
+    NORTH = 0
+    EAST = 1
+    SOUTH = 2
+    WEST = 3
+
+
+class EricSideBar(QWidget):
+    """
+    Class implementing a sidebar with a widget area, that is hidden or shown,
+    if the current tab is clicked again.
+    """
+    Version = 2
+    
+    def __init__(self, orientation=None, delay=200, parent=None):
+        """
+        Constructor
+        
+        @param orientation orientation of the sidebar widget
+        @type EricSideBarSide
+        @param delay value for the expand/shrink delay in milliseconds
+        @type int
+        @param parent parent widget
+        @type QWidget
+        """
+        super().__init__(parent)
+        
+        self.__tabBar = QTabBar()
+        self.__tabBar.setDrawBase(True)
+        self.__tabBar.setShape(QTabBar.Shape.RoundedNorth)
+        self.__tabBar.setUsesScrollButtons(True)
+        self.__tabBar.setDrawBase(False)
+        self.__stackedWidget = QStackedWidget(self)
+        self.__stackedWidget.setContentsMargins(0, 0, 0, 0)
+        self.__autoHideButton = QToolButton()
+        self.__autoHideButton.setCheckable(True)
+        self.__autoHideButton.setIcon(
+            UI.PixmapCache.getIcon("autoHideOff"))
+        self.__autoHideButton.setChecked(True)
+        self.__autoHideButton.setToolTip(
+            self.tr("Deselect to activate automatic collapsing"))
+        self.barLayout = QBoxLayout(QBoxLayout.Direction.LeftToRight)
+        self.barLayout.setContentsMargins(0, 0, 0, 0)
+        self.layout = QBoxLayout(QBoxLayout.Direction.TopToBottom)
+        self.layout.setContentsMargins(0, 0, 0, 0)
+        self.layout.setSpacing(0)
+        self.barLayout.addWidget(self.__autoHideButton)
+        self.barLayout.addWidget(self.__tabBar)
+        self.layout.addLayout(self.barLayout)
+        self.layout.addWidget(self.__stackedWidget)
+        self.setLayout(self.layout)
+        
+        # initialize the delay timer
+        self.__actionMethod = None
+        self.__delayTimer = QTimer(self)
+        self.__delayTimer.setSingleShot(True)
+        self.__delayTimer.setInterval(delay)
+        self.__delayTimer.timeout.connect(self.__delayedAction)
+        
+        self.__minimized = False
+        self.__minSize = 0
+        self.__maxSize = 0
+        self.__bigSize = QSize()
+        
+        self.splitter = None
+        self.splitterSizes = []
+        
+        self.__hasFocus = False
+        # flag storing if this widget or any child has the focus
+        self.__autoHide = False
+        
+        self.__tabBar.installEventFilter(self)
+        
+        self.__orientation = EricSideBarSide.NORTH
+        if orientation is None:
+            orientation = EricSideBarSide.NORTH
+        self.setOrientation(orientation)
+        
+        self.__tabBar.currentChanged[int].connect(
+            self.__stackedWidget.setCurrentIndex)
+        ericApp().focusChanged.connect(self.__appFocusChanged)
+        self.__autoHideButton.toggled[bool].connect(self.__autoHideToggled)
+    
+    def setSplitter(self, splitter):
+        """
+        Public method to set the splitter managing the sidebar.
+        
+        @param splitter reference to the splitter (QSplitter)
+        """
+        self.splitter = splitter
+        self.splitter.splitterMoved.connect(self.__splitterMoved)
+        self.splitter.setChildrenCollapsible(False)
+        index = self.splitter.indexOf(self)
+        self.splitter.setCollapsible(index, False)
+    
+    def __splitterMoved(self, pos, index):
+        """
+        Private slot to react on splitter moves.
+        
+        @param pos new position of the splitter handle (integer)
+        @param index index of the splitter handle (integer)
+        """
+        if self.splitter:
+            self.splitterSizes = self.splitter.sizes()
+    
+    def __delayedAction(self):
+        """
+        Private slot to handle the firing of the delay timer.
+        """
+        if self.__actionMethod is not None:
+            self.__actionMethod()
+    
+    def setDelay(self, delay):
+        """
+        Public method to set the delay value for the expand/shrink delay in
+        milliseconds.
+        
+        @param delay value for the expand/shrink delay in milliseconds
+            (integer)
+        """
+        self.__delayTimer.setInterval(delay)
+    
+    def delay(self):
+        """
+        Public method to get the delay value for the expand/shrink delay in
+        milliseconds.
+        
+        @return value for the expand/shrink delay in milliseconds (integer)
+        """
+        return self.__delayTimer.interval()
+    
+    def __cancelDelayTimer(self):
+        """
+        Private method to cancel the current delay timer.
+        """
+        self.__delayTimer.stop()
+        self.__actionMethod = None
+    
+    def shrink(self):
+        """
+        Public method to record a shrink request.
+        """
+        self.__delayTimer.stop()
+        self.__actionMethod = self.__shrinkIt
+        self.__delayTimer.start()
+   
+    def __shrinkIt(self):
+        """
+        Private method to shrink the sidebar.
+        """
+        self.__minimized = True
+        self.__bigSize = self.size()
+        if self.__orientation in (EricSideBarSide.NORTH, EricSideBarSide.SOUTH):
+            self.__minSize = self.minimumSizeHint().height()
+            self.__maxSize = self.maximumHeight()
+        else:
+            self.__minSize = self.minimumSizeHint().width()
+            self.__maxSize = self.maximumWidth()
+        if self.splitter:
+            self.splitterSizes = self.splitter.sizes()
+        
+        self.__stackedWidget.hide()
+        
+        if self.__orientation in (EricSideBarSide.NORTH, EricSideBarSide.SOUTH):
+            self.setFixedHeight(self.__tabBar.minimumSizeHint().height())
+        else:
+            self.setFixedWidth(self.__tabBar.minimumSizeHint().width())
+        
+        self.__actionMethod = None
+    
+    def expand(self):
+        """
+        Public method to record a expand request.
+        """
+        self.__delayTimer.stop()
+        self.__actionMethod = self.__expandIt
+        self.__delayTimer.start()
+    
+    def __expandIt(self):
+        """
+        Private method to expand the sidebar.
+        """
+        self.__minimized = False
+        self.__stackedWidget.show()
+        self.resize(self.__bigSize)
+        if self.__orientation in (EricSideBarSide.NORTH, EricSideBarSide.SOUTH):
+            minSize = max(self.__minSize, self.minimumSizeHint().height())
+            self.setMinimumHeight(minSize)
+            self.setMaximumHeight(self.__maxSize)
+        else:
+            minSize = max(self.__minSize, self.minimumSizeHint().width())
+            self.setMinimumWidth(minSize)
+            self.setMaximumWidth(self.__maxSize)
+        if self.splitter:
+            self.splitter.setSizes(self.splitterSizes)
+        
+        self.__actionMethod = None
+    
+    def isMinimized(self):
+        """
+        Public method to check the minimized state.
+        
+        @return flag indicating the minimized state (boolean)
+        """
+        return self.__minimized
+    
+    def isAutoHiding(self):
+        """
+        Public method to check, if the auto hide function is active.
+        
+        @return flag indicating the state of auto hiding (boolean)
+        """
+        return self.__autoHide
+    
+    def eventFilter(self, obj, evt):
+        """
+        Public method to handle some events for the tabbar.
+        
+        @param obj reference to the object (QObject)
+        @param evt reference to the event object (QEvent)
+        @return flag indicating, if the event was handled (boolean)
+        """
+        if obj == self.__tabBar:
+            if evt.type() == QEvent.Type.MouseButtonPress:
+                pos = evt.position().toPoint()
+                for i in range(self.__tabBar.count()):
+                    if self.__tabBar.tabRect(i).contains(pos):
+                        break
+                
+                if i == self.__tabBar.currentIndex():
+                    if self.isMinimized():
+                        self.expand()
+                    else:
+                        self.shrink()
+                    return True
+                elif self.isMinimized():
+                    self.expand()
+            elif evt.type() == QEvent.Type.Wheel:
+                delta = evt.angleDelta().y()
+                if delta > 0:
+                    self.prevTab()
+                else:
+                    self.nextTab()
+                return True
+        
+        return QWidget.eventFilter(self, obj, evt)
+    
+    def addTab(self, widget, iconOrLabel, label=None):
+        """
+        Public method to add a tab to the sidebar.
+        
+        @param widget reference to the widget to add (QWidget)
+        @param iconOrLabel reference to the icon or the label text of the tab
+            (QIcon, string)
+        @param label the labeltext of the tab (string) (only to be
+            used, if the second parameter is a QIcon)
+        """
+        if label:
+            index = self.__tabBar.addTab(iconOrLabel, label)
+            self.__tabBar.setTabToolTip(index, label)
+        else:
+            index = self.__tabBar.addTab(iconOrLabel)
+            self.__tabBar.setTabToolTip(index, iconOrLabel)
+        self.__stackedWidget.addWidget(widget)
+        if self.__orientation in (EricSideBarSide.NORTH, EricSideBarSide.SOUTH):
+            self.__minSize = self.minimumSizeHint().height()
+        else:
+            self.__minSize = self.minimumSizeHint().width()
+    
+    def insertTab(self, index, widget, iconOrLabel, label=None):
+        """
+        Public method to insert a tab into the sidebar.
+        
+        @param index the index to insert the tab at (integer)
+        @param widget reference to the widget to insert (QWidget)
+        @param iconOrLabel reference to the icon or the labeltext of the tab
+            (QIcon, string)
+        @param label the labeltext of the tab (string) (only to be
+            used, if the second parameter is a QIcon)
+        """
+        if label:
+            index = self.__tabBar.insertTab(index, iconOrLabel, label)
+            self.__tabBar.setTabToolTip(index, label)
+        else:
+            index = self.__tabBar.insertTab(index, iconOrLabel)
+            self.__tabBar.setTabToolTip(index, iconOrLabel)
+        self.__stackedWidget.insertWidget(index, widget)
+        if self.__orientation in (EricSideBarSide.NORTH, EricSideBarSide.SOUTH):
+            self.__minSize = self.minimumSizeHint().height()
+        else:
+            self.__minSize = self.minimumSizeHint().width()
+    
+    def removeTab(self, index):
+        """
+        Public method to remove a tab.
+        
+        @param index the index of the tab to remove (integer)
+        """
+        self.__stackedWidget.removeWidget(self.__stackedWidget.widget(index))
+        self.__tabBar.removeTab(index)
+        if self.__orientation in (EricSideBarSide.NORTH, EricSideBarSide.SOUTH):
+            self.__minSize = self.minimumSizeHint().height()
+        else:
+            self.__minSize = self.minimumSizeHint().width()
+    
+    def clear(self):
+        """
+        Public method to remove all tabs.
+        """
+        while self.count() > 0:
+            self.removeTab(0)
+    
+    def prevTab(self):
+        """
+        Public slot used to show the previous tab.
+        """
+        ind = self.currentIndex() - 1
+        if ind == -1:
+            ind = self.count() - 1
+            
+        self.setCurrentIndex(ind)
+        self.currentWidget().setFocus()
+    
+    def nextTab(self):
+        """
+        Public slot used to show the next tab.
+        """
+        ind = self.currentIndex() + 1
+        if ind == self.count():
+            ind = 0
+            
+        self.setCurrentIndex(ind)
+        self.currentWidget().setFocus()
+    
+    def count(self):
+        """
+        Public method to get the number of tabs.
+        
+        @return number of tabs in the sidebar (integer)
+        """
+        return self.__tabBar.count()
+    
+    def currentIndex(self):
+        """
+        Public method to get the index of the current tab.
+        
+        @return index of the current tab (integer)
+        """
+        return self.__stackedWidget.currentIndex()
+    
+    def setCurrentIndex(self, index):
+        """
+        Public slot to set the current index.
+        
+        @param index the index to set as the current index (integer)
+        """
+        self.__tabBar.setCurrentIndex(index)
+        self.__stackedWidget.setCurrentIndex(index)
+        if self.isMinimized():
+            self.expand()
+    
+    def currentWidget(self):
+        """
+        Public method to get a reference to the current widget.
+        
+        @return reference to the current widget (QWidget)
+        """
+        return self.__stackedWidget.currentWidget()
+    
+    def setCurrentWidget(self, widget):
+        """
+        Public slot to set the current widget.
+        
+        @param widget reference to the widget to become the current widget
+            (QWidget)
+        """
+        self.__stackedWidget.setCurrentWidget(widget)
+        self.__tabBar.setCurrentIndex(self.__stackedWidget.currentIndex())
+        if self.isMinimized():
+            self.expand()
+    
+    def indexOf(self, widget):
+        """
+        Public method to get the index of the given widget.
+        
+        @param widget reference to the widget to get the index of (QWidget)
+        @return index of the given widget (integer)
+        """
+        return self.__stackedWidget.indexOf(widget)
+    
+    def isTabEnabled(self, index):
+        """
+        Public method to check, if a tab is enabled.
+        
+        @param index index of the tab to check (integer)
+        @return flag indicating the enabled state (boolean)
+        """
+        return self.__tabBar.isTabEnabled(index)
+    
+    def setTabEnabled(self, index, enabled):
+        """
+        Public method to set the enabled state of a tab.
+        
+        @param index index of the tab to set (integer)
+        @param enabled enabled state to set (boolean)
+        """
+        self.__tabBar.setTabEnabled(index, enabled)
+    
+    def orientation(self):
+        """
+        Public method to get the orientation of the sidebar.
+        
+        @return orientation of the sidebar
+        @rtype EricSideBarSide
+        """
+        return self.__orientation
+    
+    def setOrientation(self, orient):
+        """
+        Public method to set the orientation of the sidebar.
+
+        @param orient orientation of the sidebar
+        @type EricSideBarSide
+        """
+        if orient == EricSideBarSide.NORTH:
+            self.__tabBar.setShape(QTabBar.Shape.RoundedNorth)
+            self.__tabBar.setSizePolicy(
+                QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
+            self.barLayout.setDirection(QBoxLayout.Direction.LeftToRight)
+            self.layout.setDirection(QBoxLayout.Direction.TopToBottom)
+            self.layout.setAlignment(self.barLayout,
+                                     Qt.AlignmentFlag.AlignLeft)
+        elif orient == EricSideBarSide.EAST:
+            self.__tabBar.setShape(QTabBar.Shape.RoundedEast)
+            self.__tabBar.setSizePolicy(
+                QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding)
+            self.barLayout.setDirection(QBoxLayout.Direction.TopToBottom)
+            self.layout.setDirection(QBoxLayout.Direction.RightToLeft)
+            self.layout.setAlignment(self.barLayout, Qt.AlignmentFlag.AlignTop)
+        elif orient == EricSideBarSide.SOUTH:
+            self.__tabBar.setShape(QTabBar.Shape.RoundedSouth)
+            self.__tabBar.setSizePolicy(
+                QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
+            self.barLayout.setDirection(QBoxLayout.Direction.LeftToRight)
+            self.layout.setDirection(QBoxLayout.Direction.BottomToTop)
+            self.layout.setAlignment(self.barLayout,
+                                     Qt.AlignmentFlag.AlignLeft)
+        elif orient == EricSideBarSide.WEST:
+            self.__tabBar.setShape(QTabBar.Shape.RoundedWest)
+            self.__tabBar.setSizePolicy(
+                QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding)
+            self.barLayout.setDirection(QBoxLayout.Direction.TopToBottom)
+            self.layout.setDirection(QBoxLayout.Direction.LeftToRight)
+            self.layout.setAlignment(self.barLayout, Qt.AlignmentFlag.AlignTop)
+        self.__orientation = orient
+    
+    def tabIcon(self, index):
+        """
+        Public method to get the icon of a tab.
+        
+        @param index index of the tab (integer)
+        @return icon of the tab (QIcon)
+        """
+        return self.__tabBar.tabIcon(index)
+    
+    def setTabIcon(self, index, icon):
+        """
+        Public method to set the icon of a tab.
+        
+        @param index index of the tab (integer)
+        @param icon icon to be set (QIcon)
+        """
+        self.__tabBar.setTabIcon(index, icon)
+    
+    def tabText(self, index):
+        """
+        Public method to get the text of a tab.
+        
+        @param index index of the tab (integer)
+        @return text of the tab (string)
+        """
+        return self.__tabBar.tabText(index)
+    
+    def setTabText(self, index, text):
+        """
+        Public method to set the text of a tab.
+        
+        @param index index of the tab (integer)
+        @param text text to set (string)
+        """
+        self.__tabBar.setTabText(index, text)
+    
+    def tabToolTip(self, index):
+        """
+        Public method to get the tooltip text of a tab.
+        
+        @param index index of the tab (integer)
+        @return tooltip text of the tab (string)
+        """
+        return self.__tabBar.tabToolTip(index)
+    
+    def setTabToolTip(self, index, tip):
+        """
+        Public method to set the tooltip text of a tab.
+        
+        @param index index of the tab (integer)
+        @param tip tooltip text to set (string)
+        """
+        self.__tabBar.setTabToolTip(index, tip)
+    
+    def tabWhatsThis(self, index):
+        """
+        Public method to get the WhatsThis text of a tab.
+        
+        @param index index of the tab (integer)
+        @return WhatsThis text of the tab (string)
+        """
+        return self.__tabBar.tabWhatsThis(index)
+    
+    def setTabWhatsThis(self, index, text):
+        """
+        Public method to set the WhatsThis text of a tab.
+        
+        @param index index of the tab (integer)
+        @param text WhatsThis text to set (string)
+        """
+        self.__tabBar.setTabWhatsThis(index, text)
+    
+    def widget(self, index):
+        """
+        Public method to get a reference to the widget associated with a tab.
+        
+        @param index index of the tab (integer)
+        @return reference to the widget (QWidget)
+        """
+        return self.__stackedWidget.widget(index)
+    
+    def saveState(self):
+        """
+        Public method to save the state of the sidebar.
+        
+        @return saved state as a byte array (QByteArray)
+        """
+        if len(self.splitterSizes) == 0:
+            if self.splitter:
+                self.splitterSizes = self.splitter.sizes()
+            self.__bigSize = self.size()
+            if self.__orientation in (
+                EricSideBarSide.NORTH, EricSideBarSide.SOUTH
+            ):
+                self.__minSize = self.minimumSizeHint().height()
+                self.__maxSize = self.maximumHeight()
+            else:
+                self.__minSize = self.minimumSizeHint().width()
+                self.__maxSize = self.maximumWidth()
+        
+        dataDict = {
+            "version": self.Version,
+            "minimized": self.__minimized,
+            "big_size": [self.__bigSize.width(), self.__bigSize.height()],
+            "min_size": self.__minSize,
+            "max_size": self.__maxSize,
+            "splitter_sizes": self.splitterSizes,
+            "auto_hide": self.__autoHide
+        }
+        data = json.dumps(dataDict)
+        
+        return data
+    
+    def restoreState(self, state):
+        """
+        Public method to restore the state of the sidebar.
+        
+        @param state byte array containing the saved state (QByteArray)
+        @return flag indicating success (boolean)
+        """
+        if not isinstance(state, str) or state == "":
+            return False
+        
+        try:
+            stateDict = json.loads(state)
+        except json.JSONDecodeError:
+            return False
+        
+        if not stateDict:
+            return False
+        
+        if self.__orientation in (EricSideBarSide.NORTH, EricSideBarSide.SOUTH):
+            minSize = self.layout.minimumSize().height()
+            maxSize = self.maximumHeight()
+        else:
+            minSize = self.layout.minimumSize().width()
+            maxSize = self.maximumWidth()
+        
+        if stateDict["version"] == 2:
+            if stateDict["minimized"] and not self.__minimized:
+                self.shrink()
+            
+            self.__bigSize = QSize(*stateDict["big_size"])
+            self.__minSize = max(stateDict["min_size"], minSize)
+            self.__maxSize = max(stateDict["max_size"], maxSize)
+            self.splitterSizes = stateDict["splitter_sizes"]
+            
+            self.__autoHide = stateDict["auto_hide"]
+            self.__autoHideButton.setChecked(not self.__autoHide)
+            
+            if not stateDict["minimized"]:
+                self.expand()
+            
+            return True
+        
+        return False
+    
+    #######################################################################
+    ## methods below implement the autohide functionality
+    #######################################################################
+    
+    def __autoHideToggled(self, checked):
+        """
+        Private slot to handle the toggling of the autohide button.
+        
+        @param checked flag indicating the checked state of the button
+            (boolean)
+        """
+        self.__autoHide = not checked
+        if self.__autoHide:
+            self.__autoHideButton.setIcon(
+                UI.PixmapCache.getIcon("autoHideOn"))
+        else:
+            self.__autoHideButton.setIcon(
+                UI.PixmapCache.getIcon("autoHideOff"))
+    
+    def __appFocusChanged(self, old, now):
+        """
+        Private slot to handle a change of the focus.
+        
+        @param old reference to the widget, that lost focus (QWidget or None)
+        @param now reference to the widget having the focus (QWidget or None)
+        """
+        if isinstance(now, QWidget):
+            self.__hasFocus = self.isAncestorOf(now)
+            if (
+                self.__autoHide and
+                not self.__hasFocus and
+                not self.isMinimized()
+            ):
+                self.shrink()
+            elif self.__autoHide and self.__hasFocus and self.isMinimized():
+                self.expand()
+    
+    def enterEvent(self, event):
+        """
+        Protected method to handle the mouse entering this widget.
+        
+        @param event reference to the event (QEvent)
+        """
+        if self.__autoHide and self.isMinimized():
+            self.expand()
+        else:
+            self.__cancelDelayTimer()
+    
+    def leaveEvent(self, event):
+        """
+        Protected method to handle the mouse leaving this widget.
+        
+        @param event reference to the event (QEvent)
+        """
+        if self.__autoHide and not self.__hasFocus and not self.isMinimized():
+            self.shrink()
+        else:
+            self.__cancelDelayTimer()
+    
+    def shutdown(self):
+        """
+        Public method to shut down the object.
+        
+        This method does some preparations so the object can be deleted
+        properly. It disconnects from the focusChanged signal in order to
+        avoid trouble later on.
+        """
+        ericApp().focusChanged.disconnect(self.__appFocusChanged)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricSimpleHelpDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to show some help text.
+"""
+
+from PyQt6.QtCore import Qt
+from PyQt6.QtWidgets import QDialog
+
+from .Ui_EricSimpleHelpDialog import Ui_EricSimpleHelpDialog
+
+
+class EricSimpleHelpDialog(QDialog, Ui_EricSimpleHelpDialog):
+    """
+    Class implementing a dialog to show some help text.
+    """
+    def __init__(self, title="", label="", helpStr="", parent=None):
+        """
+        Constructor
+        
+        @param title title of the window
+        @type str
+        @param label label for the help
+        @type str
+        @param helpStr HTML help text
+        @type str
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        self.setWindowFlags(Qt.WindowType.Window)
+        
+        self.setWindowTitle(title)
+        if label:
+            self.helpLabel.setText(label)
+        else:
+            self.helpLabel.hide()
+        self.helpEdit.setHtml(helpStr)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricSimpleHelpDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EricSimpleHelpDialog</class>
+ <widget class="QDialog" name="EricSimpleHelpDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>500</width>
+    <height>600</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string/>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QLabel" name="helpLabel"/>
+   </item>
+   <item>
+    <widget class="QTextBrowser" name="helpEdit">
+     <property name="tabChangesFocus">
+      <bool>true</bool>
+     </property>
+     <property name="readOnly">
+      <bool>true</bool>
+     </property>
+     <property name="textInteractionFlags">
+      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
+     </property>
+     <property name="openExternalLinks">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Close</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>EricSimpleHelpDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>EricSimpleHelpDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricSingleApplication.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,186 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2004 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the single application server and client.
+"""
+
+import os
+
+from E5Gui.EricApplication import ericApp
+
+from Toolbox.SingleApplication import (
+    SingleApplicationClient, SingleApplicationServer
+)
+
+import Utilities
+
+###########################################################################
+## define some module global stuff
+###########################################################################
+
+SAFile = "eric7"
+
+# define the protocol tokens
+SAOpenFile = 'OpenFile'
+SAOpenProject = 'OpenProject'
+SAOpenMultiProject = 'OpenMultiProject'
+SAArguments = 'Arguments'
+
+
+class EricSingleApplicationServer(SingleApplicationServer):
+    """
+    Class implementing the single application server embedded within the IDE.
+    """
+    def __init__(self):
+        """
+        Constructor
+        """
+        SingleApplicationServer.__init__(self, SAFile)
+
+    def handleCommand(self, command, arguments):
+        """
+        Public slot to handle the command sent by the client.
+        
+        @param command command sent by the client
+        @type str
+        @param arguments list of command arguments
+        @type list of str
+        """
+        if command == SAOpenFile:
+            self.__saOpenFile(arguments[0])
+            return
+
+        if command == SAOpenProject:
+            self.__saOpenProject(arguments[0])
+            return
+
+        if command == SAOpenMultiProject:
+            self.__saOpenMultiProject(arguments[0])
+            return
+
+        if command == SAArguments:
+            self.__saArguments(arguments[0])
+            return
+
+    def __saOpenFile(self, fname):
+        """
+        Private method used to handle the "Open File" command.
+        
+        @param fname filename to be opened (string)
+        """
+        ericApp().getObject("ViewManager").openSourceFile(fname)
+        
+    def __saOpenProject(self, pfname):
+        """
+        Private method used to handle the "Open Project" command.
+        
+        @param pfname filename of the project to be opened (string)
+        """
+        ericApp().getObject("Project").openProject(pfname)
+        
+    def __saOpenMultiProject(self, pfname):
+        """
+        Private method used to handle the "Open Multi-Project" command.
+        
+        @param pfname filename of the multi project to be opened (string)
+        """
+        ericApp().getObject("MultiProject").openMultiProject(pfname)
+        
+    def __saArguments(self, argsStr):
+        """
+        Private method used to handle the "Arguments" command.
+        
+        @param argsStr space delimited list of command args(string)
+        """
+        ericApp().getObject("DebugUI").setArgvHistory(argsStr)
+
+
+class EricSingleApplicationClient(SingleApplicationClient):
+    """
+    Class implementing the single application client of the IDE.
+    """
+    def __init__(self):
+        """
+        Constructor
+        """
+        SingleApplicationClient.__init__(self, SAFile)
+        
+    def processArgs(self, args):
+        """
+        Public method to process the command line args passed to the UI.
+        
+        @param args list of files to open
+        """
+        # no args, return
+        if args is None:
+            return
+        
+        # holds space delimited list of command args, if any
+        argsStr = None
+        # flag indicating '--' options was found
+        ddseen = False
+        
+        argChars = ['-', '/'] if Utilities.isWindowsPlatform() else ['-']
+        
+        for arg in args:
+            if arg == '--' and not ddseen:
+                ddseen = True
+                continue
+                
+            if arg[0] in argChars or ddseen:
+                if argsStr is None:
+                    argsStr = arg
+                else:
+                    argsStr = "{0} {1}".format(argsStr, arg)
+                continue
+            
+            ext = os.path.splitext(arg)[1]
+            ext = os.path.normcase(ext)
+            
+            if ext in ('.epj', '.e4p'):
+                self.__openProject(arg)
+            elif ext in ('.emj', '.e4m', '.e5m'):
+                self.__openMultiProject(arg)
+            else:
+                self.__openFile(arg)
+        
+        # send any args we had
+        if argsStr is not None:
+            self.__sendArguments(argsStr)
+        
+        self.disconnect()
+        
+    def __openFile(self, fname):
+        """
+        Private method to open a file in the application server.
+        
+        @param fname name of file to be opened (string)
+        """
+        self.sendCommand(SAOpenFile, [os.path.abspath(fname)])
+        
+    def __openProject(self, pfname):
+        """
+        Private method to open a project in the application server.
+        
+        @param pfname name of the projectfile to be opened (string)
+        """
+        self.sendCommand(SAOpenProject, [os.path.abspath(pfname)])
+        
+    def __openMultiProject(self, pfname):
+        """
+        Private method to open a project in the application server.
+        
+        @param pfname name of the projectfile to be opened (string)
+        """
+        self.sendCommand(SAOpenMultiProject, [os.path.abspath(pfname)])
+        
+    def __sendArguments(self, argsStr):
+        """
+        Private method to set the command arguments in the application server.
+        
+        @param argsStr space delimited list of command args (string)
+        """
+        self.sendCommand(SAArguments, [argsStr])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricSqueezeLabels.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,138 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2008 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing labels that squeeze their contents to fit the size of the
+label.
+"""
+
+from PyQt6.QtCore import Qt
+from PyQt6.QtWidgets import QLabel
+
+from Utilities import compactPath
+
+
+class EricSqueezeLabel(QLabel):
+    """
+    Class implementing a label that squeezes its contents to fit its size.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent Widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        self.__text = ''
+        self.__elided = ''
+    
+    def paintEvent(self, event):
+        """
+        Protected method called when some painting is required.
+        
+        @param event reference to the paint event (QPaintEvent)
+        """
+        fm = self.fontMetrics()
+        try:
+            pixelLength = fm.horizontalAdvance(self.__text)
+        except AttributeError:
+            pixelLength = fm.width(self.__text)
+        if pixelLength > self.contentsRect().width():
+            self.__elided = fm.elidedText(
+                self.text(), Qt.TextElideMode.ElideMiddle, self.width())
+            super().setText(self.__elided)
+        else:
+            super().setText(self.__text)
+        super().paintEvent(event)
+    
+    def setText(self, txt):
+        """
+        Public method to set the label's text.
+        
+        @param txt the text to be shown (string)
+        """
+        self.__text = txt
+        super().setText(self.__text)
+
+
+class EricSqueezeLabelPath(QLabel):
+    """
+    Class implementing a label showing a file path compacted to fit its size.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent Widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        self.__path = ''
+        self.__surrounding = "{0}"
+    
+    def setSurrounding(self, surrounding):
+        """
+        Public method to set the surrounding of the path string.
+        
+        @param surrounding the a string containg placeholders for the path
+            (string)
+        """
+        self.__surrounding = surrounding
+        super().setText(
+            self.__surrounding.format(self.__path))
+    
+    def setPath(self, path):
+        """
+        Public method to set the path of the label.
+        
+        @param path path to be shown (string)
+        """
+        self.__path = path
+        super().setText(
+            self.__surrounding.format(self.__path))
+    
+    def setTextPath(self, surrounding, path):
+        """
+        Public method to set the surrounding and the path of the label.
+        
+        @param surrounding the a string containg placeholders for the path
+            (string)
+        @param path path to be shown (string)
+        """
+        self.__surrounding = surrounding
+        self.__path = path
+        super().setText(
+            self.__surrounding.format(self.__path))
+    
+    def paintEvent(self, event):
+        """
+        Protected method called when some painting is required.
+        
+        @param event reference to the paint event (QPaintEvent)
+        """
+        if self.length(self.__path) > self.contentsRect().width():
+            super().setText(
+                self.__surrounding.format(compactPath(self.__path,
+                                          self.contentsRect().width(),
+                                          self.length))
+            )
+        else:
+            super().setText(
+                self.__surrounding.format(self.__path))
+        super().paintEvent(event)
+    
+    def length(self, txt):
+        """
+        Public method to return the length of a text in pixels.
+        
+        @param txt text to calculate the length for after wrapped (string)
+        @return length of the wrapped text in pixels (integer)
+        """
+        fm = self.fontMetrics()
+        try:
+            return fm.horizontalAdvance(self.__surrounding.format(txt))
+        except AttributeError:
+            return fm.width(self.__surrounding.format(txt))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricStringListEditWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,109 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to edit a list of strings.
+"""
+
+from PyQt6.QtCore import (
+    pyqtSlot, pyqtSignal, Qt, QSortFilterProxyModel, QStringListModel
+)
+from PyQt6.QtWidgets import QWidget, QInputDialog, QLineEdit
+
+from .Ui_EricStringListEditWidget import Ui_EricStringListEditWidget
+
+
+class EricStringListEditWidget(QWidget, Ui_EricStringListEditWidget):
+    """
+    Class implementing a dialog to edit a list of strings.
+    
+    @signal setToDefault() emitted to request the default list of values
+    """
+    setToDefault = pyqtSignal()
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        self.__model = QStringListModel(self)
+        self.__proxyModel = QSortFilterProxyModel(self)
+        self.__proxyModel.setFilterCaseSensitivity(
+            Qt.CaseSensitivity.CaseInsensitive)
+        self.__proxyModel.setSourceModel(self.__model)
+        self.stringList.setModel(self.__proxyModel)
+        
+        self.defaultButton.hide()
+        
+        self.searchEdit.textChanged.connect(
+            self.__proxyModel.setFilterFixedString)
+        
+        self.removeButton.clicked.connect(self.stringList.removeSelected)
+        self.removeAllButton.clicked.connect(self.stringList.removeAll)
+        self.defaultButton.clicked.connect(self.setToDefault)
+    
+    def setList(self, stringList):
+        """
+        Public method to set the list of strings to be edited.
+        
+        @param stringList list of strings to be edited (list of string)
+        """
+        self.__model.setStringList(stringList)
+        self.__model.sort(0)
+    
+    def getList(self):
+        """
+        Public method to get the edited list of strings.
+        
+        @return edited list of string (list of string)
+        """
+        return self.__model.stringList()[:]
+    
+    def setListWhatsThis(self, txt):
+        """
+        Public method to set a what's that help text for the string list.
+        
+        @param txt help text to be set (string)
+        """
+        self.stringList.setWhatsThis(txt)
+    
+    def setDefaultVisible(self, visible):
+        """
+        Public method to show or hide the default button.
+        
+        @param visible flag indicating the visibility of the default button
+        @type bool
+        """
+        self.defaultButton.setVisible(visible)
+    
+    def setAddVisible(self, visible):
+        """
+        Public method to show or hide the add button.
+        
+        @param visible flag indicating the visibility of the add button
+        @type bool
+        """
+        self.addButton.setVisible(visible)
+        self.addLine.setVisible(visible)
+    
+    @pyqtSlot()
+    def on_addButton_clicked(self):
+        """
+        Private slot to add an entry to the list.
+        """
+        entry, ok = QInputDialog.getText(
+            self,
+            self.tr("Add Entry"),
+            self.tr("Enter the entry to add to the list:"),
+            QLineEdit.EchoMode.Normal)
+        if ok and entry != "" and entry not in self.__model.stringList():
+            self.__model.insertRow(self.__model.rowCount())
+            self.__model.setData(
+                self.__model.index(self.__model.rowCount() - 1), entry)
+            self.__model.sort(0)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricStringListEditWidget.ui	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EricStringListEditWidget</class>
+ <widget class="QWidget" name="EricStringListEditWidget">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>500</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string/>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <layout class="QGridLayout" name="gridLayout_4">
+     <property name="horizontalSpacing">
+      <number>0</number>
+     </property>
+     <item row="0" column="1">
+      <widget class="QLineEdit" name="searchEdit">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="minimumSize">
+        <size>
+         <width>300</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="toolTip">
+        <string>Enter search term for strings</string>
+       </property>
+       <property name="clearButtonEnabled">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="0">
+      <spacer name="horizontalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="0" column="0" rowspan="6">
+      <widget class="EricListView" name="stringList">
+       <property name="alternatingRowColors">
+        <bool>true</bool>
+       </property>
+       <property name="selectionMode">
+        <enum>QAbstractItemView::ExtendedSelection</enum>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QPushButton" name="addButton">
+       <property name="toolTip">
+        <string>Press to add an entry</string>
+       </property>
+       <property name="text">
+        <string>&amp;Add...</string>
+       </property>
+       <property name="autoDefault">
+        <bool>false</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="Line" name="addLine">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QPushButton" name="removeButton">
+       <property name="toolTip">
+        <string>Press to remove the selected entries</string>
+       </property>
+       <property name="text">
+        <string>&amp;Remove</string>
+       </property>
+       <property name="autoDefault">
+        <bool>false</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="1">
+      <widget class="QPushButton" name="removeAllButton">
+       <property name="toolTip">
+        <string>Press to remove all entries</string>
+       </property>
+       <property name="text">
+        <string>R&amp;emove All</string>
+       </property>
+       <property name="autoDefault">
+        <bool>false</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="1">
+      <spacer name="verticalSpacer_3">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item row="5" column="1">
+      <widget class="QPushButton" name="defaultButton">
+       <property name="toolTip">
+        <string>Press to set the default list of values</string>
+       </property>
+       <property name="text">
+        <string>&amp;Default</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>EricListView</class>
+   <extends>QListView</extends>
+   <header>E5Gui/EricListView.h</header>
+  </customwidget>
+ </customwidgets>
+ <tabstops>
+  <tabstop>stringList</tabstop>
+  <tabstop>searchEdit</tabstop>
+  <tabstop>addButton</tabstop>
+  <tabstop>removeButton</tabstop>
+  <tabstop>removeAllButton</tabstop>
+  <tabstop>defaultButton</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricTabWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,358 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2005 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a TabWidget class substituting QTabWidget.
+"""
+
+import contextlib
+
+from PyQt6.QtCore import pyqtSignal, Qt, QPoint, QMimeData
+from PyQt6.QtGui import QDrag
+from PyQt6.QtWidgets import QTabWidget, QTabBar, QApplication, QStyle
+
+from E5Gui.EricAnimatedLabel import EricAnimatedLabel
+
+
+class EricWheelTabBar(QTabBar):
+    """
+    Class implementing a tab bar class substituting QTabBar to support wheel
+    events.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        self._tabWidget = parent
+    
+    def wheelEvent(self, event):
+        """
+        Protected slot to support wheel events.
+        
+        @param event reference to the wheel event (QWheelEvent)
+        """
+        with contextlib.suppress(AttributeError):
+            delta = event.angleDelta().y()
+            if delta > 0:
+                self._tabWidget.prevTab()
+            elif delta < 0:
+                self._tabWidget.nextTab()
+            
+            event.accept()
+
+
+class EricDnDTabBar(EricWheelTabBar):
+    """
+    Class implementing a tab bar class substituting QTabBar.
+    
+    @signal tabMoveRequested(int, int) emitted to signal a tab move request
+        giving the old and new index position
+    """
+    tabMoveRequested = pyqtSignal(int, int)
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        EricWheelTabBar.__init__(self, parent)
+        self.setAcceptDrops(True)
+        
+        self.__dragStartPos = QPoint()
+    
+    def mousePressEvent(self, event):
+        """
+        Protected method to handle mouse press events.
+        
+        @param event reference to the mouse press event (QMouseEvent)
+        """
+        if event.button() == Qt.MouseButton.LeftButton:
+            self.__dragStartPos = QPoint(event.position().toPoint())
+        EricWheelTabBar.mousePressEvent(self, event)
+    
+    def mouseMoveEvent(self, event):
+        """
+        Protected method to handle mouse move events.
+        
+        @param event reference to the mouse move event (QMouseEvent)
+        """
+        if (
+            event.buttons() == Qt.MouseButton.LeftButton and
+            (event.position().toPoint() - self.__dragStartPos)
+            .manhattanLength() > QApplication.startDragDistance()
+        ):
+            drag = QDrag(self)
+            mimeData = QMimeData()
+            index = self.tabAt(event.position().toPoint())
+            mimeData.setText(self.tabText(index))
+            mimeData.setData("action", b"tab-reordering")
+            mimeData.setData("tabbar-id", str(id(self)).encode("utf-8"))
+            drag.setMimeData(mimeData)
+            drag.exec()
+        EricWheelTabBar.mouseMoveEvent(self, event)
+    
+    def dragEnterEvent(self, event):
+        """
+        Protected method to handle drag enter events.
+        
+        @param event reference to the drag enter event (QDragEnterEvent)
+        """
+        mimeData = event.mimeData()
+        formats = mimeData.formats()
+        if (
+            "action" in formats and
+            mimeData.data("action") == b"tab-reordering" and
+            "tabbar-id" in formats and
+            int(mimeData.data("tabbar-id")) == id(self)
+        ):
+            event.acceptProposedAction()
+        EricWheelTabBar.dragEnterEvent(self, event)
+    
+    def dropEvent(self, event):
+        """
+        Protected method to handle drop events.
+        
+        @param event reference to the drop event (QDropEvent)
+        """
+        fromIndex = self.tabAt(self.__dragStartPos)
+        toIndex = self.tabAt(event.position().toPoint())
+        if fromIndex != toIndex:
+            self.tabMoveRequested.emit(fromIndex, toIndex)
+            event.acceptProposedAction()
+        EricWheelTabBar.dropEvent(self, event)
+
+
+class EricTabWidget(QTabWidget):
+    """
+    Class implementing a tab widget class substituting QTabWidget.
+    
+    It provides slots to show the previous and next tab and give
+    them the input focus and it allows to have a context menu for the tabs.
+    
+    @signal customTabContextMenuRequested(const QPoint & point, int index)
+        emitted when a context menu for a tab is requested
+    """
+    customTabContextMenuRequested = pyqtSignal(QPoint, int)
+    
+    def __init__(self, parent=None, dnd=False):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        @param dnd flag indicating the support for Drag & Drop (boolean)
+        """
+        super().__init__(parent)
+        
+        if dnd:
+            if not hasattr(self, 'setMovable'):
+                self.__tabBar = EricDnDTabBar(self)
+                self.__tabBar.tabMoveRequested.connect(self.moveTab)
+                self.setTabBar(self.__tabBar)
+            else:
+                self.__tabBar = EricWheelTabBar(self)
+                self.setTabBar(self.__tabBar)
+                self.setMovable(True)
+        else:
+            self.__tabBar = EricWheelTabBar(self)
+            self.setTabBar(self.__tabBar)
+        
+        self.__lastCurrentIndex = -1
+        self.__currentIndex = -1
+        self.currentChanged.connect(self.__currentChanged)
+    
+    def setCustomTabBar(self, dnd, tabBar):
+        """
+        Public method to set a custom tab bar.
+        
+        @param dnd flag indicating the support for Drag & Drop (boolean)
+        @param tabBar reference to the tab bar to set (QTabBar)
+        """
+        self.__tabBar = tabBar
+        self.setTabBar(self.__tabBar)
+        if dnd:
+            if isinstance(tabBar, EricDnDTabBar):
+                self.__tabBar.tabMoveRequested.connect(self.moveTab)
+            else:
+                self.setMovable(True)
+    
+    def __currentChanged(self, index):
+        """
+        Private slot to handle the currentChanged signal.
+        
+        @param index index of the current tab
+        """
+        if index == -1:
+            self.__lastCurrentIndex = -1
+        else:
+            self.__lastCurrentIndex = self.__currentIndex
+        self.__currentIndex = index
+        
+    def switchTab(self):
+        """
+        Public slot used to switch between the current and the previous
+        current tab.
+        """
+        if self.__lastCurrentIndex == -1 or self.__currentIndex == -1:
+            return
+        
+        self.setCurrentIndex(self.__lastCurrentIndex)
+        self.currentWidget().setFocus()
+        
+    def nextTab(self):
+        """
+        Public slot used to show the next tab.
+        """
+        ind = self.currentIndex() + 1
+        if ind == self.count():
+            ind = 0
+            
+        self.setCurrentIndex(ind)
+        self.currentWidget().setFocus()
+
+    def prevTab(self):
+        """
+        Public slot used to show the previous tab.
+        """
+        ind = self.currentIndex() - 1
+        if ind == -1:
+            ind = self.count() - 1
+            
+        self.setCurrentIndex(ind)
+        self.currentWidget().setFocus()
+
+    def setTabContextMenuPolicy(self, policy):
+        """
+        Public method to set the context menu policy of the tab.
+        
+        @param policy context menu policy to set (Qt.ContextMenuPolicy)
+        """
+        self.tabBar().setContextMenuPolicy(policy)
+        if policy == Qt.ContextMenuPolicy.CustomContextMenu:
+            self.tabBar().customContextMenuRequested.connect(
+                self.__handleTabCustomContextMenuRequested)
+        else:
+            self.tabBar().customContextMenuRequested.disconnect(
+                self.__handleTabCustomContextMenuRequested)
+
+    def __handleTabCustomContextMenuRequested(self, point):
+        """
+        Private slot to handle the context menu request for the tabbar.
+        
+        @param point point the context menu was requested (QPoint)
+        """
+        _tabbar = self.tabBar()
+        for index in range(_tabbar.count()):
+            rect = _tabbar.tabRect(index)
+            if rect.contains(point):
+                self.customTabContextMenuRequested.emit(
+                    _tabbar.mapToParent(point), index)
+                return
+        
+        self.customTabContextMenuRequested.emit(_tabbar.mapToParent(point), -1)
+    
+    def selectTab(self, pos):
+        """
+        Public method to get the index of a tab given a position.
+        
+        @param pos position determining the tab index (QPoint)
+        @return index of the tab (integer)
+        """
+        _tabbar = self.tabBar()
+        for index in range(_tabbar.count()):
+            rect = _tabbar.tabRect(index)
+            if rect.contains(pos):
+                return index
+        
+        return -1
+
+    def moveTab(self, curIndex, newIndex):
+        """
+        Public method to move a tab to a new index.
+        
+        @param curIndex index of tab to be moved (integer)
+        @param newIndex index the tab should be moved to (integer)
+        """
+        # step 1: save the tab data of tab to be moved
+        toolTip = self.tabToolTip(curIndex)
+        text = self.tabText(curIndex)
+        icon = self.tabIcon(curIndex)
+        whatsThis = self.tabWhatsThis(curIndex)
+        widget = self.widget(curIndex)
+        curWidget = self.currentWidget()
+        
+        # step 2: move the tab
+        self.removeTab(curIndex)
+        self.insertTab(newIndex, widget, icon, text)
+        
+        # step 3: set the tab data again
+        self.setTabToolTip(newIndex, toolTip)
+        self.setTabWhatsThis(newIndex, whatsThis)
+        
+        # step 4: set current widget
+        self.setCurrentWidget(curWidget)
+    
+    def __freeSide(self):
+        """
+        Private method to determine the free side of a tab.
+        
+        @return free side (QTabBar.ButtonPosition)
+        """
+        side = self.__tabBar.style().styleHint(
+            QStyle.StyleHint.SH_TabBar_CloseButtonPosition,
+            None, None, None)
+        side = (
+            QTabBar.ButtonPosition.RightSide
+            if side == QTabBar.ButtonPosition.LeftSide else
+            QTabBar.ButtonPosition.LeftSide
+        )
+        return side
+    
+    def animationLabel(self, index, animationFile, interval=100):
+        """
+        Public slot to set an animated icon.
+        
+        @param index tab index
+        @type int
+        @param animationFile name of the file containing the animation
+        @type str
+        @param interval interval in milliseconds between animation frames
+        @type int
+        @return reference to the created label
+        @rtype EricAnimatedLabel
+        """
+        if index == -1:
+            return None
+        
+        if hasattr(self.__tabBar, 'setTabButton'):
+            side = self.__freeSide()
+            animation = EricAnimatedLabel(
+                self, animationFile=animationFile, interval=interval)
+            self.__tabBar.setTabButton(index, side, None)
+            self.__tabBar.setTabButton(index, side, animation)
+            animation.start()
+            return animation
+        else:
+            return None
+    
+    def resetAnimation(self, index):
+        """
+        Public slot to reset an animated icon.
+        
+        @param index tab index (integer)
+        """
+        if index == -1:
+            return
+        
+        if hasattr(self.__tabBar, 'tabButton'):
+            side = self.__freeSide()
+            animation = self.__tabBar.tabButton(index, side)
+            if animation is not None:
+                animation.stop()
+                self.__tabBar.setTabButton(index, side, None)
+                del animation
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricTableView.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing specialized table views.
+"""
+
+from PyQt6.QtCore import Qt, QItemSelectionModel
+from PyQt6.QtWidgets import QTableView
+
+
+class EricTableView(QTableView):
+    """
+    Class implementing a table view supporting removal of entries.
+    """
+    def keyPressEvent(self, evt):
+        """
+        Protected method implementing special key handling.
+        
+        @param evt reference to the event (QKeyEvent)
+        """
+        if (
+            evt.key() in [Qt.Key.Key_Delete, Qt.Key.Key_Backspace] and
+            self.model() is not None
+        ):
+            self.removeSelected()
+            evt.setAccepted(True)
+        else:
+            super().keyPressEvent(evt)
+    
+    def removeSelected(self):
+        """
+        Public method to remove the selected entries.
+        """
+        if self.model() is None or self.selectionModel() is None:
+            # no models available
+            return
+        
+        row = 0
+        selectedRows = self.selectionModel().selectedRows()
+        for selectedRow in reversed(selectedRows):
+            row = selectedRow.row()
+            self.model().removeRow(row, self.rootIndex())
+        
+        idx = self.model().index(row, 0, self.rootIndex())
+        if not idx.isValid():
+            idx = self.model().index(row - 1, 0, self.rootIndex())
+        self.selectionModel().select(
+            idx,
+            QItemSelectionModel.SelectionFlag.SelectCurrent |
+            QItemSelectionModel.SelectionFlag.Rows)
+        self.setCurrentIndex(idx)
+    
+    def removeAll(self):
+        """
+        Public method to clear the view.
+        """
+        if self.model() is not None:
+            self.model().removeRows(0, self.model().rowCount(self.rootIndex()),
+                                    self.rootIndex())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricTextEditSearchWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,378 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a horizontal search widget for QTextEdit.
+"""
+
+import enum
+
+from PyQt6.QtCore import pyqtSlot, Qt, QMetaObject, QSize
+from PyQt6.QtGui import QPalette, QBrush, QColor, QTextDocument, QTextCursor
+from PyQt6.QtWidgets import (
+    QWidget, QVBoxLayout, QHBoxLayout, QLabel, QComboBox, QCheckBox,
+    QToolButton, QSizePolicy
+)
+
+import UI.PixmapCache
+
+
+class EricTextEditType(enum.Enum):
+    """
+    Class defining the supported text edit types.
+    """
+    UNKNOWN = 0
+    QTEXTEDIT = 1
+    QTEXTBROWSER = 2
+    QWEBENGINEVIEW = 3
+
+
+class EricTextEditSearchWidget(QWidget):
+    """
+    Class implementing a horizontal search widget for QTextEdit.
+    """
+    def __init__(self, parent=None, widthForHeight=True):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        @param widthForHeight flag indicating to prefer width for height.
+            If this parameter is False, some widgets are shown in a third
+            line.
+        @type bool
+        """
+        super().__init__(parent)
+        self.__setupUi(widthForHeight)
+        
+        self.__textedit = None
+        self.__texteditType = EricTextEditType.UNKNOWN
+        self.__findBackwards = True
+        
+        self.__defaultBaseColor = (
+            self.findtextCombo.lineEdit().palette().color(
+                QPalette.ColorRole.Base)
+        )
+        self.__defaultTextColor = (
+            self.findtextCombo.lineEdit().palette().color(
+                QPalette.ColorRole.Text)
+        )
+        
+        self.findHistory = []
+        
+        self.findtextCombo.setCompleter(None)
+        self.findtextCombo.lineEdit().returnPressed.connect(
+            self.__findByReturnPressed)
+        
+        self.__setSearchButtons(False)
+        self.infoLabel.hide()
+        
+        self.setFocusProxy(self.findtextCombo)
+    
+    def __setupUi(self, widthForHeight):
+        """
+        Private method to generate the UI.
+        
+        @param widthForHeight flag indicating to prefer width for height
+        @type bool
+        """
+        self.setObjectName("EricTextEditSearchWidget")
+        
+        self.verticalLayout = QVBoxLayout(self)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+        
+        # row 1 of widgets
+        self.horizontalLayout1 = QHBoxLayout()
+        self.horizontalLayout1.setObjectName("horizontalLayout1")
+        
+        self.label = QLabel(self)
+        self.label.setObjectName("label")
+        self.label.setText(self.tr("Find:"))
+        self.horizontalLayout1.addWidget(self.label)
+        
+        self.findtextCombo = QComboBox(self)
+        self.findtextCombo.setEditable(True)
+        self.findtextCombo.lineEdit().setClearButtonEnabled(True)
+        sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding,
+                                 QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(
+            self.findtextCombo.sizePolicy().hasHeightForWidth())
+        self.findtextCombo.setSizePolicy(sizePolicy)
+        self.findtextCombo.setMinimumSize(QSize(100, 0))
+        self.findtextCombo.setEditable(True)
+        self.findtextCombo.setInsertPolicy(QComboBox.InsertPolicy.InsertAtTop)
+        self.findtextCombo.setDuplicatesEnabled(False)
+        self.findtextCombo.setObjectName("findtextCombo")
+        self.horizontalLayout1.addWidget(self.findtextCombo)
+        
+        # row 2 (maybe) of widgets
+        self.horizontalLayout2 = QHBoxLayout()
+        self.horizontalLayout2.setObjectName("horizontalLayout2")
+        
+        self.caseCheckBox = QCheckBox(self)
+        self.caseCheckBox.setObjectName("caseCheckBox")
+        self.caseCheckBox.setText(self.tr("Match case"))
+        self.horizontalLayout2.addWidget(self.caseCheckBox)
+        
+        self.wordCheckBox = QCheckBox(self)
+        self.wordCheckBox.setObjectName("wordCheckBox")
+        self.wordCheckBox.setText(self.tr("Whole word"))
+        self.horizontalLayout2.addWidget(self.wordCheckBox)
+        
+        # layout for the navigation buttons
+        self.horizontalLayout3 = QHBoxLayout()
+        self.horizontalLayout3.setSpacing(0)
+        self.horizontalLayout3.setObjectName("horizontalLayout3")
+        
+        self.findPrevButton = QToolButton(self)
+        self.findPrevButton.setObjectName("findPrevButton")
+        self.findPrevButton.setToolTip(self.tr(
+            "Press to find the previous occurrence"))
+        self.findPrevButton.setIcon(UI.PixmapCache.getIcon("1leftarrow"))
+        self.horizontalLayout3.addWidget(self.findPrevButton)
+        
+        self.findNextButton = QToolButton(self)
+        self.findNextButton.setObjectName("findNextButton")
+        self.findNextButton.setToolTip(self.tr(
+            "Press to find the next occurrence"))
+        self.findNextButton.setIcon(UI.PixmapCache.getIcon("1rightarrow"))
+        self.horizontalLayout3.addWidget(self.findNextButton)
+        
+        self.horizontalLayout2.addLayout(self.horizontalLayout3)
+        
+        # info label (in row 2 or 3)
+        self.infoLabel = QLabel(self)
+        self.infoLabel.setText("")
+        self.infoLabel.setObjectName("infoLabel")
+        
+        # place everything together
+        self.verticalLayout.addLayout(self.horizontalLayout1)
+        self.__addWidthForHeightLayout(widthForHeight)
+        self.verticalLayout.addWidget(self.infoLabel)
+        
+        QMetaObject.connectSlotsByName(self)
+        
+        self.setTabOrder(self.findtextCombo, self.caseCheckBox)
+        self.setTabOrder(self.caseCheckBox, self.wordCheckBox)
+        self.setTabOrder(self.wordCheckBox, self.findPrevButton)
+        self.setTabOrder(self.findPrevButton, self.findNextButton)
+    
+    def setWidthForHeight(self, widthForHeight):
+        """
+        Public method to set the 'width for height'.
+        
+        @param widthForHeight flag indicating to prefer width
+        @type bool
+        """
+        if self.__widthForHeight:
+            self.horizontalLayout1.takeAt(self.__widthForHeightLayoutIndex)
+        else:
+            self.verticalLayout.takeAt(self.__widthForHeightLayoutIndex)
+        self.__addWidthForHeightLayout(widthForHeight)
+    
+    def __addWidthForHeightLayout(self, widthForHeight):
+        """
+        Private method to set the middle part of the layout.
+        
+        @param widthForHeight flag indicating to prefer width
+        @type bool
+        """
+        if widthForHeight:
+            self.horizontalLayout1.addLayout(self.horizontalLayout2)
+            self.__widthForHeightLayoutIndex = 2
+        else:
+            self.verticalLayout.insertLayout(1, self.horizontalLayout2)
+            self.__widthForHeightLayoutIndex = 1
+        
+        self.__widthForHeight = widthForHeight
+    
+    def attachTextEdit(self, textedit, editType=EricTextEditType.QTEXTEDIT):
+        """
+        Public method to attach a QTextEdit widget.
+        
+        @param textedit reference to the edit widget to be attached
+        @type QTextEdit, QWebEngineView or QWebView
+        @param editType type of the attached edit widget
+        @type EricTextEditType
+        """
+        self.__textedit = textedit
+        self.__texteditType = editType
+        
+        self.wordCheckBox.setVisible(editType == "QTextEdit")
+    
+    def keyPressEvent(self, event):
+        """
+        Protected slot to handle key press events.
+        
+        @param event reference to the key press event (QKeyEvent)
+        """
+        if self.__textedit and event.key() == Qt.Key.Key_Escape:
+            self.__textedit.setFocus(Qt.FocusReason.ActiveWindowFocusReason)
+            event.accept()
+    
+    @pyqtSlot(str)
+    def on_findtextCombo_editTextChanged(self, txt):
+        """
+        Private slot to enable/disable the find buttons.
+        
+        @param txt text of the combobox (string)
+        """
+        self.__setSearchButtons(txt != "")
+        
+        self.infoLabel.hide()
+        self.__setFindtextComboBackground(False)
+    
+    def __setSearchButtons(self, enabled):
+        """
+        Private slot to set the state of the search buttons.
+        
+        @param enabled flag indicating the state (boolean)
+        """
+        self.findPrevButton.setEnabled(enabled)
+        self.findNextButton.setEnabled(enabled)
+    
+    def __findByReturnPressed(self):
+        """
+        Private slot to handle the returnPressed signal of the findtext
+        combobox.
+        """
+        self.__find(self.__findBackwards)
+    
+    @pyqtSlot()
+    def on_findPrevButton_clicked(self):
+        """
+        Private slot to find the previous occurrence.
+        """
+        self.__find(True)
+    
+    @pyqtSlot()
+    def on_findNextButton_clicked(self):
+        """
+        Private slot to find the next occurrence.
+        """
+        self.__find(False)
+    
+    def __find(self, backwards):
+        """
+        Private method to search the associated text edit.
+        
+        @param backwards flag indicating a backwards search (boolean)
+        """
+        if not self.__textedit:
+            return
+        
+        self.infoLabel.clear()
+        self.infoLabel.hide()
+        self.__setFindtextComboBackground(False)
+        
+        txt = self.findtextCombo.currentText()
+        if not txt:
+            return
+        self.__findBackwards = backwards
+        
+        # This moves any previous occurrence of this statement to the head
+        # of the list and updates the combobox
+        if txt in self.findHistory:
+            self.findHistory.remove(txt)
+        self.findHistory.insert(0, txt)
+        self.findtextCombo.clear()
+        self.findtextCombo.addItems(self.findHistory)
+        
+        if self.__texteditType in (
+            EricTextEditType.QTEXTBROWSER, EricTextEditType.QTEXTEDIT
+        ):
+            ok = self.__findPrevNextQTextEdit(backwards)
+            self.__findNextPrevCallback(ok)
+        elif self.__texteditType == EricTextEditType.QWEBENGINEVIEW:
+            self.__findPrevNextQWebEngineView(backwards)
+    
+    def __findPrevNextQTextEdit(self, backwards):
+        """
+        Private method to to search the associated edit widget of
+        type QTextEdit.
+        
+        @param backwards flag indicating a backwards search
+        @type bool
+        @return flag indicating the search result
+        @rtype bool
+        """
+        flags = (
+            QTextDocument.FindFlag.FindBackward
+            if backwards else
+            QTextDocument.FindFlag(0)
+        )
+        if self.caseCheckBox.isChecked():
+            flags |= QTextDocument.FindFlag.FindCaseSensitively
+        if self.wordCheckBox.isChecked():
+            flags |= QTextDocument.FindFlag.FindWholeWords
+        
+        ok = self.__textedit.find(self.findtextCombo.currentText(), flags)
+        if not ok:
+            # wrap around once
+            cursor = self.__textedit.textCursor()
+            if backwards:
+                moveOp = QTextCursor.MoveOperation.End
+                # move to end of document
+            else:
+                moveOp = QTextCursor.MoveOperation.Start
+                # move to start of document
+            cursor.movePosition(moveOp)
+            self.__textedit.setTextCursor(cursor)
+            ok = self.__textedit.find(self.findtextCombo.currentText(), flags)
+        
+        return ok
+    
+    def __findPrevNextQWebEngineView(self, backwards):
+        """
+        Private method to to search the associated edit widget of
+        type QWebEngineView.
+        
+        @param backwards flag indicating a backwards search
+        @type bool
+        """
+        from PyQt6.QtWebEngineWidgets import QWebEnginePage
+        
+        findFlags = QWebEnginePage.FindFlag(0)
+        if self.caseCheckBox.isChecked():
+            findFlags |= QWebEnginePage.FindFlag.FindCaseSensitively
+        if backwards:
+            findFlags |= QWebEnginePage.FindFlag.FindBackward
+        self.__textedit.findText(self.findtextCombo.currentText(),
+                                 findFlags, self.__findNextPrevCallback)
+    
+    def __findNextPrevCallback(self, found):
+        """
+        Private method to process the result of the last search.
+        
+        @param found flag indicating if the last search succeeded
+        @type bool
+        """
+        if not found:
+            txt = self.findtextCombo.currentText()
+            self.infoLabel.setText(
+                self.tr("'{0}' was not found.").format(txt))
+            self.infoLabel.show()
+            self.__setFindtextComboBackground(True)
+    
+    def __setFindtextComboBackground(self, error):
+        """
+        Private slot to change the findtext combo background to indicate
+        errors.
+        
+        @param error flag indicating an error condition (boolean)
+        """
+        le = self.findtextCombo.lineEdit()
+        p = le.palette()
+        if error:
+            p.setBrush(QPalette.ColorRole.Base, QBrush(QColor("#FF6666")))
+            p.setBrush(QPalette.ColorRole.Text, QBrush(QColor("#000000")))
+        else:
+            p.setBrush(QPalette.ColorRole.Base, self.__defaultBaseColor)
+            p.setBrush(QPalette.ColorRole.Text, self.__defaultTextColor)
+        le.setPalette(p)
+        le.update()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricTextInputDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,141 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2018 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to enter some text.
+"""
+
+from PyQt6.QtWidgets import (
+    QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QLineEdit
+)
+
+
+class EricTextInputDialog(QDialog):
+    """
+    Class implementing a dialog to enter some text.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent)
+        
+        self.setMaximumWidth(600)
+        
+        self.__layout = QVBoxLayout(self)
+        
+        self.__label = QLabel(self)
+        self.__layout.addWidget(self.__label)
+        
+        self.__lineEdit = QLineEdit(self)
+        self.__lineEdit.setClearButtonEnabled(True)
+        self.__layout.addWidget(self.__lineEdit)
+        
+        self.__buttonBox = QDialogButtonBox(
+            QDialogButtonBox.StandardButton.Ok |
+            QDialogButtonBox.StandardButton.Cancel, self)
+        self.__layout.addWidget(self.__buttonBox)
+        
+        self.__buttonBox.accepted.connect(self.accept)
+        self.__buttonBox.rejected.connect(self.reject)
+        
+        msh = self.minimumSizeHint()
+        self.resize(max(self.width(), msh.width()), msh.height())
+    
+    def setTextEchoMode(self, echoMode):
+        """
+        Public method to set the echo mode of the line edit.
+        
+        @param echoMode echo mode of the line edit
+        @type QLineEdit.EchoMode
+        """
+        self.__lineEdit.setEchoMode(echoMode)
+    
+    def textEchoMode(self):
+        """
+        Public method to get the current echo mode of the line edit.
+        
+        @return echo mode of the line edit
+        @rtype QLineEdit.EchoMode
+        """
+        return self.__lineEdit.echoMode()
+    
+    def setTextValue(self, text):
+        """
+        Public method to set the text of the line edit.
+        
+        @param text text for the line edit
+        @type str
+        """
+        self.__lineEdit.setText(text)
+    
+    def textValue(self):
+        """
+        Public method to get the text of the line edit.
+        
+        @return text of the line edit
+        @rtype str
+        """
+        return self.__lineEdit.text()
+    
+    def setLabelText(self, text):
+        """
+        Public method to set the label text.
+        
+        @param text label text
+        @type str
+        """
+        self.__label.setText(text)
+        
+        msh = self.minimumSizeHint()
+        labelSizeHint = self.__label.sizeHint()
+        self.resize(max(self.width(), msh.width(), labelSizeHint.width()),
+                    msh.height())
+    
+    def labelText(self):
+        """
+        Public method to get the current label text.
+        
+        @return current label text
+        @rtype str
+        """
+        return self.label.text()
+
+
+def getText(parent, title, label, mode=QLineEdit.EchoMode.Normal, text="",
+            minimumWidth=300):
+    """
+    Function to get create a dialog to enter some text and return it.
+    
+    @param parent reference to the parent widget
+    @type QWidget
+    @param title title of the dialog
+    @type str
+    @param label label of the dialog
+    @type str
+    @param mode echo mode of the line edit
+    @type QLineEdit.EchoMode
+    @param text initial text of the line edit
+    @type str
+    @param minimumWidth minimum width of the dialog
+    @type int
+    @return tuple containing a flag indicating the dialog was accepted and the
+        entered text
+    @rtype tuple of (bool, str)
+    """
+    dlg = EricTextInputDialog(parent)
+    dlg.setWindowTitle(title)
+    dlg.setLabelText(label)
+    dlg.setTextEchoMode(mode)
+    dlg.setTextValue(text)
+    dlg.setMinimumWidth(minimumWidth)
+    
+    if dlg.exec() == QDialog.DialogCode.Accepted:
+        return True, dlg.textValue()
+    else:
+        return False, ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricTextSpinBox.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a spinbox with textual entries.
+"""
+
+from PyQt6.QtWidgets import QSpinBox
+
+
+class EricTextSpinBox(QSpinBox):
+    """
+    Class implementing a spinbox with textual entries.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        self.__items = []
+        
+        self.setMinimum(0)
+        self.setMaximum(0)
+    
+    def addItem(self, txt, data=None):
+        """
+        Public method to add an item with item data.
+        
+        @param txt text to be shown (string)
+        @param data associated data
+        """
+        self.__items.append((txt, data))
+        self.setMaximum(len(self.__items) - 1)
+    
+    def itemData(self, index):
+        """
+        Public method to retrieve the data associated with an item.
+        
+        @param index index of the item (integer)
+        @return associated data
+        """
+        try:
+            return self.__items[index][1]
+        except IndexError:
+            return None
+    
+    def currentIndex(self):
+        """
+        Public method to retrieve the current index.
+        
+        @return current index (integer)
+        """
+        return self.value()
+    
+    def textFromValue(self, value):
+        """
+        Public method to convert a value to text.
+        
+        @param value value to be converted (integer)
+        @return text for the given value (string)
+        """
+        try:
+            return self.__items[value][0]
+        except IndexError:
+            return ""
+    
+    def valueFromText(self, txt):
+        """
+        Public method to convert a text to a value.
+        
+        @param txt text to be converted (string)
+        @return value for the given text (integer)
+        """
+        for index in range(len(self.__items)):
+            if self.__items[index][0] == txt:
+                return index
+        
+        return self.minimum()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricToolBarDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,525 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2008 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a toolbar configuration dialog.
+"""
+
+from PyQt6.QtCore import pyqtSlot, Qt
+from PyQt6.QtGui import QColor
+from PyQt6.QtWidgets import (
+    QDialog, QDialogButtonBox, QTreeWidgetItem, QInputDialog, QLineEdit,
+    QListWidgetItem, QAbstractButton
+)
+
+from E5Gui import EricMessageBox
+
+from .Ui_EricToolBarDialog import Ui_EricToolBarDialog
+
+import UI.PixmapCache
+
+
+class EricToolBarItem:
+    """
+    Class storing data belonging to a toolbar entry of the toolbar dialog.
+    """
+    def __init__(self, toolBarId, actionIDs, default):
+        """
+        Constructor
+        
+        @param toolBarId id of the toolbar object (integer)
+        @param actionIDs list of action IDs belonging to the toolbar
+            (list of integer)
+        @param default flag indicating a default toolbar (boolean)
+        """
+        self.toolBarId = toolBarId
+        self.actionIDs = actionIDs[:]
+        self.isDefault = default
+        self.title = ""
+        self.isChanged = False
+    
+
+class EricToolBarDialog(QDialog, Ui_EricToolBarDialog):
+    """
+    Class implementing a toolbar configuration dialog.
+    """
+    ActionIdRole = Qt.ItemDataRole.UserRole
+    WidgetActionRole = Qt.ItemDataRole.UserRole + 1
+    
+    def __init__(self, toolBarManager, parent=None):
+        """
+        Constructor
+        
+        @param toolBarManager reference to a toolbar manager object
+            (EricToolBarManager)
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        self.__manager = toolBarManager
+        self.__toolbarItems = {}
+        # maps toolbar item IDs to toolbar items
+        self.__currentToolBarItem = None
+        self.__removedToolBarIDs = []
+        # remember custom toolbars to be deleted
+        
+        self.__widgetActionToToolBarItemID = {}
+        # maps widget action IDs to toolbar item IDs
+        self.__toolBarItemToWidgetActionID = {}
+        # maps toolbar item IDs to widget action IDs
+        
+        self.upButton.setIcon(UI.PixmapCache.getIcon("1uparrow"))
+        self.downButton.setIcon(UI.PixmapCache.getIcon("1downarrow"))
+        self.leftButton.setIcon(UI.PixmapCache.getIcon("1leftarrow"))
+        self.rightButton.setIcon(UI.PixmapCache.getIcon("1rightarrow"))
+        
+        self.__restoreDefaultsButton = self.buttonBox.button(
+            QDialogButtonBox.StandardButton.RestoreDefaults)
+        self.__resetButton = self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Reset)
+        
+        self.actionsTree.header().hide()
+        self.__separatorText = self.tr("--Separator--")
+        itm = QTreeWidgetItem(self.actionsTree, [self.__separatorText])
+        self.actionsTree.setCurrentItem(itm)
+        
+        for category in sorted(self.__manager.categories()):
+            categoryItem = QTreeWidgetItem(self.actionsTree, [category])
+            for action in self.__manager.categoryActions(category):
+                item = QTreeWidgetItem(categoryItem)
+                item.setText(0, action.text())
+                item.setIcon(0, action.icon())
+                item.setTextAlignment(
+                    0,
+                    Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignVCenter
+                )
+                item.setData(0, EricToolBarDialog.ActionIdRole, int(id(action)))
+                item.setData(0, EricToolBarDialog.WidgetActionRole, False)
+                if self.__manager.isWidgetAction(action):
+                    item.setData(0, EricToolBarDialog.WidgetActionRole, True)
+                    item.setData(0, Qt.ItemDataRole.ForegroundRole,
+                                 QColor(Qt.GlobalColor.blue))
+                    self.__widgetActionToToolBarItemID[id(action)] = None
+            categoryItem.setExpanded(True)
+        
+        for tbID, actions in list(self.__manager.toolBarsActions().items()):
+            tb = self.__manager.toolBarById(tbID)
+            default = self.__manager.isDefaultToolBar(tb)
+            tbItem = EricToolBarItem(tbID, [], default)
+            self.__toolbarItems[id(tbItem)] = tbItem
+            self.__toolBarItemToWidgetActionID[id(tbItem)] = []
+            actionIDs = []
+            for action in actions:
+                if action is None:
+                    actionIDs.append(None)
+                else:
+                    aID = id(action)
+                    actionIDs.append(aID)
+                    if aID in self.__widgetActionToToolBarItemID:
+                        self.__widgetActionToToolBarItemID[aID] = id(tbItem)
+                        self.__toolBarItemToWidgetActionID[id(tbItem)].append(
+                            aID)
+            tbItem.actionIDs = actionIDs
+            self.toolbarComboBox.addItem(tb.windowTitle(), int(id(tbItem)))
+            if default:
+                self.toolbarComboBox.setItemData(
+                    self.toolbarComboBox.count() - 1,
+                    QColor(Qt.GlobalColor.darkGreen),
+                    Qt.ItemDataRole.ForegroundRole)
+        self.toolbarComboBox.model().sort(0)
+        
+        self.toolbarComboBox.currentIndexChanged[int].connect(
+            self.__toolbarComboBox_currentIndexChanged)
+        self.toolbarComboBox.setCurrentIndex(0)
+    
+    @pyqtSlot()
+    def on_newButton_clicked(self):
+        """
+        Private slot to create a new toolbar.
+        """
+        name, ok = QInputDialog.getText(
+            self,
+            self.tr("New Toolbar"),
+            self.tr("Toolbar Name:"),
+            QLineEdit.EchoMode.Normal)
+        if ok and name:
+            if self.toolbarComboBox.findText(name) != -1:
+                # toolbar with this name already exists
+                EricMessageBox.critical(
+                    self,
+                    self.tr("New Toolbar"),
+                    self.tr(
+                        """A toolbar with the name <b>{0}</b> already"""
+                        """ exists.""")
+                    .format(name))
+                return
+            
+            tbItem = EricToolBarItem(None, [], False)
+            tbItem.title = name
+            tbItem.isChanged = True
+            self.__toolbarItems[id(tbItem)] = tbItem
+            self.__toolBarItemToWidgetActionID[id(tbItem)] = []
+            self.toolbarComboBox.addItem(name, int(id(tbItem)))
+            self.toolbarComboBox.model().sort(0)
+            self.toolbarComboBox.setCurrentIndex(
+                self.toolbarComboBox.findText(name))
+    
+    @pyqtSlot()
+    def on_removeButton_clicked(self):
+        """
+        Private slot to remove a custom toolbar.
+        """
+        name = self.toolbarComboBox.currentText()
+        res = EricMessageBox.yesNo(
+            self,
+            self.tr("Remove Toolbar"),
+            self.tr(
+                """Should the toolbar <b>{0}</b> really be removed?""")
+            .format(name))
+        if res:
+            index = self.toolbarComboBox.currentIndex()
+            tbItemID = self.toolbarComboBox.itemData(index)
+            tbItem = self.__toolbarItems[tbItemID]
+            if (
+                tbItem.toolBarId is not None and
+                tbItem.toolBarId not in self.__removedToolBarIDs
+            ):
+                self.__removedToolBarIDs.append(tbItem.toolBarId)
+            del self.__toolbarItems[tbItemID]
+            for widgetActionID in self.__toolBarItemToWidgetActionID[tbItemID]:
+                self.__widgetActionToToolBarItemID[widgetActionID] = None
+            del self.__toolBarItemToWidgetActionID[tbItemID]
+            self.toolbarComboBox.removeItem(index)
+    
+    @pyqtSlot()
+    def on_renameButton_clicked(self):
+        """
+        Private slot to rename a custom toolbar.
+        """
+        oldName = self.toolbarComboBox.currentText()
+        newName, ok = QInputDialog.getText(
+            self,
+            self.tr("Rename Toolbar"),
+            self.tr("New Toolbar Name:"),
+            QLineEdit.EchoMode.Normal,
+            oldName)
+        if ok and newName:
+            if oldName == newName:
+                return
+            if self.toolbarComboBox.findText(newName) != -1:
+                # toolbar with this name already exists
+                EricMessageBox.critical(
+                    self,
+                    self.tr("Rename Toolbar"),
+                    self.tr(
+                        """A toolbar with the name <b>{0}</b> already"""
+                        """ exists.""")
+                    .format(newName))
+                return
+            index = self.toolbarComboBox.currentIndex()
+            self.toolbarComboBox.setItemText(index, newName)
+            tbItem = self.__toolbarItems[self.toolbarComboBox.itemData(index)]
+            tbItem.title = newName
+            tbItem.isChanged = True
+    
+    def __setupButtons(self):
+        """
+        Private slot to set the buttons state.
+        """
+        index = self.toolbarComboBox.currentIndex()
+        if index > -1:
+            itemID = self.toolbarComboBox.itemData(index)
+            self.__currentToolBarItem = self.__toolbarItems[itemID]
+            self.renameButton.setEnabled(
+                not self.__currentToolBarItem.isDefault)
+            self.removeButton.setEnabled(
+                not self.__currentToolBarItem.isDefault)
+            self.__restoreDefaultsButton.setEnabled(
+                self.__currentToolBarItem.isDefault)
+            self.__resetButton.setEnabled(
+                self.__currentToolBarItem.toolBarId is not None)
+        
+        row = self.toolbarActionsList.currentRow()
+        self.upButton.setEnabled(row > 0)
+        self.downButton.setEnabled(row < self.toolbarActionsList.count() - 1)
+        self.leftButton.setEnabled(self.toolbarActionsList.count() > 0)
+        rightEnable = (
+            self.actionsTree.currentItem().parent() is not None or
+            self.actionsTree.currentItem().text(0) == self.__separatorText
+        )
+        self.rightButton.setEnabled(rightEnable)
+    
+    @pyqtSlot(int)
+    def __toolbarComboBox_currentIndexChanged(self, index):
+        """
+        Private slot called upon a selection of the current toolbar.
+        
+        @param index index of the new current toolbar (integer)
+        """
+        itemID = self.toolbarComboBox.itemData(index)
+        self.__currentToolBarItem = self.__toolbarItems[itemID]
+        self.toolbarActionsList.clear()
+        for actionID in self.__currentToolBarItem.actionIDs:
+            item = QListWidgetItem(self.toolbarActionsList)
+            if actionID is None:
+                item.setText(self.__separatorText)
+            else:
+                action = self.__manager.actionById(actionID)
+                item.setText(action.text())
+                item.setIcon(action.icon())
+                item.setTextAlignment(Qt.AlignmentFlag.AlignLeft |
+                                      Qt.AlignmentFlag.AlignVCenter)
+                item.setData(EricToolBarDialog.ActionIdRole, int(id(action)))
+                item.setData(EricToolBarDialog.WidgetActionRole, False)
+                if self.__manager.isWidgetAction(action):
+                    item.setData(EricToolBarDialog.WidgetActionRole, True)
+                    item.setData(Qt.ItemDataRole.ForegroundRole,
+                                 QColor(Qt.GlobalColor.blue))
+        self.toolbarActionsList.setCurrentRow(0)
+        
+        self.__setupButtons()
+    
+    @pyqtSlot(QTreeWidgetItem, QTreeWidgetItem)
+    def on_actionsTree_currentItemChanged(self, current, previous):
+        """
+        Private slot called, when the currently selected action changes.
+        
+        @param current reference to the current item (QTreeWidgetItem)
+        @param previous reference to the previous current item
+            (QTreeWidgetItem)
+        """
+        self.__setupButtons()
+    
+    @pyqtSlot(QListWidgetItem, QListWidgetItem)
+    def on_toolbarActionsList_currentItemChanged(self, current, previous):
+        """
+        Private slot to handle a change of the current item.
+        
+        @param current reference to the current item (QListWidgetItem)
+        @param previous reference to the previous current item
+            (QListWidgetItem)
+        """
+        self.__setupButtons()
+    
+    @pyqtSlot()
+    def on_upButton_clicked(self):
+        """
+        Private slot used to move an action up in the list.
+        """
+        row = self.toolbarActionsList.currentRow()
+        if row == 0:
+            # we're already at the top
+            return
+        
+        actionID = self.__currentToolBarItem.actionIDs.pop(row)
+        self.__currentToolBarItem.actionIDs.insert(row - 1, actionID)
+        self.__currentToolBarItem.isChanged = True
+        itm = self.toolbarActionsList.takeItem(row)
+        self.toolbarActionsList.insertItem(row - 1, itm)
+        self.toolbarActionsList.setCurrentItem(itm)
+        self.__setupButtons()
+    
+    @pyqtSlot()
+    def on_downButton_clicked(self):
+        """
+        Private slot used to move an action down in the list.
+        """
+        row = self.toolbarActionsList.currentRow()
+        if row == self.toolbarActionsList.count() - 1:
+            # we're already at the end
+            return
+        
+        actionID = self.__currentToolBarItem.actionIDs.pop(row)
+        self.__currentToolBarItem.actionIDs.insert(row + 1, actionID)
+        self.__currentToolBarItem.isChanged = True
+        itm = self.toolbarActionsList.takeItem(row)
+        self.toolbarActionsList.insertItem(row + 1, itm)
+        self.toolbarActionsList.setCurrentItem(itm)
+        self.__setupButtons()
+    
+    @pyqtSlot()
+    def on_leftButton_clicked(self):
+        """
+        Private slot to delete an action from the list.
+        """
+        row = self.toolbarActionsList.currentRow()
+        actionID = self.__currentToolBarItem.actionIDs.pop(row)
+        self.__currentToolBarItem.isChanged = True
+        if actionID in self.__widgetActionToToolBarItemID:
+            self.__widgetActionToToolBarItemID[actionID] = None
+            self.__toolBarItemToWidgetActionID[
+                id(self.__currentToolBarItem)].remove(actionID)
+        itm = self.toolbarActionsList.takeItem(row)
+        del itm
+        self.toolbarActionsList.setCurrentRow(row)
+        self.__setupButtons()
+    
+    @pyqtSlot()
+    def on_rightButton_clicked(self):
+        """
+        Private slot to add an action to the list.
+        """
+        row = self.toolbarActionsList.currentRow() + 1
+            
+        item = QListWidgetItem()
+        if self.actionsTree.currentItem().text(0) == self.__separatorText:
+            item.setText(self.__separatorText)
+            actionID = None
+        else:
+            actionID = self.actionsTree.currentItem().data(
+                0, EricToolBarDialog.ActionIdRole)
+            action = self.__manager.actionById(actionID)
+            item.setText(action.text())
+            item.setIcon(action.icon())
+            item.setTextAlignment(Qt.AlignmentFlag.AlignLeft |
+                                  Qt.AlignmentFlag.AlignVCenter)
+            item.setData(EricToolBarDialog.ActionIdRole, int(id(action)))
+            item.setData(EricToolBarDialog.WidgetActionRole, False)
+            if self.__manager.isWidgetAction(action):
+                item.setData(EricToolBarDialog.WidgetActionRole, True)
+                item.setData(Qt.ItemDataRole.ForegroundRole,
+                             QColor(Qt.GlobalColor.blue))
+                oldTbItemID = self.__widgetActionToToolBarItemID[actionID]
+                if oldTbItemID is not None:
+                    self.__toolbarItems[oldTbItemID].actionIDs.remove(actionID)
+                    self.__toolbarItems[oldTbItemID].isChanged = True
+                    self.__toolBarItemToWidgetActionID[oldTbItemID].remove(
+                        actionID)
+                self.__widgetActionToToolBarItemID[actionID] = id(
+                    self.__currentToolBarItem)
+                self.__toolBarItemToWidgetActionID[
+                    id(self.__currentToolBarItem)].append(actionID)
+        self.toolbarActionsList.insertItem(row, item)
+        self.__currentToolBarItem.actionIDs.insert(row, actionID)
+        self.__currentToolBarItem.isChanged = True
+        self.toolbarActionsList.setCurrentRow(row)
+        self.__setupButtons()
+    
+    @pyqtSlot(QAbstractButton)
+    def on_buttonBox_clicked(self, button):
+        """
+        Private slot called, when a button of the button box was clicked.
+        
+        @param button reference to the button clicked (QAbstractButton)
+        """
+        if button == self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Cancel
+        ):
+            self.reject()
+        elif button == self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Apply
+        ):
+            self.__saveToolBars()
+            self.__setupButtons()
+        elif button == self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Ok
+        ):
+            self.__saveToolBars()
+            self.accept()
+        elif button == self.buttonBox.button(
+            QDialogButtonBox.StandardButton.Reset
+        ):
+            self.__resetCurrentToolbar()
+            self.__setupButtons()
+        elif button == self.buttonBox.button(
+            QDialogButtonBox.StandardButton.RestoreDefaults
+        ):
+            self.__restoreCurrentToolbarToDefault()
+            self.__setupButtons()
+    
+    def __saveToolBars(self):
+        """
+        Private method to save the configured toolbars.
+        
+        @exception RuntimeError raised to indicate an invalid action
+        """
+        # step 1: remove toolbars marked for deletion
+        for tbID in self.__removedToolBarIDs:
+            tb = self.__manager.toolBarById(tbID)
+            self.__manager.deleteToolBar(tb)
+        self.__removedToolBarIDs = []
+        
+        # step 2: save configured toolbars
+        for tbItem in list(self.__toolbarItems.values()):
+            if not tbItem.isChanged:
+                continue
+            
+            if tbItem.toolBarId is None:
+                # new custom toolbar
+                tb = self.__manager.createToolBar(tbItem.title)
+                tbItem.toolBarId = id(tb)
+            else:
+                tb = self.__manager.toolBarById(tbItem.toolBarId)
+                if not tbItem.isDefault and tbItem.title:
+                    self.__manager.renameToolBar(tb, tbItem.title)
+            
+            actions = []
+            for actionID in tbItem.actionIDs:
+                if actionID is None:
+                    actions.append(None)
+                else:
+                    action = self.__manager.actionById(actionID)
+                    if action is None:
+                        raise RuntimeError(
+                            "No such action, id: 0x{0:x}".format(actionID))
+                    actions.append(action)
+            self.__manager.setToolBar(tb, actions)
+            tbItem.isChanged = False
+    
+    def __restoreCurrentToolbar(self, actions):
+        """
+        Private methdo to restore the current toolbar to the given list of
+        actions.
+        
+        @param actions list of actions to set for the current toolbar
+        (list of QAction)
+        """
+        tbItemID = id(self.__currentToolBarItem)
+        for widgetActionID in self.__toolBarItemToWidgetActionID[tbItemID]:
+            self.__widgetActionToToolBarItemID[widgetActionID] = None
+        self.__toolBarItemToWidgetActionID[tbItemID] = []
+        self.__currentToolBarItem.actionIDs = []
+        
+        for action in actions:
+            if action is None:
+                self.__currentToolBarItem.actionIDs.append(None)
+            else:
+                actionID = id(action)
+                self.__currentToolBarItem.actionIDs.append(actionID)
+                if actionID in self.__widgetActionToToolBarItemID:
+                    oldTbItemID = self.__widgetActionToToolBarItemID[actionID]
+                    if oldTbItemID is not None:
+                        self.__toolbarItems[oldTbItemID].actionIDs.remove(
+                            actionID)
+                        self.__toolbarItems[oldTbItemID].isChanged = True
+                        self.__toolBarItemToWidgetActionID[oldTbItemID].remove(
+                            actionID)
+                    self.__widgetActionToToolBarItemID[actionID] = tbItemID
+                    self.__toolBarItemToWidgetActionID[tbItemID].append(
+                        actionID)
+        self.__toolbarComboBox_currentIndexChanged(
+            self.toolbarComboBox.currentIndex())
+    
+    def __resetCurrentToolbar(self):
+        """
+        Private method to revert all changes made to the current toolbar.
+        """
+        tbID = self.__currentToolBarItem.toolBarId
+        actions = self.__manager.toolBarActions(tbID)
+        self.__restoreCurrentToolbar(actions)
+        self.__currentToolBarItem.isChanged = False
+    
+    def __restoreCurrentToolbarToDefault(self):
+        """
+        Private method to set the current toolbar to its default configuration.
+        """
+        if not self.__currentToolBarItem.isDefault:
+            return
+        
+        tbID = self.__currentToolBarItem.toolBarId
+        actions = self.__manager.defaultToolBarActions(tbID)
+        self.__restoreCurrentToolbar(actions)
+        self.__currentToolBarItem.isChanged = True
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricToolBarDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EricToolBarDialog</class>
+ <widget class="QDialog" name="EricToolBarDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>600</width>
+    <height>500</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Configure Toolbars</string>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout">
+   <item>
+    <layout class="QHBoxLayout">
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>&amp;Toolbar:</string>
+       </property>
+       <property name="buddy">
+        <cstring>toolbarComboBox</cstring>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QComboBox" name="toolbarComboBox">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="toolTip">
+        <string>Select the toolbar to configure</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="newButton">
+       <property name="toolTip">
+        <string>Press to create a new toolbar</string>
+       </property>
+       <property name="text">
+        <string>&amp;New</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="removeButton">
+       <property name="toolTip">
+        <string>Press to remove the selected toolbar</string>
+       </property>
+       <property name="text">
+        <string>&amp;Remove</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="renameButton">
+       <property name="toolTip">
+        <string>Press to rename the selected toolbar</string>
+       </property>
+       <property name="text">
+        <string>R&amp;ename</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="Line" name="line">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QGridLayout">
+     <item row="0" column="0">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>Actions:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="2">
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>Current Toolbar Actions:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0" rowspan="3">
+      <widget class="QTreeWidget" name="actionsTree">
+       <property name="toolTip">
+        <string>Select the action to add to the current toolbar</string>
+       </property>
+       <property name="alternatingRowColors">
+        <bool>true</bool>
+       </property>
+       <property name="rootIsDecorated">
+        <bool>false</bool>
+       </property>
+       <column>
+        <property name="text">
+         <string/>
+        </property>
+       </column>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <spacer>
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item row="1" column="2" rowspan="3">
+      <widget class="QListWidget" name="toolbarActionsList">
+       <property name="toolTip">
+        <string>Select the action to work on</string>
+       </property>
+       <property name="whatsThis">
+        <string>&lt;b&gt;Current Toolbar Actions&lt;/b&gt;&lt;p&gt;This list shows the actions of the selected toolbar. Select an action and use the up or down button to change the order of actions or the left button to delete it. To add an action to the toolbar, select it in the list of available actions and press the right button.&lt;/p&gt;</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <layout class="QGridLayout">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <item row="0" column="1">
+        <widget class="QToolButton" name="upButton">
+         <property name="toolTip">
+          <string>Press to move the selected action up.</string>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="0">
+        <widget class="QToolButton" name="leftButton">
+         <property name="toolTip">
+          <string>Press to delete the selected action from the toolbar</string>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="2">
+        <widget class="QToolButton" name="rightButton">
+         <property name="toolTip">
+          <string>Press to add the selected action to the toolbar</string>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="1">
+        <widget class="QToolButton" name="downButton">
+         <property name="toolTip">
+          <string>Press to move the selected action down.</string>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item row="3" column="1">
+      <spacer>
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Reset|QDialogButtonBox::RestoreDefaults</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>toolbarComboBox</tabstop>
+  <tabstop>newButton</tabstop>
+  <tabstop>removeButton</tabstop>
+  <tabstop>renameButton</tabstop>
+  <tabstop>actionsTree</tabstop>
+  <tabstop>toolbarActionsList</tabstop>
+  <tabstop>upButton</tabstop>
+  <tabstop>downButton</tabstop>
+  <tabstop>rightButton</tabstop>
+  <tabstop>leftButton</tabstop>
+  <tabstop>buttonBox</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricToolBarManager.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,728 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2008 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a toolbar manager class.
+"""
+
+from PyQt6.QtCore import QObject, QByteArray, QDataStream, QIODevice
+from PyQt6.QtWidgets import QToolBar
+
+import Utilities
+
+
+class EricToolBarManager(QObject):
+    """
+    Class implementing a toolbar manager.
+    """
+    VersionMarker = 0xffff
+    ToolBarMarker = 0xfefe
+    CustomToolBarMarker = 0xfdfd
+    
+    def __init__(self, ui=None, parent=None):
+        """
+        Constructor
+        
+        @param ui reference to the user interface object (UI.UserInterface)
+        @param parent reference to the parent object (QObject)
+        """
+        super().__init__(parent)
+        
+        self.__mainWindow = None
+        self.__ui = ui
+        
+        self.__toolBars = {}
+        # maps toolbar IDs to actions
+        self.__toolBarsWithSeparators = {}
+        # maps toolbar IDs to actions incl. separators
+        self.__defaultToolBars = {}
+        # maps default toolbar IDs to actions
+        self.__customToolBars = []
+        # list of custom toolbars
+        self.__allToolBars = {}
+        # maps toolbar IDs to toolbars
+        
+        self.__categoryToActions = {}
+        # maps categories to actions
+        self.__actionToCategory = {}
+        # maps action IDs to categories
+        self.__allActions = {}
+        # maps action IDs to actions
+        self.__actionToToolBars = {}
+        # maps action IDs to toolbars
+        
+        self.__widgetActions = {}
+        # maps widget action IDs to toolbars
+        self.__allWidgetActions = {}
+        # maps widget action IDs to widget actions
+    
+    ######################################################
+    ## Private methods
+    ######################################################
+    
+    def __toolBarByName(self, name):
+        """
+        Private slot to get a toolbar by its object name.
+        
+        @param name object name of the toolbar (string)
+        @return reference to the toolbar (QToolBar)
+        """
+        for toolBar in list(self.__allToolBars.values()):
+            if toolBar.objectName() == name:
+                return toolBar
+        return None
+    
+    def __findAction(self, name):
+        """
+        Private method to find an action by name.
+        
+        @param name name of the action to search for (string)
+        @return reference to the action (QAction)
+        """
+        # check objectName() first
+        for action in list(self.__allActions.values()):
+            if action.objectName() == name:
+                return action
+        
+        # check text() next
+        for action in list(self.__allActions.values()):
+            if action.text() == name:
+                return action
+        
+        return None
+    
+    def __findDefaultToolBar(self, name):
+        """
+        Private method to find a default toolbar by name.
+        
+        @param name name of the default toolbar to search for (string)
+        @return reference to the default toolbar (QToolBar)
+        """
+        # check objectName() first
+        for tbID in self.__defaultToolBars:
+            tb = self.__allToolBars[tbID]
+            if tb.objectName() == name:
+                return tb
+        
+        # check windowTitle() next
+        for tbID in self.__defaultToolBars:
+            tb = self.__allToolBars[tbID]
+            if tb.windowTitle() == name:
+                return tb
+        
+        return None
+    
+    ######################################################
+    ## Public methods
+    ######################################################
+    
+    def setMainWindow(self, mainWindow):
+        """
+        Public method to set the reference to the main window.
+        
+        @param mainWindow reference to the main window (QMainWindow)
+        """
+        self.__mainWindow = mainWindow
+    
+    def mainWindow(self):
+        """
+        Public method to get the reference to the main window.
+        
+        @return reference to the main window (QMainWindow)
+        """
+        return self.__mainWindow
+    
+    def addToolBar(self, toolBar, category):
+        """
+        Public method to add a toolbar to be managed.
+        
+        @param toolBar reference to the toolbar to be managed (QToolBar)
+        @param category category for the toolbar (string)
+        """
+        if toolBar is None:
+            return
+        
+        newActions = []
+        newActionsWithSeparators = []
+        actions = toolBar.actions()
+        for action in actions:
+            actID = id(action)
+            self.addAction(action, category)
+            if actID in self.__widgetActions:
+                self.__widgetActions[actID] = toolBar
+            newActionsWithSeparators.append(action)
+            if action.isSeparator():
+                action = None
+            else:
+                if toolBar not in self.__actionToToolBars[actID]:
+                    self.__actionToToolBars[actID].append(toolBar)
+            newActions.append(action)
+        tbID = id(toolBar)
+        self.__defaultToolBars[tbID] = newActions
+        self.__toolBars[tbID] = newActions
+        self.__toolBarsWithSeparators[tbID] = newActionsWithSeparators
+        self.__allToolBars[tbID] = toolBar
+    
+    def removeToolBar(self, toolBar):
+        """
+        Public method to remove a toolbar added with addToolBar().
+        
+        @param toolBar reference to the toolbar to be removed (QToolBar)
+        """
+        if toolBar is None:
+            return
+        
+        tbID = id(toolBar)
+        
+        if tbID not in self.__defaultToolBars:
+            return
+        
+        defaultActions = self.__defaultToolBars[tbID][:]
+        self.setToolBar(toolBar, [])
+        for action in defaultActions:
+            self.removeAction(action)
+        
+        del self.__defaultToolBars[tbID]
+        del self.__toolBars[tbID]
+        del self.__toolBarsWithSeparators[tbID]
+        del self.__allToolBars[tbID]
+        
+        for action in defaultActions:
+            if action is None:
+                toolBar.addSeparator()
+            else:
+                toolBar.addAction(action)
+    
+    def setToolBars(self, toolBars):
+        """
+        Public method to set the actions of several toolbars.
+        
+        @param toolBars dictionary with toolbar id as key and
+            a list of actions as value
+        """
+        for key, actions in list(toolBars.items()):
+            tb = self.__allToolBars[key]
+            self.setToolBar(tb, actions)
+    
+    def setToolBar(self, toolBar, actions):
+        """
+        Public method to set the actions of a toolbar.
+        
+        @param toolBar reference to the toolbar to configure (QToolBar)
+        @param actions list of actions to be set (list of QAction)
+        """
+        if toolBar is None:
+            return
+        
+        tbID = id(toolBar)
+        if tbID not in self.__toolBars:
+            return
+        if self.__toolBars[tbID] == actions:
+            return
+        
+        # step 1: check list of actions
+        toRemove = {}
+        newActions = []
+        for action in actions:
+            if (
+                action is None or
+                (action not in newActions and
+                 id(action) in self.__allActions)
+            ):
+                newActions.append(action)
+            oldTB = self.toolBarWidgetAction(action)
+            if oldTB is not None and oldTB != toolBar:
+                if id(oldTB) not in toRemove:
+                    toRemove[id(oldTB)] = []
+                toRemove[id(oldTB)].append(action)
+        self.removeWidgetActions(toRemove)
+        
+        # step 2: remove all toolbar actions
+        for action in self.__toolBarsWithSeparators[tbID]:
+            if self.toolBarWidgetAction(action) == tbID:
+                self.__widgetActions[id(action)] = None
+            toolBar.removeAction(action)
+            if action.isSeparator():
+                del action
+            else:
+                self.__actionToToolBars[id(action)].remove(toolBar)
+        
+        # step 3: set the actions as requested
+        newActionsWithSeparators = []
+        for action in newActions:
+            newAction = None
+            if action is None:
+                newAction = toolBar.addSeparator()
+            elif id(action) in self.__allActions:
+                toolBar.addAction(action)
+                newAction = action
+                self.__actionToToolBars[id(action)].append(toolBar)
+                if id(action) in self.__widgetActions:
+                    self.__widgetActions[id(action)] = toolBar
+            else:
+                continue
+            newActionsWithSeparators.append(newAction)
+        
+        if toolBar.isVisible():
+            toolBar.hide()
+            toolBar.show()
+        self.__toolBars[tbID] = newActions
+        self.__toolBarsWithSeparators[tbID] = newActionsWithSeparators
+    
+    def resetToolBar(self, toolBar):
+        """
+        Public method to reset a toolbar to its default state.
+        
+        @param toolBar reference to the toolbar to configure (QToolBar)
+        """
+        if not self.isDefaultToolBar():
+            return
+        self.setToolBar(toolBar, self.__defaultToolBars[id(toolBar)])
+    
+    def resetAllToolBars(self):
+        """
+        Public method to reset all toolbars to their default state.
+        """
+        self.setToolBars(self.__defaultToolBars)
+        for toolBar in self.__customToolBars[:]:
+            self.deleteToolBar(toolBar)
+        
+    def defaultToolBars(self):
+        """
+        Public method to get all toolbars added with addToolBar().
+        
+        @return list of all default toolbars (list of QToolBar)
+        """
+        return list(self.__defaultToolBars.values())
+    
+    def isDefaultToolBar(self, toolBar):
+        """
+        Public method to check, if a toolbar was added with addToolBar().
+        
+        @param toolBar reference to the toolbar to be checked (QToolBar)
+        @return flag indicating an added toolbar (boolean)
+        """
+        return (
+            toolBar is not None and
+            id(toolBar) in self.__defaultToolBars
+        )
+    
+    def createToolBar(self, title, name=""):
+        """
+        Public method to create a custom toolbar.
+        
+        @param title title to be used for the toolbar (string)
+        @param name optional name for the new toolbar (string)
+        @return reference to the created toolbar (QToolBar)
+        """
+        if self.__mainWindow is None:
+            return None
+        
+        toolBar = QToolBar(title, self.__mainWindow)
+        toolBar.setToolTip(title)
+        if not name:
+            index = 1
+            customPrefix = "__CustomPrefix__"
+            name = "{0}{1:d}".format(customPrefix, index)
+            while self.__toolBarByName(name) is not None:
+                index += 1
+                name = "{0}{1:d}".format(customPrefix, index)
+        toolBar.setObjectName(name)
+        self.__mainWindow.addToolBar(toolBar)
+        
+        tbID = id(toolBar)
+        self.__customToolBars.append(toolBar)
+        self.__allToolBars[tbID] = toolBar
+        self.__toolBars[tbID] = []
+        self.__toolBarsWithSeparators[tbID] = []
+        
+        if self.__ui is not None:
+            toolBar.setIconSize(self.__ui.getToolBarIconSize())
+            self.__ui.registerToolbar(name, title, toolBar)
+        
+        return toolBar
+    
+    def deleteToolBar(self, toolBar):
+        """
+        Public method to remove a custom toolbar created with createToolBar().
+        
+        @param toolBar reference to the toolbar to be managed (QToolBar)
+        """
+        if toolBar is None:
+            return
+        
+        tbID = id(toolBar)
+        if tbID not in self.__toolBars:
+            return
+        if tbID in self.__defaultToolBars:
+            return
+        
+        if self.__ui is not None:
+            self.__ui.unregisterToolbar(toolBar.objectName())
+        
+        self.setToolBar(toolBar, [])
+        
+        del self.__allToolBars[tbID]
+        del self.__toolBars[tbID]
+        del self.__toolBarsWithSeparators[tbID]
+        self.__customToolBars.remove(toolBar)
+        self.__mainWindow.removeToolBar(toolBar)
+        del toolBar
+    
+    def renameToolBar(self, toolBar, title):
+        """
+        Public method to give a toolbar a new title.
+        
+        @param toolBar reference to the toolbar to be managed (QToolBar)
+        @param title title to be used for the toolbar (string)
+        """
+        if toolBar is None:
+            return
+        
+        toolBar.setWindowTitle(title)
+        
+        if self.__ui is not None:
+            self.__ui.reregisterToolbar(toolBar.objectName(), title)
+    
+    def toolBars(self):
+        """
+        Public method to get all toolbars.
+        
+        @return list of all toolbars (list of QToolBar)
+        """
+        return list(self.__allToolBars.values())
+    
+    def addAction(self, action, category):
+        """
+        Public method to add an action to be managed.
+        
+        @param action reference to the action to be managed (QAction)
+        @param category category for the toolbar (string)
+        """
+        if action is None:
+            return
+        if action.isSeparator():
+            return
+        if id(action) in self.__allActions:
+            return
+        
+        if action.metaObject().className() == "QWidgetAction":
+            self.__widgetActions[id(action)] = None
+            self.__allWidgetActions[id(action)] = action
+        self.__allActions[id(action)] = action
+        if category not in self.__categoryToActions:
+            self.__categoryToActions[category] = []
+        self.__categoryToActions[category].append(action)
+        self.__actionToCategory[id(action)] = category
+        self.__actionToToolBars[id(action)] = []
+    
+    def addActions(self, actions, category):
+        """
+        Public method to add actions to be managed.
+        
+        @param actions list of actions to be managed
+        @type list of QAction
+        @param category category for the toolbar
+        @type str
+        """
+        for action in actions:
+            self.addAction(action, category)
+    
+    def removeAction(self, action):
+        """
+        Public method to remove an action from the manager.
+        
+        @param action reference to the action to be removed (QAction)
+        """
+        aID = id(action)
+        
+        if aID not in self.__allActions:
+            return
+        
+        toolBars = self.__actionToToolBars[aID]
+        for toolBar in toolBars:
+            tbID = id(toolBar)
+            self.__toolBars[tbID].remove(action)
+            self.__toolBarsWithSeparators[tbID].remove(action)
+            toolBar.removeAction(action)
+            if toolBar.isVisible():
+                toolBar.hide()
+                toolBar.show()
+        
+        for tbID in self.__defaultToolBars:
+            if action in self.__defaultToolBars[tbID]:
+                self.__defaultToolBars[tbID].remove(action)
+        
+        del self.__allActions[aID]
+        if aID in self.__widgetActions:
+            del self.__widgetActions[aID]
+            del self.__allWidgetActions[aID]
+        del self.__actionToCategory[aID]
+        del self.__actionToToolBars[aID]
+        
+        for category in self.__categoryToActions:
+            if action in self.__categoryToActions[category]:
+                self.__categoryToActions[category].remove(action)
+    
+    def removeCategoryActions(self, category):
+        """
+        Public method to remove the actions belonging to a category.
+        
+        @param category category for the actions (string)
+        """
+        for action in self.categoryActions(category):
+            self.removeAction(action)
+    
+    def saveState(self, version=0):
+        """
+        Public method to save the state of the toolbar manager.
+        
+        @param version version number stored with the data (integer)
+        @return saved state as a byte array (QByteArray)
+        """
+        data = QByteArray()
+        stream = QDataStream(data, QIODevice.OpenModeFlag.WriteOnly)
+        stream.setVersion(QDataStream.Version.Qt_4_6)
+        stream.writeUInt16(EricToolBarManager.VersionMarker)
+        stream.writeUInt16(version)
+        
+        # save default toolbars
+        stream.writeUInt16(EricToolBarManager.ToolBarMarker)
+        stream.writeUInt16(len(self.__defaultToolBars))
+        for tbID in self.__defaultToolBars:
+            tb = self.__allToolBars[tbID]
+            if tb.objectName():
+                stream.writeString(tb.objectName().encode("utf-8"))
+            else:
+                stream.writeString(tb.windowTitle().encode("utf-8"))
+            stream.writeUInt16(len(self.__toolBars[tbID]))
+            for action in self.__toolBars[tbID]:
+                if action is not None:
+                    if action.objectName():
+                        stream.writeString(action.objectName().encode("utf-8"))
+                    else:
+                        stream.writeString(action.text().encode("utf-8"))
+                else:
+                    stream.writeString("".encode("utf-8"))
+        
+        # save the custom toolbars
+        stream.writeUInt16(EricToolBarManager.CustomToolBarMarker)
+        stream.writeUInt16(len(self.__toolBars) - len(self.__defaultToolBars))
+        for tbID in self.__toolBars:
+            if tbID not in self.__defaultToolBars:
+                tb = self.__allToolBars[tbID]
+                stream.writeString(tb.objectName().encode("utf-8"))
+                stream.writeString(tb.windowTitle().encode("utf-8"))
+                stream.writeUInt16(len(self.__toolBars[tbID]))
+                for action in self.__toolBars[tbID]:
+                    if action is not None:
+                        if action.objectName():
+                            stream.writeString(action.objectName()
+                                               .encode("utf-8"))
+                        else:
+                            stream.writeString(action.text().encode("utf-8"))
+                    else:
+                        stream.writeString("".encode("utf-8"))
+        
+        return data
+    
+    def restoreState(self, state, version=0):
+        """
+        Public method to restore the state of the toolbar manager.
+        
+        @param state byte array containing the saved state (QByteArray)
+        @param version version number stored with the data (integer)
+        @return flag indicating success (boolean)
+        """
+        if state.isEmpty():
+            return False
+        
+        data = QByteArray(state)
+        stream = QDataStream(data, QIODevice.OpenModeFlag.ReadOnly)
+        stream.setVersion(QDataStream.Version.Qt_4_6)
+        marker = stream.readUInt16()
+        vers = stream.readUInt16()
+        if marker != EricToolBarManager.VersionMarker or vers != version:
+            return False
+        
+        tmarker = stream.readUInt16()
+        if tmarker != EricToolBarManager.ToolBarMarker:
+            return False
+        
+        toolBarCount = stream.readUInt16()
+        for _i in range(toolBarCount):
+            objectName = Utilities.readStringFromStream(stream)
+            actionCount = stream.readUInt16()
+            actions = []
+            for _j in range(actionCount):
+                actionName = Utilities.readStringFromStream(stream)
+                if actionName:
+                    action = self.__findAction(actionName)
+                    if action is not None:
+                        actions.append(action)
+                else:
+                    actions.append(None)
+            toolBar = self.__findDefaultToolBar(objectName)
+            if toolBar is not None:
+                self.setToolBar(toolBar, actions)
+        
+        cmarker = stream.readUInt16()
+        if cmarker != EricToolBarManager.CustomToolBarMarker:
+            return False
+        
+        oldCustomToolBars = self.__customToolBars[:]
+        
+        toolBarCount = stream.readUInt16()
+        for _i in range(toolBarCount):
+            objectName = Utilities.readStringFromStream(stream)
+            toolBarTitle = Utilities.readStringFromStream(stream)
+            actionCount = stream.readUInt16()
+            actions = []
+            for _j in range(actionCount):
+                actionName = Utilities.readStringFromStream(stream)
+                if actionName:
+                    action = self.__findAction(actionName)
+                    if action is not None:
+                        actions.append(action)
+                else:
+                    actions.append(None)
+            toolBar = self.__toolBarByName(objectName)
+            if toolBar is not None:
+                toolBar.setWindowTitle(toolBarTitle)
+                oldCustomToolBars.remove(toolBar)
+            else:
+                toolBar = self.createToolBar(toolBarTitle, objectName)
+            if toolBar is not None:
+                toolBar.setObjectName(objectName)
+                self.setToolBar(toolBar, actions)
+        
+        for tb in oldCustomToolBars:
+            self.deleteToolBar(tb)
+        
+        return True
+    
+    def toolBarWidgetAction(self, action):
+        """
+        Public method to get the toolbar for a widget action.
+        
+        @param action widget action to check for (QAction)
+        @return reference to the toolbar containing action (QToolBar)
+        """
+        aID = id(action)
+        if aID in self.__widgetActions:
+            return self.__widgetActions[aID]
+        return None
+    
+    def removeWidgetActions(self, actions):
+        """
+        Public method to remove widget actions.
+        
+        @param actions dictionary with toolbar id as key and
+            a list of widget actions as value
+        """
+        for tbID in list(actions.keys())[:]:
+            toolBar = self.__allToolBars[tbID]
+            newActions = self.__toolBars[tbID][:]
+            newActionsWithSeparators = self.__toolBarsWithSeparators[tbID][:]
+            
+            removedActions = []
+            for action in actions[tbID]:
+                if (
+                    action in newActions and
+                    self.toolBarWidgetAction(action) == toolBar
+                ):
+                    newActions.remove(action)
+                    newActionsWithSeparators.remove(action)
+                    removedActions.append(action)
+            
+            self.__toolBars[tbID] = newActions
+            self.__toolBarsWithSeparators[tbID] = newActionsWithSeparators
+            
+            for action in removedActions:
+                self.__widgetActions[id(action)] = None
+                self.__actionToToolBars[id(action)].remove(toolBar)
+                toolBar.removeAction(action)
+    
+    def isWidgetAction(self, action):
+        """
+        Public method to check, if action is a widget action.
+        
+        @param action reference to the action to be checked (QAction)
+        @return flag indicating a widget action (boolean)
+        """
+        return id(action) in self.__allWidgetActions
+    
+    def categories(self):
+        """
+        Public method to get the list of categories.
+        
+        @return list of categories (list of string)
+        """
+        return list(self.__categoryToActions.keys())
+    
+    def categoryActions(self, category):
+        """
+        Public method to get the actions belonging to a category.
+        
+        @param category category for the actions (string)
+        @return list of actions (list of QAction)
+        """
+        if category not in self.__categoryToActions:
+            return []
+        
+        return self.__categoryToActions[category][:]
+    
+    def actionById(self, aID):
+        """
+        Public method to get an action given its id.
+        
+        @param aID id of the action object (integer)
+        @return reference to the action (QAction)
+        """
+        if aID not in self.__allActions:
+            return None
+        return self.__allActions[aID]
+    
+    def toolBarById(self, tbID):
+        """
+        Public method to get a toolbar given its id.
+        
+        @param tbID id of the toolbar object (integer)
+        @return reference to the toolbar (QToolBar)
+        """
+        if tbID not in self.__allToolBars:
+            return None
+        return self.__allToolBars[tbID]
+    
+    def toolBarActions(self, tbID):
+        """
+        Public method to get a toolbar's actions given its id.
+        
+        @param tbID id of the toolbar object (integer)
+        @return list of actions (list of QAction)
+        """
+        if tbID not in self.__toolBars:
+            return []
+        return self.__toolBars[tbID][:]
+    
+    def toolBarsActions(self):
+        """
+        Public method to get all toolbars and their actions.
+        
+        @return reference to dictionary of toolbar IDs as key and list
+            of actions as values
+        """
+        return self.__toolBars
+    
+    def defaultToolBarActions(self, tbID):
+        """
+        Public method to get a default toolbar's actions given its id.
+        
+        @param tbID id of the default toolbar object (integer)
+        @return list of actions (list of QAction)
+        """
+        if tbID not in self.__defaultToolBars:
+            return []
+        return self.__defaultToolBars[tbID][:]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricToolBox.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2008 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a horizontal and a vertical toolbox class.
+"""
+
+from PyQt6.QtWidgets import QToolBox, QTabWidget
+
+from .EricTabWidget import EricTabWidget
+
+
+class EricVerticalToolBox(QToolBox):
+    """
+    Class implementing a ToolBox class substituting QToolBox to support wheel
+    events.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+
+
+class EricHorizontalToolBox(EricTabWidget):
+    """
+    Class implementing a vertical QToolBox like widget.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        EricTabWidget.__init__(self, parent)
+        self.setTabPosition(QTabWidget.TabPosition.West)
+        self.setUsesScrollButtons(True)
+    
+    def addItem(self, widget, icon, text):
+        """
+        Public method to add a widget to the toolbox.
+        
+        @param widget reference to the widget to be added (QWidget)
+        @param icon the icon to be shown (QIcon)
+        @param text the text to be shown (string)
+        @return index of the added widget (integer)
+        """
+        index = self.addTab(widget, icon, "")
+        self.setTabToolTip(index, text)
+        return index
+    
+    def insertItem(self, index, widget, icon, text):
+        """
+        Public method to add a widget to the toolbox.
+        
+        @param index position at which the widget should be inserted (integer)
+        @param widget reference to the widget to be added (QWidget)
+        @param icon the icon to be shown (QIcon)
+        @param text the text to be shown (string)
+        @return index of the added widget (integer)
+        """
+        index = self.insertTab(index, widget, icon, "")
+        self.setTabToolTip(index, text)
+        return index
+    
+    def removeItem(self, index):
+        """
+        Public method to remove a widget from the toolbox.
+        
+        @param index index of the widget to remove (integer)
+        """
+        self.removeTab(index)
+    
+    def setItemToolTip(self, index, toolTip):
+        """
+        Public method to set the tooltip of an item.
+        
+        @param index index of the item (integer)
+        @param toolTip tooltip text to be set (string)
+        """
+        self.setTabToolTip(index, toolTip)
+    
+    def setItemEnabled(self, index, enabled):
+        """
+        Public method to set the enabled state of an item.
+        
+        @param index index of the item (integer)
+        @param enabled flag indicating the enabled state (boolean)
+        """
+        self.setTabEnabled(index, enabled)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricToolButton.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,302 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2017 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a specialized tool button subclass.
+"""
+
+import enum
+
+from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QTimer, QSize
+from PyQt6.QtWidgets import (
+    QToolButton, QStyle, QStyleOptionToolButton, QStyleOption, QApplication,
+    QLabel
+)
+
+
+class EricToolButtonOptions(enum.IntEnum):
+    """
+    Class defining the tool button options.
+    """
+    DEFAULT = 0
+    SHOW_MENU_INSIDE = 1
+    TOOLBAR_LOOKUP = 2
+
+
+class EricToolButton(QToolButton):
+    """
+    Class implementing a specialized tool button subclass.
+    
+    @signal aboutToShowMenu() emitted before the tool button menu is shown
+    @signal aboutToHideMenu() emitted before the tool button menu is hidden
+    @signal middleClicked() emitted when the middle mouse button was clicked
+    @signal controlClicked() emitted when the left mouse button was
+        clicked while pressing the Ctrl key
+    @signal doubleClicked() emitted when the left mouse button was
+        double clicked
+    """
+    aboutToShowMenu = pyqtSignal()
+    aboutToHideMenu = pyqtSignal()
+    middleClicked = pyqtSignal()
+    controlClicked = pyqtSignal()
+    doubleClicked = pyqtSignal()
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super().__init__(parent)
+        
+        self.setMinimumWidth(16)
+        
+        self.__menu = None
+        self.__options = EricToolButtonOptions.DEFAULT
+        
+        self.__badgeLabel = QLabel(self)
+        font = self.__badgeLabel.font()
+        font.setPixelSize(self.__badgeLabel.height() / 2.5)
+        self.__badgeLabel.setFont(font)
+        self.__badgeLabel.hide()
+        
+        opt = QStyleOptionToolButton()
+        self.initStyleOption(opt)
+        
+        self.__pressTimer = QTimer()
+        self.__pressTimer.setSingleShot(True)
+        self.__pressTimer.setInterval(
+            QApplication.style().styleHint(
+                QStyle.StyleHint.SH_ToolButton_PopupDelay, opt, self))
+        self.__pressTimer.timeout.connect(self.__showMenu)
+    
+    ##################################################################
+    ## Menu handling methods below.
+    ##
+    ## The menu is handled in EricToolButton and is not passed to
+    ## QToolButton. No menu indicator will be shown in the button.
+    ##################################################################
+    
+    def menu(self):
+        """
+        Public method to get a reference to the tool button menu.
+        
+        @return reference to the tool button menu
+        @rtype QMenu
+        """
+        return self.__menu
+    
+    def setMenu(self, menu):
+        """
+        Public method to set the tool button menu.
+        
+        @param menu reference to the tool button menu
+        @type QMenu
+        """
+        if menu is not None:
+            if self.__menu:
+                self.__menu.aboutToHide.disconnect(self.__menuAboutToHide)
+            
+            self.__menu = menu
+            self.__menu.aboutToHide.connect(self.__menuAboutToHide)
+    
+    def showMenuInside(self):
+        """
+        Public method to check, if the menu edge shall be aligned with
+        the button.
+        
+        @return flag indicating that the menu edge shall be aligned
+        @rtype bool
+        """
+        return bool(self.__options & EricToolButtonOptions.SHOW_MENU_INSIDE)
+    
+    def setShowMenuInside(self, enable):
+        """
+        Public method to set a flag to show the menu edge aligned with
+        the button.
+        
+        @param enable flag indicating to align the menu edge to the button
+        @type bool
+        """
+        if enable:
+            self.__options |= EricToolButtonOptions.SHOW_MENU_INSIDE
+        else:
+            self.__options &= ~EricToolButtonOptions.SHOW_MENU_INSIDE
+    
+    @pyqtSlot()
+    def __showMenu(self):
+        """
+        Private slot to show the tool button menu.
+        """
+        if self.__menu is None or self.__menu.isVisible():
+            return
+        
+        self.aboutToShowMenu.emit()
+        
+        if self.__options & EricToolButtonOptions.SHOW_MENU_INSIDE:
+            pos = self.mapToGlobal(self.rect().bottomRight())
+            if (
+                QApplication.layoutDirection() ==
+                Qt.LayoutDirection.RightToLeft
+            ):
+                pos.setX(pos.x() - self.rect().width())
+            else:
+                pos.setX(pos.x() - self.__menu.sizeHint().width())
+        else:
+            pos = self.mapToGlobal(self.rect().bottomLeft())
+        
+        self.__menu.popup(pos)
+    
+    @pyqtSlot()
+    def __menuAboutToHide(self):
+        """
+        Private slot to handle the tool button menu about to be hidden.
+        """
+        self.setDown(False)
+        self.aboutToHideMenu.emit()
+    
+    ##################################################################
+    ## Methods to handle the tool button look
+    ##################################################################
+    
+    def toolbarButtonLook(self):
+        """
+        Public method to check, if the button has the toolbar look.
+        
+        @return flag indicating toolbar look
+        @rtype bool
+        """
+        return bool(self.__options & EricToolButtonOptions.TOOLBAR_LOOKUP)
+    
+    def setToolbarButtonLook(self, enable):
+        """
+        Public method to set the toolbar look state.
+        
+        @param enable flag indicating toolbar look
+        @type bool
+        """
+        if enable:
+            self.__options |= EricToolButtonOptions.TOOLBAR_LOOKUP
+            
+            opt = QStyleOption()
+            opt.initFrom(self)
+            size = self.style().pixelMetric(
+                QStyle.PixelMetric.PM_ToolBarIconSize, opt, self)
+            self.setIconSize(QSize(size, size))
+        else:
+            self.__options &= ~EricToolButtonOptions.TOOLBAR_LOOKUP
+        
+        self.setProperty("toolbar-look", enable)
+        self.style().unpolish(self)
+        self.style().polish(self)
+    
+    ##################################################################
+    ## Methods to handle some event types
+    ##################################################################
+    
+    def mousePressEvent(self, evt):
+        """
+        Protected method to handle mouse press events.
+        
+        @param evt reference to the mouse event
+        @type QMouseEvent
+        """
+        if self.popupMode() == QToolButton.ToolButtonPopupMode.DelayedPopup:
+            self.__pressTimer.start()
+        
+        if (
+            (evt.buttons() == Qt.MouseButton.LeftButton and
+             self.__menu is not None and
+             (self.popupMode() ==
+              QToolButton.ToolButtonPopupMode.InstantPopup)) or
+            (evt.buttons() == Qt.MouseButton.RightButton and
+             self.__menu is not None)
+        ):
+            self.setDown(True)
+            self.__showMenu()
+        else:
+            super().mousePressEvent(evt)
+    
+    def mouseReleaseEvent(self, evt):
+        """
+        Protected method to handle mouse release events.
+        
+        @param evt reference to the mouse event
+        @type QMouseEvent
+        """
+        self.__pressTimer.stop()
+        
+        if (
+            evt.button() == Qt.MouseButton.MiddleButton and
+            self.rect().contains(evt.position().toPoint())
+        ):
+            self.middleClicked.emit()
+            self.setDown(False)
+        elif (
+            evt.button() == Qt.MouseButton.LeftButton and
+            self.rect().contains(evt.position().toPoint()) and
+            evt.modifiers() == Qt.KeyboardModifier.ControlModifier
+        ):
+            self.controlClicked.emit()
+            self.setDown(False)
+        else:
+            super().mouseReleaseEvent(evt)
+    
+    def mouseDoubleClickEvent(self, evt):
+        """
+        Protected method to handle mouse double click events.
+        
+        @param evt reference to the mouse event
+        @type QMouseEvent
+        """
+        super().mouseDoubleClickEvent(evt)
+        
+        self.__pressTimer.stop()
+        
+        if evt.buttons() == Qt.MouseButton.LeftButton:
+            self.doubleClicked.emit()
+    
+    def contextMenuEvent(self, evt):
+        """
+        Protected method to handle context menu events.
+        
+        @param evt reference to the context menu event
+        @type QContextMenuEvent
+        """
+        # block to prevent showing the context menu and the tool button menu
+        if self.__menu is not None:
+            return
+        
+        super().contextMenuEvent(evt)
+    
+    ##################################################################
+    ## Methods to handle the tool button badge
+    ##################################################################
+    
+    def setBadgeText(self, text):
+        """
+        Public method to set the badge text.
+        
+        @param text badge text to be set
+        @type str
+        """
+        if text:
+            self.__badgeLabel.setText(text)
+            self.__badgeLabel.resize(self.__badgeLabel.sizeHint())
+            self.__badgeLabel.move(self.width() - self.__badgeLabel.width(), 0)
+            self.__badgeLabel.show()
+        else:
+            self.__badgeLabel.clear()
+            self.__badgeLabel.hide()
+    
+    def badgeText(self):
+        """
+        Public method to get the badge text.
+        
+        @return badge text
+        @rtype str
+        """
+        return self.__badgeLabel.text()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricTreeSortFilterProxyModel.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a modified QSortFilterProxyModel.
+"""
+
+from PyQt6.QtCore import Qt, QModelIndex, QSortFilterProxyModel
+
+
+class EricTreeSortFilterProxyModel(QSortFilterProxyModel):
+    """
+    Class implementing a modified QSortFilterProxyModel.
+   
+    It always accepts the root nodes in the tree so filtering is only done
+    on the children.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent object (QObject)
+        """
+        super().__init__(parent)
+        
+        self.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
+    
+    def filterAcceptsRow(self, sourceRow, sourceParent):
+        """
+        Public method to determine, if the row is acceptable.
+        
+        @param sourceRow row number in the source model (integer)
+        @param sourceParent index of the source item (QModelIndex)
+        @return flag indicating acceptance (boolean)
+        """
+        idx = self.sourceModel().index(sourceRow, 0, sourceParent)
+        if self.sourceModel().hasChildren(idx):
+            return True
+        
+        return QSortFilterProxyModel.filterAcceptsRow(
+            self, sourceRow, sourceParent)
+    
+    def hasChildren(self, parent=None):
+        """
+        Public method to check, if a parent node has some children.
+        
+        @param parent index of the parent node (QModelIndex)
+        @return flag indicating the presence of children (boolean)
+        """
+        if parent is None:
+            parent = QModelIndex()
+        sindex = self.mapToSource(parent)
+        return self.sourceModel().hasChildren(sindex)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricTreeView.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing specialized tree views.
+"""
+
+from PyQt6.QtCore import Qt
+from PyQt6.QtWidgets import QTreeView
+
+
+class EricTreeView(QTreeView):
+    """
+    Class implementing a tree view supporting removal of entries.
+    """
+    def keyPressEvent(self, evt):
+        """
+        Protected method implementing special key handling.
+        
+        @param evt reference to the event (QKeyEvent)
+        """
+        if (
+            evt.key() in [Qt.Key.Key_Delete, Qt.Key.Key_Backspace] and
+            self.model() is not None
+        ):
+            self.removeSelected()
+            evt.setAccepted(True)
+        else:
+            super().keyPressEvent(evt)
+    
+    def removeSelected(self):
+        """
+        Public method to remove the selected entries.
+        """
+        if (
+            self.model() is None or
+            self.selectionModel() is None or
+            not self.selectionModel().hasSelection()
+        ):
+            # no models available or nothing selected
+            return
+        
+        selectedRows = self.selectionModel().selectedRows()
+        for idx in reversed(sorted(selectedRows)):
+            self.model().removeRow(idx.row(), idx.parent())
+    
+    def removeAll(self):
+        """
+        Public method to clear the view.
+        """
+        if self.model() is not None:
+            self.model().removeRows(0, self.model().rowCount(self.rootIndex()),
+                                    self.rootIndex())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricTreeWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,283 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing specialized tree views.
+"""
+
+import enum
+
+from PyQt6.QtCore import pyqtSignal, Qt
+from PyQt6.QtWidgets import QTreeWidget, QTreeWidgetItem, QAbstractItemView
+
+
+class EricTreeWidgetItemsState(enum.Enum):
+    """
+    Class defining the items expansion state.
+    """
+    COLLAPSED = 0
+    EXPANDED = 1
+
+
+class EricTreeWidget(QTreeWidget):
+    """
+    Class implementing an extended tree widget.
+    
+    @signal itemControlClicked(QTreeWidgetItem) emitted after a Ctrl-Click
+            on an item
+    @signal itemMiddleButtonClicked(QTreeWidgetItem) emitted after a click
+            of the middle button on an item
+    """
+    itemControlClicked = pyqtSignal(QTreeWidgetItem)
+    itemMiddleButtonClicked = pyqtSignal(QTreeWidgetItem)
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        self.__refreshAllItemsNeeded = True
+        self.__allTreeItems = []
+        self.__showMode = EricTreeWidgetItemsState.COLLAPSED
+        
+        self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
+        
+        self.itemChanged.connect(self.__scheduleRefresh)
+    
+    def setDefaultItemShowMode(self, mode):
+        """
+        Public method to set the default item show mode.
+        
+        @param mode default mode
+        @type EricTreeWidgetItemsState
+        """
+        self.__showMode = mode
+    
+    def allItems(self):
+        """
+        Public method to get a list of all items.
+        
+        @return list of all items (list of QTreeWidgetItem)
+        """
+        if self.__refreshAllItemsNeeded:
+            self.__allTreeItems = []
+            self.__iterateAllItems(None)
+            self.__refreshAllItemsNeeded = False
+        
+        return self.__allTreeItems
+    
+    def appendToParentItem(self, parent, item):
+        """
+        Public method to append an item to a parent item.
+        
+        @param parent text of the parent item (string) or
+            the parent item (QTreeWidgetItem)
+        @param item item to be appended (QTreeWidgetItem)
+        @return flag indicating success (boolean)
+        @exception RuntimeError raised to indicate an illegal type for
+            the parent
+        """
+        if not isinstance(parent, (QTreeWidgetItem, str)):
+            raise RuntimeError("illegal type for parent")
+        
+        if isinstance(parent, QTreeWidgetItem):
+            if parent is None or parent.treeWidget() != self:
+                return False
+            parentItem = parent
+        else:
+            lst = self.findItems(parent, Qt.MatchFlag.MatchExactly)
+            if not lst:
+                return False
+            parentItem = lst[0]
+            if parentItem is None:
+                return False
+        
+        self.__allTreeItems.append(item)
+        parentItem.addChild(item)
+        return True
+    
+    def prependToParentItem(self, parent, item):
+        """
+        Public method to prepend an item to a parent item.
+        
+        @param parent text of the parent item (string) or
+            the parent item (QTreeWidgetItem)
+        @param item item to be prepended (QTreeWidgetItem)
+        @return flag indicating success (boolean)
+        @exception RuntimeError raised to indicate an illegal type for
+            the parent
+        """
+        if not isinstance(parent, (QTreeWidgetItem, str)):
+            raise RuntimeError("illegal type for parent")
+        
+        if isinstance(parent, QTreeWidgetItem):
+            if parent is None or parent.treeWidget() != self:
+                return False
+            parentItem = parent
+        else:
+            lst = self.findItems(parent, Qt.MatchFlag.MatchExactly)
+            if not lst:
+                return False
+            parentItem = lst[0]
+            if parentItem is None:
+                return False
+        
+        self.__allTreeItems.append(item)
+        parentItem.insertChild(0, item)
+        return True
+    
+    def addTopLevelItem(self, item):
+        """
+        Public method to add a top level item.
+        
+        @param item item to be added as a top level item (QTreeWidgetItem)
+        """
+        self.__allTreeItems.append(item)
+        super().addTopLevelItem(item)
+    
+    def addTopLevelItems(self, items):
+        """
+        Public method to add a list of top level items.
+        
+        @param items items to be added as top level items
+            (list of QTreeWidgetItem)
+        """
+        self.__allTreeItems.extend(items)
+        super().addTopLevelItems(items)
+    
+    def insertTopLevelItem(self, index, item):
+        """
+        Public method to insert a top level item.
+        
+        @param index index for the insertion (integer)
+        @param item item to be inserted as a top level item (QTreeWidgetItem)
+        """
+        self.__allTreeItems.append(item)
+        super().insertTopLevelItem(index, item)
+    
+    def insertTopLevelItems(self, index, items):
+        """
+        Public method to insert a list of top level items.
+        
+        @param index index for the insertion (integer)
+        @param items items to be inserted as top level items
+            (list of QTreeWidgetItem)
+        """
+        self.__allTreeItems.extend(items)
+        super().insertTopLevelItems(index, items)
+    
+    def deleteItem(self, item):
+        """
+        Public method to delete an item.
+        
+        @param item item to be deleted (QTreeWidgetItem)
+        """
+        if item in self.__allTreeItems:
+            self.__allTreeItems.remove(item)
+        
+        self.__refreshAllItemsNeeded = True
+        
+        del item
+    
+    def deleteItems(self, items):
+        """
+        Public method to delete a list of items.
+        
+        @param items items to be deleted (list of QTreeWidgetItem)
+        """
+        for item in items:
+            self.deleteItem(item)
+    
+    def filterString(self, filterStr):
+        """
+        Public slot to set a new filter.
+        
+        @param filterStr filter to be set (string)
+        """
+        self.expandAll()
+        allItems = self.allItems()
+        
+        if filterStr:
+            lFilter = filterStr.lower()
+            for itm in allItems:
+                itm.setHidden(lFilter not in itm.text(0).lower())
+                itm.setExpanded(True)
+            for index in range(self.topLevelItemCount()):
+                self.topLevelItem(index).setHidden(False)
+            
+            firstItm = self.topLevelItem(0)
+            belowItm = self.itemBelow(firstItm)
+            topLvlIndex = 0
+            while firstItm:
+                if lFilter in firstItm.text(0).lower():
+                    firstItm.setHidden(False)
+                elif (
+                    not firstItm.parent() and
+                    (not belowItm or not belowItm.parent())
+                ):
+                    firstItm.setHidden(True)
+                elif not belowItm:
+                    break
+                
+                topLvlIndex += 1
+                firstItm = self.topLevelItem(topLvlIndex)
+                belowItm = self.itemBelow(firstItm)
+        else:
+            for itm in allItems:
+                itm.setHidden(False)
+            for index in range(self.topLevelItemCount()):
+                self.topLevelItem(index).setHidden(False)
+            if self.__showMode == EricTreeWidgetItemsState.COLLAPSED:
+                self.collapseAll()
+    
+    def clear(self):
+        """
+        Public slot to clear the tree.
+        """
+        self.__allTreeItems = []
+        super().clear()
+    
+    def __scheduleRefresh(self):
+        """
+        Private slot to schedule a refresh of the tree.
+        """
+        self.__refreshAllItemsNeeded = True
+    
+    def mousePressEvent(self, evt):
+        """
+        Protected method handling mouse press events.
+        
+        @param evt mouse press event (QMouseEvent)
+        """
+        if (
+            evt.modifiers() == Qt.KeyboardModifier.ControlModifier and
+            evt.buttons() == Qt.MouseButton.LeftButton
+        ):
+            self.itemControlClicked.emit(self.itemAt(evt.position().toPoint()))
+            return
+        elif evt.buttons() == Qt.MouseButton.MiddleButton:
+            self.itemMiddleButtonClicked.emit(self.itemAt(evt.position().toPoint()))
+            return
+        else:
+            super().mousePressEvent(evt)
+    
+    def __iterateAllItems(self, parent):
+        """
+        Private method to iterate over the child items of the parent.
+        
+        @param parent parent item to iterate (QTreeWidgetItem)
+        """
+        count = parent.childCount() if parent else self.topLevelItemCount()
+        
+        for index in range(count):
+            itm = parent.child(index) if parent else self.topLevelItem(index)
+            
+            if itm.childCount() == 0:
+                self.__allTreeItems.append(itm)
+            
+            self.__iterateAllItems(itm)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricZoomWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,314 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2013 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a zoom widget for the status bar.
+"""
+
+from PyQt6.QtCore import pyqtSlot, pyqtSignal
+from PyQt6.QtWidgets import QWidget
+
+from .Ui_EricZoomWidget import Ui_EricZoomWidget
+
+
+class EricZoomWidget(QWidget, Ui_EricZoomWidget):
+    """
+    Class implementing a zoom widget for the status bar.
+    
+    @signal valueChanged(value) emitted to indicate the new zoom value (int)
+    """
+    valueChanged = pyqtSignal(int)
+    
+    def __init__(self, outPix, inPix, resetPix, parent=None):
+        """
+        Constructor
+        
+        @param outPix pixmap for the zoom out button (QPixmap)
+        @param inPix pixmap for the zoom in button (QPixmap)
+        @param resetPix pixmap for the zoom reset button (QPixmap)
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        self.zoomOutLabel.setPixmap(outPix.scaled(16, 16))
+        self.zoomInLabel.setPixmap(inPix.scaled(16, 16))
+        self.zoomResetLabel.setPixmap(resetPix.scaled(16, 16))
+        
+        self.zoomOutLabel.clicked.connect(self.__zoomOut)
+        self.zoomInLabel.clicked.connect(self.__zoomIn)
+        self.zoomResetLabel.clicked.connect(self.__zoomReset)
+        
+        self.slider.valueChanged.connect(self._sliderValueChanged)
+        
+        self.__default = 0
+        self.__percent = False
+        
+        # mapped slider
+        self.__mapped = False
+        self.__mapping = []
+        
+        self.__setValueLabelWidth()
+    
+    @pyqtSlot(int)
+    def on_slider_sliderMoved(self, value):
+        """
+        Private slot to handle changes of the zoom value.
+        
+        @param value value of the slider (integer)
+        """
+        if self.__mapped:
+            self.valueChanged.emit(self.__mapping[value])
+        else:
+            self.valueChanged.emit(value)
+    
+    def setValue(self, value):
+        """
+        Public slot to set the value.
+        
+        @param value new zoom value (integer)
+        """
+        self.slider.setValue(self.__indexForValue(value))
+    
+    def value(self):
+        """
+        Public method to get the current value.
+        
+        @return current zoom value (integer)
+        """
+        if self.__mapped:
+            return self.__mapping[self.slider.value()]
+        else:
+            return self.slider.value()
+    
+    def setMinimum(self, minimum):
+        """
+        Public method to set the minimum value.
+        
+        @param minimum new minimum value (integer)
+        """
+        if not self.__mapped:
+            self.slider.setMinimum(minimum)
+            self.__setValueLabelWidth()
+    
+    def minimum(self):
+        """
+        Public method to get the minimum value.
+        
+        @return minimum value (integer)
+        """
+        if self.__mapped:
+            return self.__mapping[0]
+        else:
+            return self.slider.minimum()
+    
+    def setMaximum(self, maximum):
+        """
+        Public method to set the maximum value.
+        
+        @param maximum new maximum value (integer)
+        """
+        if not self.__mapped:
+            self.slider.setMaximum(maximum)
+            self.__setValueLabelWidth()
+    
+    def maximum(self):
+        """
+        Public method to get the maximum value.
+        
+        @return maximum value (integer)
+        """
+        if self.__mapped:
+            return self.__mapping[-1]
+        else:
+            return self.slider.maximum()
+    
+    def setSingleStep(self, value):
+        """
+        Public method to set the single step value.
+        
+        @param value value for the single step (integer)
+        """
+        self.slider.setSingleStep(value)
+    
+    def singleStep(self):
+        """
+        Public method to get the single step value.
+        
+        @return single step value (integer)
+        """
+        return self.slider.singleStep()
+    
+    def setPageStep(self, value):
+        """
+        Public method to set the page step value.
+        
+        @param value page step value (integer)
+        """
+        self.slider.setPageStep(value)
+    
+    def pageStep(self):
+        """
+        Public method to get the page step value.
+        
+        @return page step value (integer)
+        """
+        return self.slider.pageStep()
+    
+    def setDefault(self, value):
+        """
+        Public method to set the default zoom value.
+        
+        @param value default zoom value (integer)
+        """
+        self.__default = self.__indexForValue(value)
+    
+    def default(self):
+        """
+        Public method to get the default zoom value.
+        
+        @return default zoom value (integer)
+        """
+        if self.__mapped:
+            return self.__mapping[self.__default]
+        else:
+            return self.__default
+    
+    def setPercent(self, on):
+        """
+        Public method to set the percent mode of the widget.
+        
+        @param on flag indicating percent mode (boolean)
+        """
+        self.__percent = on
+        self.__setValueLabelWidth()
+    
+    def isPercent(self):
+        """
+        Public method to get the percent mode.
+        
+        @return flag indicating percent mode (boolean)
+        """
+        return self.__percent
+    
+    def setMapping(self, mapping, default, percent=True):
+        """
+        Public method to set a zoom level mapping.
+        
+        When zoom level mapping is activated, the slider covers
+        values from 0 to the max. index of the mapping list. The
+        default value is the value of the default zoom level. If
+        percent is given, the zoom level is shown as a percent value.
+        
+        @param mapping list of mapping values (list of integer)
+        @param default index of the default value (integer)
+        @param percent flag indicating to show zoom value in percent
+            (boolean)
+        """
+        if mapping:
+            self.__mapping = mapping[:]
+            self.__mapped = True
+            self.slider.setMinimum(0)
+            self.slider.setMaximum(len(self.__mapping) - 1)
+            self.__default = self.__indexForValue(default)
+            self.__percent = percent
+            self.slider.setValue(self.__default)
+        else:
+            # switch back to default values
+            self.__mapping = []
+            self.__mapped = False
+            self.slider.setMinimum(-10)
+            self.slider.setMaximum(20)
+            self.__default = 0
+            self.__percent = False
+            self.slider.setValue(0)
+        self.__setValueLabelWidth()
+    
+    def mapping(self):
+        """
+        Public method to get the current mapping.
+        
+        @return tuple of the mapping and the default index
+            (list of integer, integer)
+        """
+        return self.__mapping[:], self.__default
+    
+    def isMapped(self):
+        """
+        Public method to check for a mapped zoom widget.
+        
+        @return flag indicating a mapped zoom widget (boolean)
+        """
+        return self.__mapped
+    
+    def __zoomReset(self):
+        """
+        Private slot to reset the value.
+        """
+        self.slider.setValue(self.__default)
+        self.valueChanged.emit(self.value())
+    
+    def __zoomOut(self):
+        """
+        Private slot to zoom out one step.
+        """
+        self.slider.setValue(self.slider.value() - self.slider.singleStep())
+        self.valueChanged.emit(self.value())
+    
+    def __zoomIn(self):
+        """
+        Private slot to zoom in one step.
+        """
+        self.slider.setValue(self.slider.value() + self.slider.singleStep())
+        self.valueChanged.emit(self.value())
+    
+    def _sliderValueChanged(self, value):
+        """
+        Protected slot to handle changes of the slider value.
+        
+        @param value slider value (integer)
+        """
+        val = self.__mapping[value] if self.__mapped else value
+        fmtStr = "{0}%" if self.__percent else "{0}"
+        self.valueLabel.setText(fmtStr.format(val))
+        self.valueChanged.emit(val)
+    
+    def __setValueLabelWidth(self):
+        """
+        Private slot to determine the width of the zoom value label.
+        """
+        labelLen = (
+            max(len(str(v)) for v in self.__mapping)
+            if self.__mapped else
+            max(len(str(self.slider.maximum())),
+                len(str(self.slider.minimum())))
+        )
+        fmtStr = "{0}%" if self.__percent else "{0}"
+        label = fmtStr.format("0" * labelLen)
+        try:
+            width = self.valueLabel.fontMetrics().horizontalAdvance(label)
+        except AttributeError:
+            width = self.valueLabel.fontMetrics().width(label)
+        self.valueLabel.setMinimumWidth(width)
+        self.valueLabel.setMaximumWidth(width)
+    
+    def __indexForValue(self, value):
+        """
+        Private method to get the nearest index for a given value.
+        
+        @param value value to get the index for (integer)
+        @return index into the mapping list or the unchanged value,
+            if mapping is not set (integer)
+        """
+        if self.__mapped:
+            try:
+                index = self.__mapping.index(value)
+            except ValueError:
+                for index in range(len(self.__mapping)):
+                    if value <= self.__mapping[index]:
+                        break
+        else:
+            index = value
+        return index
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/E5Gui/EricZoomWidget.ui	Sat May 22 18:51:46 2021 +0200
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EricZoomWidget</class>
+ <widget class="QWidget" name="EricZoomWidget">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>242</width>
+    <height>21</height>
+   </rect>
+  </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <layout class="QHBoxLayout" name="horizontalLayout">
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QLabel" name="valueLabel">
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16777215</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string notr="true">0</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="EricClickableLabel" name="zoomOutLabel">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="toolTip">
+      <string>Zoom out</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QSlider" name="slider">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>160</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>160</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="focusPolicy">
+      <enum>Qt::NoFocus</enum>
+     </property>
+     <property name="toolTip">
+      <string>Drag to zoom</string>
+     </property>
+     <property name="minimum">
+      <number>-10</number>
+     </property>
+     <property name="maximum">
+      <number>20</number>
+     </property>
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="tickPosition">
+      <enum>QSlider::NoTicks</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="EricClickableLabel" name="zoomInLabel">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="toolTip">
+      <string>Zoom in</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="EricClickableLabel" name="zoomResetLabel">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="toolTip">
+      <string>Zoom reset</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>EricClickableLabel</class>
+   <extends>QLabel</extends>
+   <header>E5Gui/EricClickableLabel.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
--- a/eric7/EricGraphics/EricGraphicsView.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/EricGraphics/EricGraphicsView.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 from PyQt6.QtGui import QBrush, QPainter, QPixmap, QFont, QColor
 from PyQt6.QtWidgets import QGraphicsView
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 
@@ -84,7 +84,7 @@
         """
         drawingMode = Preferences.getGraphics("DrawingMode")
         if drawingMode == "automatic":
-            if e5App().usesDarkPalette():
+            if ericApp().usesDarkPalette():
                 drawingMode = "white_black"
             else:
                 drawingMode = "black_white"
--- a/eric7/EricNetwork/EricGoogleMail.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/EricNetwork/EricGoogleMail.py	Sat May 22 18:51:46 2021 +0200
@@ -20,7 +20,7 @@
 from PyQt6.QtCore import pyqtSlot, pyqtSignal, QObject, QUrl, QUrlQuery
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout
 
-from E5Gui.E5TextInputDialog import E5TextInputDialog
+from E5Gui.EricTextInputDialog import EricTextInputDialog
 
 import Globals
 
@@ -193,7 +193,7 @@
             else:
                 from PyQt6.QtGui import QDesktopServices
                 QDesktopServices.openUrl(QUrl(authorizationUrl))
-                ok, authCode = E5TextInputDialog.getText(
+                ok, authCode = EricTextInputDialog.getText(
                     None,
                     self.tr("OAuth2 Authorization Code"),
                     self.tr("Enter the OAuth2 authorization code:"))
--- a/eric7/EricNetwork/EricJsonServer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/EricNetwork/EricJsonServer.py	Sat May 22 18:51:46 2021 +0200
@@ -16,7 +16,7 @@
 )
 from PyQt6.QtNetwork import QTcpServer, QHostAddress
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 import Preferences
 import Utilities
@@ -152,7 +152,7 @@
             try:
                 clientDict = json.loads(jsonLine.strip())
             except (TypeError, ValueError) as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     None,
                     self.tr("JSON Protocol Error"),
                     self.tr("""<p>The response received from the client"""
@@ -162,7 +162,7 @@
                             """<p>Error: {0}</p>"""
                             """<p>Data:<br/>{1}</p>""").format(
                         str(err), Utilities.html_encode(jsonLine.strip())),
-                    E5MessageBox.Ok)
+                    EricMessageBox.Ok)
                 return
             
             self.handleCall(clientDict["method"], clientDict["params"])
--- a/eric7/EricNetwork/EricNetworkProxyFactory.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/EricNetwork/EricNetworkProxyFactory.py	Sat May 22 18:51:46 2021 +0200
@@ -16,7 +16,7 @@
     QNetworkProxyFactory, QNetworkProxy, QNetworkProxyQuery
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 import Preferences
 import Globals
@@ -226,7 +226,7 @@
                     protocolKey = query.protocolTag().capitalize()
                 host = Preferences.getUI("ProxyHost/{0}".format(protocolKey))
                 if not host:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         None,
                         QCoreApplication.translate(
                             "EricNetworkProxyFactory",
--- a/eric7/EricNetwork/EricSslCertificatesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/EricNetwork/EricSslCertificatesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -18,7 +18,7 @@
         QSslCertificate, QSslSocket, QSslConfiguration, QSsl
     )
 
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui import EricMessageBox, EricFileDialog
 
 from .Ui_EricSslCertificatesDialog import Ui_EricSslCertificatesDialog
 
@@ -147,7 +147,7 @@
         Private slot to delete the selected server certificate.
         """
         itm = self.serversCertificatesTree.currentItem()
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Delete Server Certificate"),
             self.tr("""<p>Shall the server certificate really be"""
@@ -213,7 +213,7 @@
                     commonStr = ", ".join(
                         cert.subjectInfo(
                             QSslCertificate.SubjectInfo.CommonName))
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         self,
                         self.tr("Import Certificate"),
                         self.tr(
@@ -352,7 +352,7 @@
         Private slot to delete the selected CA certificate.
         """
         itm = self.caCertificatesTree.currentItem()
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Delete CA Certificate"),
             self.tr(
@@ -398,7 +398,7 @@
                     commonStr = ", ".join(
                         cert.subjectInfo(
                             QSslCertificate.SubjectInfo.CommonName))
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         self,
                         self.tr("Import Certificate"),
                         self.tr(
@@ -439,14 +439,14 @@
         @param cert certificate to be exported (QSslCertificate)
         """
         if cert is not None:
-            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
                 self,
                 self.tr("Export Certificate"),
                 name,
                 self.tr("Certificate File (PEM) (*.pem);;"
                         "Certificate File (DER) (*.der)"),
                 None,
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
             
             if fname:
                 ext = QFileInfo(fname).suffix()
@@ -455,18 +455,18 @@
                     if ex:
                         fname += ex
                 if QFileInfo(fname).exists():
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         self,
                         self.tr("Export Certificate"),
                         self.tr("<p>The file <b>{0}</b> already exists."
                                 " Overwrite it?</p>").format(fname),
-                        icon=E5MessageBox.Warning)
+                        icon=EricMessageBox.Warning)
                     if not res:
                         return
                 
                 f = QFile(fname)
                 if not f.open(QIODevice.OpenModeFlag.WriteOnly):
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Export Certificate"),
                         self.tr(
@@ -488,7 +488,7 @@
         
         @return certificates read (list of QSslCertificate)
         """
-        fname = E5FileDialog.getOpenFileName(
+        fname = EricFileDialog.getOpenFileName(
             self,
             self.tr("Import Certificate"),
             "",
@@ -498,7 +498,7 @@
         if fname:
             f = QFile(fname)
             if not f.open(QIODevice.OpenModeFlag.ReadOnly):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Export Certificate"),
                     self.tr(
--- a/eric7/EricNetwork/EricSslErrorHandler.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/EricNetwork/EricSslErrorHandler.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 from PyQt6.QtCore import QObject, QByteArray
 from PyQt6.QtNetwork import QSslCertificate, QSslConfiguration, QSslError, QSsl
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 import Preferences
 import Utilities
@@ -145,14 +145,14 @@
             return EricSslErrorState.SYSTEM_IGNORED, False
         
         errorString = '.</li><li>'.join(errorStrings)
-        ret = E5MessageBox.yesNo(
+        ret = EricMessageBox.yesNo(
             None,
             self.tr("SSL Errors"),
             self.tr("""<p>SSL Errors for <br /><b>{0}</b>"""
                     """<ul><li>{1}</li></ul></p>"""
                     """<p>Do you want to ignore these errors?</p>""")
             .format(server, errorString),
-            icon=E5MessageBox.Warning)
+            icon=EricMessageBox.Warning)
         
         if ret:
             caRet = False
@@ -160,7 +160,7 @@
                 certinfos = []
                 for cert in caNew:
                     certinfos.append(self.__certToString(cert))
-                caRet = E5MessageBox.yesNo(
+                caRet = EricMessageBox.yesNo(
                     None,
                     self.tr("Certificates"),
                     self.tr(
--- a/eric7/EricNetwork/EricTldExtractor.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/EricNetwork/EricTldExtractor.py	Sat May 22 18:51:46 2021 +0200
@@ -18,7 +18,7 @@
 
 from PyQt6.QtCore import QObject, QUrl, QFile, QFileInfo, qWarning
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 
 class EricTldHostParts:
@@ -284,7 +284,7 @@
                 "http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/"
                 "effective_tld_names.dat?raw=1"
             )
-            E5MessageBox.information(
+            EricMessageBox.information(
                 None,
                 self.tr("TLD Data File not found"),
                 self.tr("""<p>The file 'effective_tld_names.dat' was not"""
@@ -464,7 +464,7 @@
                 "http://mxr.mozilla.org/mozilla-central/source/netwerk/test/"
                 "unit/data/test_psl.txt?raw=1"
             )
-            E5MessageBox.information(
+            EricMessageBox.information(
                 None,
                 self.tr("TLD Data File not found"),
                 self.tr("""<p>The file 'test_psl.txt' was not found!"""
--- a/eric7/EricUtilities/EricMutexLocker.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/EricUtilities/EricMutexLocker.py	Sat May 22 18:51:46 2021 +0200
@@ -28,7 +28,7 @@
         Special method called when entering the runtime ccontext.
         
         @return reference to the context manager object
-        @rtype E5OverrideCursor
+        @rtype EricOverrideCursor
         """
         self.__mutex.lock()
         
--- a/eric7/EricXML/SessionReader.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/EricXML/SessionReader.py	Sat May 22 18:51:46 2021 +0200
@@ -7,7 +7,7 @@
 Module implementing a class for reading an XML session file.
 """
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from .Config import sessionFileFormatVersion
 from .XMLStreamReaderBase import XMLStreamReaderBase
@@ -34,12 +34,12 @@
         self.version = ""
         self.isGlobal = isGlobal
         
-        self.project = e5App().getObject("Project")
-        self.projectBrowser = e5App().getObject("ProjectBrowser")
-        self.multiProject = e5App().getObject("MultiProject")
-        self.vm = e5App().getObject("ViewManager")
-        self.dbg = e5App().getObject("DebugUI")
-        self.dbs = e5App().getObject("DebugServer")
+        self.project = ericApp().getObject("Project")
+        self.projectBrowser = ericApp().getObject("ProjectBrowser")
+        self.multiProject = ericApp().getObject("MultiProject")
+        self.vm = ericApp().getObject("ViewManager")
+        self.dbg = ericApp().getObject("DebugUI")
+        self.dbs = ericApp().getObject("DebugServer")
         
         if not self.isGlobal:
             # clear all breakpoints and bookmarks first
--- a/eric7/EricXML/TasksReader.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/EricXML/TasksReader.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 import time
 import contextlib
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from .Config import tasksFileFormatVersion
 from .XMLStreamReaderBase import XMLStreamReaderBase
@@ -42,7 +42,7 @@
         if viewer:
             self.viewer = viewer
         else:
-            self.viewer = e5App().getObject("TaskViewer")
+            self.viewer = ericApp().getObject("TaskViewer")
         
         self.version = ""
         self.tasks = []
--- a/eric7/EricXML/XMLStreamReaderBase.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/EricXML/XMLStreamReaderBase.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 
 from PyQt6.QtCore import QXmlStreamReader, QCoreApplication
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 
 class XMLStreamReaderBase(QXmlStreamReader):
@@ -63,7 +63,7 @@
                     " column {1})</p><p>Error: {2}</p>").format(
                     self.lineNumber(), self.columnNumber(),
                     self.errorString())
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 QCoreApplication.translate(
                     "XMLStreamReaderBase", "XML parse error"),
--- a/eric7/Graphics/ApplicationDiagramBuilder.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Graphics/ApplicationDiagramBuilder.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 
 from PyQt6.QtWidgets import QApplication, QInputDialog
 
-from E5Gui import E5MessageBox
-from E5Gui.E5ProgressDialog import E5ProgressDialog
+from E5Gui import EricMessageBox
+from E5Gui.EricProgressDialog import EricProgressDialog
 
 from .UMLDiagramBuilder import UMLDiagramBuilder
 
@@ -68,7 +68,7 @@
             modules.append(Utilities.normabsjoinpath(
                 self.project.ppath, module))
         tot = len(modules)
-        progress = E5ProgressDialog(
+        progress = EricProgressDialog(
             self.tr("Parsing modules..."),
             None, 0, tot, self.tr("%v/%m Modules"), self.parent())
         progress.setWindowTitle(self.tr("Application Diagram"))
@@ -132,7 +132,7 @@
                 if ok:
                     return root
             else:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     None,
                     self.tr("Application Diagram"),
                     self.tr("""No application package could be detected."""
@@ -409,7 +409,7 @@
         
         projectFile = parts[0].split("=", 1)[1].strip()
         if projectFile != self.project.getProjectFile():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Load Diagram"),
                 self.tr(
--- a/eric7/Graphics/ImportsDiagramBuilder.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Graphics/ImportsDiagramBuilder.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 
 from PyQt6.QtWidgets import QApplication, QGraphicsTextItem
 
-from E5Gui.E5ProgressDialog import E5ProgressDialog
+from E5Gui.EricProgressDialog import EricProgressDialog
 
 from .UMLDiagramBuilder import UMLDiagramBuilder
 
@@ -101,7 +101,7 @@
                 self.packagePath, '*{0}'.format(ext))))
         
         tot = len(modules)
-        progress = E5ProgressDialog(
+        progress = EricProgressDialog(
             self.tr("Parsing modules..."),
             None, 0, tot, self.tr("%v/%m Modules"), self.parent())
         progress.setWindowTitle(self.tr("Imports Diagramm"))
--- a/eric7/Graphics/PackageDiagramBuilder.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Graphics/PackageDiagramBuilder.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 
 from PyQt6.QtWidgets import QApplication, QGraphicsTextItem
 
-from E5Gui.E5ProgressDialog import E5ProgressDialog
+from E5Gui.EricProgressDialog import EricProgressDialog
 
 from .UMLDiagramBuilder import UMLDiagramBuilder
 
@@ -102,7 +102,7 @@
             modules.extend(glob.glob(
                 Utilities.normjoinpath(self.package, ext)))
         tot = len(modules)
-        progress = E5ProgressDialog(
+        progress = EricProgressDialog(
             self.tr("Parsing modules..."),
             None, 0, tot, self.tr("%v/%m Modules"), self.parent())
         progress.setWindowTitle(self.tr("Package Diagram"))
@@ -166,7 +166,7 @@
         for ext in supportedExt:
             for subpackage in subpackagesList:
                 tot += len(glob.glob(Utilities.normjoinpath(subpackage, ext)))
-        progress = E5ProgressDialog(
+        progress = EricProgressDialog(
             self.tr("Parsing modules..."),
             None, 0, tot, self.tr("%v/%m Modules"), self.parent())
         progress.setWindowTitle(self.tr("Package Diagram"))
--- a/eric7/Graphics/PixmapDiagram.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Graphics/PixmapDiagram.py	Sat May 22 18:51:46 2021 +0200
@@ -16,16 +16,16 @@
 )
 from PyQt6.QtPrintSupport import QPrinter, QPrintDialog
 
-from E5Gui import E5MessageBox
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5ZoomWidget import E5ZoomWidget
+from E5Gui import EricMessageBox
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricZoomWidget import EricZoomWidget
 
 import UI.Config
 
 import Preferences
 
 
-class PixmapDiagram(E5MainWindow):
+class PixmapDiagram(EricMainWindow):
     """
     Class implementing a dialog showing a pixmap.
     """
@@ -70,7 +70,7 @@
         
         self.setCentralWidget(self.pixmapView)
         
-        self.__zoomWidget = E5ZoomWidget(
+        self.__zoomWidget = EricZoomWidget(
             UI.PixmapCache.getPixmap("zoomOut"),
             UI.PixmapCache.getPixmap("zoomIn"),
             UI.PixmapCache.getPixmap("zoomReset"), self)
@@ -159,7 +159,7 @@
         """
         image = QImage(filename)
         if image.isNull():
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Pixmap-Viewer"),
                 self.tr(
--- a/eric7/Graphics/SvgDiagram.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Graphics/SvgDiagram.py	Sat May 22 18:51:46 2021 +0200
@@ -13,15 +13,15 @@
 from PyQt6.QtPrintSupport import QPrinter, QPrintDialog
 from PyQt6.QtSvgWidgets import QSvgWidget
 
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5ZoomWidget import E5ZoomWidget
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricZoomWidget import EricZoomWidget
 
 import UI.Config
 
 import Preferences
 
 
-class SvgDiagram(E5MainWindow):
+class SvgDiagram(EricMainWindow):
     """
     Class implementing a dialog showing a SVG graphic.
     """
@@ -65,7 +65,7 @@
         
         self.setCentralWidget(self.svgView)
         
-        self.__zoomWidget = E5ZoomWidget(
+        self.__zoomWidget = EricZoomWidget(
             UI.PixmapCache.getPixmap("zoomOut"),
             UI.PixmapCache.getPixmap("zoomIn"),
             UI.PixmapCache.getPixmap("zoomReset"), self)
--- a/eric7/Graphics/UMLDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Graphics/UMLDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,8 +14,8 @@
 from PyQt6.QtGui import QAction
 from PyQt6.QtWidgets import QToolBar, QGraphicsScene
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5MainWindow import E5MainWindow
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricMainWindow import EricMainWindow
 
 import UI.Config
 import UI.PixmapCache
@@ -32,7 +32,7 @@
     NO_DIAGRAM = 255
 
 
-class UMLDialog(E5MainWindow):
+class UMLDialog(EricMainWindow):
     """
     Class implementing a dialog showing UML like diagrams.
     """
@@ -238,7 +238,7 @@
         @type str
         """
         if not filename:
-            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
                 self,
                 self.tr("Save Diagram"),
                 "",
@@ -246,7 +246,7 @@
                         "Eric Text Graphics File (*.e5g);;"
                         "All Files (*)"),
                 "",
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
             if not fname:
                 return
             ext = QFileInfo(fname).suffix()
@@ -255,12 +255,12 @@
                 if ex:
                     fname += ex
             if QFileInfo(fname).exists():
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self,
                     self.tr("Save Diagram"),
                     self.tr("<p>The file <b>{0}</b> already exists."
                             " Overwrite it?</p>").format(fname),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
             filename = fname
@@ -282,7 +282,7 @@
         @rtype bool
         """
         if not filename:
-            filename = E5FileDialog.getOpenFileName(
+            filename = EricFileDialog.getOpenFileName(
                 self,
                 self.tr("Load Diagram"),
                 "",
@@ -319,7 +319,7 @@
             with open(filename, "r", encoding="utf-8") as f:
                 data = f.read()
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Load Diagram"),
                 self.tr(
@@ -429,7 +429,7 @@
 ##                f.write("\n".join(lines))
 ##            return True
 ##        except OSError as err:
-##            E5MessageBox.critical(
+##            EricMessageBox.critical(
 ##                self,
 ##                self.tr("Save Diagram"),
 ##                self.tr(
@@ -454,7 +454,7 @@
                     """ valid data.</p><p>Invalid line: {1}</p>"""
                     ).format(filename, linenum + 1)
         )
-        E5MessageBox.critical(self, self.tr("Load Diagram"), msg)
+        EricMessageBox.critical(self, self.tr("Load Diagram"), msg)
     
     #######################################################################
     ## Methods to read and write eric graphics files of the JSON based
@@ -487,7 +487,7 @@
                 f.write(jsonString)
             return True
         except (TypeError, OSError) as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Save Diagram"),
                 self.tr(
@@ -511,7 +511,7 @@
                 jsonString = f.read()
             data = json.loads(jsonString)
         except (OSError, json.JSONDecodeError) as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Load Diagram"),
                 self.tr(
@@ -544,13 +544,13 @@
             ok, msg = self.builder.fromDict(version, data["builder"])
             if not ok:
                 if msg:
-                    res = E5MessageBox.warning(
+                    res = EricMessageBox.warning(
                         self,
                         self.tr("Load Diagram"),
                         msg,
-                        E5MessageBox.Abort | E5MessageBox.Ignore,
-                        E5MessageBox.Abort)
-                    if res == E5MessageBox.Abort:
+                        EricMessageBox.Abort | EricMessageBox.Ignore,
+                        EricMessageBox.Abort)
+                    if res == EricMessageBox.Abort:
                         return False
                     else:
                         self.umlView.setLayoutActionsEnabled(False)
--- a/eric7/Graphics/UMLGraphicsView.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Graphics/UMLGraphicsView.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
 
 from EricGraphics.EricGraphicsView import EricGraphicsView
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5ZoomWidget import E5ZoomWidget
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricZoomWidget import EricZoomWidget
 
 from .UMLItem import UMLItem
 
@@ -56,7 +56,7 @@
         self.border = 10
         self.deltaSize = 100.0
         
-        self.__zoomWidget = E5ZoomWidget(
+        self.__zoomWidget = EricZoomWidget(
             UI.PixmapCache.getPixmap("zoomOut"),
             UI.PixmapCache.getPixmap("zoomIn"),
             UI.PixmapCache.getPixmap("zoomReset"), self)
@@ -358,14 +358,14 @@
         """
         Public method to handle the save context menu entry.
         """
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save Diagram"),
             "",
             self.tr("Portable Network Graphics (*.png);;"
                     "Scalable Vector Graphics (*.svg)"),
             "",
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         if fname:
             ext = QFileInfo(fname).suffix()
             if not ext:
@@ -373,19 +373,19 @@
                 if ex:
                     fname += ex
             if QFileInfo(fname).exists():
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self,
                     self.tr("Save Diagram"),
                     self.tr("<p>The file <b>{0}</b> already exists."
                             " Overwrite it?</p>").format(fname),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
             
             success = super().saveImage(
                 fname, QFileInfo(fname).suffix().upper())
             if not success:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Save Diagram"),
                     self.tr(
--- a/eric7/HexEdit/HexEditMainWindow.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/HexEdit/HexEditMainWindow.py	Sat May 22 18:51:46 2021 +0200
@@ -18,10 +18,10 @@
     QWhatsThis, QLabel, QWidget, QVBoxLayout, QDialog, QFrame, QMenu
 )
 
-from E5Gui.E5Action import E5Action
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui import E5FileDialog, E5MessageBox
-from E5Gui.E5ClickableLabel import E5ClickableLabel
+from E5Gui.EricAction import EricAction
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui import EricFileDialog, EricMessageBox
+from E5Gui.EricClickableLabel import EricClickableLabel
 
 from Globals import strGroup, recentNameHexFiles
 
@@ -36,7 +36,7 @@
 import Utilities
 
 
-class HexEditMainWindow(E5MainWindow):
+class HexEditMainWindow(EricMainWindow):
     """
     Class implementing the web browser main window.
     
@@ -156,7 +156,7 @@
         """
         Private method to define the file related user interface actions.
         """
-        self.newWindowAct = E5Action(
+        self.newWindowAct = EricAction(
             self.tr('New Window'),
             UI.PixmapCache.getIcon("newWindow"),
             self.tr('New &Window'),
@@ -172,7 +172,7 @@
         self.__actions.append(self.newWindowAct)
         
         # correct texts will be set later
-        self.openAct = E5Action(
+        self.openAct = EricAction(
             self.tr('Open'),
             UI.PixmapCache.getIcon("open"),
             self.tr('&Open...'),
@@ -182,13 +182,13 @@
         self.__actions.append(self.openAct)
         
         # correct texts will be set later
-        self.openReadOnlyAct = E5Action(
+        self.openReadOnlyAct = EricAction(
             "", "",
             0, 0, self, 'hexEditor_file_open_read_only')
         self.openReadOnlyAct.triggered.connect(self.__openHexFileReadOnly)
         self.__actions.append(self.openReadOnlyAct)
         
-        self.saveAct = E5Action(
+        self.saveAct = EricAction(
             self.tr('Save'),
             UI.PixmapCache.getIcon("fileSave"),
             self.tr('&Save'),
@@ -202,7 +202,7 @@
         self.saveAct.triggered.connect(self.__saveHexFile)
         self.__actions.append(self.saveAct)
         
-        self.saveAsAct = E5Action(
+        self.saveAsAct = EricAction(
             self.tr('Save As'),
             UI.PixmapCache.getIcon("fileSaveAs"),
             self.tr('Save &As...'),
@@ -217,7 +217,7 @@
         self.saveAsAct.triggered.connect(self.__saveHexFileAs)
         self.__actions.append(self.saveAsAct)
         
-        self.saveReadableAct = E5Action(
+        self.saveReadableAct = EricAction(
             self.tr('Save As Readable'),
             self.tr('Save As &Readable...'),
             0, 0, self, 'hexEditor_file_save_readable')
@@ -232,7 +232,7 @@
         self.saveReadableAct.triggered.connect(self.__saveHexFileReadable)
         self.__actions.append(self.saveReadableAct)
         
-        self.closeAct = E5Action(
+        self.closeAct = EricAction(
             self.tr('Close'),
             UI.PixmapCache.getIcon("close"),
             self.tr('&Close'),
@@ -247,7 +247,7 @@
         self.closeAct.triggered.connect(self.close)
         self.__actions.append(self.closeAct)
         
-        self.closeAllAct = E5Action(
+        self.closeAllAct = EricAction(
             self.tr('Close All'),
             self.tr('Close &All'),
             0, 0, self, 'hexEditor_file_close_all')
@@ -260,7 +260,7 @@
         self.closeAllAct.triggered.connect(self.__closeAll)
         self.__actions.append(self.closeAllAct)
         
-        self.closeOthersAct = E5Action(
+        self.closeOthersAct = EricAction(
             self.tr('Close Others'),
             self.tr('Close Others'),
             0, 0, self, 'hexEditor_file_close_others')
@@ -273,7 +273,7 @@
         self.closeOthersAct.triggered.connect(self.__closeOthers)
         self.__actions.append(self.closeOthersAct)
         
-        self.exitAct = E5Action(
+        self.exitAct = EricAction(
             self.tr('Quit'),
             UI.PixmapCache.getIcon("exit"),
             self.tr('&Quit'),
@@ -292,7 +292,7 @@
         """
         Private method to create the Edit actions.
         """
-        self.undoAct = E5Action(
+        self.undoAct = EricAction(
             self.tr('Undo'),
             UI.PixmapCache.getIcon("editUndo"),
             self.tr('&Undo'),
@@ -307,7 +307,7 @@
         self.undoAct.triggered.connect(self.__editor.undo)
         self.__actions.append(self.undoAct)
         
-        self.redoAct = E5Action(
+        self.redoAct = EricAction(
             self.tr('Redo'),
             UI.PixmapCache.getIcon("editRedo"),
             self.tr('&Redo'),
@@ -321,7 +321,7 @@
         self.redoAct.triggered.connect(self.__editor.redo)
         self.__actions.append(self.redoAct)
         
-        self.revertAct = E5Action(
+        self.revertAct = EricAction(
             self.tr('Revert to last saved state'),
             self.tr('Re&vert to last saved state'),
             QKeySequence(self.tr("Ctrl+Y", "Edit|Revert")),
@@ -336,7 +336,7 @@
         self.revertAct.triggered.connect(self.__editor.revertToUnmodified)
         self.__actions.append(self.revertAct)
         
-        self.cutAct = E5Action(
+        self.cutAct = EricAction(
             self.tr('Cut'),
             UI.PixmapCache.getIcon("editCut"),
             self.tr('Cu&t'),
@@ -351,7 +351,7 @@
         self.cutAct.triggered.connect(self.__editor.cut)
         self.__actions.append(self.cutAct)
         
-        self.copyAct = E5Action(
+        self.copyAct = EricAction(
             self.tr('Copy'),
             UI.PixmapCache.getIcon("editCopy"),
             self.tr('&Copy'),
@@ -366,7 +366,7 @@
         self.copyAct.triggered.connect(self.__editor.copy)
         self.__actions.append(self.copyAct)
         
-        self.pasteAct = E5Action(
+        self.pasteAct = EricAction(
             self.tr('Paste'),
             UI.PixmapCache.getIcon("editPaste"),
             self.tr('&Paste'),
@@ -381,7 +381,7 @@
         self.pasteAct.triggered.connect(self.__editor.paste)
         self.__actions.append(self.pasteAct)
         
-        self.selectAllAct = E5Action(
+        self.selectAllAct = EricAction(
             self.tr('Select All'),
             UI.PixmapCache.getIcon("editSelectAll"),
             self.tr('&Select All'),
@@ -397,7 +397,7 @@
         self.selectAllAct.triggered.connect(self.__editor.selectAll)
         self.__actions.append(self.selectAllAct)
         
-        self.deselectAllAct = E5Action(
+        self.deselectAllAct = EricAction(
             self.tr('Deselect all'),
             self.tr('&Deselect all'),
             QKeySequence(self.tr("Alt+Ctrl+A", "Edit|Deselect all")),
@@ -411,7 +411,7 @@
         self.deselectAllAct.triggered.connect(self.__editor.deselectAll)
         self.__actions.append(self.deselectAllAct)
         
-        self.saveSelectionReadableAct = E5Action(
+        self.saveSelectionReadableAct = EricAction(
             self.tr('Save Selection Readable'),
             self.tr('Save Selection Readable...'),
             0, 0, self, 'hexEditor_edit_selection_save_readable')
@@ -427,7 +427,7 @@
             self.__saveSelectionReadable)
         self.__actions.append(self.saveSelectionReadableAct)
         
-        self.readonlyAct = E5Action(
+        self.readonlyAct = EricAction(
             self.tr('Set Read Only'),
             self.tr('Set Read Only'),
             0, 0, self, 'hexEditor_edit_readonly', True)
@@ -443,7 +443,7 @@
         self.__editor.readOnlyChanged.connect(self.readonlyAct.setChecked)
         self.__actions.append(self.readonlyAct)
         
-        self.searchAct = E5Action(
+        self.searchAct = EricAction(
             self.tr('Search'),
             UI.PixmapCache.getIcon("find"),
             self.tr('&Search...'),
@@ -459,7 +459,7 @@
         self.searchAct.triggered.connect(self.__search)
         self.__actions.append(self.searchAct)
         
-        self.searchNextAct = E5Action(
+        self.searchNextAct = EricAction(
             self.tr('Search next'),
             UI.PixmapCache.getIcon("findNext"),
             self.tr('Search &next'),
@@ -476,7 +476,7 @@
         self.searchNextAct.triggered.connect(self.__searchWidget.findPrevNext)
         self.__actions.append(self.searchNextAct)
         
-        self.searchPrevAct = E5Action(
+        self.searchPrevAct = EricAction(
             self.tr('Search previous'),
             UI.PixmapCache.getIcon("findPrev"),
             self.tr('Search &previous'),
@@ -494,7 +494,7 @@
             lambda: self.__searchWidget.findPrevNext(True))
         self.__actions.append(self.searchPrevAct)
         
-        self.replaceAct = E5Action(
+        self.replaceAct = EricAction(
             self.tr('Replace'),
             self.tr('&Replace...'),
             QKeySequence(self.tr("Ctrl+R", "Search|Replace")),
@@ -510,7 +510,7 @@
         self.replaceAct.triggered.connect(self.__replace)
         self.__actions.append(self.replaceAct)
         
-        self.gotoAct = E5Action(
+        self.gotoAct = EricAction(
             self.tr('Goto Offset'),
             UI.PixmapCache.getIcon("goto"),
             self.tr('&Goto Offset...'),
@@ -548,7 +548,7 @@
         """
         Private method to create the Help actions.
         """
-        self.aboutAct = E5Action(
+        self.aboutAct = EricAction(
             self.tr('About'),
             self.tr('&About'),
             0, 0, self, 'hexEditor_help_about')
@@ -560,7 +560,7 @@
         self.aboutAct.triggered.connect(self.__about)
         self.__actions.append(self.aboutAct)
         
-        self.aboutQtAct = E5Action(
+        self.aboutQtAct = EricAction(
             self.tr('About Qt'),
             self.tr('About &Qt'),
             0, 0, self, 'hexEditor_help_about_qt')
@@ -573,7 +573,7 @@
         self.aboutQtAct.triggered.connect(self.__aboutQt)
         self.__actions.append(self.aboutQtAct)
         
-        self.whatsThisAct = E5Action(
+        self.whatsThisAct = EricAction(
             self.tr('What\'s This?'),
             UI.PixmapCache.getIcon("whatsThis"),
             self.tr('&What\'s This?'),
@@ -595,7 +595,7 @@
         """
         Private method to create the Settings actions.
         """
-        self.prefAct = E5Action(
+        self.prefAct = EricAction(
             self.tr('Preferences'),
             UI.PixmapCache.getIcon("configure"),
             self.tr('&Preferences...'),
@@ -797,7 +797,7 @@
         self.__sbSize.setFrameStyle(
             QFrame.Shape.StyledPanel | QFrame.Shadow.Plain)
         
-        self.__sbEditMode = E5ClickableLabel(self.__statusBar)
+        self.__sbEditMode = EricClickableLabel(self.__statusBar)
         self.__statusBar.addPermanentWidget(self.__sbEditMode)
         self.__sbEditMode.setWhatsThis(self.tr(
             """<p>This part of the status bar displays the edit mode.</p>"""
@@ -806,7 +806,7 @@
             QFrame.Shape.StyledPanel | QFrame.Shadow.Plain)
         self.__sbEditMode.clicked.connect(self.__toggleEditMode)
         
-        self.__sbReadOnly = E5ClickableLabel(self.__statusBar)
+        self.__sbReadOnly = EricClickableLabel(self.__statusBar)
         self.__statusBar.addPermanentWidget(self.__sbReadOnly)
         self.__sbReadOnly.setWhatsThis(self.tr(
             """<p>This part of the status bar displays the read"""
@@ -946,7 +946,7 @@
         ):
             self.__lastOpenPath = self.__project.getProjectPath()
         
-        fileName = E5FileDialog.getOpenFileName(
+        fileName = EricFileDialog.getOpenFileName(
             self,
             self.tr("Open binary file in new window"),
             self.__lastOpenPath,
@@ -967,7 +967,7 @@
         @rtype bool
         """
         if self.__editor.isModified():
-            ret = E5MessageBox.okToClearData(
+            ret = EricMessageBox.okToClearData(
                 self,
                 self.tr("eric Hex Editor"),
                 self.tr("""The loaded file has unsaved changes."""),
@@ -985,14 +985,14 @@
         """
         file = QFile(fileName)
         if not file.exists():
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self, self.tr("eric Hex Editor"),
                 self.tr("The file '{0}' does not exist.")
                 .format(fileName))
             return
         
         if not file.open(QFile.ReadOnly):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self, self.tr("eric Hex Editor"),
                 self.tr("Cannot read file '{0}:\n{1}.")
                 .format(fileName, file.errorString()))
@@ -1021,7 +1021,7 @@
             ):
                 self.__lastOpenPath = self.__project.getProjectPath()
             
-            fileName = E5FileDialog.getOpenFileName(
+            fileName = EricFileDialog.getOpenFileName(
                 self,
                 self.tr("Open binary file"),
                 self.__lastOpenPath,
@@ -1072,22 +1072,22 @@
         if not self.__lastSavePath and self.__lastOpenPath:
             self.__lastSavePath = self.__lastOpenPath
         
-        fileName = E5FileDialog.getSaveFileName(
+        fileName = EricFileDialog.getSaveFileName(
             self,
             self.tr("Save binary file"),
             self.__lastSavePath,
             self.tr("All Files (*)"),
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         if not fileName:
             return False
         
         if QFileInfo(fileName).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save binary file"),
                 self.tr("<p>The file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fileName),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return False
         
@@ -1106,7 +1106,7 @@
         """
         file = QFile(fileName)
         if not file.open(QFile.WriteOnly):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self, self.tr("eric Hex Editor"),
                 self.tr("Cannot write file '{0}:\n{1}.")
                 .format(fileName, file.errorString()))
@@ -1119,7 +1119,7 @@
         file.close()
         
         if not res:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self, self.tr("eric Hex Editor"),
                 self.tr("Cannot write file '{0}:\n{1}.")
                 .format(fileName, file.errorString()))
@@ -1154,13 +1154,13 @@
         if not savePath and self.__lastOpenPath:
             savePath = self.__lastOpenPath
         
-        fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fileName, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save to readable file"),
             savePath,
             self.tr("Text Files (*.txt);;All Files (*)"),
             self.tr("Text Files (*.txt)"),
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         if not fileName:
             return
         
@@ -1170,18 +1170,18 @@
             if ex:
                 fileName += ex
         if QFileInfo(fileName).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save to readable file"),
                 self.tr("<p>The file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fileName),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return
         
         file = QFile(fileName)
         if not file.open(QFile.WriteOnly):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self, self.tr("eric Hex Editor"),
                 self.tr("Cannot write file '{0}:\n{1}.")
                 .format(fileName, file.errorString()))
@@ -1196,7 +1196,7 @@
         file.close()
         
         if not res:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self, self.tr("eric Hex Editor"),
                 self.tr("Cannot write file '{0}:\n{1}.")
                 .format(fileName, file.errorString()))
@@ -1300,7 +1300,7 @@
         """
         Private slot to show a little About message.
         """
-        E5MessageBox.about(
+        EricMessageBox.about(
             self, self.tr("About eric Hex Editor"),
             self.tr("The eric Hex Editor is a simple editor component"
                     " to edit binary files."))
@@ -1309,7 +1309,7 @@
         """
         Private slot to handle the About Qt dialog.
         """
-        E5MessageBox.aboutQt(self, "eric Hex Editor")
+        EricMessageBox.aboutQt(self, "eric Hex Editor")
     
     def __whatsThis(self):
         """
--- a/eric7/HexEdit/HexEditSearchReplaceWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/HexEdit/HexEditSearchReplaceWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -11,8 +11,8 @@
 from PyQt6.QtGui import QRegularExpressionValidator
 from PyQt6.QtWidgets import QWidget
 
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import UI.PixmapCache
 
@@ -99,7 +99,7 @@
             self.__ui.replacetextCombo.lineEdit().returnPressed.connect(
                 self.on_replaceButton_clicked)
         
-        self.findNextAct = E5Action(
+        self.findNextAct = EricAction(
             self.tr('Find Next'),
             self.tr('Find Next'),
             0, 0, self, 'hexEditor_search_widget_find_next')
@@ -107,7 +107,7 @@
         self.findNextAct.setEnabled(False)
         self.__ui.findtextCombo.addAction(self.findNextAct)
         
-        self.findPrevAct = E5Action(
+        self.findPrevAct = EricAction(
             self.tr('Find Prev'),
             self.tr('Find Prev'),
             0, 0, self, 'hexEditor_search_widget_find_prev')
@@ -270,7 +270,7 @@
                 self.__ui.replaceButton.setEnabled(True)
                 self.__ui.replaceSearchButton.setEnabled(True)
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self, self.windowTitle(),
                 self.tr("'{0}' was not found.").format(txt))
         
@@ -386,12 +386,12 @@
                 replacements += 1
         
         if replacements:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self, self.windowTitle(),
                 self.tr("Replaced {0} occurrences.")
                 .format(replacements))
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self, self.windowTitle(),
                 self.tr("Nothing replaced because '{0}' was not found.")
                 .format(ftxt))
--- a/eric7/IconEditor/IconEditorGrid.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/IconEditor/IconEditorGrid.py	Sat May 22 18:51:46 2021 +0200
@@ -17,7 +17,7 @@
 )
 from PyQt6.QtWidgets import QWidget, QSizePolicy, QApplication, QDialog
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 
 class IconEditCommand(QUndoCommand):
@@ -940,7 +940,7 @@
                 img.width() > self.__image.width() or
                 img.height() > self.__image.height()
             ):
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self,
                     self.tr("Paste"),
                     self.tr(
@@ -971,7 +971,7 @@
                     self.__pasteRect.topLeft(),
                     self.__pasteRect.bottomRight() + QPoint(1, 1))
         else:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Pasting Image"),
                 self.tr("""Invalid image data in clipboard."""))
--- a/eric7/IconEditor/IconEditorWindow.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/IconEditor/IconEditorWindow.py	Sat May 22 18:51:46 2021 +0200
@@ -18,10 +18,10 @@
 )
 from PyQt6.QtWidgets import QScrollArea, QLabel, QDockWidget, QWhatsThis
 
-from E5Gui.E5Action import E5Action, createActionGroup
-from E5Gui import E5FileDialog, E5MessageBox
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5ZoomWidget import E5ZoomWidget
+from E5Gui.EricAction import EricAction, createActionGroup
+from E5Gui import EricFileDialog, EricMessageBox
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricZoomWidget import EricZoomWidget
 
 from .IconEditorGrid import IconEditorGrid, IconEditorTool
 
@@ -31,7 +31,7 @@
 import Preferences
 
 
-class IconEditorWindow(E5MainWindow):
+class IconEditorWindow(EricMainWindow):
     """
     Class implementing the web browser main window.
     
@@ -188,7 +188,7 @@
         """
         Private method to define the file related user interface actions.
         """
-        self.newAct = E5Action(
+        self.newAct = EricAction(
             self.tr('New'),
             UI.PixmapCache.getIcon("new"),
             self.tr('&New'),
@@ -202,7 +202,7 @@
         self.newAct.triggered.connect(self.__newIcon)
         self.__actions.append(self.newAct)
         
-        self.newWindowAct = E5Action(
+        self.newWindowAct = EricAction(
             self.tr('New Window'),
             UI.PixmapCache.getIcon("newWindow"),
             self.tr('New &Window'),
@@ -216,7 +216,7 @@
         self.newWindowAct.triggered.connect(self.__newWindow)
         self.__actions.append(self.newWindowAct)
         
-        self.openAct = E5Action(
+        self.openAct = EricAction(
             self.tr('Open'),
             UI.PixmapCache.getIcon("open"),
             self.tr('&Open...'),
@@ -231,7 +231,7 @@
         self.openAct.triggered.connect(self.__openIcon)
         self.__actions.append(self.openAct)
         
-        self.saveAct = E5Action(
+        self.saveAct = EricAction(
             self.tr('Save'),
             UI.PixmapCache.getIcon("fileSave"),
             self.tr('&Save'),
@@ -245,7 +245,7 @@
         self.saveAct.triggered.connect(self.__saveIcon)
         self.__actions.append(self.saveAct)
         
-        self.saveAsAct = E5Action(
+        self.saveAsAct = EricAction(
             self.tr('Save As'),
             UI.PixmapCache.getIcon("fileSaveAs"),
             self.tr('Save &As...'),
@@ -260,7 +260,7 @@
         self.saveAsAct.triggered.connect(self.__saveIconAs)
         self.__actions.append(self.saveAsAct)
         
-        self.closeAct = E5Action(
+        self.closeAct = EricAction(
             self.tr('Close'),
             UI.PixmapCache.getIcon("close"),
             self.tr('&Close'),
@@ -275,7 +275,7 @@
         self.closeAct.triggered.connect(self.close)
         self.__actions.append(self.closeAct)
         
-        self.closeAllAct = E5Action(
+        self.closeAllAct = EricAction(
             self.tr('Close All'),
             self.tr('Close &All'),
             0, 0, self, 'iconEditor_file_close_all')
@@ -288,7 +288,7 @@
         self.closeAllAct.triggered.connect(self.__closeAll)
         self.__actions.append(self.closeAllAct)
         
-        self.closeOthersAct = E5Action(
+        self.closeOthersAct = EricAction(
             self.tr('Close Others'),
             self.tr('Close Others'),
             0, 0, self, 'iconEditor_file_close_others')
@@ -301,7 +301,7 @@
         self.closeOthersAct.triggered.connect(self.__closeOthers)
         self.__actions.append(self.closeOthersAct)
         
-        self.exitAct = E5Action(
+        self.exitAct = EricAction(
             self.tr('Quit'),
             UI.PixmapCache.getIcon("exit"),
             self.tr('&Quit'),
@@ -320,7 +320,7 @@
         """
         Private method to create the Edit actions.
         """
-        self.undoAct = E5Action(
+        self.undoAct = EricAction(
             self.tr('Undo'),
             UI.PixmapCache.getIcon("editUndo"),
             self.tr('&Undo'),
@@ -335,7 +335,7 @@
         self.undoAct.triggered.connect(self.__editor.editUndo)
         self.__actions.append(self.undoAct)
         
-        self.redoAct = E5Action(
+        self.redoAct = EricAction(
             self.tr('Redo'),
             UI.PixmapCache.getIcon("editRedo"),
             self.tr('&Redo'),
@@ -349,7 +349,7 @@
         self.redoAct.triggered.connect(self.__editor.editRedo)
         self.__actions.append(self.redoAct)
         
-        self.cutAct = E5Action(
+        self.cutAct = EricAction(
             self.tr('Cut'),
             UI.PixmapCache.getIcon("editCut"),
             self.tr('Cu&t'),
@@ -364,7 +364,7 @@
         self.cutAct.triggered.connect(self.__editor.editCut)
         self.__actions.append(self.cutAct)
         
-        self.copyAct = E5Action(
+        self.copyAct = EricAction(
             self.tr('Copy'),
             UI.PixmapCache.getIcon("editCopy"),
             self.tr('&Copy'),
@@ -379,7 +379,7 @@
         self.copyAct.triggered.connect(self.__editor.editCopy)
         self.__actions.append(self.copyAct)
         
-        self.pasteAct = E5Action(
+        self.pasteAct = EricAction(
             self.tr('Paste'),
             UI.PixmapCache.getIcon("editPaste"),
             self.tr('&Paste'),
@@ -394,7 +394,7 @@
         self.pasteAct.triggered.connect(self.__editor.editPaste)
         self.__actions.append(self.pasteAct)
         
-        self.pasteNewAct = E5Action(
+        self.pasteNewAct = EricAction(
             self.tr('Paste as New'),
             self.tr('Paste as &New'),
             0, 0, self, 'iconEditor_edit_paste_as_new')
@@ -407,7 +407,7 @@
         self.pasteNewAct.triggered.connect(self.__editor.editPasteAsNew)
         self.__actions.append(self.pasteNewAct)
         
-        self.deleteAct = E5Action(
+        self.deleteAct = EricAction(
             self.tr('Clear'),
             UI.PixmapCache.getIcon("editDelete"),
             self.tr('Cl&ear'),
@@ -423,7 +423,7 @@
         self.deleteAct.triggered.connect(self.__editor.editClear)
         self.__actions.append(self.deleteAct)
         
-        self.selectAllAct = E5Action(
+        self.selectAllAct = EricAction(
             self.tr('Select All'),
             self.tr('&Select All'),
             QKeySequence(self.tr("Ctrl+A", "Edit|Select All")),
@@ -438,7 +438,7 @@
         self.selectAllAct.triggered.connect(self.__editor.editSelectAll)
         self.__actions.append(self.selectAllAct)
         
-        self.resizeAct = E5Action(
+        self.resizeAct = EricAction(
             self.tr('Change Size'),
             UI.PixmapCache.getIcon("transformResize"),
             self.tr('Change Si&ze...'),
@@ -452,7 +452,7 @@
         self.resizeAct.triggered.connect(self.__editor.editResize)
         self.__actions.append(self.resizeAct)
         
-        self.grayscaleAct = E5Action(
+        self.grayscaleAct = EricAction(
             self.tr('Grayscale'),
             UI.PixmapCache.getIcon("grayscale"),
             self.tr('&Grayscale'),
@@ -489,7 +489,7 @@
         """
         Private method to create the View actions.
         """
-        self.zoomInAct = E5Action(
+        self.zoomInAct = EricAction(
             self.tr('Zoom in'),
             UI.PixmapCache.getIcon("zoomIn"),
             self.tr('Zoom &in'),
@@ -503,7 +503,7 @@
         self.zoomInAct.triggered.connect(self.__zoomIn)
         self.__actions.append(self.zoomInAct)
         
-        self.zoomOutAct = E5Action(
+        self.zoomOutAct = EricAction(
             self.tr('Zoom out'),
             UI.PixmapCache.getIcon("zoomOut"),
             self.tr('Zoom &out'),
@@ -517,7 +517,7 @@
         self.zoomOutAct.triggered.connect(self.__zoomOut)
         self.__actions.append(self.zoomOutAct)
         
-        self.zoomResetAct = E5Action(
+        self.zoomResetAct = EricAction(
             self.tr('Zoom reset'),
             UI.PixmapCache.getIcon("zoomReset"),
             self.tr('Zoom &reset'),
@@ -533,7 +533,7 @@
         self.zoomResetAct.triggered.connect(self.__zoomReset)
         self.__actions.append(self.zoomResetAct)
         
-        self.showGridAct = E5Action(
+        self.showGridAct = EricAction(
             self.tr('Show Grid'),
             UI.PixmapCache.getIcon("grid"),
             self.tr('Show &Grid'),
@@ -560,7 +560,7 @@
         self.drawingActGrp = createActionGroup(self)
         self.drawingActGrp.setExclusive(True)
         
-        self.drawPencilAct = E5Action(
+        self.drawPencilAct = EricAction(
             self.tr('Freehand'),
             UI.PixmapCache.getIcon("drawBrush"),
             self.tr('&Freehand'),
@@ -575,7 +575,7 @@
         self.drawPencilAct.triggered.connect(self.esm.map)
         self.__actions.append(self.drawPencilAct)
         
-        self.drawColorPickerAct = E5Action(
+        self.drawColorPickerAct = EricAction(
             self.tr('Color Picker'),
             UI.PixmapCache.getIcon("colorPicker"),
             self.tr('&Color Picker'),
@@ -592,7 +592,7 @@
         self.drawColorPickerAct.triggered.connect(self.esm.map)
         self.__actions.append(self.drawColorPickerAct)
         
-        self.drawRectangleAct = E5Action(
+        self.drawRectangleAct = EricAction(
             self.tr('Rectangle'),
             UI.PixmapCache.getIcon("drawRectangle"),
             self.tr('&Rectangle'),
@@ -607,7 +607,7 @@
         self.drawRectangleAct.triggered.connect(self.esm.map)
         self.__actions.append(self.drawRectangleAct)
         
-        self.drawFilledRectangleAct = E5Action(
+        self.drawFilledRectangleAct = EricAction(
             self.tr('Filled Rectangle'),
             UI.PixmapCache.getIcon("drawRectangleFilled"),
             self.tr('F&illed Rectangle'),
@@ -623,7 +623,7 @@
         self.drawFilledRectangleAct.triggered.connect(self.esm.map)
         self.__actions.append(self.drawFilledRectangleAct)
         
-        self.drawCircleAct = E5Action(
+        self.drawCircleAct = EricAction(
             self.tr('Circle'),
             UI.PixmapCache.getIcon("drawCircle"),
             self.tr('Circle'),
@@ -638,7 +638,7 @@
         self.drawCircleAct.triggered.connect(self.esm.map)
         self.__actions.append(self.drawCircleAct)
         
-        self.drawFilledCircleAct = E5Action(
+        self.drawFilledCircleAct = EricAction(
             self.tr('Filled Circle'),
             UI.PixmapCache.getIcon("drawCircleFilled"),
             self.tr('Fille&d Circle'),
@@ -654,7 +654,7 @@
         self.drawFilledCircleAct.triggered.connect(self.esm.map)
         self.__actions.append(self.drawFilledCircleAct)
         
-        self.drawEllipseAct = E5Action(
+        self.drawEllipseAct = EricAction(
             self.tr('Ellipse'),
             UI.PixmapCache.getIcon("drawEllipse"),
             self.tr('&Ellipse'),
@@ -669,7 +669,7 @@
         self.drawEllipseAct.triggered.connect(self.esm.map)
         self.__actions.append(self.drawEllipseAct)
         
-        self.drawFilledEllipseAct = E5Action(
+        self.drawFilledEllipseAct = EricAction(
             self.tr('Filled Ellipse'),
             UI.PixmapCache.getIcon("drawEllipseFilled"),
             self.tr('Fille&d Elli&pse'),
@@ -685,7 +685,7 @@
         self.drawFilledEllipseAct.triggered.connect(self.esm.map)
         self.__actions.append(self.drawFilledEllipseAct)
         
-        self.drawFloodFillAct = E5Action(
+        self.drawFloodFillAct = EricAction(
             self.tr('Flood Fill'),
             UI.PixmapCache.getIcon("drawFill"),
             self.tr('Fl&ood Fill'),
@@ -701,7 +701,7 @@
         self.drawFloodFillAct.triggered.connect(self.esm.map)
         self.__actions.append(self.drawFloodFillAct)
         
-        self.drawLineAct = E5Action(
+        self.drawLineAct = EricAction(
             self.tr('Line'),
             UI.PixmapCache.getIcon("drawLine"),
             self.tr('&Line'),
@@ -716,7 +716,7 @@
         self.drawLineAct.triggered.connect(self.esm.map)
         self.__actions.append(self.drawLineAct)
         
-        self.drawEraserAct = E5Action(
+        self.drawEraserAct = EricAction(
             self.tr('Eraser (Transparent)'),
             UI.PixmapCache.getIcon("drawEraser"),
             self.tr('Eraser (&Transparent)'),
@@ -731,7 +731,7 @@
         self.drawEraserAct.triggered.connect(self.esm.map)
         self.__actions.append(self.drawEraserAct)
         
-        self.drawRectangleSelectionAct = E5Action(
+        self.drawRectangleSelectionAct = EricAction(
             self.tr('Rectangular Selection'),
             UI.PixmapCache.getIcon("selectRectangle"),
             self.tr('Rect&angular Selection'),
@@ -748,7 +748,7 @@
         self.drawRectangleSelectionAct.triggered.connect(self.esm.map)
         self.__actions.append(self.drawRectangleSelectionAct)
         
-        self.drawCircleSelectionAct = E5Action(
+        self.drawCircleSelectionAct = EricAction(
             self.tr('Circular Selection'),
             UI.PixmapCache.getIcon("selectCircle"),
             self.tr('Rect&angular Selection'),
@@ -771,7 +771,7 @@
         """
         Private method to create the Help actions.
         """
-        self.aboutAct = E5Action(
+        self.aboutAct = EricAction(
             self.tr('About'),
             self.tr('&About'),
             0, 0, self, 'iconEditor_help_about')
@@ -783,7 +783,7 @@
         self.aboutAct.triggered.connect(self.__about)
         self.__actions.append(self.aboutAct)
         
-        self.aboutQtAct = E5Action(
+        self.aboutQtAct = EricAction(
             self.tr('About Qt'),
             self.tr('About &Qt'),
             0, 0, self, 'iconEditor_help_about_qt')
@@ -796,7 +796,7 @@
         self.aboutQtAct.triggered.connect(self.__aboutQt)
         self.__actions.append(self.aboutQtAct)
         
-        self.whatsThisAct = E5Action(
+        self.whatsThisAct = EricAction(
             self.tr('What\'s This?'),
             UI.PixmapCache.getIcon("whatsThis"),
             self.tr('&What\'s This?'),
@@ -967,7 +967,7 @@
         ))
         self.__updatePosition(0, 0)
         
-        self.__zoomWidget = E5ZoomWidget(
+        self.__zoomWidget = EricZoomWidget(
             UI.PixmapCache.getPixmap("zoomOut"),
             UI.PixmapCache.getPixmap("zoomIn"),
             UI.PixmapCache.getPixmap("zoomReset"), self)
@@ -1062,7 +1062,7 @@
             ):
                 self.__lastOpenPath = self.__project.getProjectPath()
             
-            fileName = E5FileDialog.getOpenFileNameAndFilter(
+            fileName = EricFileDialog.getOpenFileNameAndFilter(
                 self,
                 self.tr("Open icon file"),
                 self.__lastOpenPath,
@@ -1099,13 +1099,13 @@
         if not self.__lastSavePath and self.__lastOpenPath:
             self.__lastSavePath = self.__lastOpenPath
         
-        fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fileName, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save icon file"),
             self.__lastSavePath,
             self.__outputFilter,
             self.__defaultFilter,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         if not fileName:
             return False
         
@@ -1115,12 +1115,12 @@
             if ex:
                 fileName += ex
         if QFileInfo(fileName).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save icon file"),
                 self.tr("<p>The file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fileName),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return False
         
@@ -1151,14 +1151,14 @@
         """
         file = QFile(fileName)
         if not file.exists():
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self, self.tr("eric Icon Editor"),
                 self.tr("The file '{0}' does not exist.")
                 .format(fileName))
             return
         
         if not file.open(QFile.ReadOnly):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self, self.tr("eric Icon Editor"),
                 self.tr("Cannot read file '{0}:\n{1}.")
                 .format(fileName, file.errorString()))
@@ -1178,7 +1178,7 @@
         """
         file = QFile(fileName)
         if not file.open(QFile.WriteOnly):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self, self.tr("eric Icon Editor"),
                 self.tr("Cannot write file '{0}:\n{1}.")
                 .format(fileName, file.errorString()))
@@ -1192,7 +1192,7 @@
         file.close()
         
         if not res:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self, self.tr("eric Icon Editor"),
                 self.tr("Cannot write file '{0}:\n{1}.")
                 .format(fileName, file.errorString()))
@@ -1245,7 +1245,7 @@
         @return flag indicating, if it is ok to continue (boolean)
         """
         if self.__editor.isDirty():
-            ret = E5MessageBox.okToClearData(
+            ret = EricMessageBox.okToClearData(
                 self,
                 self.tr("eric Icon Editor"),
                 self.tr("""The icon image has unsaved changes."""),
@@ -1335,7 +1335,7 @@
         """
         Private slot to show a little About message.
         """
-        E5MessageBox.about(
+        EricMessageBox.about(
             self, self.tr("About eric Icon Editor"),
             self.tr("The eric Icon Editor is a simple editor component"
                     " to perform icon drawing tasks."))
@@ -1344,7 +1344,7 @@
         """
         Private slot to handle the About Qt dialog.
         """
-        E5MessageBox.aboutQt(self, "eric Icon Editor")
+        EricMessageBox.aboutQt(self, "eric Icon Editor")
     
     def __whatsThis(self):
         """
--- a/eric7/MicroPython/CircuitPythonDevices.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/CircuitPythonDevices.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 
 from PyQt6.QtCore import pyqtSlot
 
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui import EricMessageBox, EricFileDialog
 
 from .MicroPythonDevices import MicroPythonDevice
 from .MicroPythonWidget import HAS_QTCHART
@@ -187,7 +187,7 @@
             # return the default workspace and give the user a warning (unless
             # silent mode is selected)
             if not silent:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self.microPython,
                     self.tr("Workspace Directory"),
                     self.tr("Python files for CircuitPython can be edited in"
@@ -246,7 +246,7 @@
         Private method to show a message box because Teens does not support
         the UF2 bootloader yet.
         """
-        E5MessageBox.information(
+        EricMessageBox.information(
             self.microPython,
             self.tr("Flash CircuitPython Firmware"),
             self.tr("""<p>Teensy 4.0 and Teensy 4.1 do not support the UF2"""
@@ -263,7 +263,7 @@
         Private slot to install Python files into the onboard library.
         """
         if not self.__deviceVolumeMounted():
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.microPython,
                 self.tr("Install Library Files"),
                 self.tr("""The device volume "<b>{0}</b>" is not available."""
@@ -275,7 +275,7 @@
         if not os.path.isdir(target):
             os.makedirs(target)
         
-        libraryFiles = E5FileDialog.getOpenFileNames(
+        libraryFiles = EricFileDialog.getOpenFileNames(
             self.microPython,
             self.tr("Install Library Files"),
             os.path.expanduser("~"),
--- a/eric7/MicroPython/EspBackupRestoreFirmwareDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/EspBackupRestoreFirmwareDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_EspBackupRestoreFirmwareDialog import (
     Ui_EspBackupRestoreFirmwareDialog
@@ -72,11 +72,11 @@
             self.tr("Firmware Files (*.img);;All Files (*)"))
         if self.__isBackupMode:
             self.firmwarePicker.setMode(
-                E5PathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE)
+                EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE)
             self.modeComboBox.setEnabled(False)
             self.setWindowTitle(self.tr("Backup Firmware"))
         else:
-            self.firmwarePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+            self.firmwarePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
             for text, mode in self.FlashModes:
                 self.modeComboBox.addItem(text, mode)
             self.setWindowTitle(self.tr("Restore Firmware"))
--- a/eric7/MicroPython/EspBackupRestoreFirmwareDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/EspBackupRestoreFirmwareDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -85,7 +85,7 @@
       </widget>
      </item>
      <item row="3" column="1" colspan="2">
-      <widget class="E5PathPicker" name="firmwarePicker" native="true">
+      <widget class="EricPathPicker" name="firmwarePicker" native="true">
        <property name="focusPolicy">
         <enum>Qt::WheelFocus</enum>
        </property>
@@ -110,9 +110,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/MicroPython/EspDevices.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/EspDevices.py	Sat May 22 18:51:46 2021 +0200
@@ -13,9 +13,9 @@
 from PyQt6.QtCore import pyqtSlot, QProcess
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui import E5MessageBox
-from E5Gui.E5ProcessDialog import E5ProcessDialog
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricProcessDialog import EricProcessDialog
+from E5Gui.EricApplication import ericApp
 
 from .MicroPythonDevices import MicroPythonDevice
 from .MicroPythonWidget import HAS_QTCHART
@@ -172,7 +172,7 @@
         """
         Private slot to erase the device flash memory.
         """
-        ok = E5MessageBox.yesNo(
+        ok = EricMessageBox.yesNo(
             self.microPython,
             self.tr("Erase Flash"),
             self.tr("""Shall the flash of the selected device really be"""
@@ -184,7 +184,7 @@
                 "--port", self.microPython.getCurrentPort(),
                 "erase_flash",
             ]
-            dlg = E5ProcessDialog(self.tr("'esptool erase_flash' Output"),
+            dlg = EricProcessDialog(self.tr("'esptool erase_flash' Output"),
                                   self.tr("Erase Flash"),
                                   showProgress=True)
             res = dlg.startProcess(sys.executable, flashArgs)
@@ -230,7 +230,7 @@
                 flashAddress,
                 firmware,
             ]
-            dlg = E5ProcessDialog(self.tr("'esptool write_flash' Output"),
+            dlg = EricProcessDialog(self.tr("'esptool write_flash' Output"),
                                   self.tr("Flash MicroPython Firmware"),
                                   showProgress=True)
             res = dlg.startProcess(sys.executable, flashArgs)
@@ -265,7 +265,7 @@
                 flashAddress.lower(),
                 firmware,
             ]
-            dlg = E5ProcessDialog(self.tr("'esptool write_flash' Output"),
+            dlg = EricProcessDialog(self.tr("'esptool write_flash' Output"),
                                   self.tr("Flash Additional Firmware"),
                                   showProgress=True)
             res = dlg.startProcess(sys.executable, flashArgs)
@@ -292,7 +292,7 @@
                 "0x0", flashSize,
                 firmware,
             ]
-            dlg = E5ProcessDialog(self.tr("'esptool read_flash' Output"),
+            dlg = EricProcessDialog(self.tr("'esptool read_flash' Output"),
                                   self.tr("Backup Firmware"),
                                   showProgress=True)
             res = dlg.startProcess(sys.executable, flashArgs)
@@ -326,7 +326,7 @@
                 "0x0",
                 firmware,
             ])
-            dlg = E5ProcessDialog(self.tr("'esptool write_flash' Output"),
+            dlg = EricProcessDialog(self.tr("'esptool write_flash' Output"),
                                   self.tr("Restore Firmware"),
                                   showProgress=True)
             res = dlg.startProcess(sys.executable, flashArgs)
@@ -344,7 +344,7 @@
             "--port", self.microPython.getCurrentPort(),
             "chip_id"
         ]
-        dlg = E5ProcessDialog(self.tr("'esptool chip_id' Output"),
+        dlg = EricProcessDialog(self.tr("'esptool chip_id' Output"),
                               self.tr("Show Chip ID"))
         res = dlg.startProcess(sys.executable, args)
         if res:
@@ -361,7 +361,7 @@
             "--port", self.microPython.getCurrentPort(),
             "flash_id"
         ]
-        dlg = E5ProcessDialog(self.tr("'esptool flash_id' Output"),
+        dlg = EricProcessDialog(self.tr("'esptool flash_id' Output"),
                               self.tr("Show Flash ID"))
         res = dlg.startProcess(sys.executable, args)
         if res:
@@ -378,7 +378,7 @@
             "--port", self.microPython.getCurrentPort(),
             "read_mac"
         ]
-        dlg = E5ProcessDialog(self.tr("'esptool read_mac' Output"),
+        dlg = EricProcessDialog(self.tr("'esptool read_mac' Output"),
                               self.tr("Show MAC Address"))
         res = dlg.startProcess(sys.executable, args)
         if res:
@@ -414,7 +414,7 @@
         """
         Private slot to install the esptool package via pip.
         """
-        pip = e5App().getObject("Pip")
+        pip = ericApp().getObject("Pip")
         pip.installPackages(["esptool"], interpreter=sys.executable)
     
     def getDocumentationUrl(self):
--- a/eric7/MicroPython/EspFirmwareSelectionDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/EspFirmwareSelectionDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 from PyQt6.QtGui import QRegularExpressionValidator
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_EspFirmwareSelectionDialog import Ui_EspFirmwareSelectionDialog
 
@@ -46,7 +46,7 @@
         
         self.__addon = addon
         
-        self.firmwarePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.firmwarePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.firmwarePicker.setFilters(
             self.tr("Firmware Files (*.bin);;All Files (*)"))
         
--- a/eric7/MicroPython/EspFirmwareSelectionDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/EspFirmwareSelectionDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -57,7 +57,7 @@
       </widget>
      </item>
      <item row="1" column="1" colspan="2">
-      <widget class="E5PathPicker" name="firmwarePicker" native="true">
+      <widget class="EricPathPicker" name="firmwarePicker" native="true">
        <property name="focusPolicy">
         <enum>Qt::WheelFocus</enum>
        </property>
@@ -153,9 +153,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/MicroPython/GenericMicroPythonDevices.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/GenericMicroPythonDevices.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 
 import os
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .MicroPythonDevices import MicroPythonDevice
 from .MicroPythonWidget import HAS_QTCHART
@@ -194,7 +194,7 @@
             # return the default workspace and give the user a warning (unless
             # silent mode is selected)
             if not silent:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self.microPython,
                     self.tr("Workspace Directory"),
                     self.tr("Python files for this generic board can be"
--- a/eric7/MicroPython/IgnoredDevicesDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/IgnoredDevicesDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -18,7 +18,7 @@
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <widget class="E5StringListEditWidget" name="devicesEditWidget" native="true"/>
+    <widget class="EricStringListEditWidget" name="devicesEditWidget" native="true"/>
    </item>
    <item>
     <widget class="QDialogButtonBox" name="buttonBox">
@@ -34,9 +34,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5StringListEditWidget</class>
+   <class>EricStringListEditWidget</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5StringListEditWidget.h</header>
+   <header>E5Gui/EricStringListEditWidget.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/MicroPython/MicroPythonDevices.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/MicroPythonDevices.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 from PyQt6.QtCore import pyqtSlot, QObject, QCoreApplication
 from PyQt6.QtWidgets import QInputDialog
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import UI.PixmapCache
 import Preferences
@@ -602,7 +602,7 @@
         """
         url = self.getFirmwareUrl()
         if url:
-            e5App().getObject("UserInterface").launchHelpViewer(url)
+            ericApp().getObject("UserInterface").launchHelpViewer(url)
     
     def getDownloadMenuEntries(self):
         """
--- a/eric7/MicroPython/MicroPythonFileManagerWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/MicroPythonFileManagerWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -16,10 +16,10 @@
     QDialog
 )
 
-from E5Gui import E5MessageBox, E5PathPickerDialog
-from E5Gui.E5PathPicker import E5PathPickerModes
-from E5Gui.E5FileSaveConfirmDialog import confirmOverwrite
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox, EricPathPickerDialog
+from E5Gui.EricPathPicker import EricPathPickerModes
+from E5Gui.EricFileSaveConfirmDialog import confirmOverwrite
+from E5Gui.EricApplication import ericApp
 
 from .Ui_MicroPythonFileManagerWidget import Ui_MicroPythonFileManagerWidget
 
@@ -152,7 +152,7 @@
         Public method to start the widget.
         """
         dirname = ""
-        vm = e5App().getObject("ViewManager")
+        vm = ericApp().getObject("ViewManager")
         aw = vm.activeWindow()
         if aw:
             dirname = os.path.dirname(aw.getFileName())
@@ -189,7 +189,7 @@
         @param error error message
         @type str
         """
-        E5MessageBox.warning(
+        EricMessageBox.warning(
             self,
             self.tr("Error handling device"),
             self.tr("<p>There was an error communicating with the connected"
@@ -282,7 +282,7 @@
             # directory names end with a '/'
             self.__listLocalFiles(name[:-1])
         elif Utilities.MimeTypes.isTextFile(name):
-            e5App().getObject("ViewManager").getEditor(name)
+            ericApp().getObject("ViewManager").getEditor(name)
     
     @pyqtSlot()
     def on_localFileTreeWidget_itemSelectionChanged(self):
@@ -345,7 +345,7 @@
                 # directory names end with a '/'
                 self.__listLocalFiles(name[:-1], True)
             elif Utilities.MimeTypes.isTextFile(name):
-                e5App().getObject("ViewManager").getEditor(name)
+                ericApp().getObject("ViewManager").getEditor(name)
         else:
             cwd = self.deviceCwd.text()
             if cwd.endswith("/"):
@@ -660,11 +660,11 @@
         """
         cwdWidget = self.deviceCwd if localDevice else self.localCwd
         
-        dirPath, ok = E5PathPickerDialog.getPath(
+        dirPath, ok = EricPathPickerDialog.getPath(
             self,
             self.tr("Change Directory"),
             self.tr("Select Directory"),
-            E5PathPickerModes.DIRECTORY_SHOW_FILES_MODE,
+            EricPathPickerModes.DIRECTORY_SHOW_FILES_MODE,
             path=cwdWidget.text(),
             defaultDirectory=cwdWidget.text(),
         )
@@ -696,7 +696,7 @@
                 self.__listLocalFiles(cwdWidget.text(),
                                       localDevice=localDevice)
             except OSError as exc:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Create Directory"),
                     self.tr("""<p>The directory <b>{0}</b> could not be"""
@@ -734,7 +734,7 @@
                     self.__listLocalFiles(cwdWidget.text(),
                                           localDevice=localDevice)
                 except Exception as exc:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Delete Directory Tree"),
                         self.tr("""<p>The directory <b>{0}</b> could not be"""
@@ -772,7 +772,7 @@
                     self.__listLocalFiles(cwdWidget.text(),
                                           localDevice=localDevice)
                 except OSError as exc:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Delete File"),
                         self.tr("""<p>The file <b>{0}</b> could not be"""
@@ -980,7 +980,7 @@
                      Globals.dataString(usedSize),
                      Globals.dataString(freeSize),
                      )
-        E5MessageBox.information(
+        EricMessageBox.information(
             self,
             self.tr("Filesystem Information"),
             msg)
--- a/eric7/MicroPython/MicroPythonFileManagerWidget.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/MicroPythonFileManagerWidget.ui	Sat May 22 18:51:46 2021 +0200
@@ -40,7 +40,7 @@
       </widget>
      </item>
      <item>
-      <widget class="E5Led" name="deviceConnectedLed" native="true"/>
+      <widget class="EricLed" name="deviceConnectedLed" native="true"/>
      </item>
     </layout>
    </item>
@@ -267,9 +267,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5Led</class>
+   <class>EricLed</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5Led.h</header>
+   <header>E5Gui/EricLed.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/MicroPython/MicroPythonGraphWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/MicroPythonGraphWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -22,8 +22,8 @@
 )
 from PyQt6.QtCharts import QChartView, QChart, QLineSeries, QValueAxis
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 import UI.PixmapCache
 import Preferences
@@ -129,7 +129,7 @@
         if chartColorTheme == -1:
             # automatic selection of light or dark depending on desktop
             # color scheme
-            if e5App().usesDarkPalette():
+            if ericApp().usesDarkPalette():
                 self.__chart.setTheme(QChart.ChartTheme.ChartThemeDark)
             else:
                 self.__chart.setTheme(QChart.ChartTheme.ChartThemeLight)
@@ -327,7 +327,7 @@
             self.__dirty = False
             return True
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Save Chart Data"),
                 self.tr(
--- a/eric7/MicroPython/MicroPythonWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/MicroPythonWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -19,11 +19,11 @@
     QTextEdit, QToolButton, QDialog
 )
 
-from E5Gui.E5ZoomWidget import E5ZoomWidget
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5Application import e5App
-from E5Gui.E5ProcessDialog import E5ProcessDialog
-from E5Gui.E5OverrideCursor import E5OverrideCursor, E5OverridenCursor
+from E5Gui.EricZoomWidget import EricZoomWidget
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricProcessDialog import EricProcessDialog
+from E5Gui.EricOverrideCursor import EricOverrideCursor, EricOverridenCursor
 
 from .Ui_MicroPythonWidget import Ui_MicroPythonWidget
 
@@ -246,7 +246,7 @@
         self.__zoomLayout.addSpacerItem(spacerItem)
         
         self.__zoom0 = self.replEdit.fontPointSize()
-        self.__zoomWidget = E5ZoomWidget(
+        self.__zoomWidget = EricZoomWidget(
             UI.PixmapCache.getPixmap("zoomOut"),
             UI.PixmapCache.getPixmap("zoomIn"),
             UI.PixmapCache.getPixmap("zoomReset"), self)
@@ -381,7 +381,7 @@
                 set(unknownDevices) - ignoredUnknown - uf2Devices
             )
             if newUnknownDevices:
-                button = E5MessageBox.information(
+                button = EricMessageBox.information(
                     self,
                     self.tr("Unknown MicroPython Device"),
                     self.tr(
@@ -399,14 +399,14 @@
                             desc, vid, pid)
                         for vid, pid, desc in newUnknownDevices]),
                         BugAddress),
-                    E5MessageBox.Ignore | E5MessageBox.Ok
+                    EricMessageBox.Ignore | EricMessageBox.Ok
                 )
-                if button == E5MessageBox.Ignore:
+                if button == EricMessageBox.Ignore:
                     ignoredUnknown = list(ignoredUnknown | newUnknownDevices)
                     Preferences.setMicroPython("IgnoredUnknownDevices",
                                                ignoredUnknown)
                 else:
-                    yes = E5MessageBox.yesNo(
+                    yes = EricMessageBox.yesNo(
                         self,
                         self.tr("Unknown MicroPython Device"),
                         self.tr("""Would you like to add them to the list of"""
@@ -576,7 +576,7 @@
         """
         Private method to show a message dialog indicating a missing device.
         """
-        E5MessageBox.critical(
+        EricMessageBox.critical(
             self,
             self.tr("No device attached"),
             self.tr("""Please ensure the device is plugged into your"""
@@ -603,7 +603,7 @@
         if checked:
             ok, reason = self.__device.canStartRepl()
             if not ok:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Start REPL"),
                     self.tr("""<p>The REPL cannot be started.</p><p>Reason:"""
@@ -638,7 +638,7 @@
         currently connected device.
         """
         if self.__connected:
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 self.__disconnectFromDevice()
             
             if self.replButton.isChecked():
@@ -648,7 +648,7 @@
             if self.chartButton.isChecked():
                 self.on_chartButton_clicked(False)
         else:
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 self.__connectToDevice()
     
     @pyqtSlot()
@@ -1036,7 +1036,7 @@
         port = self.getCurrentPort()
         if not port:
             from .ConnectionSelectionDialog import ConnectionSelectionDialog
-            with E5OverridenCursor():
+            with EricOverridenCursor():
                 dlg = ConnectionSelectionDialog(
                     self.__unknownPorts, self.__lastPort, self.__lastDeviceType
                 )
@@ -1061,8 +1061,8 @@
                     self.__device.hasTimeCommands()):
                 self.__synchronizeTime(quiet=True)
         else:
-            with E5OverridenCursor():
-                E5MessageBox.warning(
+            with EricOverridenCursor():
+                EricMessageBox.warning(
                     self,
                     self.tr("Serial Device Connect"),
                     self.tr("""<p>Cannot connect to device at serial"""
@@ -1088,9 +1088,9 @@
             self.__showNoDeviceMessage()
             return
         
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Run Script"),
                 self.tr("""There is no editor open. Abort..."""))
@@ -1098,7 +1098,7 @@
         
         script = aw.text()
         if not script:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Run Script"),
                 self.tr("""The current editor does not contain a script."""
@@ -1107,7 +1107,7 @@
         
         ok, reason = self.__device.canRunScript()
         if not ok:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Run Script"),
                 self.tr("""<p>Cannot run script.</p><p>Reason:"""
@@ -1131,13 +1131,13 @@
         
         workspace = self.getDeviceWorkspace()
         if workspace:
-            fileName = E5FileDialog.getOpenFileName(
+            fileName = EricFileDialog.getOpenFileName(
                 self,
                 self.tr("Open Python File"),
                 workspace,
                 self.tr("Python3 Files (*.py);;All Files (*)"))
             if fileName:
-                e5App().getObject("ViewManager").openSourceFile(fileName)
+                ericApp().getObject("ViewManager").openSourceFile(fileName)
     
     @pyqtSlot()
     def on_saveButton_clicked(self):
@@ -1148,7 +1148,7 @@
             self.__showNoDeviceMessage()
             return
         
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw:
             workspace = self.getDeviceWorkspace()
             if workspace:
@@ -1176,7 +1176,7 @@
         if checked:
             ok, reason = self.__device.canStartPlotter()
             if not ok:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Start Chart"),
                     self.tr("""<p>The Chart cannot be started.</p><p>Reason:"""
@@ -1205,7 +1205,7 @@
             self.__device.setPlotter(True)
         else:
             if self.__chartWidget.isDirty():
-                res = E5MessageBox.okToClearData(
+                res = EricMessageBox.okToClearData(
                     self,
                     self.tr("Unsaved Chart Data"),
                     self.tr("""The chart contains unsaved data."""),
@@ -1256,14 +1256,14 @@
         if checked:
             ok, reason = self.__device.canStartFileManager()
             if not ok:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Start File Manager"),
                     self.tr("""<p>The File Manager cannot be started.</p>"""
                             """<p>Reason: {0}</p>""").format(reason))
                 return
             
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 if not self.__interface.isConnected():
                     self.__connectToDevice()
                 if self.__connected:
@@ -1355,7 +1355,7 @@
             act.setEnabled(available)
             act = self.__superMenu.addAction(
                 self.tr("Compile Current Editor"), self.__compileEditor2Mpy)
-            aw = e5App().getObject("ViewManager").activeWindow()
+            aw = ericApp().getObject("ViewManager").activeWindow()
             act.setEnabled(available and bool(aw))
             self.__superMenu.addSeparator()
         if self.__device:
@@ -1404,7 +1404,7 @@
             else:
                 msg = self.tr("No version information available.")
             
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Device Version Information"),
                 msg)
@@ -1432,7 +1432,7 @@
                 impInfo["version"]
             )
             
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Device Implementation Information"),
                 self.tr(
@@ -1457,8 +1457,8 @@
                 self.__interface.syncTime(self.__device.getDeviceType())
                 
                 if not quiet:
-                    with E5OverridenCursor():
-                        E5MessageBox.information(
+                    with EricOverridenCursor():
+                        EricMessageBox.information(
                             self,
                             self.tr("Synchronize Time"),
                             self.tr("<p>The time of the connected device was"
@@ -1506,7 +1506,7 @@
         """
         msg = self.__getDeviceTime()
         if msg:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Device Date and Time"),
                 msg)
@@ -1519,7 +1519,7 @@
         localdatetime = time.localtime()
         localdate = time.strftime('%Y-%m-%d', localdatetime)
         localtime = time.strftime('%H:%M:%S', localdatetime)
-        E5MessageBox.information(
+        EricMessageBox.information(
             self,
             self.tr("Local Date and Time"),
             self.tr("<h3>Local Date and Time</h3>"
@@ -1545,7 +1545,7 @@
                 devicedate, devicetime = (
                     deviceDateTimeString.strip().split(None, 1)
                 )
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("Date and Time"),
                     self.tr("<table>"
@@ -1562,7 +1562,7 @@
                                      devicedate, devicetime)
                 )
             except ValueError:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("Date and Time"),
                     self.tr("<table>"
@@ -1586,8 +1586,8 @@
         @param error error message
         @type str
         """
-        with E5OverridenCursor():
-            E5MessageBox.warning(
+        with EricOverridenCursor():
+            EricMessageBox.warning(
                 self,
                 self.tr("Error handling device"),
                 self.tr("<p>There was an error communicating with the"
@@ -1627,7 +1627,7 @@
         if not program:
             program = "mpy-cross"
             if not Utilities.isinpath(program):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     title,
                     self.tr("""The MicroPython cross compiler"""
@@ -1638,7 +1638,7 @@
         
         if not pythonFile:
             defaultDirectory = ""
-            aw = e5App().getObject("ViewManager").activeWindow()
+            aw = ericApp().getObject("ViewManager").activeWindow()
             if aw:
                 fn = aw.getFileName()
                 if fn:
@@ -1649,7 +1649,7 @@
                     Preferences.getMultiProject("Workspace") or
                     os.path.expanduser("~")
                 )
-            pythonFile = E5FileDialog.getOpenFileName(
+            pythonFile = EricFileDialog.getOpenFileName(
                 self,
                 title,
                 defaultDirectory,
@@ -1659,7 +1659,7 @@
                 return
         
         if not os.path.exists(pythonFile):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 title,
                 self.tr("""The Python file <b>{0}</b> does not exist."""
@@ -1669,7 +1669,7 @@
         compileArgs = [
             pythonFile,
         ]
-        dlg = E5ProcessDialog(self.tr("'mpy-cross' Output"), title)
+        dlg = EricProcessDialog(self.tr("'mpy-cross' Output"), title)
         res = dlg.startProcess(program, compileArgs)
         if res:
             dlg.exec()
@@ -1686,13 +1686,13 @@
         """
         Private slot to cross compile the current editor to a .mpy file.
         """
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if not aw.checkDirty():
             # editor still has unsaved changes, abort...
             return
         if not aw.isPyFile():
             # no Python file
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Compile Current Editor"),
                 self.tr("""The current editor does not contain a Python"""
@@ -1714,7 +1714,7 @@
             return
         
         url = self.__device.getDocumentationUrl()
-        e5App().getObject("UserInterface").launchHelpViewer(url)
+        ericApp().getObject("UserInterface").launchHelpViewer(url)
     
     @pyqtSlot()
     def __downloadFirmware(self):
@@ -1739,7 +1739,7 @@
             return
         
         if url:
-            e5App().getObject("UserInterface").launchHelpViewer(url)
+            ericApp().getObject("UserInterface").launchHelpViewer(url)
     
     @pyqtSlot()
     def __manageIgnored(self):
@@ -1761,7 +1761,7 @@
         """
         Private slot to open the MicroPython configuration page.
         """
-        e5App().getObject("UserInterface").showPreferences("microPythonPage")
+        ericApp().getObject("UserInterface").showPreferences("microPythonPage")
     
     @pyqtSlot()
     def __manageUnknownDevices(self):
@@ -1783,8 +1783,8 @@
         from .AddEditDevicesDialog import AddEditDevicesDialog
         
         if len(devices) > 1:
-            from E5Gui.E5ListSelectionDialog import E5ListSelectionDialog
-            sdlg = E5ListSelectionDialog(
+            from E5Gui.EricListSelectionDialog import EricListSelectionDialog
+            sdlg = EricListSelectionDialog(
                 [d[2] for d in devices],
                 title=self.tr("Add Unknown Devices"),
                 message=self.tr("Select the devices to be added:"),
--- a/eric7/MicroPython/MicroPythonWidget.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/MicroPythonWidget.ui	Sat May 22 18:51:46 2021 +0200
@@ -48,7 +48,7 @@
         </widget>
        </item>
        <item row="0" column="3">
-        <widget class="E5Led" name="deviceConnectedLed" native="true"/>
+        <widget class="EricLed" name="deviceConnectedLed" native="true"/>
        </item>
        <item row="0" column="0">
         <widget class="QComboBox" name="deviceTypeComboBox">
@@ -68,7 +68,7 @@
         </widget>
        </item>
        <item row="0" column="2">
-        <widget class="E5ToolButton" name="menuButton"/>
+        <widget class="EricToolButton" name="menuButton"/>
        </item>
       </layout>
      </item>
@@ -179,14 +179,14 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5ToolButton</class>
+   <class>EricToolButton</class>
    <extends>QToolButton</extends>
-   <header>E5Gui/E5ToolButton.h</header>
+   <header>E5Gui/EricToolButton.h</header>
   </customwidget>
   <customwidget>
-   <class>E5Led</class>
+   <class>EricLed</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5Led.h</header>
+   <header>E5Gui/EricLed.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/MicroPython/MicrobitDevices.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/MicrobitDevices.py	Sat May 22 18:51:46 2021 +0200
@@ -17,8 +17,8 @@
 from .MicroPythonDevices import MicroPythonDevice
 from .MicroPythonWidget import HAS_QTCHART
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricApplication import ericApp
 
 import Utilities
 import Preferences
@@ -206,7 +206,7 @@
             if self.getDeviceType() == "bbc_microbit":
                 # BBC micro:bit is not ready or not mounted
                 if firmware:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.microPython,
                         self.tr("Flash MicroPython/Firmware"),
                         self.tr(
@@ -226,7 +226,7 @@
                         )
                     )
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.microPython,
                         self.tr("Flash MicroPython/Firmware"),
                         self.tr(
@@ -239,7 +239,7 @@
             else:
                 # Calliope mini is not ready or not mounted
                 if firmware:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.microPython,
                         self.tr("Flash MicroPython/Firmware"),
                         self.tr(
@@ -256,7 +256,7 @@
                         )
                     )
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.microPython,
                         self.tr("Flash MicroPython/Firmware"),
                         self.tr(
@@ -269,7 +269,7 @@
         elif len(deviceDirectories) == 1:
             downloadsPath = QStandardPaths.standardLocations(
                 QStandardPaths.StandardLocation.DownloadLocation)[0]
-            firmware = E5FileDialog.getOpenFileName(
+            firmware = EricFileDialog.getOpenFileName(
                 self.microPython,
                 self.tr("Flash MicroPython/Firmware"),
                 downloadsPath,
@@ -278,7 +278,7 @@
             if firmware and os.path.exists(firmware):
                 shutil.copy2(firmware, deviceDirectories[0])
         else:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Flash MicroPython/Firmware"),
                 self.tr("There are multiple devices ready for flashing."
@@ -302,7 +302,7 @@
         @param scriptName name of the file on the device
         @type str
         """
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if not aw:
             return
         
@@ -313,7 +313,7 @@
         )
         
         if not (aw.isPyFile() or aw.isMicroPythonFile()):
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 self.microPython,
                 title,
                 self.tr("""The current editor does not contain a Python"""
@@ -323,7 +323,7 @@
         
         script = aw.text().strip()
         if not script:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.microPython,
                 title,
                 self.tr("""The script is empty. Aborting."""))
@@ -351,7 +351,7 @@
         commands.append("fd.close()")
         out, err = self.microPython.commandsInterface().execute(commands)
         if err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.microPython,
                 title,
                 self.tr("""<p>The script could not be saved to the"""
--- a/eric7/MicroPython/PyBoardDevices.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/PyBoardDevices.py	Sat May 22 18:51:46 2021 +0200
@@ -11,9 +11,9 @@
 
 from PyQt6.QtCore import pyqtSlot, QStandardPaths
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5Application import e5App
-from E5Gui.E5ProcessDialog import E5ProcessDialog
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricProcessDialog import EricProcessDialog
 
 from .MicroPythonDevices import MicroPythonDevice
 from .MicroPythonWidget import HAS_QTCHART
@@ -188,7 +188,7 @@
             # return the default workspace and give the user a warning (unless
             # silent mode is selected)
             if not silent:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self.microPython,
                     self.tr("Workspace Directory"),
                     self.tr("Python files for PyBoard can be edited in"
@@ -255,7 +255,7 @@
         Private slot to open the URL containing instructions for installing
         MicroPython on the pyboard.
         """
-        e5App().getObject("UserInterface").launchHelpViewer(
+        ericApp().getObject("UserInterface").launchHelpViewer(
             PyBoardDevice.FlashInstructionsURL)
     
     def __dfuUtilAvailable(self):
@@ -276,7 +276,7 @@
                 available = True
         
         if not available:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.microPython,
                 self.tr("dfu-util not available"),
                 self.tr("""The dfu-util firmware flashing tool"""
@@ -316,13 +316,13 @@
         msg += self.tr(
             "<p>Press <b>OK</b> to continue...</p>"
         )
-        res = E5MessageBox.information(
+        res = EricMessageBox.information(
             self.microPython,
             self.tr("Enable DFU mode"),
             msg,
-            E5MessageBox.Abort | E5MessageBox.Ok)
+            EricMessageBox.Abort | EricMessageBox.Ok)
         
-        return res == E5MessageBox.Ok
+        return res == EricMessageBox.Ok
     
     def __showDfuDisableInstructions(self):
         """
@@ -336,7 +336,7 @@
             "<hr />"
             "<p>Press <b>OK</b> to continue...</p>"
         )
-        E5MessageBox.information(
+        EricMessageBox.information(
             self.microPython,
             self.tr("Disable DFU mode"),
             msg
@@ -357,7 +357,7 @@
                 args = [
                     "--list",
                 ]
-                dlg = E5ProcessDialog(
+                dlg = EricProcessDialog(
                     self.tr("'dfu-util' Output"),
                     self.tr("List DFU capable Devices")
                 )
@@ -379,7 +379,7 @@
                 
                 downloadsPath = QStandardPaths.standardLocations(
                     QStandardPaths.StandardLocation.DownloadLocation)[0]
-                firmware = E5FileDialog.getOpenFileName(
+                firmware = EricFileDialog.getOpenFileName(
                     self.microPython,
                     self.tr("Flash MicroPython Firmware"),
                     downloadsPath,
@@ -391,7 +391,7 @@
                         "--alt", "0",
                         "--download", firmware,
                     ]
-                    dlg = E5ProcessDialog(
+                    dlg = EricProcessDialog(
                         self.tr("'dfu-util' Output"),
                         self.tr("Flash MicroPython Firmware")
                     )
--- a/eric7/MicroPython/UF2FlashDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/UF2FlashDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 from PyQt6.QtCore import pyqtSlot, Qt, QCoreApplication, QThread, QEventLoop
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_UF2FlashDialog import Ui_UF2FlashDialog
 
@@ -518,12 +518,12 @@
         
         self.refreshButton.setIcon(UI.PixmapCache.getIcon("rescan"))
         
-        self.firmwarePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.firmwarePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.firmwarePicker.setFilters(
             self.tr("MicroPython/CircuitPython Files (*.uf2);;"
                     "All Files (*)"))
         
-        self.bootPicker.setMode(E5PathPickerModes.DIRECTORY_SHOW_FILES_MODE)
+        self.bootPicker.setMode(EricPathPickerModes.DIRECTORY_SHOW_FILES_MODE)
         self.bootPicker.setEnabled(False)
         
         self.__mandatoryStyleSheet = (
--- a/eric7/MicroPython/UF2FlashDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/UF2FlashDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -47,7 +47,7 @@
       </widget>
      </item>
      <item row="1" column="1">
-      <widget class="E5PathPicker" name="firmwarePicker" native="true">
+      <widget class="EricPathPicker" name="firmwarePicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -70,7 +70,7 @@
       </widget>
      </item>
      <item row="2" column="1">
-      <widget class="E5PathPicker" name="bootPicker" native="true">
+      <widget class="EricPathPicker" name="bootPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -157,9 +157,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/MicroPython/UnknownDevicesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MicroPython/UnknownDevicesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 from PyQt6.QtGui import QDesktopServices
 from PyQt6.QtWidgets import QDialog, QListWidgetItem
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_UnknownDevicesDialog import Ui_UnknownDevicesDialog
 
@@ -150,7 +150,7 @@
         for itm in self.deviceList.selectedItems():
             unsaved |= itm.data(self.ModifiedRole)
         if unsaved:
-            ok = E5MessageBox.yesNo(
+            ok = EricMessageBox.yesNo(
                 self,
                 self.tr("Delete Unknown Devices"),
                 self.tr("The selected entries contain some with modified"
@@ -168,7 +168,7 @@
         Private slot to delete all devices.
         """
         if self.__isDirty():
-            ok = E5MessageBox.yesNo(
+            ok = EricMessageBox.yesNo(
                 self,
                 self.tr("Delete Unknown Devices"),
                 self.tr("The list contains some devices with modified"
@@ -184,7 +184,7 @@
         Private slot to restore the list of unknown devices.
         """
         if self.__isDirty():
-            ok = E5MessageBox.yesNo(
+            ok = EricMessageBox.yesNo(
                 self,
                 self.tr("Restore Unknown Devices"),
                 self.tr("Restoring the list of unknown devices will overwrite"
@@ -247,7 +247,7 @@
         Private slot handling the cancellation of the dialog.
         """
         if self.__isDirty():
-            ok = E5MessageBox.okToClearData(
+            ok = EricMessageBox.okToClearData(
                 self,
                 self.tr("Unsaved Data"),
                 self.tr("""The list of devices contains some with modified"""
--- a/eric7/MultiProject/AddProjectDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MultiProject/AddProjectDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_AddProjectDialog import Ui_AddProjectDialog
 
@@ -43,7 +43,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.filenamePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.filenamePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.filenamePicker.setFilters(
             self.tr("Project Files (*.epj);;XML Project Files (*.e4p)"))
         self.filenamePicker.setDefaultDirectory(
--- a/eric7/MultiProject/AddProjectDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MultiProject/AddProjectDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -45,7 +45,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5PathPicker" name="filenamePicker" native="true">
+    <widget class="EricPathPicker" name="filenamePicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -130,9 +130,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/MultiProject/MultiProject.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MultiProject/MultiProject.py	Sat May 22 18:51:46 2021 +0200
@@ -18,10 +18,10 @@
 
 from Globals import recentNameMultiProject
 
-from E5Gui.E5Action import E5Action, createActionGroup
-from E5Gui import E5FileDialog, E5MessageBox, E5PathPickerDialog
-from E5Gui.E5PathPickerDialog import E5PathPickerModes
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricAction import EricAction, createActionGroup
+from E5Gui import EricFileDialog, EricMessageBox, EricPathPickerDialog
+from E5Gui.EricPathPickerDialog import EricPathPickerModes
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 import UI.PixmapCache
 
@@ -229,20 +229,20 @@
         """
         if os.path.splitext(fn)[1] == ".emj":
             # new JSON based format
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 res = self.__multiProjectFile.readFile(fn)
         else:
             # old XML based format
             f = QFile(fn)
             if f.open(QIODevice.OpenModeFlag.ReadOnly):
-                with E5OverrideCursor():
+                with EricOverrideCursor():
                     from EricXML.MultiProjectReader import MultiProjectReader
                     reader = MultiProjectReader(f, self)
                     reader.readXML()
                     f.close()
                 res = not reader.hasError()
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Read Multi Project File"),
                     self.tr(
@@ -365,12 +365,12 @@
                 startdir = Preferences.getMultiProject("Workspace")
             srcProject = self.__projects[uid]
             srcProjectDirectory = os.path.dirname(srcProject["file"])
-            dstProjectDirectory, ok = E5PathPickerDialog.getPath(
+            dstProjectDirectory, ok = EricPathPickerDialog.getPath(
                 self.parent(),
                 self.tr("Copy Project"),
                 self.tr("Enter directory for the new project (must not exist"
                         " already):"),
-                mode=E5PathPickerModes.DIRECTORY_MODE,
+                mode=EricPathPickerModes.DIRECTORY_MODE,
                 path=srcProjectDirectory,
                 defaultDirectory=startdir,
             )
@@ -382,7 +382,7 @@
                 try:
                     shutil.copytree(srcProjectDirectory, dstProjectDirectory)
                 except shutil.Error:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.parent(),
                         self.tr("Copy Project"),
                         self.tr("<p>The source project <b>{0}</b> could not"
@@ -536,7 +536,7 @@
             return
         
         if fn is None:
-            fn = E5FileDialog.getOpenFileName(
+            fn = EricFileDialog.getOpenFileName(
                 self.parent(),
                 self.tr("Open Multi Project"),
                 Preferences.getMultiProject("Workspace") or
@@ -601,13 +601,13 @@
             (Preferences.getMultiProject("Workspace") or
              Utilities.getHomeDir())
         )
-        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self.parent(),
             self.tr("Save Multiproject"),
             defaultPath,
             self.tr("Multi Project Files (*.emj)"),
             defaultFilter,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if fn:
             ext = QFileInfo(fn).suffix()
@@ -616,12 +616,12 @@
                 if ex:
                     fn += ex
             if QFileInfo(fn).exists():
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self.parent(),
                     self.tr("Save File"),
                     self.tr("<p>The file <b>{0}</b> already exists."
                             " Overwrite it?</p>").format(fn),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return False
                 
@@ -641,7 +641,7 @@
         @return flag indicating whether this operation was successful (boolean)
         """
         if self.isDirty():
-            res = E5MessageBox.okToClearData(
+            res = EricMessageBox.okToClearData(
                 self.parent(),
                 self.tr("Close Multiproject"),
                 self.tr("The current multiproject has unsaved changes."),
@@ -695,7 +695,7 @@
         
         self.actGrp1 = createActionGroup(self)
         
-        act = E5Action(
+        act = EricAction(
             self.tr('New multiproject'),
             UI.PixmapCache.getIcon("multiProjectNew"),
             self.tr('&New...'), 0, 0,
@@ -709,7 +709,7 @@
         act.triggered.connect(self.__newMultiProject)
         self.actions.append(act)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Open multiproject'),
             UI.PixmapCache.getIcon("multiProjectOpen"),
             self.tr('&Open...'), 0, 0,
@@ -722,7 +722,7 @@
         act.triggered.connect(self.openMultiProject)
         self.actions.append(act)
 
-        self.closeAct = E5Action(
+        self.closeAct = EricAction(
             self.tr('Close multiproject'),
             UI.PixmapCache.getIcon("multiProjectClose"),
             self.tr('&Close'), 0, 0, self, 'multi_project_close')
@@ -735,7 +735,7 @@
         self.closeAct.triggered.connect(self.closeMultiProject)
         self.actions.append(self.closeAct)
 
-        self.saveAct = E5Action(
+        self.saveAct = EricAction(
             self.tr('Save multiproject'),
             UI.PixmapCache.getIcon("multiProjectSave"),
             self.tr('&Save'), 0, 0, self, 'multi_project_save')
@@ -747,7 +747,7 @@
         self.saveAct.triggered.connect(self.saveMultiProject)
         self.actions.append(self.saveAct)
 
-        self.saveasAct = E5Action(
+        self.saveasAct = EricAction(
             self.tr('Save multiproject as'),
             UI.PixmapCache.getIcon("multiProjectSaveAs"),
             self.tr('Save &as...'), 0, 0, self,
@@ -761,7 +761,7 @@
         self.saveasAct.triggered.connect(self.saveMultiProjectAs)
         self.actions.append(self.saveasAct)
 
-        self.addProjectAct = E5Action(
+        self.addProjectAct = EricAction(
             self.tr('Add project to multiproject'),
             UI.PixmapCache.getIcon("fileProject"),
             self.tr('Add &project...'), 0, 0,
@@ -776,7 +776,7 @@
         self.addProjectAct.triggered.connect(self.addNewProject)
         self.actions.append(self.addProjectAct)
 
-        self.propsAct = E5Action(
+        self.propsAct = EricAction(
             self.tr('Multiproject properties'),
             UI.PixmapCache.getIcon("multiProjectProps"),
             self.tr('&Properties...'), 0, 0, self,
@@ -839,7 +839,7 @@
         Public slot to initialize the multi project toolbar.
         
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         @return the toolbar generated (QToolBar)
         """
         tb = QToolBar(self.tr("Multiproject"), self.ui)
@@ -923,23 +923,23 @@
         """
         Public method to get a list of all actions.
         
-        @return list of all actions (list of E5Action)
+        @return list of all actions (list of EricAction)
         """
         return self.actions[:]
     
-    def addE5Actions(self, actions):
+    def addEricActions(self, actions):
         """
         Public method to add actions to the list of actions.
         
-        @param actions list of actions (list of E5Action)
+        @param actions list of actions (list of EricAction)
         """
         self.actions.extend(actions)
     
-    def removeE5Actions(self, actions):
+    def removeEricActions(self, actions):
         """
         Public method to remove actions from the list of actions.
         
-        @param actions list of actions (list of E5Action)
+        @param actions list of actions (list of EricAction)
         """
         for act in actions:
             with contextlib.suppress(ValueError):
--- a/eric7/MultiProject/MultiProjectBrowser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MultiProject/MultiProjectBrowser.py	Sat May 22 18:51:46 2021 +0200
@@ -13,8 +13,8 @@
 from PyQt6.QtCore import Qt
 from PyQt6.QtWidgets import QTreeWidget, QTreeWidgetItem, QDialog, QMenu
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 import UI.PixmapCache
 
@@ -303,7 +303,7 @@
             projectPath = os.path.dirname(projectFile)
             
             if self.project.getProjectPath() == projectPath:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Delete Project"),
                     self.tr("""The current project cannot be deleted."""
@@ -315,14 +315,14 @@
                     # Oops, that should not happen; play it save
                     res = False
                 elif len(projectFiles) == 1:
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         self,
                         self.tr("Delete Project"),
                         self.tr("""<p>Shall the project <b>{0}</b> (Path:"""
                                 """ {1}) really be deleted?</p>""").format(
                             itm.text(0), projectPath))
                 else:
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         self,
                         self.tr("Delete Project"),
                         self.tr("""<p>Shall the project <b>{0}</b> (Path:"""
@@ -437,4 +437,4 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences("multiProjectPage")
+        ericApp().getObject("UserInterface").showPreferences("multiProjectPage")
--- a/eric7/MultiProject/MultiProjectFile.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/MultiProject/MultiProjectFile.py	Sat May 22 18:51:46 2021 +0200
@@ -14,8 +14,8 @@
 
 from PyQt6.QtCore import QObject
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverridenCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverridenCursor
 
 import Preferences
 
@@ -68,8 +68,8 @@
             with open(filename, "w") as f:
                 f.write(jsonString)
         except (TypeError, OSError) as err:
-            with E5OverridenCursor():
-                E5MessageBox.critical(
+            with EricOverridenCursor():
+                EricMessageBox.critical(
                     None,
                     self.tr("Save Multi Project File"),
                     self.tr(
@@ -96,7 +96,7 @@
                 jsonString = f.read()
             multiProjectDict = json.loads(jsonString)
         except (OSError, json.JSONDecodeError) as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Read Multi Project File"),
                 self.tr(
--- a/eric7/Network/IRC/IrcChannelWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Network/IRC/IrcChannelWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -20,8 +20,8 @@
     QWidget, QListWidgetItem, QMenu, QApplication, QInputDialog, QLineEdit
 )
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricApplication import ericApp
 
 from .Ui_IrcChannelWidget import Ui_IrcChannelWidget
 
@@ -253,7 +253,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.__ui = e5App().getObject("UserInterface")
+        self.__ui = ericApp().getObject("UserInterface")
         self.__ircWidget = parent
         
         self.editTopicButton.setIcon(
@@ -414,7 +414,7 @@
 
         if msg.startswith("/"):
             if self.__private:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("Send Message"),
                     self.tr(
@@ -530,7 +530,7 @@
         """
         Public method to leave the channel.
         """
-        ok = E5MessageBox.yesNo(
+        ok = EricMessageBox.yesNo(
             self,
             self.tr("Leave IRC channel"),
             self.tr(
@@ -1364,7 +1364,7 @@
                 htmlExtension = "htm"
             else:
                 htmlExtension = "html"
-            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
                 self,
                 self.tr("Save Messages"),
                 "",
@@ -1372,7 +1372,7 @@
                     "HTML Files (*.{0});;Text Files (*.txt);;All Files (*)")
                 .format(htmlExtension),
                 None,
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
             if fname:
                 ext = QFileInfo(fname).suffix()
                 if not ext:
@@ -1381,12 +1381,12 @@
                         fname += ex
                     ext = QFileInfo(fname).suffix()
                 if QFileInfo(fname).exists():
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         self,
                         self.tr("Save Messages"),
                         self.tr("<p>The file <b>{0}</b> already exists."
                                 " Overwrite it?</p>").format(fname),
-                        icon=E5MessageBox.Warning)
+                        icon=EricMessageBox.Warning)
                     if not res:
                         return
                     fname = Utilities.toNativeSeparators(fname)
@@ -1400,7 +1400,7 @@
                     with open(fname, "w", encoding="utf-8") as f:
                         f.write(txt)
                 except OSError as err:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Error saving Messages"),
                         self.tr(
@@ -1483,10 +1483,10 @@
         """
         Private slot to send a private message to a specific user.
         """
-        from E5Gui import E5TextInputDialog
+        from E5Gui import EricTextInputDialog
         
         user = self.usersList.selectedItems()[0].text()
-        ok, message = E5TextInputDialog.getText(
+        ok, message = EricTextInputDialog.getText(
             self, self.tr("Send Message"),
             self.tr("Enter the message to be sent:"),
             minimumWidth=400)
@@ -1497,10 +1497,10 @@
         """
         Private slot to send a query message to a specific user.
         """
-        from E5Gui import E5TextInputDialog
+        from E5Gui import EricTextInputDialog
         
         user = self.usersList.selectedItems()[0].text()
-        ok, message = E5TextInputDialog.getText(
+        ok, message = EricTextInputDialog.getText(
             self, self.tr("Send Query"),
             self.tr("Enter the message to be sent:"),
             minimumWidth=400)
@@ -1511,10 +1511,10 @@
         """
         Private slot to send a notice message to a specific user.
         """
-        from E5Gui import E5TextInputDialog
+        from E5Gui import EricTextInputDialog
         
         user = self.usersList.selectedItems()[0].text()
-        ok, message = E5TextInputDialog.getText(
+        ok, message = EricTextInputDialog.getText(
             self, self.tr("Send Notice"),
             self.tr("Enter the message to be sent:"),
             minimumWidth=400)
--- a/eric7/Network/IRC/IrcIdentitiesEditDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Network/IRC/IrcIdentitiesEditDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSlot, Qt, QEvent, QItemSelectionModel
 from PyQt6.QtWidgets import QDialog, QInputDialog, QLineEdit
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_IrcIdentitiesEditDialog import Ui_IrcIdentitiesEditDialog
 
@@ -174,7 +174,7 @@
         @return flag indicating a successful check (boolean)
         """
         if self.nicknamesList.count() == 0:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Edit Identity"),
                 self.tr(
@@ -191,7 +191,7 @@
             return False
         
         if not self.realnameEdit.text():
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Edit Identity"),
                 self.tr("""The identity must have a real name."""))
@@ -222,7 +222,7 @@
         if ok:
             if name:
                 if name in self.__identities:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Add Identity"),
                         self.tr(
@@ -239,7 +239,7 @@
                     self.identitiesCombo.setCurrentIndex(
                         self.identitiesCombo.count() - 1)
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Add Identity"),
                     self.tr("""The identity has to have a name."""))
@@ -261,7 +261,7 @@
         if ok:
             if name:
                 if name in self.__identities:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Copy Identity"),
                         self.tr(
@@ -277,7 +277,7 @@
                     self.identitiesCombo.setCurrentIndex(
                         self.identitiesCombo.count() - 1)
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Copy Identity"),
                     self.tr("""The identity has to have a name."""))
@@ -299,7 +299,7 @@
         if ok and name != currentIdentity:
             if name:
                 if name in self.__identities:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Rename Identity"),
                         self.tr(
@@ -314,7 +314,7 @@
                     self.identitiesCombo.setItemText(
                         self.identitiesCombo.currentIndex(), name)
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Copy Identity"),
                     self.tr("""The identity has to have a name."""))
@@ -345,11 +345,11 @@
             self.tr("Do you really want to delete all information for"
                     " this identity?")
         )
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Delete Identity"),
             msg,
-            icon=E5MessageBox.Warning)
+            icon=EricMessageBox.Warning)
         if res:
             del self.__identities[currentIdentity]
             self.identitiesCombo.removeItem(
--- a/eric7/Network/IRC/IrcNetworkEditDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Network/IRC/IrcNetworkEditDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_IrcNetworkEditDialog import Ui_IrcNetworkEditDialog
 
@@ -183,7 +183,7 @@
         """
         itm = self.channelList.selectedItems()[0]
         if itm:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Delete Channel"),
                 self.tr(
--- a/eric7/Network/IRC/IrcNetworkListDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Network/IRC/IrcNetworkListDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_IrcNetworkListDialog import Ui_IrcNetworkListDialog
 
@@ -159,7 +159,7 @@
         itm = self.networksList.selectedItems()[0]
         if itm.parent() is None:
             networkName = itm.text(0)
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Delete Irc Network"),
                 self.tr(
--- a/eric7/Network/IRC/IrcNetworkWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Network/IRC/IrcNetworkWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 from PyQt6.QtGui import QDesktopServices
 from PyQt6.QtWidgets import QWidget, QApplication, QMenu
 
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui import EricMessageBox, EricFileDialog
 
 from .Ui_IrcNetworkWidget import Ui_IrcNetworkWidget
 
@@ -416,7 +416,7 @@
                 htmlExtension = "htm"
             else:
                 htmlExtension = "html"
-            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
                 self,
                 self.tr("Save Messages"),
                 "",
@@ -424,7 +424,7 @@
                     "HTML Files (*.{0});;Text Files (*.txt);;All Files (*)")
                 .format(htmlExtension),
                 None,
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
             if fname:
                 ext = QFileInfo(fname).suffix()
                 if not ext:
@@ -433,12 +433,12 @@
                         fname += ex
                     ext = QFileInfo(fname).suffix()
                 if QFileInfo(fname).exists():
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         self,
                         self.tr("Save Messages"),
                         self.tr("<p>The file <b>{0}</b> already exists."
                                 " Overwrite it?</p>").format(fname),
-                        icon=E5MessageBox.Warning)
+                        icon=EricMessageBox.Warning)
                     if not res:
                         return
                     fname = Utilities.toNativeSeparators(fname)
@@ -452,7 +452,7 @@
                     with open(fname, "w", encoding="utf-8") as f:
                         f.write(txt)
                 except OSError as err:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Error saving Messages"),
                         self.tr(
--- a/eric7/Network/IRC/IrcWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Network/IRC/IrcWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -22,7 +22,7 @@
 except ImportError:
     SSL_AVAILABLE = False
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_IrcWidget import Ui_IrcWidget
 
@@ -138,7 +138,7 @@
         """
         if self.__server:
             if Preferences.getIrc("AskOnShutdown"):
-                ok = E5MessageBox.yesNo(
+                ok = EricMessageBox.yesNo(
                     self,
                     self.tr("Disconnect from Server"),
                     self.tr(
@@ -184,7 +184,7 @@
                     if self.__server:
                         useSSL = self.__server.useSSL()
                         if useSSL and not SSL_AVAILABLE:
-                            E5MessageBox.critical(
+                            EricMessageBox.critical(
                                 self,
                                 self.tr("SSL Connection"),
                                 self.tr(
@@ -242,7 +242,7 @@
             if silent:
                 ok = True
             else:
-                ok = E5MessageBox.yesNo(
+                ok = EricMessageBox.yesNo(
                     self,
                     self.tr("Disconnect from Server"),
                     self.tr("""<p>Do you really want to disconnect from"""
--- a/eric7/PipInterface/Pip.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PipInterface/Pip.py	Sat May 22 18:51:46 2021 +0200
@@ -18,8 +18,8 @@
     QNetworkAccessManager, QNetworkRequest, QNetworkReply
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 from EricNetwork.EricNetworkProxyFactory import proxyAuthenticationRequired
 try:
@@ -155,7 +155,7 @@
         
         pip = "pip.ini" if Globals.isWindowsPlatform() else "pip.conf"
         
-        venvManager = e5App().getObject("VirtualEnvManager")
+        venvManager = ericApp().getObject("VirtualEnvManager")
         venvDirectory = (
             os.path.dirname(self.getUserConfig())
             if venvManager.isGlobalEnvironment(venvName) else
@@ -173,7 +173,7 @@
         @return string for the project environment
         @rtype str
         """
-        if e5App().getObject("Project").isOpen():
+        if ericApp().getObject("Project").isOpen():
             return self.tr("<project>")
         else:
             return ""
@@ -189,7 +189,7 @@
         """
         if venvName == self.getProjectEnvironmentString():
             venvName = (
-                e5App().getObject("Project")
+                ericApp().getObject("Project")
                 .getDebugProperty("VIRTUALENV")
             )
             if not venvName:
@@ -197,11 +197,11 @@
                 return sys.executable
         
         interpreter = (
-            e5App().getObject("VirtualEnvManager")
+            ericApp().getObject("VirtualEnvManager")
             .getVirtualenvInterpreter(venvName)
         )
         if not interpreter:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Interpreter for Virtual Environment"),
                 self.tr("""No interpreter configured for the selected"""
@@ -222,7 +222,7 @@
         @rtype list of str
         """
         return sorted(
-            e5App().getObject("VirtualEnvManager").getVirtualenvNames(
+            ericApp().getObject("VirtualEnvManager").getVirtualenvNames(
                 noRemote=noRemote, noConda=noConda))
     
     def installPip(self, venvName, userSite=False):
@@ -300,14 +300,14 @@
                                          "qscintilla", "sip"]]
         
         abort = (
-            not E5MessageBox.yesNo(
+            not EricMessageBox.yesNo(
                 None,
                 self.tr("Upgrade Packages"),
                 self.tr(
                     """You are trying to upgrade PyQt packages. This might"""
                     """ not work for the current instance of Python ({0})."""
                     """ Do you want to continue?""").format(sys.executable),
-                icon=E5MessageBox.Critical)
+                icon=EricMessageBox.Critical)
             if bool(pyqtPackages) else
             False
         )
@@ -773,7 +773,7 @@
         if venvName:
             interpreter = self.getVirtualenvInterpreter(venvName)
             if interpreter:
-                ok = E5MessageBox.yesNo(
+                ok = EricMessageBox.yesNo(
                     None,
                     self.tr("Purge Cache"),
                     self.tr("Do you really want to purge the pip cache? All"
--- a/eric7/PipInterface/PipDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PipInterface/PipDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 )
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QAbstractButton
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_PipDialog import Ui_PipDialog
 
@@ -153,7 +153,7 @@
         procStarted = self.proc.waitForStarted(5000)
         if not procStarted:
             self.buttonBox.setFocus()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/PipInterface/PipFileSelectionDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PipInterface/PipFileSelectionDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_PipFileSelectionDialog import Ui_PipFileSelectionDialog
 
@@ -42,7 +42,7 @@
         
         if mode == "requirements":
             self.fileLabel.setText(self.tr("Enter requirements file:"))
-            self.filePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+            self.filePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
             self.filePicker.setToolTip(self.tr(
                 "Press to select the requirements file through a file"
                 " selection dialog."))
@@ -50,7 +50,7 @@
                 self.tr("Text Files (*.txt);;All Files (*)"))
         elif mode == "package":
             self.fileLabel.setText(self.tr("Enter package file:"))
-            self.filePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+            self.filePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
             self.filePicker.setToolTip(self.tr(
                 "Press to select the package file through a file"
                 " selection dialog."))
@@ -60,7 +60,7 @@
                         "All Files (*)"))
         else:
             self.fileLabel.setText(self.tr("Enter file name:"))
-            self.filePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+            self.filePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
             self.filePicker.setToolTip(self.tr(
                 "Press to select a file through a file selection dialog."))
             self.filePicker.setFilters(self.tr("All Files (*)"))
--- a/eric7/PipInterface/PipFileSelectionDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PipInterface/PipFileSelectionDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -25,7 +25,7 @@
     </widget>
    </item>
    <item>
-    <widget class="E5PathPicker" name="filePicker" native="true">
+    <widget class="EricPathPicker" name="filePicker" native="true">
      <property name="focusPolicy">
       <enum>Qt::StrongFocus</enum>
      </property>
@@ -55,9 +55,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/PipInterface/PipFreezeDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PipInterface/PipFreezeDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,10 +14,10 @@
     QDialog, QDialogButtonBox, QAbstractButton, QApplication
 )
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5PathPicker import E5PathPickerModes
-from E5Gui.E5Application import e5App
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricPathPicker import EricPathPickerModes
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .Ui_PipFreezeDialog import Ui_PipFreezeDialog
 
@@ -46,7 +46,7 @@
         
         self.__environmentName = ""
         
-        self.requirementsFilePicker.setMode(E5PathPickerModes.SAVE_FILE_MODE)
+        self.requirementsFilePicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
         self.requirementsFilePicker.setFilters(
             self.tr("Text Files (*.txt);;All Files (*)"))
         
@@ -113,7 +113,7 @@
         Private slot to refresh the displayed list.
         """
         ok = (
-            E5MessageBox.yesNo(
+            EricMessageBox.yesNo(
                 self,
                 self.tr("Generate Requirements"),
                 self.tr("""The requirements were changed. Do you want"""
@@ -149,7 +149,7 @@
                 args.append("--requirement")
                 args.append(fileName)
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             success, output = self.__pip.runProcess(args, interpreter)
             
             if success:
@@ -174,7 +174,7 @@
         self.saveToButton.setEnabled(self.__requirementsAvailable)
         self.copyButton.setEnabled(self.__requirementsAvailable)
         
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw and self.__requirementsAvailable:
             self.insertButton.setEnabled(True)
             self.replaceAllButton.setEnabled(True)
@@ -193,7 +193,7 @@
         @type str
         """
         if os.path.exists(fileName):
-            ok = E5MessageBox.warning(
+            ok = EricMessageBox.warning(
                 self,
                 self.tr("Generate Requirements"),
                 self.tr("""The file <b>{0}</b> already exists. Do you want"""
@@ -205,7 +205,7 @@
             with open(fileName, "w") as f:
                 f.write(self.requirementsEdit.toPlainText())
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Generate Requirements"),
                 self.tr("""<p>The requirements could not be written"""
@@ -225,13 +225,13 @@
         """
         Private slot to write the requirements text to a new file.
         """
-        fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fileName, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Generate Requirements"),
             os.path.expanduser("~"),
             self.tr("Text Files (*.txt);;All Files (*)"),
             None,
-            E5FileDialog.DontConfirmOverwrite
+            EricFileDialog.DontConfirmOverwrite
         )
         if fileName:
             ext = os.path.splitext(fileName)[1]
@@ -256,7 +256,7 @@
         Private slot to insert the requirements text at the cursor position
         of the current editor.
         """
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw:
             aw.beginUndoAction()
             aw.insert(self.requirementsEdit.toPlainText())
@@ -268,7 +268,7 @@
         Private slot to replace the selected text of the current editor
         with the requirements text.
         """
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw:
             aw.beginUndoAction()
             aw.replaceSelectedText(self.requirementsEdit.toPlainText())
@@ -280,6 +280,6 @@
         Private slot to replace the text of the current editor with the
         requirements text.
         """
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw:
             aw.setText(self.requirementsEdit.toPlainText())
--- a/eric7/PipInterface/PipFreezeDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PipInterface/PipFreezeDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -43,7 +43,7 @@
       </widget>
      </item>
      <item>
-      <widget class="E5PathPicker" name="requirementsFilePicker" native="true">
+      <widget class="EricPathPicker" name="requirementsFilePicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -152,9 +152,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/PipInterface/PipPackagesWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PipInterface/PipPackagesWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -19,9 +19,9 @@
     QMenu, QDialog
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .Ui_PipPackagesWidget import Ui_PipPackagesWidget
 
@@ -207,13 +207,13 @@
         }
         self.infoWidget.setHeaderLabels(["Key", "Value"])
         
-        venvManager = e5App().getObject("VirtualEnvManager")
+        venvManager = ericApp().getObject("VirtualEnvManager")
         venvManager.virtualEnvironmentAdded.connect(
             self.on_refreshButton_clicked)
         venvManager.virtualEnvironmentRemoved.connect(
             self.on_refreshButton_clicked)
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         project.projectOpened.connect(
             self.on_refreshButton_clicked)
         project.projectClosed.connect(
@@ -361,7 +361,7 @@
                 self.statusLabel.setText(
                     self.tr("Getting installed packages..."))
                 
-                with E5OverrideCursor():
+                with EricOverrideCursor():
                     # 1. populate with installed packages
                     self.packagesList.setUpdatesEnabled(False)
                     installedPackages = self.__pip.getInstalledPackages(
@@ -467,7 +467,7 @@
                 args.append("--files")
             args.append(itm.text(0))
             
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 success, output = self.__pip.runProcess(args, interpreter)
                 
                 if success and output:
@@ -568,7 +568,7 @@
         self.environmentsComboBox.clear()
         self.packagesList.clear()
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             self.__populateEnvironments()
             
             index = self.environmentsComboBox.findText(
@@ -772,7 +772,7 @@
         searchTerm = urlQuery.queryItemValue("q")
         
         if reply.error() != QNetworkReply.NetworkError.NoError:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Search PyPI"),
                 self.tr(
@@ -794,7 +794,7 @@
                 msg = self.tr("Showing first 20 packages found.")
             self.searchInfoLabel.setText(msg)
         else:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Search PyPI"),
                 self.tr("""<p>There were no results for <b>{0}</b>.</p>"""))
@@ -929,7 +929,7 @@
             (defaults to False)
         @type bool (optional)
         """
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             packageData = self.__pip.getPackageDetails(
                 packageName, packageVersion)
         
@@ -957,7 +957,7 @@
             )
             self.__packageDetailsDialog.show()
         else:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Search PyPI"),
                 self.tr("""<p>No package details info for <b>{0}</b>"""
@@ -1195,7 +1195,7 @@
             cfgFile = self.__pip.getUserConfig()
         cfgDir = os.path.dirname(cfgFile)
         if not cfgDir:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Edit Configuration"),
                 self.tr("""No valid configuration path determined."""
@@ -1206,7 +1206,7 @@
             if not os.path.isdir(cfgDir):
                 os.makedirs(cfgDir)
         except OSError:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Edit Configuration"),
                 self.tr("""No valid configuration path determined."""
@@ -1219,7 +1219,7 @@
         
         # check, if the destination is writeable
         if not os.access(cfgFile, os.W_OK):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Edit Configuration"),
                 self.tr("""No valid configuration path determined."""
@@ -1233,7 +1233,7 @@
         """
         Private slot to open the configuration page.
         """
-        e5App().getObject("UserInterface").showPreferences("pipPage")
+        ericApp().getObject("UserInterface").showPreferences("pipPage")
     
     @pyqtSlot()
     def __showCacheInfo(self):
--- a/eric7/PipInterface/PipPackagesWidget.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PipInterface/PipPackagesWidget.ui	Sat May 22 18:51:46 2021 +0200
@@ -32,7 +32,7 @@
          <widget class="QComboBox" name="environmentsComboBox"/>
         </item>
         <item>
-         <widget class="E5ToolButton" name="pipMenuButton"/>
+         <widget class="EricToolButton" name="pipMenuButton"/>
         </item>
        </layout>
       </item>
@@ -459,9 +459,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5ToolButton</class>
+   <class>EricToolButton</class>
    <extends>QToolButton</extends>
-   <header>E5Gui/E5ToolButton.h</header>
+   <header>E5Gui/EricToolButton.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/PluginManager/PluginInstallDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PluginManager/PluginInstallDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -22,8 +22,8 @@
     QVBoxLayout
 )
 
-from E5Gui import E5FileDialog
-from E5Gui.E5MainWindow import E5MainWindow
+from E5Gui import EricFileDialog
+from E5Gui.EricMainWindow import EricMainWindow
 
 from .Ui_PluginInstallDialog import Ui_PluginInstallDialog
 
@@ -159,7 +159,7 @@
         Private slot to select plugin ZIP-archives via a file selection dialog.
         """
         dn = Preferences.getPluginManager("DownloadPath")
-        archives = E5FileDialog.getOpenFileNames(
+        archives = EricFileDialog.getOpenFileNames(
             self,
             self.tr("Select plugin ZIP-archives"),
             dn,
@@ -620,7 +620,7 @@
         return self.cw.restartNeeded()
 
 
-class PluginInstallWindow(E5MainWindow):
+class PluginInstallWindow(EricMainWindow):
     """
     Main window class for the standalone dialog.
     """
--- a/eric7/PluginManager/PluginManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PluginManager/PluginManager.py	Sat May 22 18:51:46 2021 +0200
@@ -22,8 +22,8 @@
     QNetworkAccessManager, QNetworkRequest, QNetworkReply
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 from EricNetwork.EricNetworkProxyFactory import proxyAuthenticationRequired
 try:
@@ -438,7 +438,7 @@
                 with contextlib.suppress(KeyError, AttributeError):
                     pluginObject = self.__onDemandInactivePlugins[name]
                     pluginObject.initToolbar(
-                        self.__ui, e5App().getObject("ToolbarManager"))
+                        self.__ui, ericApp().getObject("ToolbarManager"))
         except PluginLoadError:
             print("Error loading plug-in module:", name)
         except Exception as err:
@@ -554,7 +554,7 @@
         Public method to initialize plug-in toolbars.
         
         @param toolbarManager reference to the toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         self.initOnDemandPlugins()
         for pluginObject in self.__onDemandInactivePlugins.values():
@@ -1200,7 +1200,7 @@
                     try:
                         os.mkdir(downloadDir, 0o755)
                     except OSError as err:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self.__ui,
                             self.tr("Plugin Manager Error"),
                             self.tr(
@@ -1277,7 +1277,7 @@
             self.__replies.remove(reply)
         
         if reply.error() != QNetworkReply.NetworkError.NoError:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Error downloading file"),
                 self.tr(
@@ -1314,15 +1314,15 @@
                     return
                 
                 if self.__updateAvailable:
-                    res = E5MessageBox.information(
+                    res = EricMessageBox.information(
                         None,
                         self.tr("New plugin versions available"),
                         self.tr("<p>There are new plug-ins or plug-in"
                                 " updates available. Use the plug-in"
                                 " repository dialog to get them.</p>"),
-                        E5MessageBox.Ignore | E5MessageBox.Open,
-                        E5MessageBox.Open)
-                    if res == E5MessageBox.Open:
+                        EricMessageBox.Ignore | EricMessageBox.Open,
+                        EricMessageBox.Open)
+                    if res == EricMessageBox.Open:
                         self.__ui.showPluginsAvailable()
     
     def checkPluginEntry(self, name, short, description, url, author, version,
@@ -1436,7 +1436,7 @@
         @type list of str
         """
         try:
-            pip = e5App().getObject("Pip")
+            pip = ericApp().getObject("Pip")
         except KeyError:
             # Installation is performed via the plug-in installation script.
             from PipInterface.Pip import Pip
--- a/eric7/PluginManager/PluginRepositoryDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PluginManager/PluginRepositoryDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -27,9 +27,9 @@
 
 from .Ui_PluginRepositoryDialog import Ui_PluginRepositoryDialog
 
-from E5Gui import E5MessageBox
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricApplication import ericApp
 
 from EricNetwork.EricNetworkProxyFactory import proxyAuthenticationRequired
 try:
@@ -342,7 +342,7 @@
         self.__downloadButton.setEnabled(len(self.__selectedItems()))
         self.__downloadInstallButton.setEnabled(len(self.__selectedItems()))
         self.__installButton.setEnabled(len(self.__selectedItems()))
-        ui = (e5App().getObject("UserInterface")
+        ui = (ericApp().getObject("UserInterface")
               if not self.__external else None)
         if ui is not None:
             ui.showNotification(
@@ -354,7 +354,7 @@
             self.closeAndInstall.emit()
         else:
             if ui is None:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("Download Plugin Files"),
                     self.tr("""The requested plugins were downloaded."""))
@@ -402,7 +402,7 @@
                 url = Preferences.getUI("PluginRepositoryUrl7")
                 if url != self.repositoryUrlEdit.text():
                     self.repositoryUrlEdit.setText(url)
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         self,
                         self.tr("Plugins Repository URL Changed"),
                         self.tr(
@@ -410,7 +410,7 @@
                             """ changed. Select the "Update" button to get"""
                             """ the new repository file."""))
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Read plugins repository file"),
                     self.tr("<p>The plugins repository file <b>{0}</b> "
@@ -483,7 +483,7 @@
                 reply.error() !=
                 QNetworkReply.NetworkError.OperationCanceledError
             ):
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Error downloading file"),
                     self.tr(
@@ -822,7 +822,7 @@
         return self.cw.getDownloadedPlugins()
 
 
-class PluginRepositoryWindow(E5MainWindow):
+class PluginRepositoryWindow(EricMainWindow):
     """
     Main window class for the standalone dialog.
     """
@@ -861,7 +861,7 @@
             not os.path.isfile(applPath) or
             not proc.startDetached(sys.executable, args)
         ):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -947,7 +947,7 @@
                 os.remove(os.path.join(downloadPath, removeFile))
             except OSError as err:
                 if not quiet:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         None,
                         QCoreApplication.translate(
                             "PluginRepositoryWidget",
@@ -976,7 +976,7 @@
                             os.remove(os.path.join(downloadPath, removeFile))
                         except OSError as err:
                             if not quiet:
-                                E5MessageBox.critical(
+                                EricMessageBox.critical(
                                     None,
                                     QCoreApplication.translate(
                                         "PluginRepositoryWidget",
--- a/eric7/PluginManager/PluginUninstallDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PluginManager/PluginUninstallDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -16,9 +16,9 @@
 from PyQt6.QtCore import pyqtSlot, pyqtSignal
 from PyQt6.QtWidgets import QWidget, QDialog, QDialogButtonBox, QVBoxLayout
 
-from E5Gui import E5MessageBox
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricApplication import ericApp
 
 from .Ui_PluginUninstallDialog import Ui_PluginUninstallDialog
 
@@ -105,7 +105,7 @@
             self.pluginNameCombo.currentIndex())
         
         if not self.__pluginManager.unloadPlugin(pluginName):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Plugin Uninstallation"),
                 self.tr(
@@ -119,7 +119,7 @@
         module = importlib.util.module_from_spec(spec)
         spec.loader.exec_module(module)
         if not hasattr(module, "packageName"):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Plugin Uninstallation"),
                 self.tr(
@@ -175,7 +175,7 @@
             
             os.remove(pluginFile)
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Plugin Uninstallation"),
                 self.tr(
@@ -185,7 +185,7 @@
             return False
         
         if not self.__external:
-            ui = e5App().getObject("UserInterface")
+            ui = ericApp().getObject("UserInterface")
             ui.showNotification(
                 UI.PixmapCache.getPixmap("plugin48"),
                 self.tr("Plugin Uninstallation"),
@@ -195,7 +195,7 @@
                 .format(pluginName, pluginDirectory))
             return True
         
-        E5MessageBox.information(
+        EricMessageBox.information(
             self,
             self.tr("Plugin Uninstallation"),
             self.tr(
@@ -233,7 +233,7 @@
         self.cw.buttonBox.rejected.connect(self.reject)
 
 
-class PluginUninstallWindow(E5MainWindow):
+class PluginUninstallWindow(EricMainWindow):
     """
     Main window class for the standalone dialog.
     """
--- a/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -20,7 +20,7 @@
     QHeaderView, QListWidgetItem, QInputDialog, QLineEdit
 )
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from .Ui_CodeStyleCheckerDialog import Ui_CodeStyleCheckerDialog
 
@@ -674,7 +674,7 @@
         @type None or bool
         """
         if self.__project is None:
-            self.__project = e5App().getObject("Project")
+            self.__project = ericApp().getObject("Project")
         
         self.mainWidget.setCurrentWidget(self.progressTab)
         
@@ -1061,7 +1061,7 @@
                 codeStyleCheckerStats, fixes, ignoredErrors, securityOk)
         
         if fixed:
-            vm = e5App().getObject("ViewManager")
+            vm = ericApp().getObject("ViewManager")
             editor = vm.getOpenEditor(fn)
             if editor:
                 editor.refresh()
@@ -1356,7 +1356,7 @@
             message = item.data(0, self.messageRole)
             code = item.data(0, self.codeRole)
             
-            vm = e5App().getObject("ViewManager")
+            vm = ericApp().getObject("ViewManager")
             vm.openSourceFile(fn, lineno=lineno, pos=position + 1)
             editor = vm.getOpenEditor(fn)
             
@@ -1380,7 +1380,7 @@
         """
         Private slot to handle the "Show" button press.
         """
-        vm = e5App().getObject("ViewManager")
+        vm = ericApp().getObject("ViewManager")
         
         selectedIndexes = []
         for index in range(self.resultList.topLevelItemCount()):
@@ -1893,7 +1893,7 @@
         @param files list of files to be checked
         @type list of str
         """
-        vm = e5App().getObject("ViewManager")
+        vm = ericApp().getObject("ViewManager")
         openFiles = vm.getOpenFilenames()
         for file in [f for f in openFiles if f in files]:
             editor = vm.getOpenEditor(file)
--- a/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -1354,7 +1354,7 @@
           </widget>
          </item>
          <item>
-          <widget class="E5SqueezeLabelPath" name="checkProgressLabel">
+          <widget class="EricSqueezeLabelPath" name="checkProgressLabel">
            <property name="sizePolicy">
             <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
              <horstretch>0</horstretch>
@@ -1603,9 +1603,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5SqueezeLabelPath</class>
+   <class>EricSqueezeLabelPath</class>
    <extends>QLabel</extends>
-   <header>E5Gui/E5SqueezeLabels.h</header>
+   <header>E5Gui/EricSqueezeLabels.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 
 from PyQt6.QtCore import QObject, pyqtSignal
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 from Utilities import determinePythonVersion
 
 
@@ -37,7 +37,7 @@
         Constructor
         """
         super().__init__()
-        self.backgroundService = e5App().getObject("BackgroundService")
+        self.backgroundService = ericApp().getObject("BackgroundService")
         self.__supportedLanguages = {}
         
         self.queuedBatches = []
--- a/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,7 +15,7 @@
     QDialog, QDialogButtonBox, QTreeWidgetItem, QApplication, QHeaderView
 )
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from .Ui_SyntaxCheckerDialog import Ui_SyntaxCheckerDialog
 
@@ -72,7 +72,7 @@
         self.checkProgressLabel.setMaximumWidth(600)
         
         try:
-            self.syntaxCheckService = e5App().getObject('SyntaxCheckService')
+            self.syntaxCheckService = ericApp().getObject('SyntaxCheckService')
             self.syntaxCheckService.syntaxChecked.connect(self.__processResult)
             self.syntaxCheckService.batchFinished.connect(self.__batchFinished)
             self.syntaxCheckService.error.connect(self.__processError)
@@ -184,7 +184,7 @@
         
         if self.syntaxCheckService is not None:
             if self.__project is None:
-                self.__project = e5App().getObject("Project")
+                self.__project = ericApp().getObject("Project")
             
             self.cancelled = False
             self.buttonBox.button(
@@ -475,7 +475,7 @@
         if self.noResults:
             return
         
-        vm = e5App().getObject("ViewManager")
+        vm = ericApp().getObject("ViewManager")
         
         if itm.parent():
             fn = os.path.abspath(itm.data(0, self.filenameRole))
@@ -513,7 +513,7 @@
         """
         Private slot to handle the "Show" button press.
         """
-        vm = e5App().getObject("ViewManager")
+        vm = ericApp().getObject("ViewManager")
         
         selectedIndexes = []
         for index in range(self.resultList.topLevelItemCount()):
@@ -563,7 +563,7 @@
         
         @param files list of files to be checked (list of string)
         """
-        vm = e5App().getObject("ViewManager")
+        vm = ericApp().getObject("ViewManager")
         openFiles = vm.getOpenFilenames()
         for file in [f for f in openFiles if f in files]:
             editor = vm.getOpenEditor(file)
--- a/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -115,7 +115,7 @@
     </widget>
    </item>
    <item>
-    <widget class="E5SqueezeLabelPath" name="checkProgressLabel">
+    <widget class="EricSqueezeLabelPath" name="checkProgressLabel">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -158,9 +158,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5SqueezeLabelPath</class>
+   <class>EricSqueezeLabelPath</class>
    <extends>QLabel</extends>
-   <header>E5Gui/E5SqueezeLabels.h</header>
+   <header>E5Gui/EricSqueezeLabels.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 from PyQt6.QtCore import pyqtSlot, Qt
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_EricapiConfigDialog import Ui_EricapiConfigDialog
 import Utilities
@@ -38,12 +38,12 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.outputFilePicker.setMode(E5PathPickerModes.SAVE_FILE_MODE)
+        self.outputFilePicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
         self.outputFilePicker.setDefaultDirectory(project.getProjectPath())
         self.outputFilePicker.setFilters(self.tr(
             "API files (*.api);;All files (*)"))
         
-        self.ignoreDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.ignoreDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.ignoreDirPicker.setDefaultDirectory(project.getProjectPath())
         
         self.buttonBox.button(
--- a/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -27,7 +27,7 @@
       </widget>
      </item>
      <item>
-      <widget class="E5PathPicker" name="outputFilePicker" native="true">
+      <widget class="EricPathPicker" name="outputFilePicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -212,7 +212,7 @@
        </widget>
       </item>
       <item row="1" column="2">
-       <widget class="E5PathPicker" name="ignoreDirPicker" native="true">
+       <widget class="EricPathPicker" name="ignoreDirPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -245,9 +245,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiExecDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiExecDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import QProcess, QTimer
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_EricapiExecDialog import Ui_EricapiExecDialog
 
@@ -86,7 +86,7 @@
         self.process.start(program, args)
         procStarted = self.process.waitForStarted(5000)
         if not procStarted:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,7 +15,7 @@
 from PyQt6.QtGui import QColor
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QColorDialog
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_EricdocConfigDialog import Ui_EricdocConfigDialog
 from DocumentationTools.Config import (
@@ -41,18 +41,18 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.outputDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.outputDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.outputDirPicker.setDefaultDirectory(project.getProjectPath())
         
-        self.ignoreDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.ignoreDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.ignoreDirPicker.setDefaultDirectory(project.getProjectPath())
         
-        self.cssPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.cssPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.cssPicker.setDefaultDirectory(getConfig('ericCSSDir'))
         self.cssPicker.setFilters(self.tr(
             "Style sheet (*.css);;All files (*)"))
         
-        self.qtHelpDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.qtHelpDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.qtHelpDirPicker.setDefaultDirectory(project.getProjectPath())
         
         self.__okButton = self.buttonBox.button(
--- a/eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -37,7 +37,7 @@
           </widget>
          </item>
          <item>
-          <widget class="E5PathPicker" name="outputDirPicker" native="true">
+          <widget class="EricPathPicker" name="outputDirPicker" native="true">
            <property name="sizePolicy">
             <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
              <horstretch>0</horstretch>
@@ -209,7 +209,7 @@
            </widget>
           </item>
           <item row="1" column="2">
-           <widget class="E5PathPicker" name="ignoreDirPicker" native="true">
+           <widget class="EricPathPicker" name="ignoreDirPicker" native="true">
             <property name="sizePolicy">
              <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
               <horstretch>0</horstretch>
@@ -241,7 +241,7 @@
          </property>
          <layout class="QVBoxLayout" name="verticalLayout_3">
           <item>
-           <widget class="E5PathPicker" name="cssPicker" native="true">
+           <widget class="EricPathPicker" name="cssPicker" native="true">
             <property name="sizePolicy">
              <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
               <horstretch>0</horstretch>
@@ -395,7 +395,7 @@
            </widget>
           </item>
           <item row="0" column="1">
-           <widget class="E5PathPicker" name="qtHelpDirPicker" native="true">
+           <widget class="EricPathPicker" name="qtHelpDirPicker" native="true">
             <property name="sizePolicy">
              <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
               <horstretch>0</horstretch>
@@ -525,9 +525,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocExecDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/DocumentationPlugins/Ericdoc/EricdocExecDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import QProcess, QTimer
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_EricdocExecDialog import Ui_EricdocExecDialog
 
@@ -86,7 +86,7 @@
         self.process.start(program, args)
         procStarted = self.process.waitForStarted(5000)
         if not procStarted:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/PluginAbout.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginAbout.py	Sat May 22 18:51:46 2021 +0200
@@ -13,8 +13,8 @@
 import UI.Info
 import UI.PixmapCache
 
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 # Start-Of-Header
 name = "About Plugin"
@@ -67,7 +67,7 @@
             menu.removeAction(self.aboutAct)
             menu.removeAction(self.aboutQtAct)
         acts = [self.aboutAct, self.aboutQtAct]
-        self.__ui.removeE5Actions(acts, 'ui')
+        self.__ui.removeEricActions(acts, 'ui')
     
     def __initActions(self):
         """
@@ -75,7 +75,7 @@
         """
         acts = []
         
-        self.aboutAct = E5Action(
+        self.aboutAct = EricAction(
             self.tr('About {0}').format(UI.Info.Program),
             UI.PixmapCache.getIcon("helpAbout"),
             self.tr('&About {0}').format(UI.Info.Program),
@@ -90,7 +90,7 @@
         self.aboutAct.setMenuRole(QAction.MenuRole.AboutRole)
         acts.append(self.aboutAct)
         
-        self.aboutQtAct = E5Action(
+        self.aboutQtAct = EricAction(
             self.tr('About Qt'),
             UI.PixmapCache.getIcon("helpAboutQt"),
             self.tr('About &Qt'), 0, 0, self, 'about_qt')
@@ -104,7 +104,7 @@
         self.aboutQtAct.setMenuRole(QAction.MenuRole.AboutQtRole)
         acts.append(self.aboutQtAct)
         
-        self.__ui.addE5Actions(acts, 'ui')
+        self.__ui.addEricActions(acts, 'ui')
 
     def __initMenu(self):
         """
@@ -133,4 +133,4 @@
         """
         Private slot to handle the About Qt dialog.
         """
-        E5MessageBox.aboutQt(self.__ui, UI.Info.Program)
+        EricMessageBox.aboutQt(self.__ui, UI.Info.Program)
--- a/eric7/Plugins/PluginCodeStyleChecker.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginCodeStyleChecker.py	Sat May 22 18:51:46 2021 +0200
@@ -13,8 +13,8 @@
 
 from PyQt6.QtCore import QObject, pyqtSignal, QCoreApplication
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricAction import EricAction
 from Project.ProjectBrowserModel import ProjectBrowserFileItem
 from Utilities import determinePythonVersion
 
@@ -68,7 +68,7 @@
         self.__ui = ui
         self.__initialize()
         
-        self.backgroundService = e5App().getObject("BackgroundService")
+        self.backgroundService = ericApp().getObject("BackgroundService")
         
         path = os.path.join(
             os.path.dirname(__file__), 'CheckerPlugins', 'CodeStyleChecker')
@@ -234,9 +234,9 @@
         
         @return tuple of None and activation status (boolean)
         """
-        menu = e5App().getObject("Project").getMenu("Checks")
+        menu = ericApp().getObject("Project").getMenu("Checks")
         if menu:
-            self.__projectAct = E5Action(
+            self.__projectAct = EricAction(
                 self.tr('Check Code Style'),
                 self.tr('&Code Style...'), 0, 0,
                 self, 'project_check_pep8')
@@ -249,10 +249,10 @@
             ))
             self.__projectAct.triggered.connect(
                 self.__projectCodeStyleCheck)
-            e5App().getObject("Project").addE5Actions([self.__projectAct])
+            ericApp().getObject("Project").addEricActions([self.__projectAct])
             menu.addAction(self.__projectAct)
         
-        self.__editorAct = E5Action(
+        self.__editorAct = EricAction(
             self.tr('Check Code Style'),
             self.tr('&Code Style...'), 0, 0,
             self, "")
@@ -263,15 +263,15 @@
         ))
         self.__editorAct.triggered.connect(self.__editorCodeStyleCheck)
         
-        e5App().getObject("Project").showMenu.connect(self.__projectShowMenu)
-        e5App().getObject("ProjectBrowser").getProjectBrowser(
+        ericApp().getObject("Project").showMenu.connect(self.__projectShowMenu)
+        ericApp().getObject("ProjectBrowser").getProjectBrowser(
             "sources").showMenu.connect(self.__projectBrowserShowMenu)
-        e5App().getObject("ViewManager").editorOpenedEd.connect(
+        ericApp().getObject("ViewManager").editorOpenedEd.connect(
             self.__editorOpened)
-        e5App().getObject("ViewManager").editorClosedEd.connect(
+        ericApp().getObject("ViewManager").editorClosedEd.connect(
             self.__editorClosed)
         
-        for editor in e5App().getObject("ViewManager").getOpenEditors():
+        for editor in ericApp().getObject("ViewManager").getOpenEditors():
             self.__editorOpened(editor)
         
         return None, True
@@ -280,16 +280,16 @@
         """
         Public method to deactivate this plugin.
         """
-        e5App().getObject("Project").showMenu.disconnect(
+        ericApp().getObject("Project").showMenu.disconnect(
             self.__projectShowMenu)
-        e5App().getObject("ProjectBrowser").getProjectBrowser(
+        ericApp().getObject("ProjectBrowser").getProjectBrowser(
             "sources").showMenu.disconnect(self.__projectBrowserShowMenu)
-        e5App().getObject("ViewManager").editorOpenedEd.disconnect(
+        ericApp().getObject("ViewManager").editorOpenedEd.disconnect(
             self.__editorOpened)
-        e5App().getObject("ViewManager").editorClosedEd.disconnect(
+        ericApp().getObject("ViewManager").editorClosedEd.disconnect(
             self.__editorClosed)
         
-        menu = e5App().getObject("Project").getMenu("Checks")
+        menu = ericApp().getObject("Project").getMenu("Checks")
         if menu:
             menu.removeAction(self.__projectAct)
         
@@ -315,7 +315,7 @@
         """
         if menuName == "Checks" and self.__projectAct is not None:
             self.__projectAct.setEnabled(
-                e5App().getObject("Project").getProjectLanguage() in
+                ericApp().getObject("Project").getProjectLanguage() in
                 ["Python3", "MicroPython"])
     
     def __projectBrowserShowMenu(self, menuName, menu):
@@ -328,12 +328,12 @@
         """
         if (
             menuName == "Checks" and
-            e5App().getObject("Project").getProjectLanguage() in
+            ericApp().getObject("Project").getProjectLanguage() in
                 ["Python3", "MicroPython"]
         ):
             self.__projectBrowserMenu = menu
             if self.__projectBrowserAct is None:
-                self.__projectBrowserAct = E5Action(
+                self.__projectBrowserAct = EricAction(
                     self.tr('Check Code Style'),
                     self.tr('&Code Style...'), 0, 0,
                     self, "")
@@ -351,7 +351,7 @@
         """
         Private slot used to check the project files for code style.
         """
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         project.saveAllScripts()
         ppath = project.getProjectPath()
         files = [os.path.join(ppath, file)
@@ -372,7 +372,7 @@
         the project sources browser.
         """
         browser = (
-            e5App().getObject("ProjectBrowser").getProjectBrowser("sources")
+            ericApp().getObject("ProjectBrowser").getProjectBrowser("sources")
         )
         if browser.getSelectedItemsCount([ProjectBrowserFileItem]) > 1:
             fn = []
@@ -440,7 +440,7 @@
         Private slot to handle the code style check context menu action
         of the editors.
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         if (
             editor is not None and
             editor.checkDirty() and
--- a/eric7/Plugins/PluginEricapi.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginEricapi.py	Sat May 22 18:51:46 2021 +0200
@@ -12,9 +12,9 @@
 from PyQt6.QtCore import QObject, QCoreApplication
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
-from E5Gui.E5Action import E5Action
+from E5Gui.EricAction import EricAction
 
 import Utilities
 import UI.Info
@@ -97,9 +97,9 @@
         
         @return tuple of None and activation status (boolean)
         """
-        menu = e5App().getObject("Project").getMenu("Apidoc")
+        menu = ericApp().getObject("Project").getMenu("Apidoc")
         if menu:
-            self.__projectAct = E5Action(
+            self.__projectAct = EricAction(
                 self.tr('Generate API file (eric7_api)'),
                 self.tr('Generate &API file (eric7_api)'), 0, 0,
                 self, 'doc_eric7_api')
@@ -110,10 +110,10 @@
                 """<p>Generate an API file using eric7_api.</p>"""
             ))
             self.__projectAct.triggered.connect(self.__doEricapi)
-            e5App().getObject("Project").addE5Actions([self.__projectAct])
+            ericApp().getObject("Project").addEricActions([self.__projectAct])
             menu.addAction(self.__projectAct)
         
-        e5App().getObject("Project").showMenu.connect(self.__projectShowMenu)
+        ericApp().getObject("Project").showMenu.connect(self.__projectShowMenu)
         
         return None, True
 
@@ -121,13 +121,13 @@
         """
         Public method to deactivate this plugin.
         """
-        e5App().getObject("Project").showMenu.disconnect(
+        ericApp().getObject("Project").showMenu.disconnect(
             self.__projectShowMenu)
         
-        menu = e5App().getObject("Project").getMenu("Apidoc")
+        menu = ericApp().getObject("Project").getMenu("Apidoc")
         if menu:
             menu.removeAction(self.__projectAct)
-            e5App().getObject("Project").removeE5Actions([self.__projectAct])
+            ericApp().getObject("Project").removeEricActions([self.__projectAct])
         self.__initialize()
     
     def __projectShowMenu(self, menuName, menu):
@@ -140,7 +140,7 @@
         """
         if menuName == "Apidoc" and self.__projectAct is not None:
             self.__projectAct.setEnabled(
-                e5App().getObject("Project").getProjectLanguage() in
+                ericApp().getObject("Project").getProjectLanguage() in
                 ["Python", "Python3", "Ruby", "MicroPython"])
     
     def __doEricapi(self):
@@ -155,7 +155,7 @@
             '\n': 'lf',
             '\r\n': 'crlf',
         }
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         parms = project.getData('DOCUMENTATIONPARMS', "ERIC4API")
         dlg = EricapiConfigDialog(project, parms)
         if dlg.exec() == QDialog.DialogCode.Accepted:
--- a/eric7/Plugins/PluginEricdoc.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginEricdoc.py	Sat May 22 18:51:46 2021 +0200
@@ -12,9 +12,9 @@
 from PyQt6.QtCore import QObject, QCoreApplication
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
-from E5Gui.E5Action import E5Action
+from E5Gui.EricAction import EricAction
 
 import Utilities
 import UI.Info
@@ -118,9 +118,9 @@
         
         @return tuple of None and activation status (boolean)
         """
-        menu = e5App().getObject("Project").getMenu("Apidoc")
+        menu = ericApp().getObject("Project").getMenu("Apidoc")
         if menu:
-            self.__projectAct = E5Action(
+            self.__projectAct = EricAction(
                 self.tr('Generate documentation (eric7_doc)'),
                 self.tr('Generate &documentation (eric7_doc)'), 0, 0,
                 self, 'doc_eric7_doc')
@@ -131,10 +131,10 @@
                 """<p>Generate API documentation using eric7_doc.</p>"""
             ))
             self.__projectAct.triggered.connect(self.__doEricdoc)
-            e5App().getObject("Project").addE5Actions([self.__projectAct])
+            ericApp().getObject("Project").addEricActions([self.__projectAct])
             menu.addAction(self.__projectAct)
         
-        e5App().getObject("Project").showMenu.connect(self.__projectShowMenu)
+        ericApp().getObject("Project").showMenu.connect(self.__projectShowMenu)
         
         return None, True
 
@@ -142,13 +142,13 @@
         """
         Public method to deactivate this plugin.
         """
-        e5App().getObject("Project").showMenu.disconnect(
+        ericApp().getObject("Project").showMenu.disconnect(
             self.__projectShowMenu)
         
-        menu = e5App().getObject("Project").getMenu("Apidoc")
+        menu = ericApp().getObject("Project").getMenu("Apidoc")
         if menu:
             menu.removeAction(self.__projectAct)
-            e5App().getObject("Project").removeE5Actions([self.__projectAct])
+            ericApp().getObject("Project").removeEricActions([self.__projectAct])
         self.__initialize()
     
     def __projectShowMenu(self, menuName, menu):
@@ -161,7 +161,7 @@
         """
         if menuName == "Apidoc" and self.__projectAct is not None:
             self.__projectAct.setEnabled(
-                e5App().getObject("Project").getProjectLanguage() in
+                ericApp().getObject("Project").getProjectLanguage() in
                 ["Python", "Python3", "Ruby", "MicroPython"])
     
     def __doEricdoc(self):
@@ -176,7 +176,7 @@
             '\n': 'lf',
             '\r\n': 'crlf',
         }
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         parms = project.getData('DOCUMENTATIONPARMS', "ERIC4DOC")
         dlg = EricdocConfigDialog(project, parms)
         if dlg.exec() == QDialog.DialogCode.Accepted:
--- a/eric7/Plugins/PluginSyntaxChecker.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginSyntaxChecker.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 
 from PyQt6.QtCore import QObject
 
-from E5Gui.E5Action import E5Action
-from E5Gui.E5Application import e5App
+from E5Gui.EricAction import EricAction
+from E5Gui.EricApplication import ericApp
 from eric7config import getConfig
 
 from Project.ProjectBrowserModel import ProjectBrowserFileItem
@@ -59,7 +59,7 @@
             SyntaxCheckService
         )
         self.syntaxCheckService = SyntaxCheckService()
-        e5App().registerObject("SyntaxCheckService", self.syntaxCheckService)
+        ericApp().registerObject("SyntaxCheckService", self.syntaxCheckService)
 
         ericPath = getConfig('ericDir')
         path = os.path.join(ericPath, 'Plugins', 'CheckerPlugins',
@@ -169,9 +169,9 @@
         
         @return tuple of None and activation status (boolean)
         """
-        menu = e5App().getObject("Project").getMenu("Checks")
+        menu = ericApp().getObject("Project").getMenu("Checks")
         if menu:
-            self.__projectAct = E5Action(
+            self.__projectAct = EricAction(
                 self.tr('Check Syntax'),
                 self.tr('&Syntax...'), 0, 0,
                 self, 'project_check_syntax')
@@ -182,10 +182,10 @@
                 """<p>This checks Python files for syntax errors.</p>"""
             ))
             self.__projectAct.triggered.connect(self.__projectSyntaxCheck)
-            e5App().getObject("Project").addE5Actions([self.__projectAct])
+            ericApp().getObject("Project").addEricActions([self.__projectAct])
             menu.addAction(self.__projectAct)
         
-        self.__editorAct = E5Action(
+        self.__editorAct = EricAction(
             self.tr('Check Syntax'),
             self.tr('&Syntax...'), 0, 0,
             self, "")
@@ -195,15 +195,15 @@
         ))
         self.__editorAct.triggered.connect(self.__editorSyntaxCheck)
         
-        e5App().getObject("Project").showMenu.connect(self.__projectShowMenu)
-        e5App().getObject("ProjectBrowser").getProjectBrowser(
+        ericApp().getObject("Project").showMenu.connect(self.__projectShowMenu)
+        ericApp().getObject("ProjectBrowser").getProjectBrowser(
             "sources").showMenu.connect(self.__projectBrowserShowMenu)
-        e5App().getObject("ViewManager").editorOpenedEd.connect(
+        ericApp().getObject("ViewManager").editorOpenedEd.connect(
             self.__editorOpened)
-        e5App().getObject("ViewManager").editorClosedEd.connect(
+        ericApp().getObject("ViewManager").editorClosedEd.connect(
             self.__editorClosed)
         
-        for editor in e5App().getObject("ViewManager").getOpenEditors():
+        for editor in ericApp().getObject("ViewManager").getOpenEditors():
             self.__editorOpened(editor)
         
         return None, True
@@ -212,16 +212,16 @@
         """
         Public method to deactivate this plugin.
         """
-        e5App().getObject("Project").showMenu.disconnect(
+        ericApp().getObject("Project").showMenu.disconnect(
             self.__projectShowMenu)
-        e5App().getObject("ProjectBrowser").getProjectBrowser(
+        ericApp().getObject("ProjectBrowser").getProjectBrowser(
             "sources").showMenu.disconnect(self.__projectBrowserShowMenu)
-        e5App().getObject("ViewManager").editorOpenedEd.disconnect(
+        ericApp().getObject("ViewManager").editorOpenedEd.disconnect(
             self.__editorOpened)
-        e5App().getObject("ViewManager").editorClosedEd.disconnect(
+        ericApp().getObject("ViewManager").editorClosedEd.disconnect(
             self.__editorClosed)
         
-        menu = e5App().getObject("Project").getMenu("Checks")
+        menu = ericApp().getObject("Project").getMenu("Checks")
         if menu:
             menu.removeAction(self.__projectAct)
         
@@ -247,7 +247,7 @@
         """
         if menuName == "Checks" and self.__projectAct is not None:
             self.__projectAct.setEnabled(
-                e5App().getObject("Project").getProjectLanguage() in
+                ericApp().getObject("Project").getProjectLanguage() in
                 self.syntaxCheckService.getLanguages())
     
     def __projectBrowserShowMenu(self, menuName, menu):
@@ -260,12 +260,12 @@
         """
         if (
             menuName == "Checks" and
-            e5App().getObject("Project").getProjectLanguage() in
+            ericApp().getObject("Project").getProjectLanguage() in
             self.syntaxCheckService.getLanguages()
         ):
             self.__projectBrowserMenu = menu
             if self.__projectBrowserAct is None:
-                self.__projectBrowserAct = E5Action(
+                self.__projectBrowserAct = EricAction(
                     self.tr('Check Syntax'),
                     self.tr('&Syntax...'), 0, 0,
                     self, "")
@@ -282,7 +282,7 @@
         """
         Private slot used to check the project files for syntax errors.
         """
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         project.saveAllScripts()
         ppath = project.getProjectPath()
         extensions = tuple(self.syntaxCheckService.getExtensions())
@@ -302,7 +302,7 @@
         Private method to handle the syntax check context menu action of the
         project sources browser.
         """
-        browser = e5App().getObject("ProjectBrowser").getProjectBrowser(
+        browser = ericApp().getObject("ProjectBrowser").getProjectBrowser(
             "sources")
         if browser.getSelectedItemsCount([ProjectBrowserFileItem]) > 1:
             fn = []
@@ -363,7 +363,7 @@
         Private slot to handle the syntax check context menu action of the
         editors.
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         if editor is not None:
             from CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog import (
                 SyntaxCheckerDialog
--- a/eric7/Plugins/PluginTranslator.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginTranslator.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 
 from PyQt6.QtCore import pyqtSignal, QObject, QCoreApplication, QDateTime, Qt
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 
@@ -61,7 +61,7 @@
     """
     icon = (
         os.path.join("UiExtensionPlugins", "Translator", "icons", "flag-dark")
-        if e5App().usesDarkPalette() else
+        if ericApp().usesDarkPalette() else
         os.path.join("UiExtensionPlugins", "Translator", "icons", "flag-light")
     )
     return {
@@ -143,9 +143,9 @@
         global translatorPluginObject
         translatorPluginObject = self
         
-        self.__object = Translator(self, e5App().usesDarkPalette(), self.__ui)
+        self.__object = Translator(self, ericApp().usesDarkPalette(), self.__ui)
         self.__object.activate()
-        e5App().registerPluginObject("Translator", self.__object)
+        ericApp().registerPluginObject("Translator", self.__object)
         
         return None, True
     
@@ -153,7 +153,7 @@
         """
         Public method to deactivate this plugin.
         """
-        e5App().unregisterPluginObject("Translator")
+        ericApp().unregisterPluginObject("Translator")
         self.__object.deactivate()
         
         self.__initialize()
--- a/eric7/Plugins/PluginVcsGit.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginVcsGit.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 
 from PyQt6.QtCore import QObject, QCoreApplication, QByteArray
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 from Preferences.Shortcuts import readShortcuts
@@ -141,7 +141,7 @@
     """
     Module function to prepare for an uninstallation.
     """
-    if not e5App().getObject("PluginManager").isPluginLoaded(
+    if not ericApp().getObject("PluginManager").isPluginLoaded(
             "PluginVcsGit"):
         Preferences.Prefs.settings.remove("Git")
 
@@ -195,7 +195,7 @@
         from VcsPlugins.vcsGit.ProjectHelper import GitProjectHelper
         self.__projectHelperObject = GitProjectHelper(None, None)
         with contextlib.suppress(KeyError):
-            e5App().registerPluginObject(
+            ericApp().registerPluginObject(
                 pluginTypename, self.__projectHelperObject, pluginType)
         
         readShortcuts(pluginName=pluginTypename)
@@ -214,7 +214,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         if self.__projectHelperObject:
             self.__projectHelperObject.initToolbar(ui, toolbarManager)
@@ -312,7 +312,7 @@
         """
         Public method to prepare for an uninstallation.
         """
-        e5App().unregisterPluginObject(pluginTypename)
+        ericApp().unregisterPluginObject(pluginTypename)
     
     def prepareUnload(self):
         """
@@ -320,8 +320,8 @@
         """
         if self.__projectHelperObject:
             self.__projectHelperObject.removeToolbar(
-                self.__ui, e5App().getObject("ToolbarManager"))
-        e5App().unregisterPluginObject(pluginTypename)
+                self.__ui, ericApp().getObject("ToolbarManager"))
+        ericApp().unregisterPluginObject(pluginTypename)
 
 #
 # eflag: noqa = M801
--- a/eric7/Plugins/PluginVcsMercurial.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginVcsMercurial.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 
 from PyQt6.QtCore import QObject, QCoreApplication, QByteArray
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 from Preferences.Shortcuts import readShortcuts
@@ -132,7 +132,7 @@
     """
     Module function to prepare for an uninstallation.
     """
-    if not e5App().getObject("PluginManager").isPluginLoaded(
+    if not ericApp().getObject("PluginManager").isPluginLoaded(
             "PluginVcsMercurial"):
         Preferences.Prefs.settings.remove("Mercurial")
 
@@ -191,7 +191,7 @@
         from VcsPlugins.vcsMercurial.ProjectHelper import HgProjectHelper
         self.__projectHelperObject = HgProjectHelper(None, None)
         with contextlib.suppress(KeyError):
-            e5App().registerPluginObject(
+            ericApp().registerPluginObject(
                 pluginTypename, self.__projectHelperObject, pluginType)
         readShortcuts(pluginName=pluginTypename)
     
@@ -209,7 +209,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         if self.__projectHelperObject:
             self.__projectHelperObject.initToolbar(ui, toolbarManager)
@@ -333,7 +333,7 @@
         """
         Public method to prepare for an uninstallation.
         """
-        e5App().unregisterPluginObject(pluginTypename)
+        ericApp().unregisterPluginObject(pluginTypename)
     
     def prepareUnload(self):
         """
@@ -341,5 +341,5 @@
         """
         if self.__projectHelperObject:
             self.__projectHelperObject.removeToolbar(
-                self.__ui, e5App().getObject("ToolbarManager"))
-        e5App().unregisterPluginObject(pluginTypename)
+                self.__ui, ericApp().getObject("ToolbarManager"))
+        ericApp().unregisterPluginObject(pluginTypename)
--- a/eric7/Plugins/PluginVcsPySvn.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginVcsPySvn.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 
 from PyQt6.QtCore import QObject, QCoreApplication
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 from Preferences.Shortcuts import readShortcuts
@@ -135,7 +135,7 @@
     """
     Module function to prepare for an uninstallation.
     """
-    if not e5App().getObject("PluginManager").isPluginLoaded(
+    if not ericApp().getObject("PluginManager").isPluginLoaded(
             "PluginVcsSubversion"):
         Preferences.Prefs.settings.remove("Subversion")
     
@@ -162,7 +162,7 @@
         from VcsPlugins.vcsPySvn.ProjectHelper import PySvnProjectHelper
         self.__projectHelperObject = PySvnProjectHelper(None, None)
         with contextlib.suppress(KeyError):
-            e5App().registerPluginObject(
+            ericApp().registerPluginObject(
                 pluginTypename, self.__projectHelperObject, pluginType)
         readShortcuts(pluginName=pluginTypename)
     
@@ -180,7 +180,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         if self.__projectHelperObject:
             self.__projectHelperObject.initToolbar(ui, toolbarManager)
@@ -268,7 +268,7 @@
         """
         Public method to prepare for an uninstallation.
         """
-        e5App().unregisterPluginObject(pluginTypename)
+        ericApp().unregisterPluginObject(pluginTypename)
     
     def prepareUnload(self):
         """
@@ -276,5 +276,5 @@
         """
         if self.__projectHelperObject:
             self.__projectHelperObject.removeToolbar(
-                self.__ui, e5App().getObject("ToolbarManager"))
-        e5App().unregisterPluginObject(pluginTypename)
+                self.__ui, ericApp().getObject("ToolbarManager"))
+        ericApp().unregisterPluginObject(pluginTypename)
--- a/eric7/Plugins/PluginVcsSubversion.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginVcsSubversion.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 
 from PyQt6.QtCore import QObject, QCoreApplication
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 from Preferences.Shortcuts import readShortcuts
@@ -141,7 +141,7 @@
     """
     Module function to prepare for an uninstallation.
     """
-    if not e5App().getObject("PluginManager").isPluginLoaded(
+    if not ericApp().getObject("PluginManager").isPluginLoaded(
             "PluginVcsSubversion"):
         Preferences.Prefs.settings.remove("Subversion")
     
@@ -168,7 +168,7 @@
         from VcsPlugins.vcsSubversion.ProjectHelper import SvnProjectHelper
         self.__projectHelperObject = SvnProjectHelper(None, None)
         with contextlib.suppress(KeyError):
-            e5App().registerPluginObject(
+            ericApp().registerPluginObject(
                 pluginTypename, self.__projectHelperObject, pluginType)
         readShortcuts(pluginName=pluginTypename)
     
@@ -186,7 +186,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         if self.__projectHelperObject:
             self.__projectHelperObject.initToolbar(ui, toolbarManager)
@@ -274,7 +274,7 @@
         """
         Public method to prepare for an uninstallation.
         """
-        e5App().unregisterPluginObject(pluginTypename)
+        ericApp().unregisterPluginObject(pluginTypename)
     
     def prepareUnload(self):
         """
@@ -282,5 +282,5 @@
         """
         if self.__projectHelperObject:
             self.__projectHelperObject.removeToolbar(
-                self.__ui, e5App().getObject("ToolbarManager"))
-        e5App().unregisterPluginObject(pluginTypename)
+                self.__ui, ericApp().getObject("ToolbarManager"))
+        ericApp().unregisterPluginObject(pluginTypename)
--- a/eric7/Plugins/PluginWizardDotDesktop.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginWizardDotDesktop.py	Sat May 22 18:51:46 2021 +0200
@@ -10,9 +10,9 @@
 from PyQt6.QtCore import QObject
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import UI.Info
 
@@ -74,13 +74,13 @@
         menu = self.__ui.getMenu("wizards")
         if menu:
             menu.removeAction(self.__action)
-        self.__ui.removeE5Actions([self.__action], 'wizards')
+        self.__ui.removeEricActions([self.__action], 'wizards')
     
     def __initAction(self):
         """
         Private method to initialize the action.
         """
-        self.__action = E5Action(
+        self.__action = EricAction(
             self.tr('.desktop Wizard'),
             self.tr('.&desktop Wizard...'),
             0, 0, self,
@@ -95,7 +95,7 @@
         ))
         self.__action.triggered.connect(self.__handle)
         
-        self.__ui.addE5Actions([self.__action], 'wizards')
+        self.__ui.addEricActions([self.__action], 'wizards')
 
     def __initMenu(self):
         """
@@ -109,24 +109,24 @@
         """
         Private method to handle the wizards action.
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         
         if editor is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
         else:
             if editor.text():
-                ok = E5MessageBox.yesNo(
+                ok = EricMessageBox.yesNo(
                     self.__ui,
                     self.tr(".desktop Wizard"),
                     self.tr("""The current editor contains text."""
                             """ Shall this be replaced?"""),
-                    icon=E5MessageBox.Critical)
+                    icon=EricMessageBox.Critical)
                 if not ok:
-                    e5App().getObject("ViewManager").newEditor()
-                    editor = e5App().getObject("ViewManager").activeWindow()
+                    ericApp().getObject("ViewManager").newEditor()
+                    editor = ericApp().getObject("ViewManager").activeWindow()
             
             from WizardPlugins.DotDesktopWizard.DotDesktopWizardDialog import (
                 DotDesktopWizardDialog
--- a/eric7/Plugins/PluginWizardE5MessageBox.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginWizardE5MessageBox.py	Sat May 22 18:51:46 2021 +0200
@@ -4,28 +4,28 @@
 #
 
 """
-Module implementing the E5MessageBox wizard plugin.
+Module implementing the EricMessageBox wizard plugin.
 """
 
 from PyQt6.QtCore import QObject
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import UI.Info
 
 # Start-Of-Header
-name = "E5MessageBox Wizard Plugin"
+name = "EricMessageBox Wizard Plugin"
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
 version = UI.Info.VersionOnly
 className = "E5MessageBoxWizard"
 packageName = "__core__"
-shortDescription = "Show the E5MessageBox wizard."
-longDescription = """This plugin shows the E5MessageBox wizard."""
+shortDescription = "Show the EricMessageBox wizard."
+longDescription = """This plugin shows the EricMessageBox wizard."""
 pyqtApi = 2
 # End-Of-Header
 
@@ -34,7 +34,7 @@
 
 class E5MessageBoxWizard(QObject):
     """
-    Class implementing the E5MessageBox wizard plugin.
+    Class implementing the EricMessageBox wizard plugin.
     """
     def __init__(self, ui):
         """
@@ -63,26 +63,26 @@
         menu = self.__ui.getMenu("wizards")
         if menu:
             menu.removeAction(self.action)
-        self.__ui.removeE5Actions([self.action], 'wizards')
+        self.__ui.removeEricActions([self.action], 'wizards')
     
     def __initAction(self):
         """
         Private method to initialize the action.
         """
-        self.action = E5Action(
-            self.tr('E5MessageBox Wizard'),
-            self.tr('&E5MessageBox Wizard...'), 0, 0, self,
+        self.action = EricAction(
+            self.tr('EricMessageBox Wizard'),
+            self.tr('&EricMessageBox Wizard...'), 0, 0, self,
             'wizards_e5messagebox')
-        self.action.setStatusTip(self.tr('E5MessageBox Wizard'))
+        self.action.setStatusTip(self.tr('EricMessageBox Wizard'))
         self.action.setWhatsThis(self.tr(
-            """<b>E5MessageBox Wizard</b>"""
+            """<b>EricMessageBox Wizard</b>"""
             """<p>This wizard opens a dialog for entering all the parameters"""
-            """ needed to create an E5MessageBox. The generated code is"""
+            """ needed to create an EricMessageBox. The generated code is"""
             """ inserted at the current cursor position.</p>"""
         ))
         self.action.triggered.connect(self.__handle)
         
-        self.__ui.addE5Actions([self.action], 'wizards')
+        self.__ui.addEricActions([self.action], 'wizards')
 
     def __initMenu(self):
         """
@@ -118,10 +118,10 @@
         """
         Private method to handle the wizards action.
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         
         if editor is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
--- a/eric7/Plugins/PluginWizardEricPlugin.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginWizardEricPlugin.py	Sat May 22 18:51:46 2021 +0200
@@ -12,9 +12,9 @@
 from PyQt6.QtCore import QObject
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import UI.Info
 
@@ -76,13 +76,13 @@
         menu = self.__ui.getMenu("wizards")
         if menu:
             menu.removeAction(self.__action)
-        self.__ui.removeE5Actions([self.__action], 'wizards')
+        self.__ui.removeEricActions([self.__action], 'wizards')
     
     def __initAction(self):
         """
         Private method to initialize the action.
         """
-        self.__action = E5Action(
+        self.__action = EricAction(
             self.tr('eric Plug-in Wizard'),
             self.tr('&eric Plug-in Wizard...'),
             0, 0, self,
@@ -97,7 +97,7 @@
         ))
         self.__action.triggered.connect(self.__handle)
         
-        self.__ui.addE5Actions([self.__action], 'wizards')
+        self.__ui.addEricActions([self.__action], 'wizards')
 
     def __initMenu(self):
         """
@@ -128,10 +128,10 @@
         """
         Private method to handle the wizards action.
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         
         if editor is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
@@ -147,14 +147,14 @@
                     editor.setLanguage("dummy.py")
                 
                 if packageName:
-                    project = e5App().getObject("Project")
+                    project = ericApp().getObject("Project")
                     packagePath = os.path.join(project.getProjectPath(),
                                                packageName)
                     if not os.path.exists(packagePath):
                         try:
                             os.mkdir(packagePath)
                         except OSError as err:
-                            E5MessageBox.critical(
+                            EricMessageBox.critical(
                                 self,
                                 self.tr("Create Package"),
                                 self.tr(
@@ -169,7 +169,7 @@
                             with open(packageFile, "w", encoding="utf-8"):
                                 pass
                         except OSError as err:
-                            E5MessageBox.critical(
+                            EricMessageBox.critical(
                                 self,
                                 self.tr("Create Package"),
                                 self.tr(
@@ -180,7 +180,7 @@
                             return
                     project.appendFile(packageFile)
                     project.saveProject()
-                    e5App().getObject("ViewManager").openSourceFile(
+                    ericApp().getObject("ViewManager").openSourceFile(
                         packageFile)
 
 #
--- a/eric7/Plugins/PluginWizardPyRegExp.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginWizardPyRegExp.py	Sat May 22 18:51:46 2021 +0200
@@ -10,9 +10,9 @@
 from PyQt6.QtCore import QObject
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import UI.Info
 
@@ -63,13 +63,13 @@
         menu = self.__ui.getMenu("wizards")
         if menu:
             menu.removeAction(self.action)
-        self.__ui.removeE5Actions([self.action], 'wizards')
+        self.__ui.removeEricActions([self.action], 'wizards')
     
     def __initAction(self):
         """
         Private method to initialize the action.
         """
-        self.action = E5Action(
+        self.action = EricAction(
             self.tr('Python re Wizard'),
             self.tr('&Python re Wizard...'), 0, 0, self,
             'wizards_python_re')
@@ -82,7 +82,7 @@
         ))
         self.action.triggered.connect(self.__handle)
         
-        self.__ui.addE5Actions([self.action], 'wizards')
+        self.__ui.addEricActions([self.action], 'wizards')
 
     def __initMenu(self):
         """
@@ -118,10 +118,10 @@
         """
         Private method to handle the wizards action.
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         
         if editor is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
--- a/eric7/Plugins/PluginWizardQColorDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginWizardQColorDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,9 +10,9 @@
 from PyQt6.QtCore import QObject
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import UI.Info
 
@@ -63,13 +63,13 @@
         menu = self.__ui.getMenu("wizards")
         if menu:
             menu.removeAction(self.action)
-        self.__ui.removeE5Actions([self.action], 'wizards')
+        self.__ui.removeEricActions([self.action], 'wizards')
     
     def __initAction(self):
         """
         Private method to initialize the action.
         """
-        self.action = E5Action(
+        self.action = EricAction(
             self.tr('QColorDialog Wizard'),
             self.tr('Q&ColorDialog Wizard...'), 0, 0, self,
             'wizards_qcolordialog')
@@ -82,7 +82,7 @@
         ))
         self.action.triggered.connect(self.__handle)
         
-        self.__ui.addE5Actions([self.action], 'wizards')
+        self.__ui.addEricActions([self.action], 'wizards')
 
     def __initMenu(self):
         """
@@ -118,10 +118,10 @@
         """
         Private method to handle the wizards action.
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         
         if editor is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
--- a/eric7/Plugins/PluginWizardQFileDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginWizardQFileDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,9 +12,9 @@
 from PyQt6.QtCore import QObject
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import UI.Info
 
@@ -68,16 +68,16 @@
         menu = self.__ui.getMenu("wizards")
         if menu:
             menu.removeAction(self.qFileDialogAction)
-            menu.removeAction(self.e5FileDialogAction)
-        self.__ui.removeE5Actions(
-            [self.qFileDialogAction, self.e5FileDialogAction],
+            menu.removeAction(self.ericFileDialogAction)
+        self.__ui.removeEricActions(
+            [self.qFileDialogAction, self.ericFileDialogAction],
             'wizards')
     
     def __initActions(self):
         """
         Private method to initialize the actions.
         """
-        self.qFileDialogAction = E5Action(
+        self.qFileDialogAction = EricAction(
             self.tr('QFileDialog Wizard'),
             self.tr('Q&FileDialog Wizard...'), 0, 0, self,
             'wizards_qfiledialog')
@@ -90,21 +90,21 @@
         ))
         self.qFileDialogAction.triggered.connect(self.__handleQFileDialog)
         
-        self.e5FileDialogAction = E5Action(
-            self.tr('E5FileDialog Wizard'),
+        self.ericFileDialogAction = EricAction(
+            self.tr('EricFileDialog Wizard'),
             self.tr('E&5FileDialog Wizard...'), 0, 0, self,
             'wizards_e5filedialog')
-        self.e5FileDialogAction.setStatusTip(self.tr('E5FileDialog Wizard'))
-        self.e5FileDialogAction.setWhatsThis(self.tr(
-            """<b>E5FileDialog Wizard</b>"""
+        self.ericFileDialogAction.setStatusTip(self.tr('EricFileDialog Wizard'))
+        self.ericFileDialogAction.setWhatsThis(self.tr(
+            """<b>EricFileDialog Wizard</b>"""
             """<p>This wizard opens a dialog for entering all the parameters"""
-            """ needed to create an E5FileDialog. The generated code is"""
+            """ needed to create an EricFileDialog. The generated code is"""
             """ inserted at the current cursor position.</p>"""
         ))
-        self.e5FileDialogAction.triggered.connect(self.__handleE5FileDialog)
+        self.ericFileDialogAction.triggered.connect(self.__handleEricFileDialog)
         
-        self.__ui.addE5Actions(
-            [self.qFileDialogAction, self.e5FileDialogAction],
+        self.__ui.addEricActions(
+            [self.qFileDialogAction, self.ericFileDialogAction],
             'wizards')
 
     def __initMenu(self):
@@ -113,7 +113,7 @@
         """
         menu = self.__ui.getMenu("wizards")
         if menu:
-            menu.addAction(self.e5FileDialogAction)
+            menu.addAction(self.ericFileDialogAction)
             menu.addAction(self.qFileDialogAction)
     
     def __callForm(self, editor, variant):
@@ -123,7 +123,7 @@
         @param editor reference to the current editor
         @type Editor
         @param variant variant of code to be generated
-            (-1 = E5FileDialog, 0 = unknown, 5 = PyQt5)
+            (-1 = EricFileDialog, 0 = unknown, 5 = PyQt5)
         @type int
         @return the generated code (string)
         """
@@ -147,19 +147,19 @@
         Private method to handle the wizards action.
         
         @param variant dialog variant to be generated
-            (E5FileDialog or QFileDialog)
+            (EricFileDialog or QFileDialog)
         @type str
         @exception ValueError raised to indicate an illegal file dialog variant
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         
         if editor is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
         else:
-            if variant not in ("QFileDialog", "E5FileDialog"):
+            if variant not in ("QFileDialog", "EricFileDialog"):
                 raise ValueError("Illegal dialog variant given")
             
             if variant == "QFileDialog":
@@ -171,7 +171,7 @@
                     # PyQt5/PyQt6
                     dialogVariant = int(match.group(1))
             else:
-                # E5FileDialog
+                # EricFileDialog
                 dialogVariant = -1
             
             code, ok = self.__callForm(editor, dialogVariant)
@@ -188,8 +188,8 @@
         """
         self.__handle("QFileDialog")
     
-    def __handleE5FileDialog(self):
+    def __handleEricFileDialog(self):
         """
-        Private slot to handle the wizard E5FileDialog action.
+        Private slot to handle the wizard EricFileDialog action.
         """
-        self.__handle("E5FileDialog")
+        self.__handle("EricFileDialog")
--- a/eric7/Plugins/PluginWizardQFontDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginWizardQFontDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,9 +10,9 @@
 from PyQt6.QtCore import QObject
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import UI.Info
 
@@ -63,13 +63,13 @@
         menu = self.__ui.getMenu("wizards")
         if menu:
             menu.removeAction(self.action)
-        self.__ui.removeE5Actions([self.action], 'wizards')
+        self.__ui.removeEricActions([self.action], 'wizards')
     
     def __initAction(self):
         """
         Private method to initialize the action.
         """
-        self.action = E5Action(
+        self.action = EricAction(
             self.tr('QFontDialog Wizard'),
             self.tr('Q&FontDialog Wizard...'), 0, 0, self,
             'wizards_qfontdialog')
@@ -82,7 +82,7 @@
         ))
         self.action.triggered.connect(self.__handle)
         
-        self.__ui.addE5Actions([self.action], 'wizards')
+        self.__ui.addEricActions([self.action], 'wizards')
 
     def __initMenu(self):
         """
@@ -118,10 +118,10 @@
         """
         Private method to handle the wizards action.
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         
         if editor is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
--- a/eric7/Plugins/PluginWizardQInputDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginWizardQInputDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,9 +10,9 @@
 from PyQt6.QtCore import QObject
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import UI.Info
 
@@ -63,13 +63,13 @@
         menu = self.__ui.getMenu("wizards")
         if menu:
             menu.removeAction(self.action)
-        self.__ui.removeE5Actions([self.action], 'wizards')
+        self.__ui.removeEricActions([self.action], 'wizards')
     
     def __initAction(self):
         """
         Private method to initialize the action.
         """
-        self.action = E5Action(
+        self.action = EricAction(
             self.tr('QInputDialog Wizard'),
             self.tr('Q&InputDialog Wizard...'), 0, 0, self,
             'wizards_qinputdialog')
@@ -82,7 +82,7 @@
         ))
         self.action.triggered.connect(self.__handle)
         
-        self.__ui.addE5Actions([self.action], 'wizards')
+        self.__ui.addEricActions([self.action], 'wizards')
 
     def __initMenu(self):
         """
@@ -118,10 +118,10 @@
         """
         Private method to handle the wizards action.
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         
         if editor is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
--- a/eric7/Plugins/PluginWizardQMessageBox.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginWizardQMessageBox.py	Sat May 22 18:51:46 2021 +0200
@@ -10,9 +10,9 @@
 from PyQt6.QtCore import QObject
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import UI.Info
 
@@ -63,13 +63,13 @@
         menu = self.__ui.getMenu("wizards")
         if menu:
             menu.removeAction(self.action)
-        self.__ui.removeE5Actions([self.action], 'wizards')
+        self.__ui.removeEricActions([self.action], 'wizards')
     
     def __initAction(self):
         """
         Private method to initialize the action.
         """
-        self.action = E5Action(
+        self.action = EricAction(
             self.tr('QMessageBox Wizard'),
             self.tr('Q&MessageBox Wizard...'), 0, 0, self,
             'wizards_qmessagebox')
@@ -82,7 +82,7 @@
         ))
         self.action.triggered.connect(self.__handle)
         
-        self.__ui.addE5Actions([self.action], 'wizards')
+        self.__ui.addEricActions([self.action], 'wizards')
 
     def __initMenu(self):
         """
@@ -118,10 +118,10 @@
         """
         Private method to handle the wizards action.
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         
         if editor is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
--- a/eric7/Plugins/PluginWizardQRegularExpression.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginWizardQRegularExpression.py	Sat May 22 18:51:46 2021 +0200
@@ -10,9 +10,9 @@
 from PyQt6.QtCore import QObject
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import UI.Info
 
@@ -63,13 +63,13 @@
         menu = self.__ui.getMenu("wizards")
         if menu:
             menu.removeAction(self.action)
-        self.__ui.removeE5Actions([self.action], 'wizards')
+        self.__ui.removeEricActions([self.action], 'wizards')
     
     def __initAction(self):
         """
         Private method to initialize the action.
         """
-        self.action = E5Action(
+        self.action = EricAction(
             self.tr('QRegularExpression Wizard'),
             self.tr('QRegularE&xpression Wizard...'), 0, 0, self,
             'wizards_qregularexpression')
@@ -82,7 +82,7 @@
         ))
         self.action.triggered.connect(self.__handle)
         
-        self.__ui.addE5Actions([self.action], 'wizards')
+        self.__ui.addEricActions([self.action], 'wizards')
 
     def __initMenu(self):
         """
@@ -119,10 +119,10 @@
         """
         Private method to handle the wizards action.
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         
         if editor is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
--- a/eric7/Plugins/PluginWizardSetup.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/PluginWizardSetup.py	Sat May 22 18:51:46 2021 +0200
@@ -10,9 +10,9 @@
 from PyQt6.QtCore import QObject
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import UI.Info
 
@@ -75,13 +75,13 @@
         menu = self.__ui.getMenu("wizards")
         if menu:
             menu.removeAction(self.__action)
-        self.__ui.removeE5Actions([self.__action], 'wizards')
+        self.__ui.removeEricActions([self.__action], 'wizards')
     
     def __initAction(self):
         """
         Private method to initialize the action.
         """
-        self.__action = E5Action(
+        self.__action = EricAction(
             self.tr('setup.py Wizard'),
             self.tr('&setup.py Wizard...'),
             0, 0, self,
@@ -96,7 +96,7 @@
         ))
         self.__action.triggered.connect(self.__handle)
         
-        self.__ui.addE5Actions([self.__action], 'wizards')
+        self.__ui.addEricActions([self.__action], 'wizards')
 
     def __initMenu(self):
         """
@@ -132,10 +132,10 @@
         """
         Private method to handle the wizards action.
         """
-        editor = e5App().getObject("ViewManager").activeWindow()
+        editor = ericApp().getObject("ViewManager").activeWindow()
         
         if editor is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
--- a/eric7/Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot, Qt
 from PyQt6.QtWidgets import QListWidgetItem
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from Preferences.ConfigurationPages.ConfigurationPageBase import (
     ConfigurationPageBase
@@ -197,7 +197,7 @@
             self.__enableLanguageWarning and
             len(self.__checkedLanguageItems()) < 2
         ):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Enabled Languages"),
                 self.tr("""At least two languages should be selected to"""
--- a/eric7/Plugins/UiExtensionPlugins/Translator/Translator.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/UiExtensionPlugins/Translator/Translator.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import Qt, QObject
 from PyQt6.QtGui import QKeySequence
 
-from E5Gui.E5Action import E5Action
+from E5Gui.EricAction import EricAction
 
 import UI.PixmapCache
 
@@ -59,7 +59,7 @@
                              "flag-{0}".format(self.__iconSuffix))),
             self.tr("Translator"))
         
-        self.__activateAct = E5Action(
+        self.__activateAct = EricAction(
             self.tr('Translator'),
             self.tr('T&ranslator'),
             QKeySequence(self.tr("Alt+Shift+R")),
@@ -74,7 +74,7 @@
         ))
         self.__activateAct.triggered.connect(self.__activateWidget)
         
-        self.__ui.addE5Actions([self.__activateAct], 'ui')
+        self.__ui.addEricActions([self.__activateAct], 'ui')
         menu = self.__ui.getMenu("subwindow")
         menu.addAction(self.__activateAct)
     
@@ -84,7 +84,7 @@
         """
         menu = self.__ui.getMenu("subwindow")
         menu.removeAction(self.__activateAct)
-        self.__ui.removeE5Actions([self.__activateAct], 'ui')
+        self.__ui.removeEricActions([self.__activateAct], 'ui')
         self.__ui.removeSideWidget(self.__widget)
     
     def getAppIcon(self, name):
--- a/eric7/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/IbmWatsonEngine.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/IbmWatsonEngine.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
     QNetworkAccessManager, QNetworkRequest, QNetworkReply
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from EricNetwork.EricNetworkProxyFactory import proxyAuthenticationRequired
 
@@ -179,7 +179,7 @@
         """
         apiKey = self.plugin.getPreferences("IbmKey")
         if not apiKey:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Error Getting Available Translations"),
                 self.tr("IBM Watson: A valid Language Translator key is"
@@ -188,7 +188,7 @@
             return
         translatorUrl = self.plugin.getPreferences("IbmUrl")
         if not translatorUrl:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Error Getting Available Translations"),
                 self.tr("IBM Watson: A valid Language Translator URL is"
@@ -229,7 +229,7 @@
             
             if reply.error() != QNetworkReply.NetworkError.NoError:
                 errorStr = reply.errorString()
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Error Getting Available Translations"),
                     self.tr("IBM Watson: The server sent an error indication."
@@ -241,7 +241,7 @@
                 try:
                     responseDict = json.loads(response)
                 except ValueError:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.__ui,
                         self.tr("Error Getting Available Translations"),
                         self.tr("IBM Watson: Invalid response received")
@@ -249,7 +249,7 @@
                     return
                 
                 if "models" not in responseDict:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.__ui,
                         self.tr("Error Getting Available Translations"),
                         self.tr("IBM Watson: No translation available.")
--- a/eric7/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/__init__.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import QCoreApplication
 from PyQt6.QtGui import QIcon
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import UI.PixmapCache
 
@@ -111,7 +111,7 @@
     @return engine icon
     @rtype QIcon
     """
-    iconSuffix = "dark" if e5App().usesDarkPalette() else "light"
+    iconSuffix = "dark" if ericApp().usesDarkPalette() else "light"
     if name in supportedEngineNames():
         icon = UI.PixmapCache.getIcon(os.path.join(
             os.path.dirname(__file__), "..", "icons", "engines",
--- a/eric7/Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
 except ImportError:
     MULTIMEDIA_AVAILABLE = False
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 from .Ui_TranslatorWidget import Ui_TranslatorWidget
 
@@ -162,7 +162,7 @@
         if ok:
             self.transEdit.setHtml(result)
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Translation Error"),
                 result)
@@ -413,7 +413,7 @@
         self.__ensureTranslationEngineReady()
         if self.__translationEngine is not None:
             if not self.__translationEngine.hasTTS():
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Translation Error"),
                     self.tr("The selected translation service does not"
@@ -431,7 +431,7 @@
                 self.__mediaPlayer.setMedia(QMediaContent(), self.__mediaFile)
                 self.__mediaPlayer.play()
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Translation Error"),
                     data)
@@ -452,4 +452,4 @@
         """
         Private slot to open the Translator configuration page.
         """
-        e5App().getObject("UserInterface").showPreferences("translatorPage")
+        ericApp().getObject("UserInterface").showPreferences("translatorPage")
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitArchiveDataDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitArchiveDataDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui import E5FileDialog
+from E5Gui import EricFileDialog
 
 from .Ui_GitArchiveDataDialog import Ui_GitArchiveDataDialog
 
@@ -82,7 +82,7 @@
         """
         Private slot to select a file via a file selection dialog.
         """
-        fileName = E5FileDialog.getSaveFileName(
+        fileName = EricFileDialog.getSaveFileName(
             self,
             self.tr("Select Archive File"),
             Utilities.fromNativeSeparators(self.fileEdit.text()),
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitBisectLogBrowserDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitBisectLogBrowserDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
     QLineEdit
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursorProcess
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursorProcess
 
 from .Ui_GitBisectLogBrowserDialog import Ui_GitBisectLogBrowserDialog
 
@@ -65,7 +65,7 @@
         self.__initData()
         self.__resetUI()
         
-        self.__process = E5OverrideCursorProcess()
+        self.__process = EricOverrideCursorProcess()
         self.__process.finished.connect(self.__procFinished)
         self.__process.readyReadStandardOutput.connect(self.__readStdout)
         self.__process.readyReadStandardError.connect(self.__readStderr)
@@ -170,7 +170,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitBlameDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitBlameDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,7 +15,7 @@
     QDialog, QDialogButtonBox, QHeaderView, QLineEdit, QTreeWidgetItem
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_GitBlameDialog import Ui_GitBlameDialog
 
@@ -114,7 +114,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitCopyDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitCopyDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
-from E5Gui import E5FileDialog
+from E5Gui.EricCompleters import EricFileCompleter, EricDirCompleter
+from E5Gui import EricFileDialog
 
 from .Ui_GitCopyDialog import Ui_GitCopyDialog
 
@@ -41,9 +41,9 @@
        
         self.source = source
         if os.path.isdir(self.source):
-            self.targetCompleter = E5DirCompleter(self.targetEdit)
+            self.targetCompleter = EricDirCompleter(self.targetEdit)
         else:
-            self.targetCompleter = E5FileCompleter(self.targetEdit)
+            self.targetCompleter = EricFileCompleter(self.targetEdit)
         
         if move:
             self.setWindowTitle(self.tr('Git Move'))
@@ -81,18 +81,18 @@
         selection dialog.
         """
         target = (
-            E5FileDialog.getExistingDirectory(
+            EricFileDialog.getExistingDirectory(
                 self,
                 self.tr("Select target"),
                 self.targetEdit.text(),
-                E5FileDialog.ShowDirsOnly)
+                EricFileDialog.ShowDirsOnly)
             if os.path.isdir(self.source) else
-            E5FileDialog.getSaveFileName(
+            EricFileDialog.getSaveFileName(
                 self,
                 self.tr("Select target"),
                 self.targetEdit.text(),
                 "",
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
         )
         
         if target:
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitDescribeDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitDescribeDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
     QDialog, QDialogButtonBox, QHeaderView, QTreeWidgetItem, QLineEdit
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_GitDescribeDialog import Ui_GitDescribeDialog
 
@@ -112,7 +112,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 )
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QLineEdit
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_GitDialog import Ui_GitDialog
 
@@ -179,7 +179,7 @@
         if not procStarted:
             self.buttonBox.setFocus()
             self.inputGroup.setEnabled(False)
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitDiffDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitDiffDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,8 +14,8 @@
 from PyQt6.QtGui import QTextCursor
 from PyQt6.QtWidgets import QWidget, QDialogButtonBox
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricApplication import ericApp
 
 from .Ui_GitDiffDialog import Ui_GitDiffDialog
 
@@ -53,14 +53,14 @@
         
         try:
             # insert the search widget if it is available
-            from E5Gui.E5TextEditSearchWidget import E5TextEditSearchWidget
-            self.searchWidget = E5TextEditSearchWidget(self.contentsGroup)
+            from E5Gui.EricTextEditSearchWidget import EricTextEditSearchWidget
+            self.searchWidget = EricTextEditSearchWidget(self.contentsGroup)
             self.searchWidget.setFocusPolicy(Qt.FocusPolicy.WheelFocus)
             self.searchWidget.setObjectName("searchWidget")
             self.contentsGroup.layout().insertWidget(1, self.searchWidget)
             self.searchWidget.attachTextEdit(self.contents)
             
-            self.searchWidget2 = E5TextEditSearchWidget(self.contentsGroup)
+            self.searchWidget2 = EricTextEditSearchWidget(self.contentsGroup)
             self.searchWidget2.setFocusPolicy(Qt.FocusPolicy.WheelFocus)
             self.searchWidget2.setObjectName("searchWidget2")
             self.contentsGroup.layout().addWidget(self.searchWidget2)
@@ -170,7 +170,7 @@
         procStarted = self.__diffGenerator.start(
             fn, versions=versions, diffMode=diffMode, stashName=stashName)
         if not procStarted:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -318,13 +318,13 @@
         else:
             fname = self.vcs.splitPath(self.__filename)[0]
         
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save Diff"),
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
@@ -335,23 +335,23 @@
             if ex:
                 fname += ex
         if QFileInfo(fname).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save Diff"),
                 self.tr("<p>The patch file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fname),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return
         fname = Utilities.toNativeSeparators(fname)
         
-        eol = e5App().getObject("Project").getEolString()
+        eol = ericApp().getObject("Project").getEolString()
         try:
             with open(fname, "w", encoding="utf-8", newline="") as f:
                 f.write(eol.join(self.contents2.toPlainText().splitlines()))
                 f.write(eol)
         except OSError as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self, self.tr('Save Diff'),
                 self.tr(
                     '<p>The patch file <b>{0}</b> could not be saved.'
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitDiffGenerator.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitDiffGenerator.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 
 from PyQt6.QtCore import pyqtSignal, QProcess, QTimer, QObject
 
-from E5Gui.E5OverrideCursor import E5OverrideCursorProcess
+from E5Gui.EricOverrideCursor import EricOverrideCursorProcess
 
 import Preferences
 
@@ -36,14 +36,14 @@
         
         self.vcs = vcs
         
-        self.__process = E5OverrideCursorProcess()
+        self.__process = EricOverrideCursorProcess()
         self.__process.finished.connect(self.__procFinished)
         self.__process.readyReadStandardOutput.connect(
             lambda: self.__readStdout(self.__process))
         self.__process.readyReadStandardError.connect(
             lambda: self.__readStderr(self.__process))
         
-        self.__process2 = E5OverrideCursorProcess()
+        self.__process2 = EricOverrideCursorProcess()
         self.__process2.finished.connect(self.__procFinished)
         self.__process2.readyReadStandardOutput.connect(
             lambda: self.__readStdout(self.__process2))
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitDiffHighlighter.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitDiffHighlighter.py	Sat May 22 18:51:46 2021 +0200
@@ -9,10 +9,10 @@
 
 from PyQt6.QtGui import QColor
 
-from E5Gui.E5GenericDiffHighlighter import TERMINAL, E5GenericDiffHighlighter
+from E5Gui.EricGenericDiffHighlighter import TERMINAL, EricGenericDiffHighlighter
 
 
-class GitDiffHighlighter(E5GenericDiffHighlighter):
+class GitDiffHighlighter(EricGenericDiffHighlighter):
     """
     Class implementing a diff highlighter for Git.
     """
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitLogBrowserDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitLogBrowserDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -23,9 +23,9 @@
     QLineEdit, QMenu, QInputDialog
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5OverrideCursor import E5OverrideCursorProcess
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricOverrideCursor import EricOverrideCursorProcess
 
 from Globals import strToQByteArray
 
@@ -118,7 +118,7 @@
         self.__logTreeNormalFont.setBold(False)
         self.__logTreeBoldFont = self.logTree.font()
         self.__logTreeBoldFont.setBold(True)
-        self.__logTreeHasDarkBackground = e5App().usesDarkPalette()
+        self.__logTreeHasDarkBackground = ericApp().usesDarkPalette()
         
         font = Preferences.getEditorOtherFonts("MonospacedFont")
         self.diffEdit.document().setDefaultFont(font)
@@ -198,7 +198,7 @@
         # roles used in the file tree
         self.__diffFileLineRole = Qt.ItemDataRole.UserRole
         
-        self.__process = E5OverrideCursorProcess()
+        self.__process = EricOverrideCursorProcess()
         self.__process.finished.connect(self.__procFinished)
         self.__process.readyReadStandardOutput.connect(self.__readStdout)
         self.__process.readyReadStandardError.connect(self.__readStderr)
@@ -643,7 +643,7 @@
             errMsg = self.tr("Could not start the git executable.")
         
         if errMsg:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Git Error"),
                 errMsg)
@@ -824,7 +824,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -1709,7 +1709,7 @@
             commits[index] = itm.text(self.CommitIdColumn)
         
         if commits:
-            pfile = e5App().getObject("Project").getProjectFile()
+            pfile = ericApp().getObject("Project").getProjectFile()
             lastModified = QFileInfo(pfile).lastModified().toString()
             shouldReopen = (
                 self.vcs.gitCherryPick(
@@ -1719,14 +1719,14 @@
                 QFileInfo(pfile).lastModified().toString() != lastModified
             )
             if shouldReopen:
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     None,
                     self.tr("Copy Changesets"),
                     self.tr(
                         """The project should be reread. Do this now?"""),
                     yesDefault=True)
                 if res:
-                    e5App().getObject("Project").reopenProject()
+                    ericApp().getObject("Project").reopenProject()
                     return
             
             self.on_refreshButton_clicked()
@@ -1772,21 +1772,21 @@
                 rev = branch
             else:
                 rev = commit
-            pfile = e5App().getObject("Project").getProjectFile()
+            pfile = ericApp().getObject("Project").getProjectFile()
             lastModified = QFileInfo(pfile).lastModified().toString()
             shouldReopen = (
                 self.vcs.vcsUpdate(self.repodir, revision=rev) or
                 QFileInfo(pfile).lastModified().toString() != lastModified
             )
             if shouldReopen:
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     None,
                     self.tr("Switch"),
                     self.tr(
                         """The project should be reread. Do this now?"""),
                     yesDefault=True)
                 if res:
-                    e5App().getObject("Project").reopenProject()
+                    ericApp().getObject("Project").reopenProject()
                     return
             
             self.on_refreshButton_clicked()
@@ -1846,7 +1846,7 @@
                     return
             else:
                 branch = ""
-            pfile = e5App().getObject("Project").getProjectFile()
+            pfile = ericApp().getObject("Project").getProjectFile()
             lastModified = QFileInfo(pfile).lastModified().toString()
             res, shouldReopen = self.vcs.gitBranch(
                 self.repodir, revision=commit, branchName=branch,
@@ -1857,14 +1857,14 @@
             )
             if res:
                 if shouldReopen:
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         None,
                         self.tr("Switch"),
                         self.tr(
                             """The project should be reread. Do this now?"""),
                         yesDefault=True)
                     if res:
-                        e5App().getObject("Project").reopenProject()
+                        ericApp().getObject("Project").reopenProject()
                         return
                 
                 self.on_refreshButton_clicked()
@@ -2065,7 +2065,7 @@
                 self.logTree.setCurrentItem(self.logTree.topLevelItem(index))
                 break
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Find Commit"),
                 self.tr("""'{0}' was not found.""").format(self.rxEdit.text()))
@@ -2289,13 +2289,13 @@
             else:
                 fname = dname
         
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save Diff"),
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
@@ -2306,23 +2306,23 @@
             if ex:
                 fname += ex
         if QFileInfo(fname).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save Diff"),
                 self.tr("<p>The patch file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fname),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return
         fname = Utilities.toNativeSeparators(fname)
         
-        eol = e5App().getObject("Project").getEolString()
+        eol = ericApp().getObject("Project").getEolString()
         try:
             with open(fname, "w", encoding="utf-8", newline="") as f:
                 f.write(eol.join(self.diffEdit.toPlainText().splitlines()))
                 f.write(eol)
         except OSError as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self, self.tr('Save Diff'),
                 self.tr(
                     '<p>The patch file <b>{0}</b> could not be saved.'
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitNewProjectOptionsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitNewProjectOptionsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,8 +11,8 @@
 from PyQt6.QtCore import pyqtSlot, QUrl
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5Completers import E5DirCompleter
-from E5Gui import E5FileDialog
+from E5Gui.EricCompleters import EricDirCompleter
+from E5Gui import EricFileDialog
 
 from .Ui_GitNewProjectOptionsDialog import Ui_GitNewProjectOptionsDialog
 from .Config import ConfigGitSchemes
@@ -49,8 +49,8 @@
         self.vcsUrlCombo.addItems(vcsUrlHistory)
         self.vcsUrlCombo.setEditText("")
         
-        self.vcsDirectoryCompleter = E5DirCompleter(self.vcsUrlCombo)
-        self.vcsProjectDirCompleter = E5DirCompleter(self.vcsProjectDirEdit)
+        self.vcsDirectoryCompleter = EricDirCompleter(self.vcsUrlCombo)
+        self.vcsProjectDirCompleter = EricDirCompleter(self.vcsProjectDirEdit)
         
         ipath = (
             Preferences.getMultiProject("Workspace") or
@@ -85,11 +85,11 @@
         """
         Private slot to display a selection dialog.
         """
-        directory = E5FileDialog.getExistingDirectory(
+        directory = EricFileDialog.getExistingDirectory(
             self,
             self.tr("Select Repository-Directory"),
             self.vcsUrlCombo.currentText(),
-            E5FileDialog.ShowDirsOnly)
+            EricFileDialog.ShowDirsOnly)
         
         if directory:
             self.vcsUrlCombo.setEditText(
@@ -100,11 +100,11 @@
         """
         Private slot to display a directory selection dialog.
         """
-        directory = E5FileDialog.getExistingDirectory(
+        directory = EricFileDialog.getExistingDirectory(
             self,
             self.tr("Select Project Directory"),
             self.vcsProjectDirEdit.text(),
-            E5FileDialog.ShowDirsOnly)
+            EricFileDialog.ShowDirsOnly)
         
         if directory:
             self.vcsProjectDirEdit.setText(
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitPatchFilesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitPatchFilesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui import E5FileDialog
+from E5Gui import EricFileDialog
 
 from .Ui_GitPatchFilesDialog import Ui_GitPatchFilesDialog
 
@@ -79,7 +79,7 @@
         """
         Private slot to add patch files to the list.
         """
-        patchFiles = E5FileDialog.getOpenFileNames(
+        patchFiles = EricFileDialog.getOpenFileNames(
             self,
             self.tr("Patch Files"),
             self.__rootDir,
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitPatchStatisticsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitPatchStatisticsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import Qt, QProcess
 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem, QHeaderView
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_GitPatchStatisticsDialog import Ui_GitPatchStatisticsDialog
 
@@ -84,7 +84,7 @@
                 process.start('git', args)
                 procStarted = process.waitForStarted(5000)
                 if not procStarted:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr('Process Generation Error'),
                         self.tr(
@@ -114,7 +114,7 @@
                 process.start('git', args)
                 procStarted = process.waitForStarted(5000)
                 if not procStarted:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr('Process Generation Error'),
                         self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitReflogBrowserDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitReflogBrowserDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
     QLineEdit
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursorProcess
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursorProcess
 
 from .Ui_GitReflogBrowserDialog import Ui_GitReflogBrowserDialog
 
@@ -76,7 +76,7 @@
         self.__initData()
         self.__resetUI()
         
-        self.__process = E5OverrideCursorProcess()
+        self.__process = EricOverrideCursorProcess()
         self.__process.finished.connect(self.__procFinished)
         self.__process.readyReadStandardOutput.connect(self.__readStdout)
         self.__process.readyReadStandardError.connect(self.__readStderr)
@@ -195,7 +195,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitRemoteRepositoriesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitRemoteRepositoriesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
     QWidget, QHeaderView, QTreeWidgetItem, QDialogButtonBox, QLineEdit
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_GitRemoteRepositoriesDialog import Ui_GitRemoteRepositoriesDialog
 
@@ -145,7 +145,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitStashBrowserDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitStashBrowserDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
     QHeaderView, QApplication, QLineEdit
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursorProcess
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursorProcess
 
 from .Ui_GitStashBrowserDialog import Ui_GitStashBrowserDialog
 
@@ -71,7 +71,7 @@
         
         self.__ioEncoding = Preferences.getSystem("IOEncoding")
         
-        self.__process = E5OverrideCursorProcess()
+        self.__process = EricOverrideCursorProcess()
         self.__process.finished.connect(self.__procFinished)
         self.__process.readyReadStandardOutput.connect(self.__readStdout)
         self.__process.readyReadStandardError.connect(self.__readStderr)
@@ -180,7 +180,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitStatusDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitStatusDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -19,8 +19,8 @@
     QInputDialog
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from Globals import strToQByteArray
 
@@ -412,7 +412,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -665,7 +665,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getCommitableItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Commit"),
                 self.tr("""There are no entries selected to be"""
@@ -673,7 +673,7 @@
             return
         
         if Preferences.getVCS("AutoSaveFiles"):
-            vm = e5App().getObject("ViewManager")
+            vm = ericApp().getObject("ViewManager")
             for name in names:
                 vm.saveEditor(name)
         self.vcs.vcsCommit(names, commitAll=False, amend=amend)
@@ -706,7 +706,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getUnversionedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Add"),
                 self.tr("""There are no unversioned entries"""
@@ -716,7 +716,7 @@
         self.vcs.vcsAdd(names)
         self.on_refreshButton_clicked()
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         for name in names:
             project.getModel().updateVCSStatus(name)
         self.vcs.checkVCSStatus()
@@ -728,7 +728,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getStageableItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Stage"),
                 self.tr("""There are no stageable entries"""
@@ -738,7 +738,7 @@
         self.vcs.vcsAdd(names)
         self.on_refreshButton_clicked()
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         for name in names:
             project.getModel().updateVCSStatus(name)
         self.vcs.checkVCSStatus()
@@ -750,7 +750,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getUnstageableItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Unstage"),
                 self.tr("""There are no unstageable entries"""
@@ -760,7 +760,7 @@
         self.vcs.gitUnstage(names)
         self.on_refreshButton_clicked()
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         for name in names:
             project.getModel().updateVCSStatus(name)
         self.vcs.checkVCSStatus()
@@ -772,7 +772,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getMissingItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Forget Missing"),
                 self.tr("""There are no missing entries"""
@@ -789,7 +789,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getStageableItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Revert"),
                 self.tr("""There are no uncommitted, unstaged changes"""
@@ -801,7 +801,7 @@
         self.activateWindow()
         self.on_refreshButton_clicked()
 
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         for name in names:
             project.getModel().updateVCSStatus(name)
         self.vcs.checkVCSStatus()
@@ -813,7 +813,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getMissingItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Restore Missing"),
                 self.tr("""There are no missing entries"""
@@ -831,7 +831,7 @@
         itm = self.__getConflictingItems()[0]
         filename = os.path.join(self.__repodir, itm.text(self.__pathColumn))
         if Utilities.MimeTypes.isTextFile(filename):
-            e5App().getObject("ViewManager").getEditor(filename)
+            ericApp().getObject("ViewManager").getEditor(filename)
 
     def __diff(self):
         """
@@ -842,7 +842,7 @@
         namesS = [os.path.join(self.dname, itm.text(self.__pathColumn))
                   for itm in self.__getUnstageableItems()]
         if not namesW and not namesS:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Differences"),
                 self.tr("""There are no uncommitted changes"""
@@ -1215,7 +1215,7 @@
             if cursor.hasSelection() else
             self.tr("Revert hunk")
         )
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             title,
             self.tr("""Are you sure you want to revert the selected"""
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitSubmoduleAddDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitSubmoduleAddDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,8 +10,8 @@
 from PyQt6.QtCore import pyqtSlot, QUrl
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5Completers import E5DirCompleter
-from E5Gui import E5FileDialog
+from E5Gui.EricCompleters import EricDirCompleter
+from E5Gui import EricFileDialog
 
 from .Ui_GitSubmoduleAddDialog import Ui_GitSubmoduleAddDialog
 from .Config import ConfigGitSchemes
@@ -52,8 +52,8 @@
         self.submoduleUrlCombo.addItems(submoduleUrlHistory)
         self.submoduleUrlCombo.setEditText("")
         
-        self.submoduleUrlDirCompleter = E5DirCompleter(self.submoduleUrlCombo)
-        self.submoduleDirCompleter = E5DirCompleter(self.submoduleDirEdit)
+        self.submoduleUrlDirCompleter = EricDirCompleter(self.submoduleUrlCombo)
+        self.submoduleDirCompleter = EricDirCompleter(self.submoduleDirEdit)
         
         ipath = (
             Preferences.getMultiProject("Workspace") or
@@ -102,11 +102,11 @@
         """
         Private slot to display a directory selection dialog.
         """
-        directory = E5FileDialog.getExistingDirectory(
+        directory = EricFileDialog.getExistingDirectory(
             self,
             self.tr("Select Submodule Repository Directory"),
             self.submoduleUrlCombo.currentText(),
-            E5FileDialog.ShowDirsOnly)
+            EricFileDialog.ShowDirsOnly)
         
         if directory:
             self.submoduleUrlCombo.setEditText(
@@ -128,11 +128,11 @@
         """
         Private slot to display a directory selection dialog.
         """
-        directory = E5FileDialog.getExistingDirectory(
+        directory = EricFileDialog.getExistingDirectory(
             self,
             self.tr("Select Submodule Directory"),
             self.submoduleDirEdit.text(),
-            E5FileDialog.ShowDirsOnly)
+            EricFileDialog.ShowDirsOnly)
         
         if directory:
             self.submoduleDirEdit.setText(
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitTagBranchListDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitTagBranchListDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
     QDialog, QDialogButtonBox, QHeaderView, QTreeWidgetItem, QLineEdit
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_GitTagBranchListDialog import Ui_GitTagBranchListDialog
 
@@ -130,7 +130,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsGit/ProjectBrowserHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/ProjectBrowserHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 
 from PyQt6.QtWidgets import QMenu, QDialog
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from Project.ProjectBrowserModel import ProjectBrowserFileItem
 
@@ -554,7 +554,7 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences("zzz_gitPage")
+        ericApp().getObject("UserInterface").showPreferences("zzz_gitPage")
     
     def __GitForget(self):
         """
--- a/eric7/Plugins/VcsPlugins/vcsGit/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -12,12 +12,12 @@
 from PyQt6.QtCore import QFileInfo
 from PyQt6.QtWidgets import QMenu, QInputDialog, QToolBar
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 from VCS.ProjectHelper import VcsProjectHelper
 
-from E5Gui.E5Action import E5Action
+from E5Gui.EricAction import EricAction
 
 import UI.PixmapCache
 
@@ -59,7 +59,7 @@
         """
         Public method to get a list of all actions.
         
-        @return list of all actions (list of E5Action)
+        @return list of all actions (list of EricAction)
         """
         actions = self.actions[:]
         return actions
@@ -68,7 +68,7 @@
         """
         Public method to generate the action objects.
         """
-        self.vcsNewAct = E5Action(
+        self.vcsNewAct = EricAction(
             self.tr('New from repository'),
             UI.PixmapCache.getIcon("vcsCheckout"),
             self.tr('&New from repository...'), 0, 0,
@@ -84,7 +84,7 @@
         self.vcsNewAct.triggered.connect(self._vcsCheckout)
         self.actions.append(self.vcsNewAct)
         
-        self.gitFetchAct = E5Action(
+        self.gitFetchAct = EricAction(
             self.tr('Fetch changes'),
             UI.PixmapCache.getIcon("vcsUpdate"),
             self.tr('Fetch changes'),
@@ -100,7 +100,7 @@
         self.gitFetchAct.triggered.connect(self.__gitFetch)
         self.actions.append(self.gitFetchAct)
         
-        self.gitPullAct = E5Action(
+        self.gitPullAct = EricAction(
             self.tr('Pull changes'),
             UI.PixmapCache.getIcon("vcsUpdate"),
             self.tr('Pull changes'),
@@ -116,7 +116,7 @@
         self.gitPullAct.triggered.connect(self.__gitPull)
         self.actions.append(self.gitPullAct)
         
-        self.vcsCommitAct = E5Action(
+        self.vcsCommitAct = EricAction(
             self.tr('Commit changes to repository'),
             UI.PixmapCache.getIcon("vcsCommit"),
             self.tr('Commit changes to repository...'), 0, 0, self,
@@ -132,7 +132,7 @@
         self.vcsCommitAct.triggered.connect(self._vcsCommit)
         self.actions.append(self.vcsCommitAct)
         
-        self.gitPushAct = E5Action(
+        self.gitPushAct = EricAction(
             self.tr('Push changes'),
             UI.PixmapCache.getIcon("vcsCommit"),
             self.tr('Push changes'),
@@ -148,7 +148,7 @@
         self.gitPushAct.triggered.connect(self.__gitPush)
         self.actions.append(self.gitPushAct)
         
-        self.vcsExportAct = E5Action(
+        self.vcsExportAct = EricAction(
             self.tr('Export from repository'),
             UI.PixmapCache.getIcon("vcsExport"),
             self.tr('&Export from repository...'),
@@ -163,7 +163,7 @@
         self.vcsExportAct.triggered.connect(self._vcsExport)
         self.actions.append(self.vcsExportAct)
         
-        self.gitLogBrowserAct = E5Action(
+        self.gitLogBrowserAct = EricAction(
             self.tr('Show log browser'),
             UI.PixmapCache.getIcon("vcsLog"),
             self.tr('Show log browser'),
@@ -180,7 +180,7 @@
         self.gitLogBrowserAct.triggered.connect(self._vcsLogBrowser)
         self.actions.append(self.gitLogBrowserAct)
         
-        self.gitReflogBrowserAct = E5Action(
+        self.gitReflogBrowserAct = EricAction(
             self.tr('Show reflog browser'),
             UI.PixmapCache.getIcon("vcsLog"),
             self.tr('Show reflog browser'),
@@ -197,7 +197,7 @@
         self.gitReflogBrowserAct.triggered.connect(self.__gitReflogBrowser)
         self.actions.append(self.gitReflogBrowserAct)
         
-        self.vcsDiffAct = E5Action(
+        self.vcsDiffAct = EricAction(
             self.tr('Show differences'),
             UI.PixmapCache.getIcon("vcsDiff"),
             self.tr('Show &differences...'),
@@ -213,7 +213,7 @@
         self.vcsDiffAct.triggered.connect(self._vcsDiff)
         self.actions.append(self.vcsDiffAct)
         
-        self.gitExtDiffAct = E5Action(
+        self.gitExtDiffAct = EricAction(
             self.tr('Show differences (extended)'),
             UI.PixmapCache.getIcon("vcsDiff"),
             self.tr('Show differences (extended) ...'),
@@ -229,7 +229,7 @@
         self.gitExtDiffAct.triggered.connect(self.__gitExtendedDiff)
         self.actions.append(self.gitExtDiffAct)
         
-        self.vcsStatusAct = E5Action(
+        self.vcsStatusAct = EricAction(
             self.tr('Show status'),
             UI.PixmapCache.getIcon("vcsStatus"),
             self.tr('Show &status...'),
@@ -244,7 +244,7 @@
         self.vcsStatusAct.triggered.connect(self._vcsStatus)
         self.actions.append(self.vcsStatusAct)
         
-        self.vcsSwitchAct = E5Action(
+        self.vcsSwitchAct = EricAction(
             self.tr('Switch'),
             UI.PixmapCache.getIcon("vcsSwitch"),
             self.tr('S&witch...'),
@@ -260,7 +260,7 @@
         self.vcsSwitchAct.triggered.connect(self._vcsSwitch)
         self.actions.append(self.vcsSwitchAct)
         
-        self.vcsTagAct = E5Action(
+        self.vcsTagAct = EricAction(
             self.tr('Tag in repository'),
             UI.PixmapCache.getIcon("vcsTag"),
             self.tr('&Tag in repository...'),
@@ -276,7 +276,7 @@
         self.vcsTagAct.triggered.connect(self._vcsTag)
         self.actions.append(self.vcsTagAct)
         
-        self.gitTagListAct = E5Action(
+        self.gitTagListAct = EricAction(
             self.tr('List tags'),
             self.tr('&List tags...'),
             0, 0, self, 'git_list_tags')
@@ -290,7 +290,7 @@
         self.gitTagListAct.triggered.connect(self.__gitTagList)
         self.actions.append(self.gitTagListAct)
         
-        self.gitDescribeTagAct = E5Action(
+        self.gitDescribeTagAct = EricAction(
             self.tr('Show most recent tag'),
             self.tr('Show most recent tag'),
             0, 0, self, 'git_describe_tag')
@@ -305,7 +305,7 @@
         self.gitDescribeTagAct.triggered.connect(self.__gitDescribeTag)
         self.actions.append(self.gitDescribeTagAct)
         
-        self.gitBranchListAct = E5Action(
+        self.gitBranchListAct = EricAction(
             self.tr('List branches'),
             self.tr('&List branches...'),
             0, 0, self, 'git_list_branches')
@@ -319,7 +319,7 @@
         self.gitBranchListAct.triggered.connect(self.__gitBranchList)
         self.actions.append(self.gitBranchListAct)
         
-        self.gitMergedBranchListAct = E5Action(
+        self.gitMergedBranchListAct = EricAction(
             self.tr('List merged branches'),
             self.tr('List &merged branches...'),
             0, 0, self, 'git_list_merged_branches')
@@ -334,7 +334,7 @@
             self.__gitMergedBranchList)
         self.actions.append(self.gitMergedBranchListAct)
         
-        self.gitNotMergedBranchListAct = E5Action(
+        self.gitNotMergedBranchListAct = EricAction(
             self.tr('List non-merged branches'),
             self.tr('List &non-merged branches...'),
             0, 0, self, 'git_list_non_merged_branches')
@@ -349,7 +349,7 @@
             self.__gitNotMergedBranchList)
         self.actions.append(self.gitNotMergedBranchListAct)
         
-        self.gitBranchAct = E5Action(
+        self.gitBranchAct = EricAction(
             self.tr('Branch in repository'),
             UI.PixmapCache.getIcon("vcsBranch"),
             self.tr('&Branch in repository...'),
@@ -365,7 +365,7 @@
         self.gitBranchAct.triggered.connect(self.__gitBranch)
         self.actions.append(self.gitBranchAct)
         
-        self.gitDeleteRemoteBranchAct = E5Action(
+        self.gitDeleteRemoteBranchAct = EricAction(
             self.tr('Delete Remote Branch'),
             self.tr('&Delete Remote Branch...'),
             0, 0, self, 'git_delete_remote_branch')
@@ -379,7 +379,7 @@
         self.gitDeleteRemoteBranchAct.triggered.connect(self.__gitDeleteBranch)
         self.actions.append(self.gitDeleteRemoteBranchAct)
         
-        self.gitShowBranchAct = E5Action(
+        self.gitShowBranchAct = EricAction(
             self.tr('Show current branch'),
             self.tr('Show current branch'),
             0, 0, self, 'git_show_branch')
@@ -393,7 +393,7 @@
         self.gitShowBranchAct.triggered.connect(self.__gitShowBranch)
         self.actions.append(self.gitShowBranchAct)
         
-        self.vcsRevertAct = E5Action(
+        self.vcsRevertAct = EricAction(
             self.tr('Revert changes'),
             UI.PixmapCache.getIcon("vcsRevert"),
             self.tr('Re&vert changes'),
@@ -408,7 +408,7 @@
         self.vcsRevertAct.triggered.connect(self.__gitRevert)
         self.actions.append(self.vcsRevertAct)
         
-        self.gitUnstageAct = E5Action(
+        self.gitUnstageAct = EricAction(
             self.tr('Unstage changes'),
             UI.PixmapCache.getIcon("vcsRevert"),
             self.tr('&Unstage changes'),
@@ -423,7 +423,7 @@
         self.gitUnstageAct.triggered.connect(self.__gitUnstage)
         self.actions.append(self.gitUnstageAct)
         
-        self.vcsMergeAct = E5Action(
+        self.vcsMergeAct = EricAction(
             self.tr('Merge'),
             UI.PixmapCache.getIcon("vcsMerge"),
             self.tr('Mer&ge changes...'),
@@ -438,7 +438,7 @@
         self.vcsMergeAct.triggered.connect(self._vcsMerge)
         self.actions.append(self.vcsMergeAct)
         
-        self.gitCancelMergeAct = E5Action(
+        self.gitCancelMergeAct = EricAction(
             self.tr('Cancel uncommitted/failed merge'),
             self.tr('Cancel uncommitted/failed merge'),
             0, 0, self, 'git_cancel_merge')
@@ -453,7 +453,7 @@
         self.gitCancelMergeAct.triggered.connect(self.__gitCancelMerge)
         self.actions.append(self.gitCancelMergeAct)
         
-        self.gitCommitMergeAct = E5Action(
+        self.gitCommitMergeAct = EricAction(
             self.tr('Commit failed merge'),
             self.tr('Commit failed merge'),
             0, 0, self, 'git_commit_merge')
@@ -468,7 +468,7 @@
         self.gitCommitMergeAct.triggered.connect(self.__gitCommitMerge)
         self.actions.append(self.gitCommitMergeAct)
         
-        self.vcsCleanupAct = E5Action(
+        self.vcsCleanupAct = EricAction(
             self.tr('Cleanup'),
             self.tr('Cleanu&p'),
             0, 0, self, 'git_cleanup')
@@ -482,7 +482,7 @@
         self.vcsCleanupAct.triggered.connect(self._vcsCleanup)
         self.actions.append(self.vcsCleanupAct)
         
-        self.vcsCommandAct = E5Action(
+        self.vcsCommandAct = EricAction(
             self.tr('Execute command'),
             self.tr('E&xecute command...'),
             0, 0, self, 'git_command')
@@ -497,7 +497,7 @@
         self.vcsCommandAct.triggered.connect(self._vcsCommand)
         self.actions.append(self.vcsCommandAct)
         
-        self.gitConfigAct = E5Action(
+        self.gitConfigAct = EricAction(
             self.tr('Configure'),
             self.tr('Configure...'),
             0, 0, self, 'git_configure')
@@ -512,7 +512,7 @@
         self.gitConfigAct.triggered.connect(self.__gitConfigure)
         self.actions.append(self.gitConfigAct)
         
-        self.gitRemotesShowAct = E5Action(
+        self.gitRemotesShowAct = EricAction(
             self.tr('Show Remotes'),
             self.tr('Show Remotes...'),
             0, 0, self, 'git_show_remotes')
@@ -527,7 +527,7 @@
         self.gitRemotesShowAct.triggered.connect(self.__gitShowRemotes)
         self.actions.append(self.gitRemotesShowAct)
         
-        self.gitRemoteShowAct = E5Action(
+        self.gitRemoteShowAct = EricAction(
             self.tr('Show Remote Info'),
             self.tr('Show Remote Info...'),
             0, 0, self, 'git_show_remote_info')
@@ -542,7 +542,7 @@
         self.gitRemoteShowAct.triggered.connect(self.__gitShowRemote)
         self.actions.append(self.gitRemoteShowAct)
         
-        self.gitRemoteAddAct = E5Action(
+        self.gitRemoteAddAct = EricAction(
             self.tr('Add'),
             self.tr('Add...'),
             0, 0, self, 'git_add_remote')
@@ -556,7 +556,7 @@
         self.gitRemoteAddAct.triggered.connect(self.__gitAddRemote)
         self.actions.append(self.gitRemoteAddAct)
         
-        self.gitRemoteRemoveAct = E5Action(
+        self.gitRemoteRemoveAct = EricAction(
             self.tr('Remove'),
             self.tr('Remove...'),
             0, 0, self, 'git_remove_remote')
@@ -570,7 +570,7 @@
         self.gitRemoteRemoveAct.triggered.connect(self.__gitRemoveRemote)
         self.actions.append(self.gitRemoteRemoveAct)
         
-        self.gitRemotePruneAct = E5Action(
+        self.gitRemotePruneAct = EricAction(
             self.tr('Prune'),
             self.tr('Prune...'),
             0, 0, self, 'git_prune_remote')
@@ -585,7 +585,7 @@
         self.gitRemotePruneAct.triggered.connect(self.__gitPruneRemote)
         self.actions.append(self.gitRemotePruneAct)
         
-        self.gitRemoteRenameAct = E5Action(
+        self.gitRemoteRenameAct = EricAction(
             self.tr('Rename'),
             self.tr('Rename...'),
             0, 0, self, 'git_rename_remote')
@@ -599,7 +599,7 @@
         self.gitRemoteRenameAct.triggered.connect(self.__gitRenameRemote)
         self.actions.append(self.gitRemoteRenameAct)
         
-        self.gitRemoteChangeUrlAct = E5Action(
+        self.gitRemoteChangeUrlAct = EricAction(
             self.tr('Change URL'),
             self.tr('Change URL...'),
             0, 0, self, 'git_change_remote_url')
@@ -613,7 +613,7 @@
         self.gitRemoteChangeUrlAct.triggered.connect(self.__gitChangeRemoteUrl)
         self.actions.append(self.gitRemoteChangeUrlAct)
         
-        self.gitRemoteCredentialsAct = E5Action(
+        self.gitRemoteCredentialsAct = EricAction(
             self.tr('Credentials'),
             self.tr('Credentials...'),
             0, 0, self, 'git_remote_credentials')
@@ -629,7 +629,7 @@
             self.__gitRemoteCredentials)
         self.actions.append(self.gitRemoteCredentialsAct)
         
-        self.gitCherryPickAct = E5Action(
+        self.gitCherryPickAct = EricAction(
             self.tr('Copy Commits'),
             UI.PixmapCache.getIcon("vcsGraft"),
             self.tr('Copy Commits'),
@@ -644,7 +644,7 @@
         self.gitCherryPickAct.triggered.connect(self.__gitCherryPick)
         self.actions.append(self.gitCherryPickAct)
         
-        self.gitCherryPickContinueAct = E5Action(
+        self.gitCherryPickContinueAct = EricAction(
             self.tr('Continue Copying Session'),
             self.tr('Continue Copying Session'),
             0, 0, self, 'git_cherrypick_continue')
@@ -660,7 +660,7 @@
             self.__gitCherryPickContinue)
         self.actions.append(self.gitCherryPickContinueAct)
         
-        self.gitCherryPickQuitAct = E5Action(
+        self.gitCherryPickQuitAct = EricAction(
             self.tr('Quit Copying Session'),
             self.tr('Quit Copying Session'),
             0, 0, self, 'git_cherrypick_quit')
@@ -674,7 +674,7 @@
         self.gitCherryPickQuitAct.triggered.connect(self.__gitCherryPickQuit)
         self.actions.append(self.gitCherryPickQuitAct)
         
-        self.gitCherryPickAbortAct = E5Action(
+        self.gitCherryPickAbortAct = EricAction(
             self.tr('Cancel Copying Session'),
             self.tr('Cancel Copying Session'),
             0, 0, self, 'git_cherrypick_abort')
@@ -690,7 +690,7 @@
         self.gitCherryPickAbortAct.triggered.connect(self.__gitCherryPickAbort)
         self.actions.append(self.gitCherryPickAbortAct)
         
-        self.gitStashAct = E5Action(
+        self.gitStashAct = EricAction(
             self.tr('Stash changes'),
             self.tr('Stash changes...'),
             0, 0, self, 'git_stash')
@@ -704,7 +704,7 @@
         self.gitStashAct.triggered.connect(self.__gitStashSave)
         self.actions.append(self.gitStashAct)
         
-        self.gitStashBrowserAct = E5Action(
+        self.gitStashBrowserAct = EricAction(
             self.tr('Show stash browser'),
             self.tr('Show stash browser...'),
             0, 0, self, 'git_stash_browser')
@@ -720,7 +720,7 @@
         self.gitStashBrowserAct.triggered.connect(self.__gitStashBrowser)
         self.actions.append(self.gitStashBrowserAct)
         
-        self.gitStashShowAct = E5Action(
+        self.gitStashShowAct = EricAction(
             self.tr('Show stash'),
             self.tr('Show stash...'),
             0, 0, self, 'git_stash_show')
@@ -735,7 +735,7 @@
         self.gitStashShowAct.triggered.connect(self.__gitStashShow)
         self.actions.append(self.gitStashShowAct)
         
-        self.gitStashApplyAct = E5Action(
+        self.gitStashApplyAct = EricAction(
             self.tr('Restore && Keep'),
             self.tr('Restore && Keep'),
             0, 0, self, 'git_stash_apply')
@@ -749,7 +749,7 @@
         self.gitStashApplyAct.triggered.connect(self.__gitStashApply)
         self.actions.append(self.gitStashApplyAct)
         
-        self.gitStashPopAct = E5Action(
+        self.gitStashPopAct = EricAction(
             self.tr('Restore && Delete'),
             self.tr('Restore && Delete'),
             0, 0, self, 'git_stash_pop')
@@ -763,7 +763,7 @@
         self.gitStashPopAct.triggered.connect(self.__gitStashPop)
         self.actions.append(self.gitStashPopAct)
         
-        self.gitStashBranchAct = E5Action(
+        self.gitStashBranchAct = EricAction(
             self.tr('Create Branch'),
             self.tr('Create Branch'),
             0, 0, self, 'git_stash_branch')
@@ -778,7 +778,7 @@
         self.gitStashBranchAct.triggered.connect(self.__gitStashBranch)
         self.actions.append(self.gitStashBranchAct)
         
-        self.gitStashDropAct = E5Action(
+        self.gitStashDropAct = EricAction(
             self.tr('Delete'),
             self.tr('Delete'),
             0, 0, self, 'git_stash_delete')
@@ -792,7 +792,7 @@
         self.gitStashDropAct.triggered.connect(self.__gitStashDrop)
         self.actions.append(self.gitStashDropAct)
         
-        self.gitStashClearAct = E5Action(
+        self.gitStashClearAct = EricAction(
             self.tr('Delete All'),
             self.tr('Delete All'),
             0, 0, self, 'git_stash_delete_all')
@@ -806,7 +806,7 @@
         self.gitStashClearAct.triggered.connect(self.__gitStashClear)
         self.actions.append(self.gitStashClearAct)
         
-        self.gitEditUserConfigAct = E5Action(
+        self.gitEditUserConfigAct = EricAction(
             self.tr('Edit user configuration'),
             self.tr('Edit user configuration...'),
             0, 0, self, 'git_user_configure')
@@ -820,7 +820,7 @@
         self.gitEditUserConfigAct.triggered.connect(self.__gitEditUserConfig)
         self.actions.append(self.gitEditUserConfigAct)
         
-        self.gitRepoConfigAct = E5Action(
+        self.gitRepoConfigAct = EricAction(
             self.tr('Edit repository configuration'),
             self.tr('Edit repository configuration...'),
             0, 0, self, 'git_repo_configure')
@@ -835,7 +835,7 @@
         self.gitRepoConfigAct.triggered.connect(self.__gitEditRepoConfig)
         self.actions.append(self.gitRepoConfigAct)
         
-        self.gitCreateIgnoreAct = E5Action(
+        self.gitCreateIgnoreAct = EricAction(
             self.tr('Create .gitignore'),
             self.tr('Create .gitignore'),
             0, 0, self, 'git_create_ignore')
@@ -849,7 +849,7 @@
         self.gitCreateIgnoreAct.triggered.connect(self.__gitCreateIgnore)
         self.actions.append(self.gitCreateIgnoreAct)
         
-        self.gitShowConfigAct = E5Action(
+        self.gitShowConfigAct = EricAction(
             self.tr('Show combined configuration settings'),
             self.tr('Show combined configuration settings...'),
             0, 0, self, 'git_show_config')
@@ -865,7 +865,7 @@
         self.gitShowConfigAct.triggered.connect(self.__gitShowConfig)
         self.actions.append(self.gitShowConfigAct)
         
-        self.gitVerifyAct = E5Action(
+        self.gitVerifyAct = EricAction(
             self.tr('Verify repository'),
             self.tr('Verify repository...'),
             0, 0, self, 'git_verify')
@@ -880,7 +880,7 @@
         self.gitVerifyAct.triggered.connect(self.__gitVerify)
         self.actions.append(self.gitVerifyAct)
         
-        self.gitHouseKeepingAct = E5Action(
+        self.gitHouseKeepingAct = EricAction(
             self.tr('Optimize repository'),
             self.tr('Optimize repository...'),
             0, 0, self, 'git_housekeeping')
@@ -894,7 +894,7 @@
         self.gitHouseKeepingAct.triggered.connect(self.__gitHouseKeeping)
         self.actions.append(self.gitHouseKeepingAct)
         
-        self.gitStatisticsAct = E5Action(
+        self.gitStatisticsAct = EricAction(
             self.tr('Repository Statistics'),
             self.tr('Repository Statistics...'),
             0, 0, self, 'git_statistics')
@@ -908,7 +908,7 @@
         self.gitStatisticsAct.triggered.connect(self.__gitStatistics)
         self.actions.append(self.gitStatisticsAct)
         
-        self.gitCreateArchiveAct = E5Action(
+        self.gitCreateArchiveAct = EricAction(
             self.tr('Create Archive'),
             self.tr('Create Archive'),
             0, 0, self, 'git_create_archive')
@@ -922,7 +922,7 @@
         self.gitCreateArchiveAct.triggered.connect(self.__gitCreateArchive)
         self.actions.append(self.gitCreateArchiveAct)
         
-        self.gitBundleAct = E5Action(
+        self.gitBundleAct = EricAction(
             self.tr('Create bundle'),
             self.tr('Create bundle...'),
             0, 0, self, 'mercurial_bundle_create')
@@ -937,7 +937,7 @@
         self.gitBundleAct.triggered.connect(self.__gitBundle)
         self.actions.append(self.gitBundleAct)
         
-        self.gitBundleVerifyAct = E5Action(
+        self.gitBundleVerifyAct = EricAction(
             self.tr('Verify bundle'),
             self.tr('Verify bundle...'),
             0, 0, self, 'mercurial_bundle_verify')
@@ -952,7 +952,7 @@
         self.gitBundleVerifyAct.triggered.connect(self.__gitVerifyBundle)
         self.actions.append(self.gitBundleVerifyAct)
         
-        self.gitBundleListHeadsAct = E5Action(
+        self.gitBundleListHeadsAct = EricAction(
             self.tr('List bundle heads'),
             self.tr('List bundle heads...'),
             0, 0, self, 'mercurial_bundle_list_heads')
@@ -966,7 +966,7 @@
         self.gitBundleListHeadsAct.triggered.connect(self.__gitBundleListHeads)
         self.actions.append(self.gitBundleListHeadsAct)
         
-        self.gitBundleApplyFetchAct = E5Action(
+        self.gitBundleApplyFetchAct = EricAction(
             self.tr('Apply Bundle (fetch)'),
             self.tr('Apply Bundle (fetch)...'),
             0, 0, self, 'mercurial_bundle_apply_fetch')
@@ -980,7 +980,7 @@
         self.gitBundleApplyFetchAct.triggered.connect(self.__gitBundleFetch)
         self.actions.append(self.gitBundleApplyFetchAct)
         
-        self.gitBundleApplyPullAct = E5Action(
+        self.gitBundleApplyPullAct = EricAction(
             self.tr('Apply Bundle (pull)'),
             self.tr('Apply Bundle (pull)...'),
             0, 0, self, 'mercurial_bundle_apply_pull')
@@ -994,7 +994,7 @@
         self.gitBundleApplyPullAct.triggered.connect(self.__gitBundlePull)
         self.actions.append(self.gitBundleApplyPullAct)
         
-        self.gitBisectStartAct = E5Action(
+        self.gitBisectStartAct = EricAction(
             self.tr('Start'),
             self.tr('Start'),
             0, 0, self, 'git_bisect_start')
@@ -1008,7 +1008,7 @@
         self.gitBisectStartAct.triggered.connect(self.__gitBisectStart)
         self.actions.append(self.gitBisectStartAct)
         
-        self.gitBisectStartExtendedAct = E5Action(
+        self.gitBisectStartExtendedAct = EricAction(
             self.tr('Start (Extended)'),
             self.tr('Start (Extended)'),
             0, 0, self, 'git_bisect_start_extended')
@@ -1024,7 +1024,7 @@
             self.__gitBisectStartExtended)
         self.actions.append(self.gitBisectStartExtendedAct)
         
-        self.gitBisectGoodAct = E5Action(
+        self.gitBisectGoodAct = EricAction(
             self.tr('Mark as "good"'),
             self.tr('Mark as "good"...'),
             0, 0, self, 'git_bisect_good')
@@ -1038,7 +1038,7 @@
         self.gitBisectGoodAct.triggered.connect(self.__gitBisectGood)
         self.actions.append(self.gitBisectGoodAct)
         
-        self.gitBisectBadAct = E5Action(
+        self.gitBisectBadAct = EricAction(
             self.tr('Mark as "bad"'),
             self.tr('Mark as "bad"...'),
             0, 0, self, 'git_bisect_bad')
@@ -1052,7 +1052,7 @@
         self.gitBisectBadAct.triggered.connect(self.__gitBisectBad)
         self.actions.append(self.gitBisectBadAct)
         
-        self.gitBisectSkipAct = E5Action(
+        self.gitBisectSkipAct = EricAction(
             self.tr('Skip'),
             self.tr('Skip...'),
             0, 0, self, 'git_bisect_skip')
@@ -1066,7 +1066,7 @@
         self.gitBisectSkipAct.triggered.connect(self.__gitBisectSkip)
         self.actions.append(self.gitBisectSkipAct)
         
-        self.gitBisectResetAct = E5Action(
+        self.gitBisectResetAct = EricAction(
             self.tr('Reset'),
             self.tr('Reset...'),
             0, 0, self, 'git_bisect_reset')
@@ -1080,7 +1080,7 @@
         self.gitBisectResetAct.triggered.connect(self.__gitBisectReset)
         self.actions.append(self.gitBisectResetAct)
         
-        self.gitBisectLogBrowserAct = E5Action(
+        self.gitBisectLogBrowserAct = EricAction(
             self.tr('Show bisect log browser'),
             UI.PixmapCache.getIcon("vcsLog"),
             self.tr('Show bisect log browser'),
@@ -1097,7 +1097,7 @@
             self.__gitBisectLogBrowser)
         self.actions.append(self.gitBisectLogBrowserAct)
         
-        self.gitBisectCreateReplayAct = E5Action(
+        self.gitBisectCreateReplayAct = EricAction(
             self.tr('Create replay file'),
             self.tr('Create replay file'),
             0, 0, self, 'git_bisect_create_replay')
@@ -1113,7 +1113,7 @@
             self.__gitBisectCreateReplay)
         self.actions.append(self.gitBisectCreateReplayAct)
         
-        self.gitBisectEditReplayAct = E5Action(
+        self.gitBisectEditReplayAct = EricAction(
             self.tr('Edit replay file'),
             self.tr('Edit replay file'),
             0, 0, self, 'git_bisect_edit_replay')
@@ -1128,7 +1128,7 @@
             self.__gitBisectEditReplay)
         self.actions.append(self.gitBisectEditReplayAct)
         
-        self.gitBisectReplayAct = E5Action(
+        self.gitBisectReplayAct = EricAction(
             self.tr('Replay session'),
             self.tr('Replay session'),
             0, 0, self, 'git_bisect_replay')
@@ -1142,7 +1142,7 @@
         self.gitBisectReplayAct.triggered.connect(self.__gitBisectReplay)
         self.actions.append(self.gitBisectReplayAct)
         
-        self.gitCheckPatchesAct = E5Action(
+        self.gitCheckPatchesAct = EricAction(
             self.tr('Check patch files'),
             self.tr('Check patch files'),
             0, 0, self, 'git_check_patches')
@@ -1157,7 +1157,7 @@
         self.gitCheckPatchesAct.triggered.connect(self.__gitCheckPatches)
         self.actions.append(self.gitCheckPatchesAct)
         
-        self.gitApplyPatchesAct = E5Action(
+        self.gitApplyPatchesAct = EricAction(
             self.tr('Apply patch files'),
             self.tr('Apply patch files'),
             0, 0, self, 'git_apply_patches')
@@ -1171,7 +1171,7 @@
         self.gitApplyPatchesAct.triggered.connect(self.__gitApplyPatches)
         self.actions.append(self.gitApplyPatchesAct)
         
-        self.gitShowPatcheStatisticsAct = E5Action(
+        self.gitShowPatcheStatisticsAct = EricAction(
             self.tr('Show patch statistics'),
             self.tr('Show patch statistics'),
             0, 0, self, 'git_show_patches_statistics')
@@ -1186,7 +1186,7 @@
             self.__gitShowPatchStatistics)
         self.actions.append(self.gitShowPatcheStatisticsAct)
         
-        self.gitSubmoduleAddAct = E5Action(
+        self.gitSubmoduleAddAct = EricAction(
             self.tr('Add'),
             self.tr('Add'),
             0, 0, self, 'git_submodule_add')
@@ -1201,7 +1201,7 @@
             self.__gitSubmoduleAdd)
         self.actions.append(self.gitSubmoduleAddAct)
         
-        self.gitSubmodulesListAct = E5Action(
+        self.gitSubmodulesListAct = EricAction(
             self.tr('List'),
             self.tr('List'),
             0, 0, self, 'git_submodules_list')
@@ -1216,7 +1216,7 @@
             self.__gitSubmodulesList)
         self.actions.append(self.gitSubmodulesListAct)
         
-        self.gitSubmodulesInitAct = E5Action(
+        self.gitSubmodulesInitAct = EricAction(
             self.tr('Initialize'),
             self.tr('Initialize'),
             0, 0, self, 'git_submodules_init')
@@ -1232,7 +1232,7 @@
             self.__gitSubmodulesInit)
         self.actions.append(self.gitSubmodulesInitAct)
         
-        self.gitSubmodulesDeinitAct = E5Action(
+        self.gitSubmodulesDeinitAct = EricAction(
             self.tr('Unregister'),
             self.tr('Unregister'),
             0, 0, self, 'git_submodules_deinit')
@@ -1247,7 +1247,7 @@
             self.__gitSubmodulesDeinit)
         self.actions.append(self.gitSubmodulesDeinitAct)
         
-        self.gitSubmodulesUpdateAct = E5Action(
+        self.gitSubmodulesUpdateAct = EricAction(
             self.tr('Update'),
             self.tr('Update'),
             0, 0, self, 'git_submodules_update')
@@ -1262,7 +1262,7 @@
             self.__gitSubmodulesUpdate)
         self.actions.append(self.gitSubmodulesUpdateAct)
         
-        self.gitSubmodulesUpdateInitAct = E5Action(
+        self.gitSubmodulesUpdateInitAct = EricAction(
             self.tr('Initialize and Update'),
             self.tr('Initialize and Update'),
             0, 0, self, 'git_submodules_update_init')
@@ -1278,7 +1278,7 @@
             self.__gitSubmodulesUpdateInit)
         self.actions.append(self.gitSubmodulesUpdateInitAct)
         
-        self.gitSubmodulesUpdateRemoteAct = E5Action(
+        self.gitSubmodulesUpdateRemoteAct = EricAction(
             self.tr('Fetch and Update'),
             self.tr('Fetch and Update'),
             0, 0, self, 'git_submodules_update_remote')
@@ -1294,7 +1294,7 @@
             self.__gitSubmodulesUpdateRemote)
         self.actions.append(self.gitSubmodulesUpdateRemoteAct)
         
-        self.gitSubmodulesUpdateOptionsAct = E5Action(
+        self.gitSubmodulesUpdateOptionsAct = EricAction(
             self.tr('Update with Options'),
             self.tr('Update with Options'),
             0, 0, self, 'git_submodules_update_options')
@@ -1311,7 +1311,7 @@
             self.__gitSubmodulesUpdateOptions)
         self.actions.append(self.gitSubmodulesUpdateOptionsAct)
         
-        self.gitSubmodulesSyncAct = E5Action(
+        self.gitSubmodulesSyncAct = EricAction(
             self.tr('Synchronize URLs'),
             self.tr('Synchronize URLs'),
             0, 0, self, 'git_submodules_sync')
@@ -1327,7 +1327,7 @@
             self.__gitSubmodulesSync)
         self.actions.append(self.gitSubmodulesSyncAct)
         
-        self.gitSubmodulesStatusAct = E5Action(
+        self.gitSubmodulesStatusAct = EricAction(
             self.tr('Show Status'),
             self.tr('Show Status'),
             0, 0, self, 'git_submodules_status')
@@ -1343,7 +1343,7 @@
             self.__gitSubmodulesStatus)
         self.actions.append(self.gitSubmodulesStatusAct)
         
-        self.gitSubmodulesSummaryAct = E5Action(
+        self.gitSubmodulesSummaryAct = EricAction(
             self.tr('Show Summary'),
             self.tr('Show Summary'),
             0, 0, self, 'git_submodules_summary')
@@ -1563,7 +1563,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         self.__toolbar = QToolBar(self.tr("Git"), ui)
         self.__toolbar.setIconSize(UI.Config.ToolBarIconSize)
@@ -1609,7 +1609,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         ui.removeToolBar(self.__toolbar)
         ui.unregisterToolbar("git")
@@ -1673,7 +1673,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Branch"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1717,7 +1717,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Pull"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1742,7 +1742,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Revert Changes"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1761,7 +1761,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Unstage Changes"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1890,7 +1890,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Copy Commits"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1910,7 +1910,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Copy Commits (Continue)"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1929,7 +1929,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Copy Commits (Quit)"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1949,7 +1949,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Copy Commits (Cancel)"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1968,7 +1968,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Save Stash"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1999,7 +1999,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Restore Stash"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -2018,7 +2018,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Restore Stash"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -2037,7 +2037,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Create Branch"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -2061,7 +2061,7 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences("zzz_gitPage")
+        ericApp().getObject("UserInterface").showPreferences("zzz_gitPage")
     
     def __gitEditUserConfig(self):
         """
@@ -2154,7 +2154,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Apply Bundle (pull)"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -2180,7 +2180,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Bisect"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -2199,7 +2199,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Bisect"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -2218,7 +2218,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Bisect"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -2237,7 +2237,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Bisect"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -2256,7 +2256,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Bisect"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -2294,7 +2294,7 @@
             QFileInfo(pfile).lastModified().toString() != lastModified
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Bisect"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -2318,7 +2318,7 @@
         lastModified = QFileInfo(pfile).lastModified().toString()
         self.vcs.gitApplyCheckPatches(self.project.getProjectPath())
         if QFileInfo(pfile).lastModified().toString() != lastModified:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Apply patch files"),
                 self.tr("""The project should be reread. Do this now?"""),
--- a/eric7/Plugins/VcsPlugins/vcsGit/git.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/git.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
 from PyQt6.QtCore import QProcess, pyqtSignal, QFileInfo
 from PyQt6.QtWidgets import QApplication, QDialog, QInputDialog, QLineEdit
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox, EricFileDialog
 
 from QScintilla.MiniEditor import MiniEditor
 
@@ -242,7 +242,7 @@
         """
         success = self.vcsImport(vcsDataDict, project.ppath, addAll=addAll)[0]
         if not success:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Create project repository"),
                 self.tr(
@@ -405,7 +405,7 @@
             for nam in nameList:
                 # check for commit of the project
                 if os.path.isdir(nam):
-                    project = e5App().getObject("Project")
+                    project = ericApp().getObject("Project")
                     if nam == project.getProjectPath():
                         ok &= (
                             project.checkAllScriptsDirty(
@@ -415,7 +415,7 @@
                         continue
                 elif os.path.isfile(nam):
                     editor = (
-                        e5App().getObject("ViewManager").getOpenEditor(nam)
+                        ericApp().getObject("ViewManager").getOpenEditor(nam)
                     )
                     if editor:
                         ok &= editor.checkDirty()
@@ -423,13 +423,13 @@
                     break
             
             if not ok:
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self.__ui,
                     self.tr("Commit Changes"),
                     self.tr(
                         """The commit affects files, that have unsaved"""
                         """ changes. Shall the commit be continued?"""),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
         
@@ -505,7 +505,7 @@
         """
         args = self.initCommand("checkout")
         if revision:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Switch"),
                 self.tr("""<p>Do you really want to switch to <b>{0}</b>?"""
@@ -776,11 +776,11 @@
         names = name[:] if isinstance(name, list) else [name]
         for nam in names:
             if os.path.isfile(nam):
-                editor = e5App().getObject("ViewManager").getOpenEditor(nam)
+                editor = ericApp().getObject("ViewManager").getOpenEditor(nam)
                 if editor and not editor.checkDirty():
                     return
             else:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if nam == project.ppath and not project.saveAllScripts():
                     return
         if self.diff is None:
@@ -871,7 +871,7 @@
             if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         names = [project.getRelativePath(nam) for nam in names]
         if names[0]:
             from UI.DeleteFilesConfirmationDialog import (
@@ -886,7 +886,7 @@
                 names)
             yes = dlg.exec() == QDialog.DialogCode.Accepted
         else:
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 None,
                 self.tr("Revert changes"),
                 self.tr("""Do you really want to revert all changes of"""
@@ -1385,12 +1385,12 @@
         
         ignoreName = os.path.join(name, Git.IgnoreFileName)
         res = (
-            E5MessageBox.yesNo(
+            EricMessageBox.yesNo(
                 self.__ui,
                 self.tr("Create {0} file").format(ignoreName),
                 self.tr("""<p>The file <b>{0}</b> exists already."""
                         """ Overwrite it?</p>""").format(ignoreName),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if os.path.exists(ignoreName) else
             True
         )
@@ -1406,7 +1406,7 @@
             
             if status and autoAdd:
                 self.vcsAdd(ignoreName, noDialog=True)
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 project.appendFile(ignoreName)
         
         return status
@@ -1429,7 +1429,7 @@
                 try:
                     shutil.copytree(name, target)
                 except (OSError, shutil.Error) as why:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Git Copy"),
                         self.tr("""<p>Copying the directory <b>{0}</b>"""
@@ -1444,7 +1444,7 @@
                 try:
                     shutil.copy2(name, target)
                 except (OSError, shutil.Error) as why:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Git Copy"),
                         self.tr("""<p>Copying the file <b>{0}</b>"""
@@ -1492,11 +1492,11 @@
             names = [name]
         for nam in names:
             if os.path.isfile(nam):
-                editor = e5App().getObject("ViewManager").getOpenEditor(nam)
+                editor = ericApp().getObject("ViewManager").getOpenEditor(nam)
                 if editor and not editor.checkDirty():
                     return
             else:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if nam == project.ppath and not project.saveAllScripts():
                     return
         
@@ -1603,7 +1603,7 @@
         
         output1, error = self.__gitGetFileForRevision(name, rev=rev1)
         if error:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Git Side-by-Side Difference"),
                 error)
@@ -1615,7 +1615,7 @@
                 rev2 = ""
             output2, error = self.__gitGetFileForRevision(name, rev=rev2)
             if error:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Git Side-by-Side Difference"),
                     error)
@@ -1628,7 +1628,7 @@
                     f1.close()
                 name2 = "{0} (Work)".format(name)
             except OSError:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Git Side-by-Side Difference"),
                     self.tr(
@@ -2249,7 +2249,7 @@
                 return
         
         branchName = self.gitGetCurrentBranch(repodir)
-        E5MessageBox.information(
+        EricMessageBox.information(
             None,
             self.tr("Current Branch"),
             self.tr("""<p>The current branch is <b>{0}</b>."""
@@ -2278,13 +2278,13 @@
         if dlg.exec() == QDialog.DialogCode.Accepted:
             revs = dlg.getData()
             
-            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
                 None,
                 self.tr("Create Bundle"),
                 self.__lastBundlePath or repodir,
                 self.tr("Git Bundle Files (*.bundle)"),
                 None,
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
             
             if not fname:
                 return  # user aborted
@@ -2295,13 +2295,13 @@
                 if ex:
                     fname += ex
             if QFileInfo(fname).exists():
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self.__ui,
                     self.tr("Create Bundle"),
                     self.tr("<p>The Git bundle file <b>{0}</b> "
                             "already exists. Overwrite it?</p>")
                         .format(fname),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
             fname = Utilities.toNativeSeparators(fname)
@@ -2331,7 +2331,7 @@
             if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
-        fname = E5FileDialog.getOpenFileName(
+        fname = EricFileDialog.getOpenFileName(
             None,
             self.tr("Verify Bundle"),
             self.__lastBundlePath or repodir,
@@ -2361,7 +2361,7 @@
             if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
-        fname = E5FileDialog.getOpenFileName(
+        fname = EricFileDialog.getOpenFileName(
             None,
             self.tr("List Bundle Heads"),
             self.__lastBundlePath or repodir,
@@ -2424,7 +2424,7 @@
             if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
-        fname = E5FileDialog.getOpenFileName(
+        fname = EricFileDialog.getOpenFileName(
             None,
             self.tr("Apply Bundle"),
             self.__lastBundlePath or repodir,
@@ -2472,7 +2472,7 @@
                 return False
         
         res = False
-        fname = E5FileDialog.getOpenFileName(
+        fname = EricFileDialog.getOpenFileName(
             None,
             self.tr("Apply Bundle"),
             self.__lastBundlePath or repodir,
@@ -2619,7 +2619,7 @@
                              Preferences.getSystem("IOEncoding"),
                              'replace')
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -2629,13 +2629,13 @@
             return
         
         if output:
-            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
                 None,
                 self.tr("Create Bisect Replay File"),
                 self.__lastBundlePath or repodir,
                 self.tr("Git Bisect Replay Files (*.replay)"),
                 None,
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
             
             if not fname:
                 return  # user aborted
@@ -2646,13 +2646,13 @@
                 if ex:
                     fname += ex
             if QFileInfo(fname).exists():
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self.__ui,
                     self.tr("Create Bisect Replay File"),
                     self.tr("<p>The Git bisect replay file <b>{0}</b> "
                             "already exists. Overwrite it?</p>")
                         .format(fname),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
             fname = Utilities.toNativeSeparators(fname)
@@ -2662,7 +2662,7 @@
                 with open(fname, "w") as f:
                     f.write(output)
             except OSError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Create Bisect Replay File"),
                     self.tr(
@@ -2683,7 +2683,7 @@
             if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
-        fname = E5FileDialog.getOpenFileName(
+        fname = EricFileDialog.getOpenFileName(
             None,
             self.tr("Edit Bisect Replay File"),
             self.__lastReplayPath or repodir,
@@ -2710,7 +2710,7 @@
                 return False
         
         res = False
-        fname = E5FileDialog.getOpenFileName(
+        fname = EricFileDialog.getOpenFileName(
             None,
             self.tr("Bisect Replay"),
             self.__lastReplayPath or repodir,
@@ -3512,7 +3512,7 @@
             if not ok:
                 return False
         
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             None,
             self.tr("Delete Stash"),
             self.tr("""Do you really want to delete the stash <b>{0}</b>?""")
@@ -3543,7 +3543,7 @@
             if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             None,
             self.tr("Delete All Stashes"),
             self.tr("""Do you really want to delete all stashes?"""))
@@ -3919,7 +3919,7 @@
             dlg = GitSubmodulesListDialog(submodulesList)
             dlg.exec()
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 None,
                 self.tr("List Submodules"),
                 self.tr("""No submodules defined for the project."""))
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/CloseheadExtension/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/CloseheadExtension/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Action import E5Action
+from E5Gui.EricAction import EricAction
 
 from ..HgExtensionProjectHelper import HgExtensionProjectHelper
 
@@ -30,7 +30,7 @@
         """
         Public method to generate the action objects.
         """
-        self.hgCloseheadAct = E5Action(
+        self.hgCloseheadAct = EricAction(
             self.tr('Close Heads'),
             UI.PixmapCache.getIcon("closehead"),
             self.tr('Close Heads'),
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/GpgExtension/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/GpgExtension/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Action import E5Action
+from E5Gui.EricAction import EricAction
 
 from ..HgExtensionProjectHelper import HgExtensionProjectHelper
 
@@ -30,7 +30,7 @@
         """
         Public method to generate the action objects.
         """
-        self.hgGpgListAct = E5Action(
+        self.hgGpgListAct = EricAction(
             self.tr('List Signed Changesets'),
             UI.PixmapCache.getIcon("changesetSignList"),
             self.tr('List Signed Changesets...'),
@@ -45,7 +45,7 @@
         self.hgGpgListAct.triggered.connect(self.__hgGpgSignatures)
         self.actions.append(self.hgGpgListAct)
         
-        self.hgGpgVerifyAct = E5Action(
+        self.hgGpgVerifyAct = EricAction(
             self.tr('Verify Signatures'),
             UI.PixmapCache.getIcon("changesetSignVerify"),
             self.tr('Verify Signatures'),
@@ -61,7 +61,7 @@
         self.hgGpgVerifyAct.triggered.connect(self.__hgGpgVerifySignatures)
         self.actions.append(self.hgGpgVerifyAct)
         
-        self.hgGpgSignAct = E5Action(
+        self.hgGpgSignAct = EricAction(
             self.tr('Sign Revision'),
             UI.PixmapCache.getIcon("changesetSign"),
             self.tr('Sign Revision'),
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgAddSubrepositoryDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgAddSubrepositoryDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui import E5MessageBox
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui import EricMessageBox
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 import Utilities
 
@@ -34,7 +34,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.pathPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.pathPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.pathPicker.setDefaultDirectory(projectPath)
         
         self.__ok = self.buttonBox.button(QDialogButtonBox.StandardButton.Ok)
@@ -92,7 +92,7 @@
             path = path.replace(self.__projectPath + os.sep, "")
             self.pathPicker.setText(path)
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Add Sub-repository"),
                 self.tr("""The sub-repository path must be inside"""
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgAddSubrepositoryDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgAddSubrepositoryDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -28,7 +28,7 @@
     </widget>
    </item>
    <item row="0" column="1">
-    <widget class="E5PathPicker" name="pathPicker" native="true">
+    <widget class="EricPathPicker" name="pathPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -108,9 +108,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgArchiveDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgArchiveDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_HgArchiveDialog import Ui_HgArchiveDialog
 
@@ -32,7 +32,7 @@
         self.setupUi(self)
         
         self.archivePicker.setMode(
-            E5PathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE)
+            EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE)
         
         self.typeComboBox.addItem(
             self.tr("Detect Automatically"), "")
@@ -106,10 +106,10 @@
         """
         type_ = self.typeComboBox.itemData(index)
         if type_ == "files":
-            self.archivePicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+            self.archivePicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         else:
             self.archivePicker.setMode(
-                E5PathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE)
+                EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE)
             if type_ in self.__typeFilters:
                 self.archivePicker.setNameFilters(
                     self.__typeFilters[type_])
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgArchiveDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgArchiveDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -25,7 +25,7 @@
     </widget>
    </item>
    <item row="0" column="1">
-    <widget class="E5PathPicker" name="archivePicker" native="true">
+    <widget class="EricPathPicker" name="archivePicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -92,9 +92,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgBookmarksListDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgBookmarksListDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,8 +13,8 @@
     QInputDialog
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from .Ui_HgBookmarksListDialog import Ui_HgBookmarksListDialog
 
@@ -296,14 +296,14 @@
         if bookmark:
             shouldReopen = self.vcs.vcsUpdate(revision=bookmark)
             if shouldReopen:
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     None,
                     self.tr("Switch"),
                     self.tr(
                         """The project should be reread. Do this now?"""),
                     yesDefault=True)
                 if res:
-                    e5App().getObject("Project").reopenProject()
+                    ericApp().getObject("Project").reopenProject()
                     return
             
             self.on_refreshButton_clicked()
@@ -315,7 +315,7 @@
         itm = self.bookmarksList.currentItem()
         bookmark = itm.text(3).strip()
         if bookmark:
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 self,
                 self.tr("Delete Bookmark"),
                 self.tr("""<p>Shall the bookmark <b>{0}</b> really be"""
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgConflictsListDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgConflictsListDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
     QApplication, QWidget
 )
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from .Ui_HgConflictsListDialog import Ui_HgConflictsListDialog
 
@@ -58,7 +58,7 @@
         self.refreshButton.setEnabled(False)
         
         self.vcs = vcs
-        self.project = e5App().getObject("Project")
+        self.project = ericApp().getObject("Project")
         
         self.__hgClient = vcs.getClient()
     
@@ -304,4 +304,4 @@
         itm = self.conflictsList.selectedItems()[0]
         filename = itm.data(0, self.FilenameRole)
         if Utilities.MimeTypes.isTextFile(filename):
-            e5App().getObject("ViewManager").getEditor(filename)
+            ericApp().getObject("ViewManager").getEditor(filename)
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_HgCopyDialog import Ui_HgCopyDialog
 
@@ -35,9 +35,9 @@
         
         self.source = source
         if os.path.isdir(self.source):
-            self.targetPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+            self.targetPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         else:
-            self.targetPicker.setMode(E5PathPickerModes.SAVE_FILE_MODE)
+            self.targetPicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
         
         if move:
             self.setWindowTitle(self.tr('Mercurial Move'))
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -46,7 +46,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5PathPicker" name="targetPicker" native="true">
+    <widget class="EricPathPicker" name="targetPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -90,9 +90,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,8 +11,8 @@
 from PyQt6.QtGui import QTextCursor
 from PyQt6.QtWidgets import QWidget, QDialogButtonBox
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricApplication import ericApp
 
 from .Ui_HgDiffDialog import Ui_HgDiffDialog
 from .HgDiffHighlighter import HgDiffHighlighter
@@ -98,7 +98,7 @@
         procStarted = self.__diffGenerator.start(
             fn, versions=versions, bundle=bundle, qdiff=qdiff)
         if not procStarted:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -219,13 +219,13 @@
         else:
             fname = self.vcs.splitPath(self.filename)[0]
         
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save Diff"),
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
@@ -236,22 +236,22 @@
             if ex:
                 fname += ex
         if QFileInfo(fname).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save Diff"),
                 self.tr("<p>The patch file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fname),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return
         fname = Utilities.toNativeSeparators(fname)
         
-        eol = e5App().getObject("Project").getEolString()
+        eol = ericApp().getObject("Project").getEolString()
         try:
             with open(fname, "w", encoding="utf-8", newline="") as f:
                 f.write(eol.join(self.contents.toPlainText().splitlines()))
         except OSError as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self, self.tr('Save Diff'),
                 self.tr(
                     '<p>The patch file <b>{0}</b> could not be saved.'
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -30,7 +30,7 @@
        <widget class="QComboBox" name="filesCombo"/>
       </item>
       <item>
-       <widget class="E5TextEditSearchWidget" name="searchWidget" native="true">
+       <widget class="EricTextEditSearchWidget" name="searchWidget" native="true">
         <property name="focusPolicy">
          <enum>Qt::WheelFocus</enum>
         </property>
@@ -94,9 +94,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TextEditSearchWidget</class>
+   <class>EricTextEditSearchWidget</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5TextEditSearchWidget.h</header>
+   <header>E5Gui/EricTextEditSearchWidget.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffGenerator.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffGenerator.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 
 from PyQt6.QtCore import pyqtSignal, QObject
 
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 
 class HgDiffGenerator(QObject):
@@ -117,7 +117,7 @@
         self.__output = []
         self.__errors = []
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             out, err = self.__hgClient.runcommand(args)
             
             if err:
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffHighlighter.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffHighlighter.py	Sat May 22 18:51:46 2021 +0200
@@ -7,10 +7,10 @@
 Module implementing a syntax highlighter for unified and context diff outputs.
 """
 
-from E5Gui.E5GenericDiffHighlighter import TERMINAL, E5GenericDiffHighlighter
+from E5Gui.EricGenericDiffHighlighter import TERMINAL, EricGenericDiffHighlighter
 
 
-class HgDiffHighlighter(E5GenericDiffHighlighter):
+class HgDiffHighlighter(EricGenericDiffHighlighter):
     """
     Class implementing a diff highlighter for Git.
     """
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgExportDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgExportDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSlot, QDir
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_HgExportDialog import Ui_HgExportDialog
 
@@ -36,7 +36,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.directoryPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.directoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok).setEnabled(False)
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgExportDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgExportDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -27,7 +27,7 @@
       </widget>
      </item>
      <item row="0" column="1">
-      <widget class="E5PathPicker" name="directoryPicker" native="true">
+      <widget class="EricPathPicker" name="directoryPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -169,9 +169,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgExtensionProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgExtensionProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -43,7 +43,7 @@
         """
         Public method to get a list of all actions.
         
-        @return list of all actions (list of E5Action)
+        @return list of all actions (list of EricAction)
         """
         return self.actions[:]
     
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgImportDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgImportDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot, QDateTime
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_HgImportDialog import Ui_HgImportDialog
 
@@ -31,7 +31,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.patchFilePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.patchFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.patchFilePicker.setFilters(self.tr(
             "Patch Files (*.diff *.patch);;All Files (*)"))
         
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgImportDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgImportDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -174,7 +174,7 @@
     </widget>
    </item>
    <item row="2" column="1">
-    <widget class="E5PathPicker" name="patchFilePicker" native="true">
+    <widget class="EricPathPicker" name="patchFilePicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -213,9 +213,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -21,9 +21,9 @@
     QLineEdit, QMenu, QInputDialog
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .Ui_HgLogBrowserDialog import Ui_HgLogBrowserDialog
 
@@ -230,7 +230,7 @@
         self.__logTreeNormalFont.setBold(False)
         self.__logTreeBoldFont = self.logTree.font()
         self.__logTreeBoldFont.setBold(True)
-        self.__logTreeHasDarkBackground = e5App().usesDarkPalette()
+        self.__logTreeHasDarkBackground = ericApp().usesDarkPalette()
         
         self.detailsEdit.anchorClicked.connect(self.__revisionClicked)
         
@@ -762,7 +762,7 @@
         output, errMsg = self.__hgClient.runcommand(args)
         
         if errMsg:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Mercurial Error"),
                 errMsg)
@@ -791,7 +791,7 @@
         output, errMsg = self.__hgClient.runcommand(args)
         
         if errMsg:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Mercurial Error"),
                 errMsg)
@@ -818,7 +818,7 @@
         output, errMsg = self.__hgClient.runcommand(args)
         
         if errMsg:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Mercurial Error"),
                 errMsg)
@@ -845,7 +845,7 @@
         output, errMsg = self.__hgClient.runcommand(args)
         
         if errMsg:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Mercurial Error"),
                 errMsg)
@@ -984,7 +984,7 @@
             QDialogButtonBox.StandardButton.Cancel).setDefault(True)
         QApplication.processEvents()
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             self.buf = []
             self.cancelled = False
             self.errors.clear()
@@ -1021,7 +1021,7 @@
                 if self.__bundle:
                     args.append(self.__bundle)
                 elif not self.vcs.hasSubrepositories():
-                    project = e5App().getObject("Project")
+                    project = ericApp().getObject("Project")
                     self.vcs.bundleFile = os.path.join(
                         project.getProjectManagementDir(), "hg-bundle.hg")
                     if os.path.exists(self.vcs.bundleFile):
@@ -2008,14 +2008,14 @@
         if revs:
             shouldReopen = self.vcs.hgGraft(revs)
             if shouldReopen:
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     None,
                     self.tr("Copy Changesets"),
                     self.tr(
                         """The project should be reread. Do this now?"""),
                     yesDefault=True)
                 if res:
-                    e5App().getObject("Project").reopenProject()
+                    ericApp().getObject("Project").reopenProject()
                     return
             
             self.on_refreshButton_clicked()
@@ -2079,14 +2079,14 @@
             if rev:
                 shouldReopen = self.vcs.vcsUpdate(revision=rev)
                 if shouldReopen:
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         None,
                         self.tr("Switch"),
                         self.tr(
                             """The project should be reread. Do this now?"""),
                         yesDefault=True)
                     if res:
-                        e5App().getObject("Project").reopenProject()
+                        ericApp().getObject("Project").reopenProject()
                         return
                 
                 self.on_refreshButton_clicked()
@@ -2176,14 +2176,14 @@
                 addNext = True
         
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Pull Changes"),
                 self.tr(
                     """The project should be reread. Do this now?"""),
                 yesDefault=True)
             if res:
-                e5App().getObject("Project").reopenProject()
+                ericApp().getObject("Project").reopenProject()
                 return
         
         if refresh:
@@ -2222,14 +2222,14 @@
             shouldReopen = self.vcs.getExtensionObject("strip").hgStrip(
                 rev=rev)
             if shouldReopen:
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     None,
                     self.tr("Strip Changesets"),
                     self.tr(
                         """The project should be reread. Do this now?"""),
                     yesDefault=True)
                 if res:
-                    e5App().getObject("Project").reopenProject()
+                    ericApp().getObject("Project").reopenProject()
                     return
             
         self.on_refreshButton_clicked()
@@ -2310,13 +2310,13 @@
         if self.initialCommandMode == "incoming" and bool(self.__bundle):
             shouldReopen = self.vcs.hgUnbundle(files=[self.__bundle])
             if shouldReopen:
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     None,
                     self.tr("Apply Changegroup"),
                     self.tr("""The project should be reread. Do this now?"""),
                     yesDefault=True)
                 if res:
-                    e5App().getObject("Project").reopenProject()
+                    ericApp().getObject("Project").reopenProject()
                     return
             
             self.vcs.vcsLogBrowser()
@@ -2451,7 +2451,7 @@
                 self.logTree.setCurrentItem(self.logTree.topLevelItem(index))
                 break
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Find Commit"),
                 self.tr("""'{0}' was not found.""").format(self.rxEdit.text()))
@@ -2653,13 +2653,13 @@
             else:
                 fname = dname
         
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save Diff"),
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
@@ -2670,22 +2670,22 @@
             if ex:
                 fname += ex
         if QFileInfo(fname).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save Diff"),
                 self.tr("<p>The patch file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fname),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return
         fname = Utilities.toNativeSeparators(fname)
         
-        eol = e5App().getObject("Project").getEolString()
+        eol = ericApp().getObject("Project").getEolString()
         try:
             with open(fname, "w", encoding="utf-8", newline="") as f:
                 f.write(eol.join(self.diffEdit.toPlainText().splitlines()))
         except OSError as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self, self.tr('Save Diff'),
                 self.tr(
                     '<p>The patch file <b>{0}</b> could not be saved.'
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 from PyQt6.QtCore import pyqtSlot, QUrl
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QComboBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_HgNewProjectOptionsDialog import Ui_HgNewProjectOptionsDialog
 from .Config import ConfigHgSchemes
@@ -36,13 +36,13 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.vcsProjectDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.vcsProjectDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.__vcs = vcs
         
         vcsUrlHistory = self.__vcs.getPlugin().getPreferences(
             "RepositoryUrlHistory")
-        self.vcsUrlPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.vcsUrlPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.vcsUrlPicker.setInsertPolicy(QComboBox.InsertPolicy.InsertAtTop)
         self.vcsUrlPicker.setSizeAdjustPolicy(
             QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon)
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -33,7 +33,7 @@
     </widget>
    </item>
    <item row="0" column="1">
-    <widget class="E5ComboPathPicker" name="vcsUrlPicker" native="true">
+    <widget class="EricComboPathPicker" name="vcsUrlPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -69,7 +69,7 @@
     </widget>
    </item>
    <item row="2" column="1" colspan="2">
-    <widget class="E5PathPicker" name="vcsProjectDirPicker" native="true">
+    <widget class="EricPathPicker" name="vcsProjectDirPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -138,15 +138,15 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
   <customwidget>
-   <class>E5ComboPathPicker</class>
+   <class>EricComboPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgServeDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgServeDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,9 +15,9 @@
     QToolBar, QPlainTextEdit, QSpinBox, QComboBox
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
-from E5Gui.E5MainWindow import E5MainWindow
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
+from E5Gui.EricMainWindow import EricMainWindow
 
 import UI.PixmapCache
 import Preferences
@@ -25,7 +25,7 @@
 from .HgUtilities import getHgExecutable
 
 
-class HgServeDialog(E5MainWindow):
+class HgServeDialog(EricMainWindow):
     """
     Class implementing a dialog for the Mercurial server.
     """
@@ -49,7 +49,7 @@
         
         self.setWindowTitle(self.tr("Mercurial Server"))
         
-        iconSuffix = "dark" if e5App().usesDarkPalette() else "light"
+        iconSuffix = "dark" if ericApp().usesDarkPalette() else "light"
         
         self.__startAct = QAction(
             UI.PixmapCache.getIcon(
@@ -144,7 +144,7 @@
             self.vcs.getPlugin().setPreferences("ServerPort", port)
             self.vcs.getPlugin().setPreferences("ServerStyle", style)
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -175,7 +175,7 @@
         """
         Private slot to start a browser for the served repository.
         """
-        ui = e5App().getObject("UserInterface")
+        ui = ericApp().getObject("UserInterface")
         ui.launchHelpViewer(
             "http://localhost:{0}".format(self.__portSpin.value()))
     
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
     QWidget, QDialogButtonBox, QMenu, QHeaderView, QTreeWidgetItem
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from .Ui_HgStatusDialog import Ui_HgStatusDialog
 
@@ -503,7 +503,7 @@
             names = [os.path.join(self.__repoPath, itm.text(self.__pathColumn))
                      for itm in self.__getCommitableItems()]
             if not names:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("Commit"),
                     self.tr("""There are no entries selected to be"""
@@ -511,7 +511,7 @@
                 return
             
             if Preferences.getVCS("AutoSaveFiles"):
-                vm = e5App().getObject("ViewManager")
+                vm = ericApp().getObject("ViewManager")
                 for name in names:
                     vm.saveEditor(name)
             self.vcs.vcsCommit(names, '')
@@ -543,7 +543,7 @@
         names = [os.path.join(self.__repoPath, itm.text(self.__pathColumn))
                  for itm in self.__getUnversionedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Add"),
                 self.tr("""There are no unversioned entries"""
@@ -553,7 +553,7 @@
         self.vcs.vcsAdd(names)
         self.on_refreshButton_clicked()
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         for name in names:
             project.getModel().updateVCSStatus(name)
         self.vcs.checkVCSStatus()
@@ -567,7 +567,7 @@
         names = [os.path.join(self.__repoPath, itm.text(self.__pathColumn))
                  for itm in self.__getUnversionedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Add"),
                 self.tr("""There are no unversioned entries"""
@@ -578,7 +578,7 @@
             names, mode)
         self.on_refreshButton_clicked()
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         for name in names:
             project.getModel().updateVCSStatus(name)
         self.vcs.checkVCSStatus()
@@ -590,7 +590,7 @@
         names = [os.path.join(self.__repoPath, itm.text(self.__pathColumn))
                  for itm in self.__getMissingItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Remove"),
                 self.tr("""There are no missing entries"""
@@ -607,7 +607,7 @@
         names = [os.path.join(self.__repoPath, itm.text(self.__pathColumn))
                  for itm in self.__getModifiedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Revert"),
                 self.tr("""There are no uncommitted changes"""
@@ -619,7 +619,7 @@
         self.activateWindow()
         self.on_refreshButton_clicked()
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         for name in names:
             project.getModel().updateVCSStatus(name)
         self.vcs.checkVCSStatus()
@@ -631,7 +631,7 @@
         names = [os.path.join(self.__repoPath, itm.text(self.__pathColumn))
                  for itm in self.__getMissingItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Revert"),
                 self.tr("""There are no missing entries"""
@@ -649,7 +649,7 @@
         names = [os.path.join(self.__repoPath, itm.text(self.__pathColumn))
                  for itm in self.__getModifiedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Differences"),
                 self.tr("""There are no uncommitted changes"""
@@ -669,14 +669,14 @@
         names = [os.path.join(self.__repoPath, itm.text(self.__pathColumn))
                  for itm in self.__getModifiedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Side-by-Side Diff"),
                 self.tr("""There are no uncommitted changes"""
                         """ available/selected."""))
             return
         elif len(names) > 1:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Side-by-Side Diff"),
                 self.tr("""Only one file with uncommitted changes"""
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgTagBranchListDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgTagBranchListDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,8 +13,8 @@
     QAbstractItemView
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from .Ui_HgTagBranchListDialog import Ui_HgTagBranchListDialog
 
@@ -318,14 +318,14 @@
         if rev:
             shouldReopen = self.vcs.vcsUpdate(revision=rev)
             if shouldReopen:
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     None,
                     self.tr("Switch"),
                     self.tr(
                         """The project should be reread. Do this now?"""),
                     yesDefault=True)
                 if res:
-                    e5App().getObject("Project").reopenProject()
+                    ericApp().getObject("Project").reopenProject()
                     return
             
             self.on_refreshButton_clicked()
@@ -337,14 +337,14 @@
         itm = self.tagList.currentItem()
         branch = itm.text(3).strip()
         if branch == "default":
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Close Branch"),
                 self.tr("""The branch "default" cannot be closed."""
                         """ Aborting..."""))
             return
         
-        yes = E5MessageBox.yesNo(
+        yes = EricMessageBox.yesNo(
             self,
             self.tr("Close Branch"),
             self.tr("""<p>Shall the branch <b>{0}</b> really be closed?"""
@@ -358,7 +358,7 @@
                 self.vcs.vcsUpdate(noDialog=True,
                                    revision=branch)
             
-            ppath = e5App().getObject("Project").getProjectPath()
+            ppath = ericApp().getObject("Project").getProjectPath()
             self.vcs.vcsCommit(ppath, "Branch <{0}> closed.".format(branch),
                                noDialog=True,
                                closeBranch=True)
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,8 +14,8 @@
 from PyQt6.QtCore import pyqtSlot, Qt, QEvent
 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem
 
-from E5Gui.E5PathPicker import E5PathPickerModes
-from E5Gui import E5MessageBox
+from E5Gui.EricPathPicker import EricPathPickerModes
+from E5Gui import EricMessageBox
 
 import Globals
 
@@ -56,7 +56,7 @@
             "tls1.2": self.tr("TLS 1.2"),
         }
         
-        self.lfUserCachePicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.lfUserCachePicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         if Globals.isLinuxPlatform():
             self.lfUserCachePicker.setDefaultDirectory(os.path.expanduser(
                 "~/.cache/largefiles"))
@@ -537,7 +537,7 @@
         itm = self.fingerprintsList.currentItem()
         if itm is not None:
             host = itm.text(0)
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 self,
                 self.tr("Delete Host Fingerprint"),
                 self.tr("""<p>Shall the fingerprint for host <b>{0}</b>"""
@@ -649,7 +649,7 @@
         itm = self.protocolsList.currentItem()
         if itm is not None:
             host = itm.text(0)
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 self,
                 self.tr("Delete Host Minimum Protocol"),
                 self.tr("""<p>Shall the minimum protocol entry for host"""
@@ -707,12 +707,12 @@
         from QScintilla.MiniEditor import MiniEditor
         cfgFile = getConfigPath()
         
-        yes = E5MessageBox.yesNo(
+        yes = EricMessageBox.yesNo(
             self,
             self.tr("Edit User Configuration"),
             self.tr("""You will loose all changes made in this dialog."""
                     """ Shall the data be saved first?"""),
-            icon=E5MessageBox.Warning,
+            icon=EricMessageBox.Warning,
             yesDefault=True)
         if yes:
             self.writeUserConfig()
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -295,7 +295,7 @@
            </widget>
           </item>
           <item row="2" column="1" colspan="2">
-           <widget class="E5PathPicker" name="lfUserCachePicker" native="true">
+           <widget class="EricPathPicker" name="lfUserCachePicker" native="true">
             <property name="sizePolicy">
              <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
               <horstretch>0</horstretch>
@@ -678,9 +678,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditCommitEditor.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditCommitEditor.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot, QCoreApplication
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from Ui_HgHisteditCommitEditor import Ui_HgHisteditCommitEditor
 
@@ -52,7 +52,7 @@
             with open(self.__fileName, "r") as f:
                 txt = f.read()
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Edit Commit Message"),
                 self.tr("""<p>The file <b>{0}</b> could not be read.</p>"""
@@ -91,7 +91,7 @@
             with open(self.__fileName, "w") as f:
                 f.write(msg)
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Edit Commit Message"),
                 self.tr("""<p>The file <b>{0}</b> could not be read.</p>"""
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditPlanEditor.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditPlanEditor.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot, QCoreApplication
 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem, QComboBox
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from Ui_HgHisteditPlanEditor import Ui_HgHisteditPlanEditor
 
@@ -106,7 +106,7 @@
             with open(self.__fileName, "r") as f:
                 txt = f.read()
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Edit Plan"),
                 self.tr("""<p>The file <b>{0}</b> could not be read.</p>"""
@@ -236,7 +236,7 @@
             with open(self.__fileName, "w") as f:
                 f.write(text)
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Edit Plan"),
                 self.tr("""<p>The file <b>{0}</b> could not be read.</p>"""
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -9,8 +9,8 @@
 
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 from ..HgExtensionProjectHelper import HgExtensionProjectHelper
 
@@ -31,7 +31,7 @@
         """
         Public method to generate the action objects.
         """
-        self.hgHisteditStartAct = E5Action(
+        self.hgHisteditStartAct = EricAction(
             self.tr('Start'),
             UI.PixmapCache.getIcon("vcsEditHistory"),
             self.tr('Start'),
@@ -47,7 +47,7 @@
         self.hgHisteditStartAct.triggered.connect(self.__hgHisteditStart)
         self.actions.append(self.hgHisteditStartAct)
         
-        self.hgHisteditContinueAct = E5Action(
+        self.hgHisteditContinueAct = EricAction(
             self.tr('Continue'),
             self.tr('Continue'),
             0, 0, self, 'mercurial_histedit_continue')
@@ -61,7 +61,7 @@
         self.hgHisteditContinueAct.triggered.connect(self.__hgHisteditContinue)
         self.actions.append(self.hgHisteditContinueAct)
         
-        self.hgHisteditAbortAct = E5Action(
+        self.hgHisteditAbortAct = EricAction(
             self.tr('Abort'),
             self.tr('Abort'),
             0, 0, self, 'mercurial_histedit_abort')
@@ -75,7 +75,7 @@
         self.hgHisteditAbortAct.triggered.connect(self.__hgHisteditAbort)
         self.actions.append(self.hgHisteditAbortAct)
         
-        self.hgHisteditEditPlanAct = E5Action(
+        self.hgHisteditEditPlanAct = EricAction(
             self.tr('Edit Plan'),
             self.tr('Edit Plan'),
             0, 0, self, 'mercurial_histedit_edit_plan')
@@ -128,7 +128,7 @@
             self.vcs.getExtensionObject("histedit").hgHisteditStart()
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Start History Editing"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -144,7 +144,7 @@
             self.vcs.getExtensionObject("histedit").hgHisteditContinue()
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Continue History Editing"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -160,7 +160,7 @@
             self.vcs.getExtensionObject("histedit").hgHisteditAbort()
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Abort History Editing"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -177,7 +177,7 @@
             self.vcs.getExtensionObject("histedit").hgHisteditEditPlan()
         )
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Edit Plan"),
                 self.tr("""The project should be reread. Do this now?"""),
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/LargefilesExtension/LfConvertDataDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/LargefilesExtension/LfConvertDataDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_LfConvertDataDialog import Ui_LfConvertDataDialog
 
@@ -36,7 +36,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.newProjectPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.newProjectPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.__defaults = getDefaults()
         self.__currentPath = Utilities.toNativeSeparators(currentPath)
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/LargefilesExtension/LfConvertDataDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/LargefilesExtension/LfConvertDataDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -18,7 +18,7 @@
   </property>
   <layout class="QGridLayout" name="gridLayout">
    <item row="0" column="0" colspan="3">
-    <widget class="E5SqueezeLabelPath" name="currentProjectLabel"/>
+    <widget class="EricSqueezeLabelPath" name="currentProjectLabel"/>
    </item>
    <item row="1" column="0">
     <widget class="QLabel" name="label">
@@ -28,7 +28,7 @@
     </widget>
    </item>
    <item row="1" column="1" colspan="2">
-    <widget class="E5PathPicker" name="newProjectPicker" native="true">
+    <widget class="EricPathPicker" name="newProjectPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -110,15 +110,15 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
   <customwidget>
-   <class>E5SqueezeLabelPath</class>
+   <class>EricSqueezeLabelPath</class>
    <extends>QLabel</extends>
-   <header>E5Gui/E5SqueezeLabels.h</header>
+   <header>E5Gui/EricSqueezeLabels.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/LargefilesExtension/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/LargefilesExtension/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Action import E5Action
+from E5Gui.EricAction import EricAction
 
 from ..HgExtensionProjectHelper import HgExtensionProjectHelper
 
@@ -30,7 +30,7 @@
         """
         Public method to generate the action objects.
         """
-        self.hgConvertToLargefilesAct = E5Action(
+        self.hgConvertToLargefilesAct = EricAction(
             self.tr('Convert repository to largefiles'),
             self.tr('Convert repository to largefiles...'),
             0, 0, self, 'mercurial_convert_to_largefiles')
@@ -47,7 +47,7 @@
             lambda: self.__hgLfconvert("largefiles"))
         self.actions.append(self.hgConvertToLargefilesAct)
         
-        self.hgConvertToNormalAct = E5Action(
+        self.hgConvertToNormalAct = EricAction(
             self.tr('Convert repository to normal'),
             self.tr('Convert repository to normal...'),
             0, 0, self, 'mercurial_convert_to_normal')
@@ -64,7 +64,7 @@
             lambda: self.__hgLfconvert("normal"))
         self.actions.append(self.hgConvertToNormalAct)
         
-        self.hgLfPullAct = E5Action(
+        self.hgLfPullAct = EricAction(
             self.tr('Pull Large Files'),
             UI.PixmapCache.getIcon("vcsUpdate"),
             self.tr('Pull Large Files'),
@@ -80,7 +80,7 @@
         self.hgLfPullAct.triggered.connect(self.__hgLfPull)
         self.actions.append(self.hgLfPullAct)
         
-        self.hgLfSummaryAct = E5Action(
+        self.hgLfSummaryAct = EricAction(
             self.tr('Show Summary'),
             UI.PixmapCache.getIcon("vcsSummary"),
             self.tr('Show summary...'),
@@ -96,7 +96,7 @@
         self.hgLfSummaryAct.triggered.connect(self.__hgLfSummary)
         self.actions.append(self.hgLfSummaryAct)
         
-        self.hgVerifyLargeAct = E5Action(
+        self.hgVerifyLargeAct = EricAction(
             self.tr('Verify large files of current revision'),
             self.tr('Verify large files of current revision...'),
             0, 0, self, 'mercurial_verify_large')
@@ -112,7 +112,7 @@
             lambda: self.__hgLfVerify("large"))
         self.actions.append(self.hgVerifyLargeAct)
         
-        self.hgVerifyLfaAct = E5Action(
+        self.hgVerifyLfaAct = EricAction(
             self.tr('Verify large files of all revision'),
             self.tr('Verify large files of all revision...'),
             0, 0, self, 'mercurial_verify_lfa')
@@ -128,7 +128,7 @@
             lambda: self.__hgLfVerify("lfa"))
         self.actions.append(self.hgVerifyLfaAct)
         
-        self.hgVerifyLfcAct = E5Action(
+        self.hgVerifyLfcAct = EricAction(
             self.tr('Verify large files contents'),
             self.tr('Verify large files contents...'),
             0, 0, self, 'mercurial_verify_lfc')
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/LargefilesExtension/largefiles.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/LargefilesExtension/largefiles.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 from PyQt6.QtCore import QTimer
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from ..HgExtension import HgExtension
 from ..HgDialog import HgDialog
@@ -79,7 +79,7 @@
                 client = HgClient(newName, "utf-8", self.vcs)
                 ok, err = client.startServer()
                 if not ok:
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         None,
                         self.tr("Mercurial Command Server"),
                         self.tr(
@@ -114,7 +114,7 @@
                         withLargefiles=False
                     )
                 QTimer.singleShot(
-                    0, lambda: e5App().getObject("Project").openProject(
+                    0, lambda: ericApp().getObject("Project").openProject(
                         newProjectFile))
     
     def hgAdd(self, names, mode):
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectBrowserHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectBrowserHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 
 from PyQt6.QtWidgets import QMenu, QDialog
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from Project.ProjectBrowserModel import ProjectBrowserFileItem
 
@@ -849,4 +849,4 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences("zzz_mercurialPage")
+        ericApp().getObject("UserInterface").showPreferences("zzz_mercurialPage")
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -11,12 +11,12 @@
 
 from PyQt6.QtWidgets import QMenu, QToolBar
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 from VCS.ProjectHelper import VcsProjectHelper
 
-from E5Gui.E5Action import E5Action
+from E5Gui.EricAction import EricAction
 
 import UI.PixmapCache
 import Preferences
@@ -103,7 +103,7 @@
         """
         Public method to get a list of all actions.
         
-        @return list of all actions (list of E5Action)
+        @return list of all actions (list of EricAction)
         """
         actions = self.actions[:]
         for extension in self.__extensions.values():
@@ -114,7 +114,7 @@
         """
         Public method to generate the action objects.
         """
-        self.vcsNewAct = E5Action(
+        self.vcsNewAct = EricAction(
             self.tr('New from repository'),
             UI.PixmapCache.getIcon("vcsCheckout"),
             self.tr('&New from repository...'), 0, 0,
@@ -130,7 +130,7 @@
         self.vcsNewAct.triggered.connect(self._vcsCheckout)
         self.actions.append(self.vcsNewAct)
         
-        self.hgIncomingAct = E5Action(
+        self.hgIncomingAct = EricAction(
             self.tr('Show incoming log'),
             UI.PixmapCache.getIcon("vcsUpdate"),
             self.tr('Show incoming log'),
@@ -146,7 +146,7 @@
         self.hgIncomingAct.triggered.connect(self.__hgIncoming)
         self.actions.append(self.hgIncomingAct)
         
-        self.hgPullAct = E5Action(
+        self.hgPullAct = EricAction(
             self.tr('Pull changes'),
             UI.PixmapCache.getIcon("vcsUpdate"),
             self.tr('Pull changes'),
@@ -162,7 +162,7 @@
         self.hgPullAct.triggered.connect(self.__hgPull)
         self.actions.append(self.hgPullAct)
         
-        self.vcsUpdateAct = E5Action(
+        self.vcsUpdateAct = EricAction(
             self.tr('Update from repository'),
             UI.PixmapCache.getIcon("vcsUpdate"),
             self.tr('&Update from repository'), 0, 0, self,
@@ -178,7 +178,7 @@
         self.vcsUpdateAct.triggered.connect(self._vcsUpdate)
         self.actions.append(self.vcsUpdateAct)
         
-        self.vcsCommitAct = E5Action(
+        self.vcsCommitAct = EricAction(
             self.tr('Commit changes to repository'),
             UI.PixmapCache.getIcon("vcsCommit"),
             self.tr('&Commit changes to repository...'), 0, 0, self,
@@ -194,7 +194,7 @@
         self.vcsCommitAct.triggered.connect(self._vcsCommit)
         self.actions.append(self.vcsCommitAct)
         
-        self.hgOutgoingAct = E5Action(
+        self.hgOutgoingAct = EricAction(
             self.tr('Show outgoing log'),
             UI.PixmapCache.getIcon("vcsCommit"),
             self.tr('Show outgoing log'),
@@ -210,7 +210,7 @@
         self.hgOutgoingAct.triggered.connect(self.__hgOutgoing)
         self.actions.append(self.hgOutgoingAct)
         
-        self.hgPushAct = E5Action(
+        self.hgPushAct = EricAction(
             self.tr('Push changes'),
             UI.PixmapCache.getIcon("vcsCommit"),
             self.tr('Push changes'),
@@ -226,7 +226,7 @@
         self.hgPushAct.triggered.connect(self.__hgPush)
         self.actions.append(self.hgPushAct)
         
-        self.hgPushForcedAct = E5Action(
+        self.hgPushForcedAct = EricAction(
             self.tr('Push changes (force)'),
             UI.PixmapCache.getIcon("vcsCommit"),
             self.tr('Push changes (force)'),
@@ -242,7 +242,7 @@
         self.hgPushForcedAct.triggered.connect(self.__hgPushForced)
         self.actions.append(self.hgPushForcedAct)
         
-        self.vcsExportAct = E5Action(
+        self.vcsExportAct = EricAction(
             self.tr('Export from repository'),
             UI.PixmapCache.getIcon("vcsExport"),
             self.tr('&Export from repository...'),
@@ -257,7 +257,7 @@
         self.vcsExportAct.triggered.connect(self._vcsExport)
         self.actions.append(self.vcsExportAct)
         
-        self.hgLogBrowserAct = E5Action(
+        self.hgLogBrowserAct = EricAction(
             self.tr('Show log browser'),
             UI.PixmapCache.getIcon("vcsLog"),
             self.tr('Show log browser'),
@@ -274,7 +274,7 @@
         self.hgLogBrowserAct.triggered.connect(self._vcsLogBrowser)
         self.actions.append(self.hgLogBrowserAct)
         
-        self.vcsDiffAct = E5Action(
+        self.vcsDiffAct = EricAction(
             self.tr('Show differences'),
             UI.PixmapCache.getIcon("vcsDiff"),
             self.tr('Show &difference'),
@@ -290,7 +290,7 @@
         self.vcsDiffAct.triggered.connect(self._vcsDiff)
         self.actions.append(self.vcsDiffAct)
         
-        self.hgExtDiffAct = E5Action(
+        self.hgExtDiffAct = EricAction(
             self.tr('Show differences (extended)'),
             UI.PixmapCache.getIcon("vcsDiff"),
             self.tr('Show differences (extended)'),
@@ -306,7 +306,7 @@
         self.hgExtDiffAct.triggered.connect(self.__hgExtendedDiff)
         self.actions.append(self.hgExtDiffAct)
         
-        self.vcsStatusAct = E5Action(
+        self.vcsStatusAct = EricAction(
             self.tr('Show status'),
             UI.PixmapCache.getIcon("vcsStatus"),
             self.tr('Show &status...'),
@@ -321,7 +321,7 @@
         self.vcsStatusAct.triggered.connect(self._vcsStatus)
         self.actions.append(self.vcsStatusAct)
         
-        self.hgSummaryAct = E5Action(
+        self.hgSummaryAct = EricAction(
             self.tr('Show Summary'),
             UI.PixmapCache.getIcon("vcsSummary"),
             self.tr('Show summary...'),
@@ -337,7 +337,7 @@
         self.hgSummaryAct.triggered.connect(self.__hgSummary)
         self.actions.append(self.hgSummaryAct)
         
-        self.hgHeadsAct = E5Action(
+        self.hgHeadsAct = EricAction(
             self.tr('Show heads'),
             self.tr('Show heads'),
             0, 0, self, 'mercurial_heads')
@@ -351,7 +351,7 @@
         self.hgHeadsAct.triggered.connect(self.__hgHeads)
         self.actions.append(self.hgHeadsAct)
         
-        self.hgParentsAct = E5Action(
+        self.hgParentsAct = EricAction(
             self.tr('Show parents'),
             self.tr('Show parents'),
             0, 0, self, 'mercurial_parents')
@@ -365,7 +365,7 @@
         self.hgParentsAct.triggered.connect(self.__hgParents)
         self.actions.append(self.hgParentsAct)
         
-        self.hgTipAct = E5Action(
+        self.hgTipAct = EricAction(
             self.tr('Show tip'),
             self.tr('Show tip'),
             0, 0, self, 'mercurial_tip')
@@ -379,7 +379,7 @@
         self.hgTipAct.triggered.connect(self.__hgTip)
         self.actions.append(self.hgTipAct)
         
-        self.vcsRevertAct = E5Action(
+        self.vcsRevertAct = EricAction(
             self.tr('Revert changes'),
             UI.PixmapCache.getIcon("vcsRevert"),
             self.tr('Re&vert changes'),
@@ -394,7 +394,7 @@
         self.vcsRevertAct.triggered.connect(self.__hgRevert)
         self.actions.append(self.vcsRevertAct)
         
-        self.vcsMergeAct = E5Action(
+        self.vcsMergeAct = EricAction(
             self.tr('Merge'),
             UI.PixmapCache.getIcon("vcsMerge"),
             self.tr('Mer&ge changes...'),
@@ -410,7 +410,7 @@
         self.vcsMergeAct.triggered.connect(self._vcsMerge)
         self.actions.append(self.vcsMergeAct)
         
-        self.hgCommitMergeAct = E5Action(
+        self.hgCommitMergeAct = EricAction(
             self.tr('Commit Merge'),
             self.tr('Commit Merge'),
             0, 0, self, 'mercurial_commit_merge')
@@ -424,7 +424,7 @@
         self.hgCommitMergeAct.triggered.connect(self.__hgCommitMerge)
         self.actions.append(self.hgCommitMergeAct)
         
-        self.hgAbortMergeAct = E5Action(
+        self.hgAbortMergeAct = EricAction(
             self.tr('Abort Merge'),
             self.tr('Abort Merge'),
             0, 0, self, 'mercurial_cancel_merge')
@@ -439,7 +439,7 @@
         self.hgAbortMergeAct.triggered.connect(self.__hgAbortMerge)
         self.actions.append(self.hgAbortMergeAct)
         
-        self.hgReMergeAct = E5Action(
+        self.hgReMergeAct = EricAction(
             self.tr('Re-Merge'),
             UI.PixmapCache.getIcon("vcsMerge"),
             self.tr('Re-Merge'),
@@ -455,7 +455,7 @@
         self.hgReMergeAct.triggered.connect(self.__hgReMerge)
         self.actions.append(self.hgReMergeAct)
         
-        self.hgShowConflictsAct = E5Action(
+        self.hgShowConflictsAct = EricAction(
             self.tr('Show conflicts'),
             self.tr('Show conflicts...'),
             0, 0, self, 'mercurial_show_conflicts')
@@ -470,7 +470,7 @@
         self.hgShowConflictsAct.triggered.connect(self.__hgShowConflicts)
         self.actions.append(self.hgShowConflictsAct)
         
-        self.vcsResolveAct = E5Action(
+        self.vcsResolveAct = EricAction(
             self.tr('Conflicts resolved'),
             self.tr('Con&flicts resolved'),
             0, 0, self, 'mercurial_resolve')
@@ -485,7 +485,7 @@
         self.vcsResolveAct.triggered.connect(self.__hgResolved)
         self.actions.append(self.vcsResolveAct)
         
-        self.hgUnresolveAct = E5Action(
+        self.hgUnresolveAct = EricAction(
             self.tr('Conflicts unresolved'),
             self.tr('Conflicts unresolved'),
             0, 0, self, 'mercurial_unresolve')
@@ -500,7 +500,7 @@
         self.hgUnresolveAct.triggered.connect(self.__hgUnresolved)
         self.actions.append(self.hgUnresolveAct)
         
-        self.vcsTagAct = E5Action(
+        self.vcsTagAct = EricAction(
             self.tr('Tag in repository'),
             UI.PixmapCache.getIcon("vcsTag"),
             self.tr('&Tag in repository...'),
@@ -515,7 +515,7 @@
         self.vcsTagAct.triggered.connect(self._vcsTag)
         self.actions.append(self.vcsTagAct)
         
-        self.hgTagListAct = E5Action(
+        self.hgTagListAct = EricAction(
             self.tr('List tags'),
             self.tr('List tags...'),
             0, 0, self, 'mercurial_list_tags')
@@ -529,7 +529,7 @@
         self.hgTagListAct.triggered.connect(self.__hgTagList)
         self.actions.append(self.hgTagListAct)
         
-        self.hgBranchListAct = E5Action(
+        self.hgBranchListAct = EricAction(
             self.tr('List branches'),
             self.tr('List branches...'),
             0, 0, self, 'mercurial_list_branches')
@@ -543,7 +543,7 @@
         self.hgBranchListAct.triggered.connect(self.__hgBranchList)
         self.actions.append(self.hgBranchListAct)
         
-        self.hgBranchAct = E5Action(
+        self.hgBranchAct = EricAction(
             self.tr('Create branch'),
             UI.PixmapCache.getIcon("vcsBranch"),
             self.tr('Create &branch...'),
@@ -559,7 +559,7 @@
         self.hgBranchAct.triggered.connect(self.__hgBranch)
         self.actions.append(self.hgBranchAct)
         
-        self.hgPushBranchAct = E5Action(
+        self.hgPushBranchAct = EricAction(
             self.tr('Push new branch'),
             UI.PixmapCache.getIcon("vcsCommit"),
             self.tr('Push new branch'),
@@ -576,7 +576,7 @@
         self.hgPushBranchAct.triggered.connect(self.__hgPushNewBranch)
         self.actions.append(self.hgPushBranchAct)
         
-        self.hgCloseBranchAct = E5Action(
+        self.hgCloseBranchAct = EricAction(
             self.tr('Close branch'),
             UI.PixmapCache.getIcon("closehead"),
             self.tr('Close branch'),
@@ -591,7 +591,7 @@
         self.hgCloseBranchAct.triggered.connect(self.__hgCloseBranch)
         self.actions.append(self.hgCloseBranchAct)
         
-        self.hgShowBranchAct = E5Action(
+        self.hgShowBranchAct = EricAction(
             self.tr('Show current branch'),
             self.tr('Show current branch'),
             0, 0, self, 'mercurial_show_branch')
@@ -605,7 +605,7 @@
         self.hgShowBranchAct.triggered.connect(self.__hgShowBranch)
         self.actions.append(self.hgShowBranchAct)
         
-        self.vcsSwitchAct = E5Action(
+        self.vcsSwitchAct = EricAction(
             self.tr('Switch'),
             UI.PixmapCache.getIcon("vcsSwitch"),
             self.tr('S&witch...'),
@@ -621,7 +621,7 @@
         self.vcsSwitchAct.triggered.connect(self._vcsSwitch)
         self.actions.append(self.vcsSwitchAct)
         
-        self.vcsCleanupAct = E5Action(
+        self.vcsCleanupAct = EricAction(
             self.tr('Cleanup'),
             self.tr('Cleanu&p'),
             0, 0, self, 'mercurial_cleanup')
@@ -635,7 +635,7 @@
         self.vcsCleanupAct.triggered.connect(self._vcsCleanup)
         self.actions.append(self.vcsCleanupAct)
         
-        self.vcsCommandAct = E5Action(
+        self.vcsCommandAct = EricAction(
             self.tr('Execute command'),
             self.tr('E&xecute command...'),
             0, 0, self, 'mercurial_command')
@@ -650,7 +650,7 @@
         self.vcsCommandAct.triggered.connect(self._vcsCommand)
         self.actions.append(self.vcsCommandAct)
         
-        self.hgConfigAct = E5Action(
+        self.hgConfigAct = EricAction(
             self.tr('Configure'),
             self.tr('Configure...'),
             0, 0, self, 'mercurial_configure')
@@ -665,7 +665,7 @@
         self.hgConfigAct.triggered.connect(self.__hgConfigure)
         self.actions.append(self.hgConfigAct)
         
-        self.hgEditUserConfigAct = E5Action(
+        self.hgEditUserConfigAct = EricAction(
             self.tr('Edit user configuration'),
             self.tr('Edit user configuration...'),
             0, 0, self, 'mercurial_user_configure')
@@ -679,7 +679,7 @@
         self.hgEditUserConfigAct.triggered.connect(self.__hgEditUserConfig)
         self.actions.append(self.hgEditUserConfigAct)
         
-        self.hgRepoConfigAct = E5Action(
+        self.hgRepoConfigAct = EricAction(
             self.tr('Edit repository configuration'),
             self.tr('Edit repository configuration...'),
             0, 0, self, 'mercurial_repo_configure')
@@ -694,7 +694,7 @@
         self.hgRepoConfigAct.triggered.connect(self.__hgEditRepoConfig)
         self.actions.append(self.hgRepoConfigAct)
         
-        self.hgShowConfigAct = E5Action(
+        self.hgShowConfigAct = EricAction(
             self.tr('Show combined configuration settings'),
             self.tr('Show combined configuration settings...'),
             0, 0, self, 'mercurial_show_config')
@@ -710,7 +710,7 @@
         self.hgShowConfigAct.triggered.connect(self.__hgShowConfig)
         self.actions.append(self.hgShowConfigAct)
         
-        self.hgShowPathsAct = E5Action(
+        self.hgShowPathsAct = EricAction(
             self.tr('Show paths'),
             self.tr('Show paths...'),
             0, 0, self, 'mercurial_show_paths')
@@ -724,7 +724,7 @@
         self.hgShowPathsAct.triggered.connect(self.__hgShowPaths)
         self.actions.append(self.hgShowPathsAct)
         
-        self.hgVerifyAct = E5Action(
+        self.hgVerifyAct = EricAction(
             self.tr('Verify repository'),
             self.tr('Verify repository...'),
             0, 0, self, 'mercurial_verify')
@@ -738,7 +738,7 @@
         self.hgVerifyAct.triggered.connect(self.__hgVerify)
         self.actions.append(self.hgVerifyAct)
         
-        self.hgRecoverAct = E5Action(
+        self.hgRecoverAct = EricAction(
             self.tr('Recover'),
             self.tr('Recover...'),
             0, 0, self, 'mercurial_recover')
@@ -752,7 +752,7 @@
         self.hgRecoverAct.triggered.connect(self.__hgRecover)
         self.actions.append(self.hgRecoverAct)
         
-        self.hgIdentifyAct = E5Action(
+        self.hgIdentifyAct = EricAction(
             self.tr('Identify'),
             self.tr('Identify...'),
             0, 0, self, 'mercurial_identify')
@@ -766,7 +766,7 @@
         self.hgIdentifyAct.triggered.connect(self.__hgIdentify)
         self.actions.append(self.hgIdentifyAct)
         
-        self.hgCreateIgnoreAct = E5Action(
+        self.hgCreateIgnoreAct = EricAction(
             self.tr('Create .hgignore'),
             self.tr('Create .hgignore'),
             0, 0, self, 'mercurial_create ignore')
@@ -780,7 +780,7 @@
         self.hgCreateIgnoreAct.triggered.connect(self.__hgCreateIgnore)
         self.actions.append(self.hgCreateIgnoreAct)
         
-        self.hgBundleAct = E5Action(
+        self.hgBundleAct = EricAction(
             self.tr('Create changegroup'),
             UI.PixmapCache.getIcon("vcsCreateChangegroup"),
             self.tr('Create changegroup...'),
@@ -796,7 +796,7 @@
         self.hgBundleAct.triggered.connect(self.__hgBundle)
         self.actions.append(self.hgBundleAct)
         
-        self.hgPreviewBundleAct = E5Action(
+        self.hgPreviewBundleAct = EricAction(
             self.tr('Preview changegroup'),
             UI.PixmapCache.getIcon("vcsPreviewChangegroup"),
             self.tr('Preview changegroup...'),
@@ -812,7 +812,7 @@
         self.hgPreviewBundleAct.triggered.connect(self.__hgPreviewBundle)
         self.actions.append(self.hgPreviewBundleAct)
         
-        self.hgUnbundleAct = E5Action(
+        self.hgUnbundleAct = EricAction(
             self.tr('Apply changegroups'),
             UI.PixmapCache.getIcon("vcsApplyChangegroup"),
             self.tr('Apply changegroups...'),
@@ -828,7 +828,7 @@
         self.hgUnbundleAct.triggered.connect(self.__hgUnbundle)
         self.actions.append(self.hgUnbundleAct)
         
-        self.hgBisectGoodAct = E5Action(
+        self.hgBisectGoodAct = EricAction(
             self.tr('Mark as "good"'),
             self.tr('Mark as "good"...'),
             0, 0, self, 'mercurial_bisect_good')
@@ -842,7 +842,7 @@
         self.hgBisectGoodAct.triggered.connect(self.__hgBisectGood)
         self.actions.append(self.hgBisectGoodAct)
         
-        self.hgBisectBadAct = E5Action(
+        self.hgBisectBadAct = EricAction(
             self.tr('Mark as "bad"'),
             self.tr('Mark as "bad"...'),
             0, 0, self, 'mercurial_bisect_bad')
@@ -856,7 +856,7 @@
         self.hgBisectBadAct.triggered.connect(self.__hgBisectBad)
         self.actions.append(self.hgBisectBadAct)
         
-        self.hgBisectSkipAct = E5Action(
+        self.hgBisectSkipAct = EricAction(
             self.tr('Skip'),
             self.tr('Skip...'),
             0, 0, self, 'mercurial_bisect_skip')
@@ -870,7 +870,7 @@
         self.hgBisectSkipAct.triggered.connect(self.__hgBisectSkip)
         self.actions.append(self.hgBisectSkipAct)
         
-        self.hgBisectResetAct = E5Action(
+        self.hgBisectResetAct = EricAction(
             self.tr('Reset'),
             self.tr('Reset'),
             0, 0, self, 'mercurial_bisect_reset')
@@ -884,7 +884,7 @@
         self.hgBisectResetAct.triggered.connect(self.__hgBisectReset)
         self.actions.append(self.hgBisectResetAct)
         
-        self.hgBackoutAct = E5Action(
+        self.hgBackoutAct = EricAction(
             self.tr('Back out changeset'),
             self.tr('Back out changeset'),
             0, 0, self, 'mercurial_backout')
@@ -898,7 +898,7 @@
         self.hgBackoutAct.triggered.connect(self.__hgBackout)
         self.actions.append(self.hgBackoutAct)
         
-        self.hgRollbackAct = E5Action(
+        self.hgRollbackAct = EricAction(
             self.tr('Rollback last transaction'),
             self.tr('Rollback last transaction'),
             0, 0, self, 'mercurial_rollback')
@@ -925,7 +925,7 @@
         self.hgRollbackAct.triggered.connect(self.__hgRollback)
         self.actions.append(self.hgRollbackAct)
         
-        self.hgServeAct = E5Action(
+        self.hgServeAct = EricAction(
             self.tr('Serve project repository'),
             self.tr('Serve project repository...'),
             0, 0, self, 'mercurial_serve')
@@ -939,7 +939,7 @@
         self.hgServeAct.triggered.connect(self.__hgServe)
         self.actions.append(self.hgServeAct)
         
-        self.hgImportAct = E5Action(
+        self.hgImportAct = EricAction(
             self.tr('Import Patch'),
             UI.PixmapCache.getIcon("vcsImportPatch"),
             self.tr('Import Patch...'),
@@ -955,7 +955,7 @@
         self.hgImportAct.triggered.connect(self.__hgImport)
         self.actions.append(self.hgImportAct)
         
-        self.hgExportAct = E5Action(
+        self.hgExportAct = EricAction(
             self.tr('Export Patches'),
             UI.PixmapCache.getIcon("vcsExportPatch"),
             self.tr('Export Patches...'),
@@ -970,7 +970,7 @@
         self.hgExportAct.triggered.connect(self.__hgExport)
         self.actions.append(self.hgExportAct)
         
-        self.hgPhaseAct = E5Action(
+        self.hgPhaseAct = EricAction(
             self.tr('Change Phase'),
             self.tr('Change Phase...'),
             0, 0, self, 'mercurial_change_phase')
@@ -984,7 +984,7 @@
         self.hgPhaseAct.triggered.connect(self.__hgPhase)
         self.actions.append(self.hgPhaseAct)
         
-        self.hgGraftAct = E5Action(
+        self.hgGraftAct = EricAction(
             self.tr('Copy Changesets'),
             UI.PixmapCache.getIcon("vcsGraft"),
             self.tr('Copy Changesets'),
@@ -1001,7 +1001,7 @@
         self.hgGraftAct.triggered.connect(self.__hgGraft)
         self.actions.append(self.hgGraftAct)
         
-        self.hgGraftContinueAct = E5Action(
+        self.hgGraftContinueAct = EricAction(
             self.tr('Continue Copying Session'),
             self.tr('Continue Copying Session'),
             0, 0, self, 'mercurial_graft_continue')
@@ -1016,7 +1016,7 @@
         self.hgGraftContinueAct.triggered.connect(self.__hgGraftContinue)
         self.actions.append(self.hgGraftContinueAct)
         
-        self.hgGraftStopAct = E5Action(
+        self.hgGraftStopAct = EricAction(
             self.tr('Stop Copying Session'),
             self.tr('Stop Copying Session'),
             0, 0, self, 'mercurial_graft_stop')
@@ -1030,7 +1030,7 @@
         self.hgGraftStopAct.triggered.connect(self.__hgGraftStop)
         self.actions.append(self.hgGraftStopAct)
         
-        self.hgGraftAbortAct = E5Action(
+        self.hgGraftAbortAct = EricAction(
             self.tr('Abort Copying Session'),
             self.tr('Abort Copying Session'),
             0, 0, self, 'mercurial_graft_abort')
@@ -1045,7 +1045,7 @@
         self.hgGraftAbortAct.triggered.connect(self.__hgGraftAbort)
         self.actions.append(self.hgGraftAbortAct)
         
-        self.hgAddSubrepoAct = E5Action(
+        self.hgAddSubrepoAct = EricAction(
             self.tr('Add'),
             UI.PixmapCache.getIcon("vcsAdd"),
             self.tr('Add...'),
@@ -1060,7 +1060,7 @@
         self.hgAddSubrepoAct.triggered.connect(self.__hgAddSubrepository)
         self.actions.append(self.hgAddSubrepoAct)
         
-        self.hgRemoveSubreposAct = E5Action(
+        self.hgRemoveSubreposAct = EricAction(
             self.tr('Remove'),
             UI.PixmapCache.getIcon("vcsRemove"),
             self.tr('Remove...'),
@@ -1076,7 +1076,7 @@
             self.__hgRemoveSubrepositories)
         self.actions.append(self.hgRemoveSubreposAct)
         
-        self.hgArchiveAct = E5Action(
+        self.hgArchiveAct = EricAction(
             self.tr('Create unversioned archive'),
             UI.PixmapCache.getIcon("vcsExport"),
             self.tr('Create unversioned archive...'),
@@ -1092,7 +1092,7 @@
         self.hgArchiveAct.triggered.connect(self.__hgArchive)
         self.actions.append(self.hgArchiveAct)
         
-        self.hgBookmarksListAct = E5Action(
+        self.hgBookmarksListAct = EricAction(
             self.tr('List bookmarks'),
             UI.PixmapCache.getIcon("listBookmarks"),
             self.tr('List bookmarks...'),
@@ -1107,7 +1107,7 @@
         self.hgBookmarksListAct.triggered.connect(self.__hgBookmarksList)
         self.actions.append(self.hgBookmarksListAct)
     
-        self.hgBookmarkDefineAct = E5Action(
+        self.hgBookmarkDefineAct = EricAction(
             self.tr('Define bookmark'),
             UI.PixmapCache.getIcon("addBookmark"),
             self.tr('Define bookmark...'),
@@ -1122,7 +1122,7 @@
         self.hgBookmarkDefineAct.triggered.connect(self.__hgBookmarkDefine)
         self.actions.append(self.hgBookmarkDefineAct)
     
-        self.hgBookmarkDeleteAct = E5Action(
+        self.hgBookmarkDeleteAct = EricAction(
             self.tr('Delete bookmark'),
             UI.PixmapCache.getIcon("deleteBookmark"),
             self.tr('Delete bookmark...'),
@@ -1137,7 +1137,7 @@
         self.hgBookmarkDeleteAct.triggered.connect(self.__hgBookmarkDelete)
         self.actions.append(self.hgBookmarkDeleteAct)
     
-        self.hgBookmarkRenameAct = E5Action(
+        self.hgBookmarkRenameAct = EricAction(
             self.tr('Rename bookmark'),
             UI.PixmapCache.getIcon("renameBookmark"),
             self.tr('Rename bookmark...'),
@@ -1152,7 +1152,7 @@
         self.hgBookmarkRenameAct.triggered.connect(self.__hgBookmarkRename)
         self.actions.append(self.hgBookmarkRenameAct)
     
-        self.hgBookmarkMoveAct = E5Action(
+        self.hgBookmarkMoveAct = EricAction(
             self.tr('Move bookmark'),
             UI.PixmapCache.getIcon("moveBookmark"),
             self.tr('Move bookmark...'),
@@ -1168,7 +1168,7 @@
         self.hgBookmarkMoveAct.triggered.connect(self.__hgBookmarkMove)
         self.actions.append(self.hgBookmarkMoveAct)
         
-        self.hgBookmarkIncomingAct = E5Action(
+        self.hgBookmarkIncomingAct = EricAction(
             self.tr('Show incoming bookmarks'),
             UI.PixmapCache.getIcon("incomingBookmark"),
             self.tr('Show incoming bookmarks'),
@@ -1185,7 +1185,7 @@
             self.__hgBookmarkIncoming)
         self.actions.append(self.hgBookmarkIncomingAct)
         
-        self.hgBookmarkPullAct = E5Action(
+        self.hgBookmarkPullAct = EricAction(
             self.tr('Pull bookmark'),
             UI.PixmapCache.getIcon("pullBookmark"),
             self.tr('Pull bookmark'),
@@ -1201,7 +1201,7 @@
         self.hgBookmarkPullAct.triggered.connect(self.__hgBookmarkPull)
         self.actions.append(self.hgBookmarkPullAct)
         
-        self.hgBookmarkPullCurrentAct = E5Action(
+        self.hgBookmarkPullCurrentAct = EricAction(
             self.tr('Pull current bookmark'),
             UI.PixmapCache.getIcon("pullBookmark"),
             self.tr('Pull current bookmark'),
@@ -1217,7 +1217,7 @@
         self.hgBookmarkPullCurrentAct.triggered.connect(
             self.__hgBookmarkPullCurrent)
         
-        self.hgBookmarkOutgoingAct = E5Action(
+        self.hgBookmarkOutgoingAct = EricAction(
             self.tr('Show outgoing bookmarks'),
             UI.PixmapCache.getIcon("outgoingBookmark"),
             self.tr('Show outgoing bookmarks'),
@@ -1234,7 +1234,7 @@
             self.__hgBookmarkOutgoing)
         self.actions.append(self.hgBookmarkOutgoingAct)
         
-        self.hgBookmarkPushAct = E5Action(
+        self.hgBookmarkPushAct = EricAction(
             self.tr('Push bookmark'),
             UI.PixmapCache.getIcon("pushBookmark"),
             self.tr('Push bookmark'),
@@ -1250,7 +1250,7 @@
         self.hgBookmarkPushAct.triggered.connect(self.__hgBookmarkPush)
         self.actions.append(self.hgBookmarkPushAct)
     
-        self.hgBookmarkPushCurrentAct = E5Action(
+        self.hgBookmarkPushCurrentAct = EricAction(
             self.tr('Push current bookmark'),
             UI.PixmapCache.getIcon("pushBookmark"),
             self.tr('Push current bookmark'),
@@ -1267,7 +1267,7 @@
             self.__hgBookmarkPushCurrent)
         self.actions.append(self.hgBookmarkPushCurrentAct)
         
-        self.hgBookmarkPushAllAct = E5Action(
+        self.hgBookmarkPushAllAct = EricAction(
             self.tr('Push all bookmarks'),
             UI.PixmapCache.getIcon("pushBookmark"),
             self.tr('Push all bookmarks'),
@@ -1283,7 +1283,7 @@
         self.hgBookmarkPushAllAct.triggered.connect(
             self.__hgBookmarkPushAll)
         
-        self.hgDeleteBackupsAct = E5Action(
+        self.hgDeleteBackupsAct = EricAction(
             self.tr('Delete all backups'),
             UI.PixmapCache.getIcon("clearPrivateData"),
             self.tr('Delete all backups'),
@@ -1526,7 +1526,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         self.__toolbarManager = toolbarManager
         
@@ -1597,7 +1597,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         ui.removeToolBar(self.__toolbar)
         ui.unregisterToolbar("mercurial")
@@ -1679,7 +1679,7 @@
         """
         shouldReopen = self.vcs.hgPull()
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Pull"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1784,7 +1784,7 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences("zzz_mercurialPage")
+        ericApp().getObject("UserInterface").showPreferences("zzz_mercurialPage")
     
     def __hgCloseBranch(self):
         """
@@ -1868,7 +1868,7 @@
         """
         shouldReopen = self.vcs.hgUnbundle()
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Apply changegroups"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1924,7 +1924,7 @@
         """
         shouldReopen = self.vcs.hgImport()
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Import Patch"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1944,7 +1944,7 @@
         """
         shouldReopen = self.vcs.hgRevert(self.project.ppath)
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 self.tr("Revert Changes"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1964,7 +1964,7 @@
         """
         shouldReopen = self.vcs.hgGraft()
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Copy Changesets"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1979,7 +1979,7 @@
         """
         shouldReopen = self.vcs.hgGraftContinue()
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Copy Changesets (Continue)"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -1993,7 +1993,7 @@
         """
         shouldReopen = self.vcs.hgGraftStop()
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Copy Changesets (Stop)"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -2008,7 +2008,7 @@
         """
         shouldReopen = self.vcs.hgGraftAbort()
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Copy Changesets (Abort)"),
                 self.tr("""The project should be reread. Do this now?"""),
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/PurgeExtension/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/PurgeExtension/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Action import E5Action
+from E5Gui.EricAction import EricAction
 
 from ..HgExtensionProjectHelper import HgExtensionProjectHelper
 
@@ -30,7 +30,7 @@
         """
         Public method to generate the action objects.
         """
-        self.hgPurgeAct = E5Action(
+        self.hgPurgeAct = EricAction(
             self.tr('Purge Files'),
             UI.PixmapCache.getIcon("fileDelete"),
             self.tr('Purge Files'),
@@ -50,7 +50,7 @@
         self.hgPurgeAct.triggered.connect(self.__hgPurge)
         self.actions.append(self.hgPurgeAct)
         
-        self.hgPurgeAllAct = E5Action(
+        self.hgPurgeAllAct = EricAction(
             self.tr('Purge All Files'),
             self.tr('Purge All Files'),
             0, 0, self, 'mercurial_purge_all')
@@ -71,7 +71,7 @@
         self.hgPurgeAllAct.triggered.connect(self.__hgPurgeAll)
         self.actions.append(self.hgPurgeAllAct)
         
-        self.hgPurgeListAct = E5Action(
+        self.hgPurgeListAct = EricAction(
             self.tr('List Files to be Purged'),
             UI.PixmapCache.getIcon("fileDeleteList"),
             self.tr('List Files to be Purged...'),
@@ -87,7 +87,7 @@
         self.hgPurgeListAct.triggered.connect(self.__hgPurgeList)
         self.actions.append(self.hgPurgeListAct)
         
-        self.hgPurgeAllListAct = E5Action(
+        self.hgPurgeAllListAct = EricAction(
             self.tr('List All Files to be Purged'),
             self.tr('List All Files to be Purged...'),
             0, 0, self, 'mercurial_purge_all_list')
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesDefineGuardsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesDefineGuardsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
     QDialog, QDialogButtonBox, QAbstractButton, QListWidgetItem
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_HgQueuesDefineGuardsDialog import Ui_HgQueuesDefineGuardsDialog
 
@@ -62,14 +62,14 @@
             self.__hgClient.cancel()
         
         if self.__dirtyList:
-            res = E5MessageBox.question(
+            res = EricMessageBox.question(
                 self,
                 self.tr("Unsaved Changes"),
                 self.tr("""The guards list has been changed."""
                         """ Shall the changes be applied?"""),
-                E5MessageBox.Apply | E5MessageBox.Discard,
-                E5MessageBox.Apply)
-            if res == E5MessageBox.Apply:
+                EricMessageBox.Apply | EricMessageBox.Discard,
+                EricMessageBox.Apply)
+            if res == EricMessageBox.Apply:
                 self.__applyGuards()
             else:
                 self.__dirtyList = False
@@ -93,14 +93,14 @@
         """
         patch = self.patchSelector.itemText(index)
         if self.__dirtyList:
-            res = E5MessageBox.question(
+            res = EricMessageBox.question(
                 self,
                 self.tr("Unsaved Changes"),
                 self.tr("""The guards list has been changed."""
                         """ Shall the changes be applied?"""),
-                E5MessageBox.Apply | E5MessageBox.Discard,
-                E5MessageBox.Apply)
-            if res == E5MessageBox.Apply:
+                EricMessageBox.Apply | EricMessageBox.Discard,
+                EricMessageBox.Apply)
+            if res == EricMessageBox.Apply:
                 self.__applyGuards()
             else:
                 self.__dirtyList = False
@@ -201,7 +201,7 @@
         """
         Private slot to remove guard definitions from the list.
         """
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Remove Guards"),
             self.tr(
@@ -253,7 +253,7 @@
             error = self.__hgClient.runcommand(args)[1]
             
             if error:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Apply Guard Definitions"),
                     self.tr("""<p>The defined guards could not be"""
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -9,8 +9,8 @@
 
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 from ..HgExtensionProjectHelper import HgExtensionProjectHelper
 
@@ -31,7 +31,7 @@
         """
         Public method to generate the action objects.
         """
-        self.hgQueueInitAct = E5Action(
+        self.hgQueueInitAct = EricAction(
             self.tr('Init Queue Repository'),
             self.tr('Init Queue Repository'),
             0, 0, self, 'mercurial_queues_init')
@@ -46,7 +46,7 @@
         self.hgQueueInitAct.triggered.connect(self.__hgQueueInit)
         self.actions.append(self.hgQueueInitAct)
         
-        self.hgQueueCommitAct = E5Action(
+        self.hgQueueCommitAct = EricAction(
             self.tr('Commit changes'),
             self.tr('Commit changes...'),
             0, 0, self, 'mercurial_queues_commit')
@@ -60,7 +60,7 @@
         self.hgQueueCommitAct.triggered.connect(self.__hgQueueCommit)
         self.actions.append(self.hgQueueCommitAct)
         
-        self.hgQueueNewAct = E5Action(
+        self.hgQueueNewAct = EricAction(
             self.tr('New Patch'),
             self.tr('New Patch...'),
             0, 0, self, 'mercurial_queues_new')
@@ -74,7 +74,7 @@
         self.hgQueueNewAct.triggered.connect(self.__hgQueueNewPatch)
         self.actions.append(self.hgQueueNewAct)
         
-        self.hgQueueRefreshAct = E5Action(
+        self.hgQueueRefreshAct = EricAction(
             self.tr('Update Current Patch'),
             self.tr('Update Current Patch'),
             0, 0, self, 'mercurial_queues_refresh')
@@ -89,7 +89,7 @@
             self.__hgQueueRefreshPatch)
         self.actions.append(self.hgQueueRefreshAct)
         
-        self.hgQueueRefreshMessageAct = E5Action(
+        self.hgQueueRefreshMessageAct = EricAction(
             self.tr('Update Current Patch (with Message)'),
             self.tr('Update Current Patch (with Message)'),
             0, 0, self, 'mercurial_queues_refresh_message')
@@ -105,7 +105,7 @@
             self.__hgQueueRefreshPatchMessage)
         self.actions.append(self.hgQueueRefreshMessageAct)
         
-        self.hgQueueDiffAct = E5Action(
+        self.hgQueueDiffAct = EricAction(
             self.tr('Show Current Patch'),
             self.tr('Show Current Patch...'),
             0, 0, self, 'mercurial_queues_show')
@@ -121,7 +121,7 @@
         self.hgQueueDiffAct.triggered.connect(self.__hgQueueShowPatch)
         self.actions.append(self.hgQueueDiffAct)
         
-        self.hgQueueHeaderAct = E5Action(
+        self.hgQueueHeaderAct = EricAction(
             self.tr('Show Current Message'),
             self.tr('Show Current Message...'),
             0, 0, self, 'mercurial_queues_show_message')
@@ -135,7 +135,7 @@
         self.hgQueueHeaderAct.triggered.connect(self.__hgQueueShowHeader)
         self.actions.append(self.hgQueueHeaderAct)
         
-        self.hgQueueListAct = E5Action(
+        self.hgQueueListAct = EricAction(
             self.tr('List Patches'),
             self.tr('List Patches...'),
             0, 0, self, 'mercurial_queues_list')
@@ -149,7 +149,7 @@
         self.hgQueueListAct.triggered.connect(self.__hgQueueListPatches)
         self.actions.append(self.hgQueueListAct)
         
-        self.hgQueueFinishAct = E5Action(
+        self.hgQueueFinishAct = EricAction(
             self.tr('Finish Applied Patches'),
             self.tr('Finish Applied Patches'),
             0, 0, self, 'mercurial_queues_finish_applied')
@@ -165,7 +165,7 @@
             self.__hgQueueFinishAppliedPatches)
         self.actions.append(self.hgQueueFinishAct)
         
-        self.hgQueueRenameAct = E5Action(
+        self.hgQueueRenameAct = EricAction(
             self.tr('Rename Patch'),
             self.tr('Rename Patch'),
             0, 0, self, 'mercurial_queues_rename')
@@ -179,7 +179,7 @@
         self.hgQueueRenameAct.triggered.connect(self.__hgQueueRenamePatch)
         self.actions.append(self.hgQueueRenameAct)
         
-        self.hgQueueDeleteAct = E5Action(
+        self.hgQueueDeleteAct = EricAction(
             self.tr('Delete Patch'),
             self.tr('Delete Patch'),
             0, 0, self, 'mercurial_queues_delete')
@@ -193,7 +193,7 @@
         self.hgQueueDeleteAct.triggered.connect(self.__hgQueueDeletePatch)
         self.actions.append(self.hgQueueDeleteAct)
         
-        self.hgQueueFoldAct = E5Action(
+        self.hgQueueFoldAct = EricAction(
             self.tr('Fold Patches'),
             self.tr('Fold Patches'),
             0, 0, self, 'mercurial_queues_fold')
@@ -208,7 +208,7 @@
             self.__hgQueueFoldUnappliedPatches)
         self.actions.append(self.hgQueueFoldAct)
         
-        self.hgQueueStatusAct = E5Action(
+        self.hgQueueStatusAct = EricAction(
             self.tr('Show Status'),
             self.tr('Show &Status...'),
             0, 0, self, 'mercurial_queues_status')
@@ -222,7 +222,7 @@
         self.hgQueueStatusAct.triggered.connect(self.__hgQueueStatus)
         self.actions.append(self.hgQueueStatusAct)
         
-        self.hgQueueSummaryAct = E5Action(
+        self.hgQueueSummaryAct = EricAction(
             self.tr('Show Summary'),
             self.tr('Show summary...'),
             0, 0, self, 'mercurial_queues_summary')
@@ -246,7 +246,7 @@
         """
         Private method to generate the push and pop action objects.
         """
-        self.hgQueuePushAct = E5Action(
+        self.hgQueuePushAct = EricAction(
             self.tr('Push Next Patch'),
             self.tr('Push Next Patch'),
             0, 0, self, 'mercurial_queues_push_next')
@@ -261,7 +261,7 @@
         self.hgQueuePushAct.triggered.connect(self.__hgQueuePushPatch)
         self.actions.append(self.hgQueuePushAct)
         
-        self.hgQueuePushAllAct = E5Action(
+        self.hgQueuePushAllAct = EricAction(
             self.tr('Push All Patches'),
             self.tr('Push All Patches'),
             0, 0, self, 'mercurial_queues_push_all')
@@ -277,7 +277,7 @@
             self.__hgQueuePushAllPatches)
         self.actions.append(self.hgQueuePushAllAct)
         
-        self.hgQueuePushUntilAct = E5Action(
+        self.hgQueuePushUntilAct = EricAction(
             self.tr('Push Patches'),
             self.tr('Push Patches'),
             0, 0, self, 'mercurial_queues_push_until')
@@ -293,7 +293,7 @@
             self.__hgQueuePushPatches)
         self.actions.append(self.hgQueuePushUntilAct)
         
-        self.hgQueuePopAct = E5Action(
+        self.hgQueuePopAct = EricAction(
             self.tr('Pop Current Patch'),
             self.tr('Pop Current Patch'),
             0, 0, self, 'mercurial_queues_pop_current')
@@ -308,7 +308,7 @@
         self.hgQueuePopAct.triggered.connect(self.__hgQueuePopPatch)
         self.actions.append(self.hgQueuePopAct)
         
-        self.hgQueuePopAllAct = E5Action(
+        self.hgQueuePopAllAct = EricAction(
             self.tr('Pop All Patches'),
             self.tr('Pop All Patches'),
             0, 0, self, 'mercurial_queues_pop_all')
@@ -324,7 +324,7 @@
             self.__hgQueuePopAllPatches)
         self.actions.append(self.hgQueuePopAllAct)
         
-        self.hgQueuePopUntilAct = E5Action(
+        self.hgQueuePopUntilAct = EricAction(
             self.tr('Pop Patches'),
             self.tr('Pop Patches'),
             0, 0, self, 'mercurial_queues_pop_until')
@@ -339,7 +339,7 @@
         self.hgQueuePopUntilAct.triggered.connect(self.__hgQueuePopPatches)
         self.actions.append(self.hgQueuePopUntilAct)
         
-        self.hgQueueGotoAct = E5Action(
+        self.hgQueueGotoAct = EricAction(
             self.tr('Go to Patch'),
             self.tr('Go to Patch'),
             0, 0, self, 'mercurial_queues_goto')
@@ -358,7 +358,7 @@
         """
         Private method to generate the push and pop (force) action objects.
         """
-        self.hgQueuePushForceAct = E5Action(
+        self.hgQueuePushForceAct = EricAction(
             self.tr('Push Next Patch'),
             self.tr('Push Next Patch'),
             0, 0, self, 'mercurial_queues_push_next_force')
@@ -374,7 +374,7 @@
             self.__hgQueuePushPatchForced)
         self.actions.append(self.hgQueuePushForceAct)
         
-        self.hgQueuePushAllForceAct = E5Action(
+        self.hgQueuePushAllForceAct = EricAction(
             self.tr('Push All Patches'),
             self.tr('Push All Patches'),
             0, 0, self, 'mercurial_queues_push_all_force')
@@ -390,7 +390,7 @@
             self.__hgQueuePushAllPatchesForced)
         self.actions.append(self.hgQueuePushAllForceAct)
         
-        self.hgQueuePushUntilForceAct = E5Action(
+        self.hgQueuePushUntilForceAct = EricAction(
             self.tr('Push Patches'),
             self.tr('Push Patches'),
             0, 0, self, 'mercurial_queues_push_until_force')
@@ -407,7 +407,7 @@
             self.__hgQueuePushPatchesForced)
         self.actions.append(self.hgQueuePushUntilForceAct)
         
-        self.hgQueuePopForceAct = E5Action(
+        self.hgQueuePopForceAct = EricAction(
             self.tr('Pop Current Patch'),
             self.tr('Pop Current Patch'),
             0, 0, self, 'mercurial_queues_pop_current_force')
@@ -424,7 +424,7 @@
             self.__hgQueuePopPatchForced)
         self.actions.append(self.hgQueuePopForceAct)
         
-        self.hgQueuePopAllForceAct = E5Action(
+        self.hgQueuePopAllForceAct = EricAction(
             self.tr('Pop All Patches'),
             self.tr('Pop All Patches'),
             0, 0, self, 'mercurial_queues_pop_all_force')
@@ -440,7 +440,7 @@
             self.__hgQueuePopAllPatchesForced)
         self.actions.append(self.hgQueuePopAllForceAct)
         
-        self.hgQueuePopUntilForceAct = E5Action(
+        self.hgQueuePopUntilForceAct = EricAction(
             self.tr('Pop Patches'),
             self.tr('Pop Patches'),
             0, 0, self, 'mercurial_queues_pop_until_force')
@@ -457,7 +457,7 @@
             self.__hgQueuePopPatchesForced)
         self.actions.append(self.hgQueuePopUntilForceAct)
         
-        self.hgQueueGotoForceAct = E5Action(
+        self.hgQueueGotoForceAct = EricAction(
             self.tr('Go to Patch'),
             self.tr('Go to Patch'),
             0, 0, self, 'mercurial_queues_goto_force')
@@ -478,7 +478,7 @@
         """
         Private method to generate the guards action objects.
         """
-        self.hgQueueDefineGuardsAct = E5Action(
+        self.hgQueueDefineGuardsAct = EricAction(
             self.tr('Define Guards'),
             self.tr('Define Guards...'),
             0, 0, self, 'mercurial_queues_guards_define')
@@ -494,7 +494,7 @@
             self.__hgQueueGuardsDefine)
         self.actions.append(self.hgQueueDefineGuardsAct)
         
-        self.hgQueueDropAllGuardsAct = E5Action(
+        self.hgQueueDropAllGuardsAct = EricAction(
             self.tr('Drop All Guards'),
             self.tr('Drop All Guards...'),
             0, 0, self, 'mercurial_queues_guards_drop_all')
@@ -509,7 +509,7 @@
             self.__hgQueueGuardsDropAll)
         self.actions.append(self.hgQueueDropAllGuardsAct)
         
-        self.hgQueueListGuardsAct = E5Action(
+        self.hgQueueListGuardsAct = EricAction(
             self.tr('List Guards'),
             self.tr('List Guards...'),
             0, 0, self, 'mercurial_queues_guards_list')
@@ -524,7 +524,7 @@
             self.__hgQueueGuardsList)
         self.actions.append(self.hgQueueListGuardsAct)
         
-        self.hgQueueListAllGuardsAct = E5Action(
+        self.hgQueueListAllGuardsAct = EricAction(
             self.tr('List All Guards'),
             self.tr('List All Guards...'),
             0, 0, self, 'mercurial_queues_guards_list_all')
@@ -539,7 +539,7 @@
             self.__hgQueueGuardsListAll)
         self.actions.append(self.hgQueueListAllGuardsAct)
         
-        self.hgQueueActivateGuardsAct = E5Action(
+        self.hgQueueActivateGuardsAct = EricAction(
             self.tr('Set Active Guards'),
             self.tr('Set Active Guards...'),
             0, 0, self, 'mercurial_queues_guards_set_active')
@@ -554,7 +554,7 @@
             self.__hgQueueGuardsSetActive)
         self.actions.append(self.hgQueueActivateGuardsAct)
         
-        self.hgQueueDeactivateGuardsAct = E5Action(
+        self.hgQueueDeactivateGuardsAct = EricAction(
             self.tr('Deactivate Guards'),
             self.tr('Deactivate Guards...'),
             0, 0, self, 'mercurial_queues_guards_deactivate')
@@ -569,7 +569,7 @@
             self.__hgQueueGuardsDeactivate)
         self.actions.append(self.hgQueueDeactivateGuardsAct)
         
-        self.hgQueueIdentifyActiveGuardsAct = E5Action(
+        self.hgQueueIdentifyActiveGuardsAct = EricAction(
             self.tr('Identify Active Guards'),
             self.tr('Identify Active Guards...'),
             0, 0, self, 'mercurial_queues_guards_identify_active')
@@ -588,7 +588,7 @@
         """
         Private method to generate the queues management action objects.
         """
-        self.hgQueueCreateQueueAct = E5Action(
+        self.hgQueueCreateQueueAct = EricAction(
             self.tr('Create Queue'),
             self.tr('Create Queue'),
             0, 0, self, 'mercurial_queues_create_queue')
@@ -603,7 +603,7 @@
             self.__hgQueueCreateQueue)
         self.actions.append(self.hgQueueCreateQueueAct)
         
-        self.hgQueueRenameQueueAct = E5Action(
+        self.hgQueueRenameQueueAct = EricAction(
             self.tr('Rename Queue'),
             self.tr('Rename Queue'),
             0, 0, self, 'mercurial_queues_rename_queue')
@@ -618,7 +618,7 @@
             self.__hgQueueRenameQueue)
         self.actions.append(self.hgQueueRenameQueueAct)
         
-        self.hgQueueDeleteQueueAct = E5Action(
+        self.hgQueueDeleteQueueAct = EricAction(
             self.tr('Delete Queue'),
             self.tr('Delete Queue'),
             0, 0, self, 'mercurial_queues_delete_queue')
@@ -633,7 +633,7 @@
             self.__hgQueueDeleteQueue)
         self.actions.append(self.hgQueueDeleteQueueAct)
         
-        self.hgQueuePurgeQueueAct = E5Action(
+        self.hgQueuePurgeQueueAct = EricAction(
             self.tr('Purge Queue'),
             self.tr('Purge Queue'),
             0, 0, self, 'mercurial_queues_purge_queue')
@@ -650,7 +650,7 @@
             self.__hgQueuePurgeQueue)
         self.actions.append(self.hgQueuePurgeQueueAct)
         
-        self.hgQueueActivateQueueAct = E5Action(
+        self.hgQueueActivateQueueAct = EricAction(
             self.tr('Activate Queue'),
             self.tr('Activate Queue'),
             0, 0, self, 'mercurial_queues_activate_queue')
@@ -665,7 +665,7 @@
             self.__hgQueueActivateQueue)
         self.actions.append(self.hgQueueActivateQueueAct)
         
-        self.hgQueueListQueuesAct = E5Action(
+        self.hgQueueListQueuesAct = EricAction(
             self.tr('List Queues'),
             self.tr('List Queues...'),
             0, 0, self, 'mercurial_queues_list_queues')
@@ -823,7 +823,7 @@
         shouldReopen = self.vcs.getExtensionObject("mq").hgQueuePushPopPatches(
             operation=operation, doAll=doAll, named=named, force=force)
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Changing Applied Patches"),
                 self.tr("""The project should be reread. Do this now?"""),
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/queues.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/queues.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QDialog, QApplication, QInputDialog
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from ..HgExtension import HgExtension
 from ..HgDialog import HgDialog
@@ -315,7 +315,7 @@
                 else:
                     return False
             else:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     None,
                     self.tr("Select Patch"),
                     self.tr("""No patches to select from."""))
@@ -396,7 +396,7 @@
                 if res:
                     dia.exec()
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 None,
                 self.tr("Select Patch"),
                 self.tr("""No patches to select from."""))
@@ -424,12 +424,12 @@
                     if res:
                         dia.exec()
                 else:
-                    E5MessageBox.information(
+                    EricMessageBox.information(
                         None,
                         self.tr("Fold Patches"),
                         self.tr("""No patches selected."""))
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 None,
                 self.tr("Fold Patches"),
                 self.tr("""No patches available to be folded."""))
@@ -446,7 +446,7 @@
             self.queuesListGuardsDialog.show()
             self.queuesListGuardsDialog.start()
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 None,
                 self.tr("List Guards"),
                 self.tr("""No patches available to list guards for."""))
@@ -472,7 +472,7 @@
             self.queuesDefineGuardsDialog.show()
             self.queuesDefineGuardsDialog.start()
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 None,
                 self.tr("Define Guards"),
                 self.tr("""No patches available to define guards for."""))
@@ -500,7 +500,7 @@
                 client = self.vcs.getClient()
                 client.runcommand(args)
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 None,
                 self.tr("Drop All Guards"),
                 self.tr("""No patches available to define guards for."""))
@@ -528,7 +528,7 @@
                     if res:
                         dia.exec()
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 None,
                 self.tr("Set Active Guards"),
                 self.tr("""No guards available to select from."""))
@@ -596,7 +596,7 @@
                     else:
                         errMsg = self.tr(
                             "Error while renaming the active queue.")
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         None,
                         title,
                         """<p>{0}</p><p>{1}</p>""".format(errMsg, error))
@@ -654,7 +654,7 @@
                     elif operation == Queues.QUEUE_ACTIVATE:
                         errMsg = self.tr(
                             "Error while setting the active queue.")
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         None,
                         title,
                         """<p>{0}</p><p>{1}</p>""".format(errMsg, error))
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/RebaseExtension/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/RebaseExtension/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -9,8 +9,8 @@
 
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 from ..HgExtensionProjectHelper import HgExtensionProjectHelper
 
@@ -31,7 +31,7 @@
         """
         Public method to generate the action objects.
         """
-        self.hgRebaseAct = E5Action(
+        self.hgRebaseAct = EricAction(
             self.tr('Rebase Changesets'),
             UI.PixmapCache.getIcon("vcsRebase"),
             self.tr('Rebase Changesets'),
@@ -46,7 +46,7 @@
         self.hgRebaseAct.triggered.connect(self.__hgRebase)
         self.actions.append(self.hgRebaseAct)
         
-        self.hgRebaseContinueAct = E5Action(
+        self.hgRebaseContinueAct = EricAction(
             self.tr('Continue Rebase Session'),
             self.tr('Continue Rebase Session'),
             0, 0, self, 'mercurial_rebase_continue')
@@ -60,7 +60,7 @@
         self.hgRebaseContinueAct.triggered.connect(self.__hgRebaseContinue)
         self.actions.append(self.hgRebaseContinueAct)
         
-        self.hgRebaseAbortAct = E5Action(
+        self.hgRebaseAbortAct = EricAction(
             self.tr('Abort Rebase Session'),
             self.tr('Abort Rebase Session'),
             0, 0, self, 'mercurial_rebase_abort')
@@ -105,7 +105,7 @@
         """
         shouldReopen = self.vcs.getExtensionObject("rebase").hgRebase()
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Rebase Changesets"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -119,7 +119,7 @@
         """
         shouldReopen = self.vcs.getExtensionObject("rebase").hgRebaseContinue()
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Rebase Changesets (Continue)"),
                 self.tr("""The project should be reread. Do this now?"""),
@@ -133,7 +133,7 @@
         """
         shouldReopen = self.vcs.getExtensionObject("rebase").hgRebaseAbort()
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Rebase Changesets (Abort)"),
                 self.tr("""The project should be reread. Do this now?"""),
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/HgShelveBrowserDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/HgShelveBrowserDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
     QHeaderView, QApplication
 )
 
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .Ui_HgShelveBrowserDialog import Ui_HgShelveBrowserDialog
 
@@ -143,7 +143,7 @@
         args.append("--list")
         args.append("--stat")
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             out, err = self.__hgClient.runcommand(args)
             self.buf = out.splitlines(True)
             if err:
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/ProjectBrowserHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/ProjectBrowserHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from ..HgExtensionProjectBrowserHelper import HgExtensionProjectBrowserHelper
 
@@ -91,7 +91,7 @@
         @param title title of the message box (string)
         """
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 title,
                 self.tr("""The project should be reread. Do this now?"""),
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -9,8 +9,8 @@
 
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 from ..HgExtensionProjectHelper import HgExtensionProjectHelper
 
@@ -29,7 +29,7 @@
         """
         Public method to generate the action objects.
         """
-        self.hgShelveAct = E5Action(
+        self.hgShelveAct = EricAction(
             self.tr('Shelve changes'),
             self.tr('Shelve changes...'),
             0, 0, self, 'mercurial_shelve')
@@ -43,7 +43,7 @@
         self.hgShelveAct.triggered.connect(self.__hgShelve)
         self.actions.append(self.hgShelveAct)
         
-        self.hgShelveBrowserAct = E5Action(
+        self.hgShelveBrowserAct = EricAction(
             self.tr('Show shelve browser'),
             self.tr('Show shelve browser...'),
             0, 0, self, 'mercurial_shelve_browser')
@@ -60,7 +60,7 @@
             self.__hgShelveBrowser)
         self.actions.append(self.hgShelveBrowserAct)
         
-        self.hgUnshelveAct = E5Action(
+        self.hgUnshelveAct = EricAction(
             self.tr('Restore shelved change'),
             self.tr('Restore shelved change...'),
             0, 0, self, 'mercurial_unshelve')
@@ -75,7 +75,7 @@
         self.hgUnshelveAct.triggered.connect(self.__hgUnshelve)
         self.actions.append(self.hgUnshelveAct)
         
-        self.hgUnshelveAbortAct = E5Action(
+        self.hgUnshelveAbortAct = EricAction(
             self.tr('Abort restore'),
             self.tr('Abort restore...'),
             0, 0, self, 'mercurial_unshelve_abort')
@@ -90,7 +90,7 @@
         self.hgUnshelveAbortAct.triggered.connect(self.__hgUnshelveAbort)
         self.actions.append(self.hgUnshelveAbortAct)
         
-        self.hgUnshelveContinueAct = E5Action(
+        self.hgUnshelveContinueAct = EricAction(
             self.tr('Continue restore'),
             self.tr('Continue restore...'),
             0, 0, self, 'mercurial_unshelve_continue')
@@ -105,7 +105,7 @@
             self.__hgUnshelveContinue)
         self.actions.append(self.hgUnshelveContinueAct)
         
-        self.hgShelveDeleteAct = E5Action(
+        self.hgShelveDeleteAct = EricAction(
             self.tr('Delete shelved changes'),
             self.tr('Delete shelved changes...'),
             0, 0, self, 'mercurial_shelve_delete')
@@ -118,7 +118,7 @@
             self.__hgDeleteShelves)
         self.actions.append(self.hgShelveDeleteAct)
         
-        self.hgShelveCleanupAct = E5Action(
+        self.hgShelveCleanupAct = EricAction(
             self.tr('Delete ALL shelved changes'),
             self.tr('Delete ALL shelved changes'),
             0, 0, self, 'mercurial_shelve_cleanup')
@@ -170,7 +170,7 @@
         @param title title of the message box (string)
         """
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 title,
                 self.tr("""The project should be reread. Do this now?"""),
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/shelve.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/shelve.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from ..HgExtension import HgExtension
 from ..HgDialog import HgDialog
@@ -214,7 +214,7 @@
         """
         Public method to delete all shelves.
         """
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             None,
             self.tr("Delete all shelves"),
             self.tr("""Do you really want to delete all shelved changes?"""))
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/StripExtension/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/StripExtension/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -9,8 +9,8 @@
 
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 from ..HgExtensionProjectHelper import HgExtensionProjectHelper
 
@@ -31,7 +31,7 @@
         """
         Public method to generate the action objects.
         """
-        self.hgStripAct = E5Action(
+        self.hgStripAct = EricAction(
             self.tr('Strip changesets'),
             UI.PixmapCache.getIcon("fileDelete"),
             self.tr('Strip changesets'),
@@ -80,7 +80,7 @@
         shouldReopen = self.vcs.getExtensionObject("strip").hgStrip(
             self.project.getProjectPath())
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Strip"),
                 self.tr("""The project should be reread. Do this now?"""),
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
 )
 from PyQt6.QtWidgets import QApplication, QDialog, QInputDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox, EricFileDialog
 
 from QScintilla.MiniEditor import MiniEditor
 
@@ -275,7 +275,7 @@
         """
         success = self.vcsImport(vcsDataDict, project.ppath, addAll=addAll)[0]
         if not success:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Create project repository"),
                 self.tr(
@@ -452,7 +452,7 @@
             for nam in nameList:
                 # check for commit of the project
                 if os.path.isdir(nam):
-                    project = e5App().getObject("Project")
+                    project = ericApp().getObject("Project")
                     if nam == project.getProjectPath():
                         ok &= (
                             project.checkAllScriptsDirty(
@@ -462,7 +462,7 @@
                         continue
                 elif os.path.isfile(nam):
                     editor = (
-                        e5App().getObject("ViewManager").getOpenEditor(nam)
+                        ericApp().getObject("ViewManager").getOpenEditor(nam)
                     )
                     if editor:
                         ok &= editor.checkDirty()
@@ -470,13 +470,13 @@
                     break
             
             if not ok:
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self.__ui,
                     self.tr("Commit Changes"),
                     self.tr(
                         """The commit affects files, that have unsaved"""
                         """ changes. Shall the commit be continued?"""),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
         
@@ -536,7 +536,7 @@
             dia.exec()
         self.committed.emit()
         if self.__forgotNames:
-            model = e5App().getObject("Project").getModel()
+            model = ericApp().getObject("Project").getModel()
             for name in self.__forgotNames:
                 model.updateVCSStatus(name)
             self.__forgotNames = []
@@ -751,11 +751,11 @@
         names = name[:] if isinstance(name, list) else [name]
         for nam in names:
             if os.path.isfile(nam):
-                editor = e5App().getObject("ViewManager").getOpenEditor(nam)
+                editor = ericApp().getObject("ViewManager").getOpenEditor(nam)
                 if editor and not editor.checkDirty():
                     return
             else:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if nam == project.ppath and not project.saveAllScripts():
                     return
         if self.diff is None:
@@ -868,7 +868,7 @@
             args.append(name)
             names = [name]
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         names = [project.getRelativePath(nam) for nam in names]
         if names[0]:
             from UI.DeleteFilesConfirmationDialog import (
@@ -883,7 +883,7 @@
                 names)
             yes = dlg.exec() == QDialog.DialogCode.Accepted
         else:
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 None,
                 self.tr("Revert changes"),
                 self.tr("""Do you really want to revert all changes of"""
@@ -954,7 +954,7 @@
             args.append(name)
             names = [name]
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         names = [project.getRelativePath(nam) for nam in names]
         if names[0]:
             from UI.DeleteFilesConfirmationDialog import (
@@ -969,7 +969,7 @@
                 names)
             yes = dlg.exec() == QDialog.DialogCode.Accepted
         else:
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 None,
                 self.tr("Re-Merge"),
                 self.tr("""Do you really want to re-merge the project?"""))
@@ -1453,11 +1453,11 @@
         names = name[:] if isinstance(name, list) else [name]
         for nam in names:
             if os.path.isfile(nam):
-                editor = e5App().getObject("ViewManager").getOpenEditor(nam)
+                editor = ericApp().getObject("ViewManager").getOpenEditor(nam)
                 if editor and not editor.checkDirty():
                     return
             else:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if nam == project.ppath and not project.saveAllScripts():
                     return
         
@@ -1523,7 +1523,7 @@
         
         output1, error = self.__hgGetFileForRevision(name, rev=rev1)
         if error:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Mercurial Side-by-Side Difference"),
                 error)
@@ -1533,7 +1533,7 @@
         if rev2:
             output2, error = self.__hgGetFileForRevision(name, rev=rev2)
             if error:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Mercurial Side-by-Side Difference"),
                     error)
@@ -1545,7 +1545,7 @@
                     output2 = f1.read()
                 name2 = "{0} (Work)".format(name)
             except OSError:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Mercurial Side-by-Side Difference"),
                     self.tr(
@@ -2022,12 +2022,12 @@
         
         ignoreName = os.path.join(name, Hg.IgnoreFileName)
         res = (
-            E5MessageBox.yesNo(
+            EricMessageBox.yesNo(
                 self.__ui,
                 self.tr("Create .hgignore file"),
                 self.tr("""<p>The file <b>{0}</b> exists already."""
                         """ Overwrite it?</p>""").format(ignoreName),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if os.path.exists(ignoreName) else
             True
         )
@@ -2043,7 +2043,7 @@
             
             if status and autoAdd:
                 self.vcsAdd(ignoreName, noDialog=True)
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 project.appendFile(ignoreName)
         
         return status
@@ -2074,13 +2074,13 @@
             compression = ""
             bundleAll = bundleData["all"]
         
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             None,
             self.tr("Create changegroup"),
             self.__lastChangeGroupPath,
             self.tr("Mercurial Changegroup Files (*.hg)"),
             None,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
@@ -2091,13 +2091,13 @@
             if ex:
                 fname += ex
         if QFileInfo(fname).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.__ui,
                 self.tr("Create changegroup"),
                 self.tr("<p>The Mercurial changegroup file <b>{0}</b> "
                         "already exists. Overwrite it?</p>")
                     .format(fname),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return
         fname = Utilities.toNativeSeparators(fname)
@@ -2127,7 +2127,7 @@
         Public method used to view the log of incoming changes from a
         changegroup file.
         """
-        file = E5FileDialog.getOpenFileName(
+        file = EricFileDialog.getOpenFileName(
             None,
             self.tr("Preview changegroup"),
             self.__lastChangeGroupPath,
@@ -2155,7 +2155,7 @@
         """
         res = False
         if not files:
-            files = E5FileDialog.getOpenFileNames(
+            files = EricFileDialog.getOpenFileNames(
                 None,
                 self.tr("Apply changegroups"),
                 self.__lastChangeGroupPath,
@@ -2164,7 +2164,7 @@
         if files:
             self.__lastChangeGroupPath = os.path.dirname(files[0])
             
-            update = E5MessageBox.yesNo(
+            update = EricMessageBox.yesNo(
                 self.__ui,
                 self.tr("Apply changegroups"),
                 self.tr("""Shall the working directory be updated?"""),
@@ -2261,7 +2261,7 @@
         if dlg.exec() == QDialog.DialogCode.Accepted:
             rev, merge, date, user, message = dlg.getParameters()
             if not rev:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self.__ui,
                     self.tr("Backing out changeset"),
                     self.tr("""No revision given. Aborting..."""))
@@ -2290,12 +2290,12 @@
         """
         Public method used to rollback the last transaction.
         """
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             None,
             self.tr("Rollback last transaction"),
             self.tr("""Are you sure you want to rollback the last"""
                     """ transaction?"""),
-            icon=E5MessageBox.Warning)
+            icon=EricMessageBox.Warning)
         if res:
             dia = HgDialog(self.tr('Rollback last transaction'), self)
             res = dia.startProcess(["rollback"])
@@ -2577,7 +2577,7 @@
         """
         backupdir = os.path.join(self.getClient().getRepository(),
                                  self.adminDir, "strip-backup")
-        yes = E5MessageBox.yesNo(
+        yes = EricMessageBox.yesNo(
             self.__ui,
             self.tr("Delete All Backups"),
             self.tr("""<p>Do you really want to delete all backup bundles"""
@@ -2633,7 +2633,7 @@
                     with open(hgsub, "r") as f:
                         contents = f.readlines()
                 except OSError as err:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.__ui,
                         self.tr("Add Sub-repository"),
                         self.tr(
@@ -2643,7 +2643,7 @@
                     return
                 
                 if entry in contents:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.__ui,
                         self.tr("Add Sub-repository"),
                         self.tr(
@@ -2661,7 +2661,7 @@
                 with open(hgsub, "w") as f:
                     f.writelines(contents)
             except OSError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Add Sub-repository"),
                     self.tr(
@@ -2682,7 +2682,7 @@
         
         subrepositories = []
         if not os.path.isfile(hgsub):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Remove Sub-repositories"),
                 self.tr("""<p>The sub-repositories file .hgsub does not"""
@@ -2693,7 +2693,7 @@
             with open(hgsub, "r") as f:
                 subrepositories = [line.strip() for line in f.readlines()]
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Remove Sub-repositories"),
                 self.tr("""<p>The sub-repositories file .hgsub could not"""
@@ -2712,7 +2712,7 @@
                 with open(hgsub, "w") as f:
                     f.write(contents)
             except OSError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Remove Sub-repositories"),
                     self.tr(
@@ -2797,7 +2797,7 @@
         if self.__client:
             ok, err = self.__client.restartServer()
             if not ok:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     None,
                     self.tr("Mercurial Command Server"),
                     self.tr(
@@ -2935,7 +2935,7 @@
         self.__client = HgClient(repodir, "utf-8", self)
         ok, err = self.__client.startServer()
         if not ok:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Mercurial Command Server"),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/ProjectBrowserHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/ProjectBrowserHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from VCS.ProjectBrowserHelper import VcsProjectBrowserHelper
 
@@ -945,7 +945,7 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences(
+        ericApp().getObject("UserInterface").showPreferences(
             "zzz_subversionPage")
         
     def __SVNAddToChangelist(self):
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -13,8 +13,8 @@
 
 from VCS.ProjectHelper import VcsProjectHelper
 
-from E5Gui.E5Action import E5Action
-from E5Gui.E5Application import e5App
+from E5Gui.EricAction import EricAction
+from E5Gui.EricApplication import ericApp
 
 import UI.PixmapCache
 
@@ -38,7 +38,7 @@
         """
         Public method to get a list of all actions.
         
-        @return list of all actions (list of E5Action)
+        @return list of all actions (list of EricAction)
         """
         return self.actions[:]
     
@@ -46,7 +46,7 @@
         """
         Public method to generate the action objects.
         """
-        self.vcsNewAct = E5Action(
+        self.vcsNewAct = EricAction(
             self.tr('New from repository'),
             UI.PixmapCache.getIcon("vcsCheckout"),
             self.tr('&New from repository...'), 0, 0, self,
@@ -62,7 +62,7 @@
         self.vcsNewAct.triggered.connect(self._vcsCheckout)
         self.actions.append(self.vcsNewAct)
         
-        self.vcsUpdateAct = E5Action(
+        self.vcsUpdateAct = EricAction(
             self.tr('Update from repository'),
             UI.PixmapCache.getIcon("vcsUpdate"),
             self.tr('&Update from repository'), 0, 0, self,
@@ -78,7 +78,7 @@
         self.vcsUpdateAct.triggered.connect(self._vcsUpdate)
         self.actions.append(self.vcsUpdateAct)
         
-        self.vcsCommitAct = E5Action(
+        self.vcsCommitAct = EricAction(
             self.tr('Commit changes to repository'),
             UI.PixmapCache.getIcon("vcsCommit"),
             self.tr('&Commit changes to repository...'), 0, 0, self,
@@ -94,7 +94,7 @@
         self.vcsCommitAct.triggered.connect(self._vcsCommit)
         self.actions.append(self.vcsCommitAct)
         
-        self.svnLogBrowserAct = E5Action(
+        self.svnLogBrowserAct = EricAction(
             self.tr('Show log browser'),
             UI.PixmapCache.getIcon("vcsLog"),
             self.tr('Show log browser'),
@@ -111,7 +111,7 @@
         self.svnLogBrowserAct.triggered.connect(self._vcsLogBrowser)
         self.actions.append(self.svnLogBrowserAct)
         
-        self.vcsDiffAct = E5Action(
+        self.vcsDiffAct = EricAction(
             self.tr('Show differences'),
             UI.PixmapCache.getIcon("vcsDiff"),
             self.tr('Show &difference'),
@@ -127,7 +127,7 @@
         self.vcsDiffAct.triggered.connect(self._vcsDiff)
         self.actions.append(self.vcsDiffAct)
         
-        self.svnExtDiffAct = E5Action(
+        self.svnExtDiffAct = EricAction(
             self.tr('Show differences (extended)'),
             UI.PixmapCache.getIcon("vcsDiff"),
             self.tr('Show differences (extended)'),
@@ -143,7 +143,7 @@
         self.svnExtDiffAct.triggered.connect(self.__svnExtendedDiff)
         self.actions.append(self.svnExtDiffAct)
         
-        self.svnUrlDiffAct = E5Action(
+        self.svnUrlDiffAct = EricAction(
             self.tr('Show differences (URLs)'),
             UI.PixmapCache.getIcon("vcsDiff"),
             self.tr('Show differences (URLs)'),
@@ -159,7 +159,7 @@
         self.svnUrlDiffAct.triggered.connect(self.__svnUrlDiff)
         self.actions.append(self.svnUrlDiffAct)
         
-        self.vcsStatusAct = E5Action(
+        self.vcsStatusAct = EricAction(
             self.tr('Show status'),
             UI.PixmapCache.getIcon("vcsStatus"),
             self.tr('Show &status'),
@@ -174,7 +174,7 @@
         self.vcsStatusAct.triggered.connect(self._vcsStatus)
         self.actions.append(self.vcsStatusAct)
         
-        self.svnChangeListsAct = E5Action(
+        self.svnChangeListsAct = EricAction(
             self.tr('Show change lists'),
             UI.PixmapCache.getIcon("vcsChangeLists"),
             self.tr('Show change lists'),
@@ -190,7 +190,7 @@
         self.svnChangeListsAct.triggered.connect(self.__svnChangeLists)
         self.actions.append(self.svnChangeListsAct)
         
-        self.svnRepoInfoAct = E5Action(
+        self.svnRepoInfoAct = EricAction(
             self.tr('Show repository info'),
             UI.PixmapCache.getIcon("vcsRepo"),
             self.tr('Show repository info'),
@@ -206,7 +206,7 @@
         self.svnRepoInfoAct.triggered.connect(self.__svnInfo)
         self.actions.append(self.svnRepoInfoAct)
         
-        self.vcsTagAct = E5Action(
+        self.vcsTagAct = EricAction(
             self.tr('Tag in repository'),
             UI.PixmapCache.getIcon("vcsTag"),
             self.tr('&Tag in repository...'),
@@ -221,7 +221,7 @@
         self.vcsTagAct.triggered.connect(self._vcsTag)
         self.actions.append(self.vcsTagAct)
         
-        self.vcsExportAct = E5Action(
+        self.vcsExportAct = EricAction(
             self.tr('Export from repository'),
             UI.PixmapCache.getIcon("vcsExport"),
             self.tr('&Export from repository...'),
@@ -236,7 +236,7 @@
         self.vcsExportAct.triggered.connect(self._vcsExport)
         self.actions.append(self.vcsExportAct)
         
-        self.vcsPropsAct = E5Action(
+        self.vcsPropsAct = EricAction(
             self.tr('Command options'),
             self.tr('Command &options...'), 0, 0, self,
             'pysvn_options')
@@ -249,7 +249,7 @@
         self.vcsPropsAct.triggered.connect(self._vcsCommandOptions)
         self.actions.append(self.vcsPropsAct)
         
-        self.vcsRevertAct = E5Action(
+        self.vcsRevertAct = EricAction(
             self.tr('Revert changes'),
             UI.PixmapCache.getIcon("vcsRevert"),
             self.tr('Re&vert changes'),
@@ -264,7 +264,7 @@
         self.vcsRevertAct.triggered.connect(self._vcsRevert)
         self.actions.append(self.vcsRevertAct)
         
-        self.vcsMergeAct = E5Action(
+        self.vcsMergeAct = EricAction(
             self.tr('Merge'),
             UI.PixmapCache.getIcon("vcsMerge"),
             self.tr('Mer&ge changes...'),
@@ -280,7 +280,7 @@
         self.vcsMergeAct.triggered.connect(self._vcsMerge)
         self.actions.append(self.vcsMergeAct)
         
-        self.vcsSwitchAct = E5Action(
+        self.vcsSwitchAct = EricAction(
             self.tr('Switch'),
             UI.PixmapCache.getIcon("vcsSwitch"),
             self.tr('S&witch...'),
@@ -295,7 +295,7 @@
         self.vcsSwitchAct.triggered.connect(self._vcsSwitch)
         self.actions.append(self.vcsSwitchAct)
         
-        self.vcsResolveAct = E5Action(
+        self.vcsResolveAct = EricAction(
             self.tr('Conflicts resolved'),
             self.tr('Con&flicts resolved'),
             0, 0, self, 'pysvn_resolve')
@@ -310,7 +310,7 @@
         self.vcsResolveAct.triggered.connect(self.__svnResolve)
         self.actions.append(self.vcsResolveAct)
         
-        self.vcsCleanupAct = E5Action(
+        self.vcsCleanupAct = EricAction(
             self.tr('Cleanup'),
             self.tr('Cleanu&p'),
             0, 0, self, 'pysvn_cleanup')
@@ -324,7 +324,7 @@
         self.vcsCleanupAct.triggered.connect(self._vcsCleanup)
         self.actions.append(self.vcsCleanupAct)
         
-        self.vcsCommandAct = E5Action(
+        self.vcsCommandAct = EricAction(
             self.tr('Execute command'),
             self.tr('E&xecute command...'),
             0, 0, self, 'pysvn_command')
@@ -338,7 +338,7 @@
         self.vcsCommandAct.triggered.connect(self._vcsCommand)
         self.actions.append(self.vcsCommandAct)
         
-        self.svnTagListAct = E5Action(
+        self.svnTagListAct = EricAction(
             self.tr('List tags'),
             self.tr('List tags...'),
             0, 0, self, 'pysvn_list_tags')
@@ -352,7 +352,7 @@
         self.svnTagListAct.triggered.connect(self.__svnTagList)
         self.actions.append(self.svnTagListAct)
         
-        self.svnBranchListAct = E5Action(
+        self.svnBranchListAct = EricAction(
             self.tr('List branches'),
             self.tr('List branches...'),
             0, 0, self, 'pysvn_list_branches')
@@ -366,7 +366,7 @@
         self.svnBranchListAct.triggered.connect(self.__svnBranchList)
         self.actions.append(self.svnBranchListAct)
         
-        self.svnListAct = E5Action(
+        self.svnListAct = EricAction(
             self.tr('List repository contents'),
             self.tr('List repository contents...'),
             0, 0, self, 'pysvn_contents')
@@ -380,7 +380,7 @@
         self.svnListAct.triggered.connect(self.__svnTagList)
         self.actions.append(self.svnListAct)
         
-        self.svnPropSetAct = E5Action(
+        self.svnPropSetAct = EricAction(
             self.tr('Set Property'),
             self.tr('Set Property...'),
             0, 0, self, 'pysvn_property_set')
@@ -394,7 +394,7 @@
         self.svnPropSetAct.triggered.connect(self.__svnPropSet)
         self.actions.append(self.svnPropSetAct)
         
-        self.svnPropListAct = E5Action(
+        self.svnPropListAct = EricAction(
             self.tr('List Properties'),
             self.tr('List Properties...'),
             0, 0, self, 'pysvn_property_list')
@@ -408,7 +408,7 @@
         self.svnPropListAct.triggered.connect(self.__svnPropList)
         self.actions.append(self.svnPropListAct)
         
-        self.svnPropDelAct = E5Action(
+        self.svnPropDelAct = EricAction(
             self.tr('Delete Property'),
             self.tr('Delete Property...'),
             0, 0, self, 'pysvn_property_delete')
@@ -422,7 +422,7 @@
         self.svnPropDelAct.triggered.connect(self.__svnPropDel)
         self.actions.append(self.svnPropDelAct)
         
-        self.svnRelocateAct = E5Action(
+        self.svnRelocateAct = EricAction(
             self.tr('Relocate'),
             UI.PixmapCache.getIcon("vcsSwitch"),
             self.tr('Relocate...'),
@@ -438,7 +438,7 @@
         self.svnRelocateAct.triggered.connect(self.__svnRelocate)
         self.actions.append(self.svnRelocateAct)
         
-        self.svnRepoBrowserAct = E5Action(
+        self.svnRepoBrowserAct = EricAction(
             self.tr('Repository Browser'),
             UI.PixmapCache.getIcon("vcsRepoBrowser"),
             self.tr('Repository Browser...'),
@@ -453,7 +453,7 @@
         self.svnRepoBrowserAct.triggered.connect(self.__svnRepoBrowser)
         self.actions.append(self.svnRepoBrowserAct)
         
-        self.svnConfigAct = E5Action(
+        self.svnConfigAct = EricAction(
             self.tr('Configure'),
             self.tr('Configure...'),
             0, 0, self, 'pysvn_configure')
@@ -468,7 +468,7 @@
         self.svnConfigAct.triggered.connect(self.__svnConfigure)
         self.actions.append(self.svnConfigAct)
         
-        self.svnUpgradeAct = E5Action(
+        self.svnUpgradeAct = EricAction(
             self.tr('Upgrade'),
             self.tr('Upgrade...'),
             0, 0, self, 'pysvn_upgrade')
@@ -549,7 +549,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         self.__toolbar = QToolBar(self.tr("Subversion (pysvn)"), ui)
         self.__toolbar.setIconSize(UI.Config.ToolBarIconSize)
@@ -593,7 +593,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         ui.removeToolBar(self.__toolbar)
         ui.unregisterToolbar("pysvn")
@@ -677,7 +677,7 @@
         """
         Private slot to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences(
+        ericApp().getObject("UserInterface").showPreferences(
             "zzz_subversionPage")
     
     def __svnChangeLists(self):
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnChangeListsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnChangeListsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 from PyQt6.QtCore import pyqtSlot, Qt
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QListWidgetItem
 
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from EricUtilities.EricMutexLocker import EricMutexLocker
 
@@ -80,7 +80,7 @@
         self.filesLabel.setText(
             self.tr("Files (relative to {0}):").format(path))
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             try:
                 with EricMutexLocker(self.vcs.vcsExecutionMutex):
                     entries = self.client.get_changelist(
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnCommandDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnCommandDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_SvnCommandDialog import Ui_SvnCommandDialog
 
@@ -36,7 +36,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.workdirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.workdirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.okButton = self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok)
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnCommandDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnCommandDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -61,7 +61,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5ComboPathPicker" name="workdirPicker" native="true">
+    <widget class="EricComboPathPicker" name="workdirPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -126,9 +126,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5ComboPathPicker</class>
+   <class>EricComboPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnCopyDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnCopyDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_SvnCopyDialog import Ui_SvnCopyDialog
 
@@ -36,9 +36,9 @@
         
         self.source = source
         if os.path.isdir(self.source):
-            self.targetPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+            self.targetPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         else:
-            self.targetPicker.setMode(E5PathPickerModes.SAVE_FILE_MODE)
+            self.targetPicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
         
         if move:
             self.setWindowTitle(self.tr('Subversion Move'))
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnCopyDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnCopyDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -46,7 +46,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5PathPicker" name="targetPicker" native="true">
+    <widget class="EricPathPicker" name="targetPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -90,9 +90,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnDialogMixin.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnDialogMixin.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 
 from PyQt6.QtWidgets import QApplication, QDialog, QWidget
 
-from E5Gui.E5OverrideCursor import E5OverridenCursor
+from E5Gui.EricOverrideCursor import EricOverridenCursor
 
 
 class SvnDialogMixin:
@@ -64,7 +64,7 @@
         """
         from .SvnLoginDialog import SvnLoginDialog
         
-        with E5OverridenCursor():
+        with EricOverridenCursor():
             parent = isinstance(self, QWidget) and self or None
             dlg = SvnLoginDialog(realm, username, may_save, parent)
             res = dlg.exec()
@@ -86,12 +86,12 @@
             acceptedFailures should indicate the accepted certificate failures
             and save should be True, if subversion should save the certificate.
         """
-        from E5Gui import E5MessageBox
+        from E5Gui import EricMessageBox
 
-        with E5OverridenCursor():
+        with EricOverridenCursor():
             parent = isinstance(self, QWidget) and self or None
-            msgBox = E5MessageBox.E5MessageBox(
-                E5MessageBox.Question,
+            msgBox = EricMessageBox.EricMessageBox(
+                EricMessageBox.Question,
                 self.tr("Subversion SSL Server Certificate"),
                 self.tr("""<p>Accept the following SSL certificate?</p>"""
                         """<table>"""
@@ -110,10 +110,10 @@
                             trust_dict["issuer_dname"]),
                 modal=True, parent=parent)
             permButton = msgBox.addButton(self.tr("&Permanent accept"),
-                                          E5MessageBox.AcceptRole)
+                                          EricMessageBox.AcceptRole)
             tempButton = msgBox.addButton(self.tr("&Temporary accept"),
-                                          E5MessageBox.AcceptRole)
-            msgBox.addButton(self.tr("&Reject"), E5MessageBox.RejectRole)
+                                          EricMessageBox.AcceptRole)
+            msgBox.addButton(self.tr("&Reject"), EricMessageBox.RejectRole)
             msgBox.exec()
         
         if msgBox.clickedButton() == permButton:
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -16,9 +16,9 @@
 from PyQt6.QtGui import QTextCursor
 from PyQt6.QtWidgets import QWidget, QDialogButtonBox
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from EricUtilities.EricMutexLocker import EricMutexLocker
 
@@ -168,7 +168,7 @@
         elif os.path.exists('/tmp'):        # secok
             tmpdir = '/tmp'                 # secok
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Subversion Diff"),
                 self.tr("""There is no temporary directory available."""))
@@ -203,11 +203,11 @@
             dname, fname = self.vcs.splitPath(fn)
             fnames = [fname]
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             cwd = os.getcwd()
             os.chdir(dname)
             try:
-                dname = e5App().getObject('Project').getRelativePath(dname)
+                dname = ericApp().getObject('Project').getRelativePath(dname)
                 if dname:
                     dname += "/"
                 with EricMutexLocker(self.vcs.vcsExecutionMutex):
@@ -420,13 +420,13 @@
         else:
             fname = self.vcs.splitPath(self.filename)[0]
         
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save Diff"),
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
@@ -437,22 +437,22 @@
             if ex:
                 fname += ex
         if QFileInfo(fname).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save Diff"),
                 self.tr("<p>The patch file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fname),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return
         fname = Utilities.toNativeSeparators(fname)
         
-        eol = e5App().getObject("Project").getEolString()
+        eol = ericApp().getObject("Project").getEolString()
         try:
             with open(fname, "w", encoding="utf-8", newline="") as f:
                 f.write(eol.join(self.contents.toPlainText().splitlines()))
         except OSError as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self, self.tr('Save Diff'),
                 self.tr(
                     '<p>The patch file <b>{0}</b> could not be saved.'
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -30,7 +30,7 @@
        <widget class="QComboBox" name="filesCombo"/>
       </item>
       <item>
-       <widget class="E5TextEditSearchWidget" name="searchWidget" native="true">
+       <widget class="EricTextEditSearchWidget" name="searchWidget" native="true">
         <property name="focusPolicy">
          <enum>Qt::WheelFocus</enum>
         </property>
@@ -94,9 +94,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TextEditSearchWidget</class>
+   <class>EricTextEditSearchWidget</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5TextEditSearchWidget.h</header>
+   <header>E5Gui/EricTextEditSearchWidget.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnDiffHighlighter.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnDiffHighlighter.py	Sat May 22 18:51:46 2021 +0200
@@ -7,10 +7,10 @@
 Module implementing a syntax highlighter for unified and context diff outputs.
 """
 
-from E5Gui.E5GenericDiffHighlighter import TERMINAL, E5GenericDiffHighlighter
+from E5Gui.EricGenericDiffHighlighter import TERMINAL, EricGenericDiffHighlighter
 
 
-class SvnDiffHighlighter(E5GenericDiffHighlighter):
+class SvnDiffHighlighter(EricGenericDiffHighlighter):
     """
     Class implementing a diff highlighter for Git.
     """
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnLogBrowserDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnLogBrowserDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -17,8 +17,8 @@
     QHeaderView, QWidget, QApplication, QDialogButtonBox, QTreeWidgetItem
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from EricUtilities.EricMutexLocker import EricMutexLocker
 
@@ -283,7 +283,7 @@
             except TypeError:
                 start = pysvn.Revision(pysvn.opt_revision_kind.head)
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             cwd = os.getcwd()
             os.chdir(self.dname)
             try:
@@ -531,7 +531,7 @@
         
         @param msg error message to show (string)
         """
-        E5MessageBox.critical(
+        EricMessageBox.critical(
             self,
             self.tr("Subversion Error"),
             msg)
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnNewProjectOptionsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnNewProjectOptionsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import QDir, pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_SvnNewProjectOptionsDialog import Ui_SvnNewProjectOptionsDialog
 from .Config import ConfigSvnProtocols
@@ -37,8 +37,8 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.vcsProjectDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
-        self.vcsUrlPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.vcsProjectDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
+        self.vcsUrlPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.protocolCombo.addItems(ConfigSvnProtocols)
         
@@ -124,14 +124,14 @@
             self.vcsUrlPicker.setText(self.localPath)
             self.vcsUrlLabel.setText(self.tr("Pat&h:"))
             self.localProtocol = True
-            self.vcsUrlPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+            self.vcsUrlPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         else:
             if self.localProtocol:
                 self.localPath = self.vcsUrlPicker.text()
                 self.vcsUrlPicker.setText(self.networkPath)
                 self.vcsUrlLabel.setText(self.tr("&URL:"))
                 self.localProtocol = False
-                self.vcsUrlPicker.setMode(E5PathPickerModes.CUSTOM_MODE)
+                self.vcsUrlPicker.setMode(EricPathPickerModes.CUSTOM_MODE)
     
     @pyqtSlot(str)
     def on_vcsUrlPicker_textChanged(self, txt):
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnNewProjectOptionsDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnNewProjectOptionsDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -50,7 +50,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5PathPicker" name="vcsUrlPicker" native="true">
+    <widget class="EricPathPicker" name="vcsUrlPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -100,7 +100,7 @@
     </widget>
    </item>
    <item row="3" column="1">
-    <widget class="E5PathPicker" name="vcsProjectDirPicker" native="true">
+    <widget class="EricPathPicker" name="vcsProjectDirPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -151,9 +151,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnOptionsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnOptionsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import QDir, pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_SvnOptionsDialog import Ui_SvnOptionsDialog
 from .Config import ConfigSvnProtocols
@@ -37,7 +37,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.vcsUrlPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.vcsUrlPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.project = project
         
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnOptionsDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnOptionsDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -50,7 +50,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5PathPicker" name="vcsUrlPicker" native="true">
+    <widget class="EricPathPicker" name="vcsUrlPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -123,9 +123,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnRepoBrowserDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnRepoBrowserDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,8 +14,8 @@
     QHeaderView, QDialog, QApplication, QDialogButtonBox, QTreeWidgetItem
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from EricUtilities.EricMutexLocker import EricMutexLocker
 
@@ -149,7 +149,7 @@
         if parent is None:
             parent = self.repoTree
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             try:
                 with EricMutexLocker(self.vcs.vcsExecutionMutex):
                     entries = self.client.list(url, recurse=False)
@@ -276,7 +276,7 @@
         
         @param msg error message to show (string)
         """
-        E5MessageBox.critical(
+        EricMessageBox.critical(
             self,
             self.tr("Subversion Error"),
             msg)
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnStatusDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnStatusDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -18,9 +18,9 @@
     QTreeWidgetItem
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from EricUtilities.EricMutexLocker import EricMutexLocker
 
@@ -319,7 +319,7 @@
         hideHistoryColumn = True
         hideSwitchedColumn = True
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             cwd = os.getcwd()
             os.chdir(self.dname)
             try:
@@ -645,7 +645,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getCommitableItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Commit"),
                 self.tr("""There are no entries selected to be"""
@@ -653,7 +653,7 @@
             return
         
         if Preferences.getVCS("AutoSaveFiles"):
-            vm = e5App().getObject("ViewManager")
+            vm = ericApp().getObject("ViewManager")
             for name in names:
                 vm.saveEditor(name)
         self.vcs.vcsCommit(names, '')
@@ -685,7 +685,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getUnversionedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Add"),
                 self.tr("""There are no unversioned entries"""
@@ -695,7 +695,7 @@
         self.vcs.vcsAdd(names)
         self.on_refreshButton_clicked()
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         for name in names:
             project.getModel().updateVCSStatus(name)
         self.vcs.checkVCSStatus()
@@ -707,7 +707,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getModifiedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Revert"),
                 self.tr("""There are no uncommitted changes"""
@@ -719,7 +719,7 @@
         self.activateWindow()
         self.on_refreshButton_clicked()
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         for name in names:
             project.getModel().updateVCSStatus(name)
         self.vcs.checkVCSStatus()
@@ -731,7 +731,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getMissingItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Revert"),
                 self.tr("""There are no missing entries"""
@@ -749,7 +749,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getModifiedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Differences"),
                 self.tr("""There are no uncommitted changes"""
@@ -770,14 +770,14 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getModifiedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Side-by-Side Diff"),
                 self.tr("""There are no uncommitted changes"""
                         """ available/selected."""))
             return
         elif len(names) > 1:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Side-by-Side Diff"),
                 self.tr("""Only one file with uncommitted changes"""
@@ -793,7 +793,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getLockActionItems(self.unlockedIndicators)]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Lock"),
                 self.tr("""There are no unlocked files"""
@@ -810,7 +810,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getLockActionItems(self.lockedIndicators)]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Unlock"),
                 self.tr("""There are no locked files"""
@@ -828,7 +828,7 @@
                  for itm in self.__getLockActionItems(
                      self.stealBreakLockIndicators)]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Break Lock"),
                 self.tr("""There are no locked files"""
@@ -846,7 +846,7 @@
                  for itm in self.__getLockActionItems(
                      self.stealBreakLockIndicators)]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Steal Lock"),
                 self.tr("""There are no locked files"""
@@ -863,7 +863,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getNonChangelistItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Remove from Changelist"),
                 self.tr(
@@ -882,7 +882,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getChangelistItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Remove from Changelist"),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnTagBranchListDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnTagBranchListDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -18,7 +18,7 @@
     QDialogButtonBox, QTreeWidgetItem
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from EricUtilities.EricMutexLocker import EricMutexLocker
 
@@ -84,7 +84,7 @@
         
         reposURL = self.vcs.svnGetReposName(dname)
         if reposURL is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Subversion Error"),
                 self.tr(
@@ -99,7 +99,7 @@
             rx_base = re.compile('(.+)/(trunk|tags|branches).*')
             match = rx_base.fullmatch(reposURL)
             if match is None:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Subversion Error"),
                     self.tr(
@@ -126,7 +126,7 @@
                 self.close()
                 return False
             if not reposPath:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Subversion List"),
                     self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnUrlSelectionDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnUrlSelectionDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 import pysvn
 
@@ -52,7 +52,7 @@
         
         reposURL = self.vcs.svnGetReposName(path)
         if reposURL is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Subversion Error"),
                 self.tr(
@@ -67,7 +67,7 @@
             rx_base = re.compile('(.+/)(trunk|tags|branches).*')
             match = rx_base.fullmatch(reposURL)
             if match is None:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Subversion Error"),
                     self.tr(
@@ -81,7 +81,7 @@
             self.repoRootLabel1.setText(reposRoot)
             self.repoRootLabel2.setText(reposRoot)
         else:
-            project = e5App().getObject('Project')
+            project = ericApp().getObject('Project')
             if (
                 Utilities.normcasepath(path) !=
                 Utilities.normcasepath(project.getProjectPath())
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/subversion.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/subversion.py	Sat May 22 18:51:46 2021 +0200
@@ -17,8 +17,8 @@
 from PyQt6.QtCore import pyqtSignal, Qt, QDateTime, QCoreApplication
 from PyQt6.QtWidgets import QLineEdit, QDialog, QInputDialog, QApplication
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from EricUtilities.EricMutexLocker import EricMutexLocker
 
@@ -207,7 +207,7 @@
         """
         success = self.vcsImport(vcsDataDict, project.ppath, addAll=addAll)[0]
         if not success:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Create project in repository"),
                 self.tr(
@@ -231,7 +231,7 @@
             if not os.path.isfile(pfn):
                 pfn += "z"
             if not os.path.isfile(pfn):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("New project"),
                     self.tr(
@@ -513,13 +513,13 @@
             for nam in nameList:
                 # check for commit of the project
                 if os.path.isdir(nam):
-                    project = e5App().getObject("Project")
+                    project = ericApp().getObject("Project")
                     if nam == project.getProjectPath():
                         ok &= project.checkAllScriptsDirty(
                             reportSyntaxErrors=True) and project.checkDirty()
                         continue
                 elif os.path.isfile(nam):
-                    editor = e5App().getObject("ViewManager").getOpenEditor(
+                    editor = ericApp().getObject("ViewManager").getOpenEditor(
                         nam)
                     if editor:
                         ok &= editor.checkDirty()
@@ -527,13 +527,13 @@
                     break
             
             if not ok:
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self.__ui,
                     self.tr("Commit Changes"),
                     self.tr(
                         """The commit affects files, that have unsaved"""
                         """ changes. Shall the commit be continued?"""),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
         
@@ -995,11 +995,11 @@
         names = name[:] if isinstance(name, list) else [name]
         for nam in names:
             if os.path.isfile(nam):
-                editor = e5App().getObject("ViewManager").getOpenEditor(nam)
+                editor = ericApp().getObject("ViewManager").getOpenEditor(nam)
                 if editor and not editor.checkDirty():
                     return
             else:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if nam == project.ppath and not project.saveAllScripts():
                     return
         if self.diff is None:
@@ -1037,7 +1037,7 @@
         
         reposURL = self.svnGetReposName(dname)
         if reposURL is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Subversion Error"),
                 self.tr(
@@ -1067,7 +1067,7 @@
             
             match = rx_base.fullmatch(reposURL)
             if match is None:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Subversion Error"),
                     self.tr(
@@ -1130,7 +1130,7 @@
             if os.path.isdir(name[0]):
                 recurse = True
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         names = [project.getRelativePath(nam) for nam in name]
         if names[0]:
             from UI.DeleteFilesConfirmationDialog import (
@@ -1145,7 +1145,7 @@
                 name)
             yes = dia.exec() == QDialog.DialogCode.Accepted
         else:
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 None,
                 self.tr("Revert changes"),
                 self.tr("""Do you really want to revert all changes of"""
@@ -1180,7 +1180,7 @@
         
         reposURL = self.svnGetReposName(dname)
         if reposURL is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Subversion Error"),
                 self.tr(
@@ -1209,7 +1209,7 @@
             rx_base = re.compile('(.+)/(trunk|tags|branches).*')
             match = rx_base.fullmatch(reposURL)
             if match is None:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Subversion Error"),
                     self.tr(
@@ -1879,7 +1879,7 @@
         if dlg.exec() == QDialog.DialogCode.Accepted:
             propName, propValue, recurse = dlg.getData()
             if not propName:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Subversion Set Property"),
                     self.tr(
@@ -1931,7 +1931,7 @@
             propName, recurse = dlg.getData()
             
             if not propName:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Subversion Delete Property"),
                     self.tr(
@@ -2033,11 +2033,11 @@
         names = name[:] if isinstance(name, list) else [name]
         for nam in names:
             if os.path.isfile(nam):
-                editor = e5App().getObject("ViewManager").getOpenEditor(nam)
+                editor = ericApp().getObject("ViewManager").getOpenEditor(nam)
                 if editor and not editor.checkDirty():
                     return
             else:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if nam == project.ppath and not project.saveAllScripts():
                     return
         from .SvnRevisionSelectionDialog import SvnRevisionSelectionDialog
@@ -2069,11 +2069,11 @@
         names = name[:] if isinstance(name, list) else [name]
         for nam in names:
             if os.path.isfile(nam):
-                editor = e5App().getObject("ViewManager").getOpenEditor(nam)
+                editor = ericApp().getObject("ViewManager").getOpenEditor(nam)
                 if editor and not editor.checkDirty():
                     return
             else:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if nam == project.ppath and not project.saveAllScripts():
                     return
         
@@ -2167,7 +2167,7 @@
         
         output1, error = self.__svnGetFileForRevision(name, rev=rev1)
         if error:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Subversion Side-by-Side Difference"),
                 error)
@@ -2177,7 +2177,7 @@
         if rev2:
             output2, error = self.__svnGetFileForRevision(name, rev=rev2)
             if error:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Subversion Side-by-Side Difference"),
                     error)
@@ -2189,7 +2189,7 @@
                     output2 = f1.read()
                 name2 = name
             except OSError:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Subversion Side-by-Side Difference"),
                     self.tr(
@@ -2453,7 +2453,7 @@
         changelists = []
         client = self.getClient()
         if hasattr(client, 'get_changelist'):
-            ppath = e5App().getObject("Project").getProjectPath()
+            ppath = ericApp().getObject("Project").getProjectPath()
             with contextlib.suppress(pysvn.ClientError):
                 with EricMutexLocker(self.vcsExecutionMutex):
                     entries = client.get_changelist(
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/ProjectBrowserHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/ProjectBrowserHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 import os
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from VCS.ProjectBrowserHelper import VcsProjectBrowserHelper
 
@@ -928,7 +928,7 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences(
+        ericApp().getObject("UserInterface").showPreferences(
             "zzz_subversionPage")
         
     def __SVNAddToChangelist(self):
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -13,8 +13,8 @@
 
 from VCS.ProjectHelper import VcsProjectHelper
 
-from E5Gui.E5Action import E5Action
-from E5Gui.E5Application import e5App
+from E5Gui.EricAction import EricAction
+from E5Gui.EricApplication import ericApp
 
 import UI.PixmapCache
 
@@ -38,7 +38,7 @@
         """
         Public method to get a list of all actions.
         
-        @return list of all actions (list of E5Action)
+        @return list of all actions (list of EricAction)
         """
         return self.actions[:]
         
@@ -46,7 +46,7 @@
         """
         Public method to generate the action objects.
         """
-        self.vcsNewAct = E5Action(
+        self.vcsNewAct = EricAction(
             self.tr('New from repository'),
             UI.PixmapCache.getIcon("vcsCheckout"),
             self.tr('&New from repository...'), 0, 0, self,
@@ -62,7 +62,7 @@
         self.vcsNewAct.triggered.connect(self._vcsCheckout)
         self.actions.append(self.vcsNewAct)
         
-        self.vcsUpdateAct = E5Action(
+        self.vcsUpdateAct = EricAction(
             self.tr('Update from repository'),
             UI.PixmapCache.getIcon("vcsUpdate"),
             self.tr('&Update from repository'), 0, 0, self,
@@ -78,7 +78,7 @@
         self.vcsUpdateAct.triggered.connect(self._vcsUpdate)
         self.actions.append(self.vcsUpdateAct)
         
-        self.vcsCommitAct = E5Action(
+        self.vcsCommitAct = EricAction(
             self.tr('Commit changes to repository'),
             UI.PixmapCache.getIcon("vcsCommit"),
             self.tr('&Commit changes to repository...'), 0, 0, self,
@@ -94,7 +94,7 @@
         self.vcsCommitAct.triggered.connect(self._vcsCommit)
         self.actions.append(self.vcsCommitAct)
         
-        self.svnLogBrowserAct = E5Action(
+        self.svnLogBrowserAct = EricAction(
             self.tr('Show log browser'),
             UI.PixmapCache.getIcon("vcsLog"),
             self.tr('Show log browser'),
@@ -111,7 +111,7 @@
         self.svnLogBrowserAct.triggered.connect(self._vcsLogBrowser)
         self.actions.append(self.svnLogBrowserAct)
         
-        self.vcsDiffAct = E5Action(
+        self.vcsDiffAct = EricAction(
             self.tr('Show differences'),
             UI.PixmapCache.getIcon("vcsDiff"),
             self.tr('Show &difference'),
@@ -127,7 +127,7 @@
         self.vcsDiffAct.triggered.connect(self._vcsDiff)
         self.actions.append(self.vcsDiffAct)
         
-        self.svnExtDiffAct = E5Action(
+        self.svnExtDiffAct = EricAction(
             self.tr('Show differences (extended)'),
             UI.PixmapCache.getIcon("vcsDiff"),
             self.tr('Show differences (extended)'),
@@ -143,7 +143,7 @@
         self.svnExtDiffAct.triggered.connect(self.__svnExtendedDiff)
         self.actions.append(self.svnExtDiffAct)
         
-        self.svnUrlDiffAct = E5Action(
+        self.svnUrlDiffAct = EricAction(
             self.tr('Show differences (URLs)'),
             UI.PixmapCache.getIcon("vcsDiff"),
             self.tr('Show differences (URLs)'),
@@ -159,7 +159,7 @@
         self.svnUrlDiffAct.triggered.connect(self.__svnUrlDiff)
         self.actions.append(self.svnUrlDiffAct)
         
-        self.vcsStatusAct = E5Action(
+        self.vcsStatusAct = EricAction(
             self.tr('Show status'),
             UI.PixmapCache.getIcon("vcsStatus"),
             self.tr('Show &status'),
@@ -174,7 +174,7 @@
         self.vcsStatusAct.triggered.connect(self._vcsStatus)
         self.actions.append(self.vcsStatusAct)
         
-        self.svnChangeListsAct = E5Action(
+        self.svnChangeListsAct = EricAction(
             self.tr('Show change lists'),
             UI.PixmapCache.getIcon("vcsChangeLists"),
             self.tr('Show change lists'),
@@ -190,7 +190,7 @@
         self.svnChangeListsAct.triggered.connect(self.__svnChangeLists)
         self.actions.append(self.svnChangeListsAct)
         
-        self.vcsTagAct = E5Action(
+        self.vcsTagAct = EricAction(
             self.tr('Tag in repository'),
             UI.PixmapCache.getIcon("vcsTag"),
             self.tr('&Tag in repository...'),
@@ -205,7 +205,7 @@
         self.vcsTagAct.triggered.connect(self._vcsTag)
         self.actions.append(self.vcsTagAct)
         
-        self.vcsExportAct = E5Action(
+        self.vcsExportAct = EricAction(
             self.tr('Export from repository'),
             UI.PixmapCache.getIcon("vcsExport"),
             self.tr('&Export from repository...'),
@@ -220,7 +220,7 @@
         self.vcsExportAct.triggered.connect(self._vcsExport)
         self.actions.append(self.vcsExportAct)
         
-        self.vcsPropsAct = E5Action(
+        self.vcsPropsAct = EricAction(
             self.tr('Command options'),
             self.tr('Command &options...'), 0, 0, self,
             'subversion_options')
@@ -233,7 +233,7 @@
         self.vcsPropsAct.triggered.connect(self._vcsCommandOptions)
         self.actions.append(self.vcsPropsAct)
         
-        self.vcsRevertAct = E5Action(
+        self.vcsRevertAct = EricAction(
             self.tr('Revert changes'),
             UI.PixmapCache.getIcon("vcsRevert"),
             self.tr('Re&vert changes'),
@@ -248,7 +248,7 @@
         self.vcsRevertAct.triggered.connect(self._vcsRevert)
         self.actions.append(self.vcsRevertAct)
         
-        self.vcsMergeAct = E5Action(
+        self.vcsMergeAct = EricAction(
             self.tr('Merge'),
             UI.PixmapCache.getIcon("vcsMerge"),
             self.tr('Mer&ge changes...'),
@@ -264,7 +264,7 @@
         self.vcsMergeAct.triggered.connect(self._vcsMerge)
         self.actions.append(self.vcsMergeAct)
         
-        self.vcsSwitchAct = E5Action(
+        self.vcsSwitchAct = EricAction(
             self.tr('Switch'),
             UI.PixmapCache.getIcon("vcsSwitch"),
             self.tr('S&witch...'),
@@ -279,7 +279,7 @@
         self.vcsSwitchAct.triggered.connect(self._vcsSwitch)
         self.actions.append(self.vcsSwitchAct)
         
-        self.vcsResolveAct = E5Action(
+        self.vcsResolveAct = EricAction(
             self.tr('Conflicts resolved'),
             self.tr('Con&flicts resolved'),
             0, 0, self, 'subversion_resolve')
@@ -294,7 +294,7 @@
         self.vcsResolveAct.triggered.connect(self.__svnResolve)
         self.actions.append(self.vcsResolveAct)
         
-        self.vcsCleanupAct = E5Action(
+        self.vcsCleanupAct = EricAction(
             self.tr('Cleanup'),
             self.tr('Cleanu&p'),
             0, 0, self, 'subversion_cleanup')
@@ -308,7 +308,7 @@
         self.vcsCleanupAct.triggered.connect(self._vcsCleanup)
         self.actions.append(self.vcsCleanupAct)
         
-        self.vcsCommandAct = E5Action(
+        self.vcsCommandAct = EricAction(
             self.tr('Execute command'),
             self.tr('E&xecute command...'),
             0, 0, self, 'subversion_command')
@@ -322,7 +322,7 @@
         self.vcsCommandAct.triggered.connect(self._vcsCommand)
         self.actions.append(self.vcsCommandAct)
         
-        self.svnTagListAct = E5Action(
+        self.svnTagListAct = EricAction(
             self.tr('List tags'),
             self.tr('List tags...'),
             0, 0, self, 'subversion_list_tags')
@@ -336,7 +336,7 @@
         self.svnTagListAct.triggered.connect(self.__svnTagList)
         self.actions.append(self.svnTagListAct)
         
-        self.svnBranchListAct = E5Action(
+        self.svnBranchListAct = EricAction(
             self.tr('List branches'),
             self.tr('List branches...'),
             0, 0, self, 'subversion_list_branches')
@@ -350,7 +350,7 @@
         self.svnBranchListAct.triggered.connect(self.__svnBranchList)
         self.actions.append(self.svnBranchListAct)
         
-        self.svnListAct = E5Action(
+        self.svnListAct = EricAction(
             self.tr('List repository contents'),
             self.tr('List repository contents...'),
             0, 0, self, 'subversion_contents')
@@ -364,7 +364,7 @@
         self.svnListAct.triggered.connect(self.__svnTagList)
         self.actions.append(self.svnListAct)
         
-        self.svnPropSetAct = E5Action(
+        self.svnPropSetAct = EricAction(
             self.tr('Set Property'),
             self.tr('Set Property...'),
             0, 0, self, 'subversion_property_set')
@@ -378,7 +378,7 @@
         self.svnPropSetAct.triggered.connect(self.__svnPropSet)
         self.actions.append(self.svnPropSetAct)
         
-        self.svnPropListAct = E5Action(
+        self.svnPropListAct = EricAction(
             self.tr('List Properties'),
             self.tr('List Properties...'),
             0, 0, self, 'subversion_property_list')
@@ -392,7 +392,7 @@
         self.svnPropListAct.triggered.connect(self.__svnPropList)
         self.actions.append(self.svnPropListAct)
         
-        self.svnPropDelAct = E5Action(
+        self.svnPropDelAct = EricAction(
             self.tr('Delete Property'),
             self.tr('Delete Property...'),
             0, 0, self, 'subversion_property_delete')
@@ -406,7 +406,7 @@
         self.svnPropDelAct.triggered.connect(self.__svnPropDel)
         self.actions.append(self.svnPropDelAct)
         
-        self.svnRelocateAct = E5Action(
+        self.svnRelocateAct = EricAction(
             self.tr('Relocate'),
             UI.PixmapCache.getIcon("vcsSwitch"),
             self.tr('Relocate...'),
@@ -422,7 +422,7 @@
         self.svnRelocateAct.triggered.connect(self.__svnRelocate)
         self.actions.append(self.svnRelocateAct)
         
-        self.svnRepoBrowserAct = E5Action(
+        self.svnRepoBrowserAct = EricAction(
             self.tr('Repository Browser'),
             UI.PixmapCache.getIcon("vcsRepoBrowser"),
             self.tr('Repository Browser...'),
@@ -437,7 +437,7 @@
         self.svnRepoBrowserAct.triggered.connect(self.__svnRepoBrowser)
         self.actions.append(self.svnRepoBrowserAct)
         
-        self.svnConfigAct = E5Action(
+        self.svnConfigAct = EricAction(
             self.tr('Configure'),
             self.tr('Configure...'),
             0, 0, self, 'subversion_configure')
@@ -452,7 +452,7 @@
         self.svnConfigAct.triggered.connect(self.__svnConfigure)
         self.actions.append(self.svnConfigAct)
         
-        self.svnUpgradeAct = E5Action(
+        self.svnUpgradeAct = EricAction(
             self.tr('Upgrade'),
             self.tr('Upgrade...'),
             0, 0, self, 'subversion_upgrade')
@@ -533,7 +533,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         self.__toolbar = QToolBar(self.tr("Subversion (svn)"), ui)
         self.__toolbar.setIconSize(UI.Config.ToolBarIconSize)
@@ -576,7 +576,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         """
         ui.removeToolBar(self.__toolbar)
         ui.unregisterToolbar("subversion")
@@ -654,7 +654,7 @@
         """
         Private slot to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences(
+        ericApp().getObject("UserInterface").showPreferences(
             "zzz_subversionPage")
     
     def __svnChangeLists(self):
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnBlameDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnBlameDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
     QHeaderView, QLineEdit, QDialog, QDialogButtonBox, QTreeWidgetItem
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_SvnBlameDialog import Ui_SvnBlameDialog
 
@@ -99,7 +99,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnChangeListsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnChangeListsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,7 +15,7 @@
     QDialog, QDialogButtonBox, QListWidgetItem, QLineEdit
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_SvnChangeListsDialog import Ui_SvnChangeListsDialog
 
@@ -114,7 +114,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnCommandDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnCommandDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_SvnCommandDialog import Ui_SvnCommandDialog
 
@@ -36,7 +36,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.workdirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.workdirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.okButton = self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok)
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnCommandDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnCommandDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -61,7 +61,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5ComboPathPicker" name="workdirPicker" native="true">
+    <widget class="EricComboPathPicker" name="workdirPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -126,9 +126,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5ComboPathPicker</class>
+   <class>EricComboPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnCopyDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnCopyDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_SvnCopyDialog import Ui_SvnCopyDialog
 
@@ -36,9 +36,9 @@
         
         self.source = source
         if os.path.isdir(self.source):
-            self.targetPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+            self.targetPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         else:
-            self.targetPicker.setMode(E5PathPickerModes.SAVE_FILE_MODE)
+            self.targetPicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
         
         if move:
             self.setWindowTitle(self.tr('Subversion Move'))
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnCopyDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnCopyDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -46,7 +46,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5PathPicker" name="targetPicker" native="true">
+    <widget class="EricPathPicker" name="targetPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -90,9 +90,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import QTimer, QProcess, pyqtSlot, Qt, QProcessEnvironment
 from PyQt6.QtWidgets import QLineEdit, QDialog, QDialogButtonBox
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_SvnDialog import Ui_SvnDialog
 
@@ -166,7 +166,7 @@
             self.buttonBox.setFocus()
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,8 +14,8 @@
 from PyQt6.QtGui import QTextCursor
 from PyQt6.QtWidgets import QWidget, QLineEdit, QDialogButtonBox
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox, EricFileDialog
 
 from .Ui_SvnDiffDialog import Ui_SvnDiffDialog
 from .SvnDiffHighlighter import SvnDiffHighlighter
@@ -162,7 +162,7 @@
             else:
                 dname, fname = self.vcs.splitPath(fn)
                 fnames = [fname]
-            project = e5App().getObject('Project')
+            project = ericApp().getObject('Project')
             if dname == project.getProjectPath():
                 path = ""
             else:
@@ -186,7 +186,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -374,13 +374,13 @@
         else:
             fname = self.vcs.splitPath(self.filename)[0]
         
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save Diff"),
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
@@ -391,22 +391,22 @@
             if ex:
                 fname += ex
         if QFileInfo(fname).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save Diff"),
                 self.tr("<p>The patch file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fname),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return
         fname = Utilities.toNativeSeparators(fname)
         
-        eol = e5App().getObject("Project").getEolString()
+        eol = ericApp().getObject("Project").getEolString()
         try:
             with open(fname, "w", encoding="utf-8", newline="") as f:
                 f.write(eol.join(self.contents.toPlainText().splitlines()))
         except OSError as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self, self.tr('Save Diff'),
                 self.tr(
                     '<p>The patch file <b>{0}</b> could not be saved.'
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -30,7 +30,7 @@
        <widget class="QComboBox" name="filesCombo"/>
       </item>
       <item>
-       <widget class="E5TextEditSearchWidget" name="searchWidget" native="true">
+       <widget class="EricTextEditSearchWidget" name="searchWidget" native="true">
         <property name="focusPolicy">
          <enum>Qt::WheelFocus</enum>
         </property>
@@ -152,9 +152,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TextEditSearchWidget</class>
+   <class>EricTextEditSearchWidget</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5TextEditSearchWidget.h</header>
+   <header>E5Gui/EricTextEditSearchWidget.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnDiffHighlighter.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnDiffHighlighter.py	Sat May 22 18:51:46 2021 +0200
@@ -7,10 +7,10 @@
 Module implementing a syntax highlighter for unified and context diff outputs.
 """
 
-from E5Gui.E5GenericDiffHighlighter import TERMINAL, E5GenericDiffHighlighter
+from E5Gui.EricGenericDiffHighlighter import TERMINAL, EricGenericDiffHighlighter
 
 
-class SvnDiffHighlighter(E5GenericDiffHighlighter):
+class SvnDiffHighlighter(EricGenericDiffHighlighter):
     """
     Class implementing a diff highlighter for Git.
     """
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
     QTreeWidgetItem
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursorProcess
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursorProcess
 
 from .Ui_SvnLogBrowserDialog import Ui_SvnLogBrowserDialog
 
@@ -65,7 +65,7 @@
         self.__messageRole = Qt.ItemDataRole.UserRole
         self.__changesRole = Qt.ItemDataRole.UserRole + 1
         
-        self.__process = E5OverrideCursorProcess()
+        self.__process = EricOverrideCursorProcess()
         self.__process.finished.connect(self.__procFinished)
         self.__process.readyReadStandardOutput.connect(self.__readStdout)
         self.__process.readyReadStandardError.connect(self.__readStderr)
@@ -314,7 +314,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnNewProjectOptionsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnNewProjectOptionsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import QDir, pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_SvnNewProjectOptionsDialog import Ui_SvnNewProjectOptionsDialog
 from .Config import ConfigSvnProtocols
@@ -37,8 +37,8 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.vcsProjectDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
-        self.vcsUrlPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.vcsProjectDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
+        self.vcsUrlPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.protocolCombo.addItems(ConfigSvnProtocols)
         
@@ -123,14 +123,14 @@
             self.vcsUrlPicker.setText(self.localPath)
             self.vcsUrlLabel.setText(self.tr("Pat&h:"))
             self.localProtocol = True
-            self.vcsUrlPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+            self.vcsUrlPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         else:
             if self.localProtocol:
                 self.localPath = self.vcsUrlPicker.text()
                 self.vcsUrlPicker.setText(self.networkPath)
                 self.vcsUrlLabel.setText(self.tr("&URL:"))
                 self.localProtocol = False
-                self.vcsUrlPicker.setMode(E5PathPickerModes.CUSTOM_MODE)
+                self.vcsUrlPicker.setMode(EricPathPickerModes.CUSTOM_MODE)
     
     @pyqtSlot(str)
     def on_vcsUrlPicker_textChanged(self, txt):
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnNewProjectOptionsDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnNewProjectOptionsDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -50,7 +50,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5PathPicker" name="vcsUrlPicker" native="true">
+    <widget class="EricPathPicker" name="vcsUrlPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -100,7 +100,7 @@
     </widget>
    </item>
    <item row="3" column="1">
-    <widget class="E5PathPicker" name="vcsProjectDirPicker" native="true">
+    <widget class="EricPathPicker" name="vcsProjectDirPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -151,9 +151,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnOptionsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnOptionsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import QDir, pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_SvnOptionsDialog import Ui_SvnOptionsDialog
 from .Config import ConfigSvnProtocols
@@ -37,7 +37,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.vcsUrlPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.vcsUrlPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.project = project
         
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnOptionsDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnOptionsDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -50,7 +50,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5PathPicker" name="vcsUrlPicker" native="true">
+    <widget class="EricPathPicker" name="vcsUrlPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -123,9 +123,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnPropListDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnPropListDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,7 +15,7 @@
     QWidget, QHeaderView, QDialogButtonBox, QTreeWidgetItem
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_SvnPropListDialog import Ui_SvnPropListDialog
 
@@ -151,7 +151,7 @@
         self.process.start('svn', args)
         procStarted = self.process.waitForStarted(5000)
         if not procStarted:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnPropSetDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnPropSetDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_SvnPropSetDialog import Ui_SvnPropSetDialog
 
@@ -27,7 +27,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.propFilePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.propFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         
     def getData(self):
         """
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnPropSetDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnPropSetDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -75,7 +75,7 @@
        </widget>
       </item>
       <item>
-       <widget class="E5PathPicker" name="propFilePicker" native="true">
+       <widget class="EricPathPicker" name="propFilePicker" native="true">
         <property name="enabled">
          <bool>false</bool>
         </property>
@@ -111,9 +111,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
     QHeaderView, QLineEdit, QDialog, QDialogButtonBox, QTreeWidgetItem
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursorProcess
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursorProcess
 
 from .Ui_SvnRepoBrowserDialog import Ui_SvnRepoBrowserDialog
 
@@ -48,7 +48,7 @@
         self.vcs = vcs
         self.mode = mode
         
-        self.__process = E5OverrideCursorProcess()
+        self.__process = EricOverrideCursorProcess()
         self.__process.finished.connect(self.__procFinished)
         self.__process.readyReadStandardOutput.connect(self.__readStdout)
         self.__process.readyReadStandardError.connect(self.__readStderr)
@@ -190,7 +190,7 @@
                     self.errors.insertPlainText(error)
                     self.errors.ensureCursorVisible()
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -256,7 +256,7 @@
             self.__finish()
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -17,8 +17,8 @@
     QTreeWidgetItem
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from .Ui_SvnStatusDialog import Ui_SvnStatusDialog
 
@@ -410,7 +410,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -741,7 +741,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getCommitableItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Commit"),
                 self.tr("""There are no entries selected to be"""
@@ -749,7 +749,7 @@
             return
         
         if Preferences.getVCS("AutoSaveFiles"):
-            vm = e5App().getObject("ViewManager")
+            vm = ericApp().getObject("ViewManager")
             for name in names:
                 vm.saveEditor(name)
         self.vcs.vcsCommit(names, '')
@@ -781,7 +781,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getUnversionedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Add"),
                 self.tr("""There are no unversioned entries"""
@@ -791,7 +791,7 @@
         self.vcs.vcsAdd(names)
         self.on_refreshButton_clicked()
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         for name in names:
             project.getModel().updateVCSStatus(name)
         self.vcs.checkVCSStatus()
@@ -803,7 +803,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getModifiedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Revert"),
                 self.tr("""There are no uncommitted changes"""
@@ -815,7 +815,7 @@
         self.activateWindow()
         self.on_refreshButton_clicked()
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         for name in names:
             project.getModel().updateVCSStatus(name)
         self.vcs.checkVCSStatus()
@@ -827,7 +827,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getMissingItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Revert"),
                 self.tr("""There are no missing entries"""
@@ -845,7 +845,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getModifiedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Differences"),
                 self.tr("""There are no uncommitted changes"""
@@ -866,14 +866,14 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getModifiedItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Side-by-Side Diff"),
                 self.tr("""There are no uncommitted changes"""
                         """ available/selected."""))
             return
         elif len(names) > 1:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Side-by-Side Diff"),
                 self.tr("""Only one file with uncommitted changes"""
@@ -889,7 +889,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getLockActionItems(self.unlockedIndicators)]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Lock"),
                 self.tr("""There are no unlocked files"""
@@ -906,7 +906,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getLockActionItems(self.lockedIndicators)]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Unlock"),
                 self.tr("""There are no locked files"""
@@ -924,7 +924,7 @@
                  for itm in self.__getLockActionItems(
                      self.stealBreakLockIndicators)]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Break Lock"),
                 self.tr("""There are no locked files"""
@@ -942,7 +942,7 @@
                  for itm in self.__getLockActionItems(
                      self.stealBreakLockIndicators)]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Steal Lock"),
                 self.tr("""There are no locked files"""
@@ -959,7 +959,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getNonChangelistItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Remove from Changelist"),
                 self.tr(
@@ -978,7 +978,7 @@
         names = [os.path.join(self.dname, itm.text(self.__pathColumn))
                  for itm in self.__getChangelistItems()]
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Remove from Changelist"),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnTagBranchListDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnTagBranchListDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -16,7 +16,7 @@
     QTreeWidgetItem
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_SvnTagBranchListDialog import Ui_SvnTagBranchListDialog
 
@@ -104,7 +104,7 @@
         
         reposURL = self.vcs.svnGetReposName(dname)
         if reposURL is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Subversion Error"),
                 self.tr(
@@ -124,7 +124,7 @@
             rx_base = re.compile('(.+)/(trunk|tags|branches).*')
             match = rx_base.fullmatch(reposURL)
             if match is None:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Subversion Error"),
                     self.tr(
@@ -152,7 +152,7 @@
                 self.close()
                 return
             if not reposPath:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Subversion List"),
                     self.tr("""The repository URL is empty."""
@@ -169,7 +169,7 @@
         if not procStarted:
             self.inputGroup.setEnabled(False)
             self.inputGroup.hide()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnUrlSelectionDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnUrlSelectionDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from .Ui_SvnUrlSelectionDialog import Ui_SvnUrlSelectionDialog
 
@@ -50,7 +50,7 @@
         
         reposURL = self.vcs.svnGetReposName(path)
         if reposURL is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Subversion Error"),
                 self.tr(
@@ -65,7 +65,7 @@
             rx_base = re.compile('(.+/)(trunk|tags|branches).*')
             match = rx_base.fullmatch(reposURL)
             if match is None:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Subversion Error"),
                     self.tr(
@@ -79,7 +79,7 @@
             self.repoRootLabel1.setText(reposRoot)
             self.repoRootLabel2.setText(reposRoot)
         else:
-            project = e5App().getObject('Project')
+            project = ericApp().getObject('Project')
             if (
                 Utilities.normcasepath(path) !=
                 Utilities.normcasepath(project.getProjectPath())
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/subversion.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/subversion.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
 from PyQt6.QtCore import pyqtSignal, QProcess, QCoreApplication
 from PyQt6.QtWidgets import QLineEdit, QDialog, QInputDialog, QApplication
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from VCS.VersionControl import VersionControl
 
@@ -213,7 +213,7 @@
         """
         success = self.vcsImport(vcsDataDict, project.ppath, addAll=addAll)[0]
         if not success:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Create project in repository"),
                 self.tr(
@@ -237,7 +237,7 @@
             if not os.path.isfile(pfn):
                 pfn += "z"
             if not os.path.isfile(pfn):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("New project"),
                     self.tr(
@@ -493,7 +493,7 @@
             for nam in nameList:
                 # check for commit of the project
                 if os.path.isdir(nam):
-                    project = e5App().getObject("Project")
+                    project = ericApp().getObject("Project")
                     if nam == project.getProjectPath():
                         ok &= (
                             project.checkAllScriptsDirty(
@@ -502,7 +502,7 @@
                         )
                         continue
                 elif os.path.isfile(nam):
-                    editor = e5App().getObject("ViewManager").getOpenEditor(
+                    editor = ericApp().getObject("ViewManager").getOpenEditor(
                         nam)
                     if editor:
                         ok &= editor.checkDirty()
@@ -510,13 +510,13 @@
                     break
             
             if not ok:
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self.__ui,
                     self.tr("Commit Changes"),
                     self.tr(
                         """The commit affects files, that have unsaved"""
                         """ changes. Shall the commit be continued?"""),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
         
@@ -920,11 +920,11 @@
         names = name[:] if isinstance(name, list) else [name]
         for nam in names:
             if os.path.isfile(nam):
-                editor = e5App().getObject("ViewManager").getOpenEditor(nam)
+                editor = ericApp().getObject("ViewManager").getOpenEditor(nam)
                 if editor and not editor.checkDirty():
                     return
             else:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if nam == project.ppath and not project.saveAllScripts():
                     return
         if self.diff is None:
@@ -961,7 +961,7 @@
         
         reposURL = self.svnGetReposName(dname)
         if reposURL is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Subversion Error"),
                 self.tr(
@@ -990,7 +990,7 @@
             rx_base = re.compile('(.+)/(trunk|tags|branches).*')
             match = rx_base.fullmatch(reposURL)
             if match is None:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Subversion Error"),
                     self.tr(
@@ -1048,7 +1048,7 @@
             args.append(name)
             names = [name]
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         names = [project.getRelativePath(nam) for nam in names]
         if names[0]:
             from UI.DeleteFilesConfirmationDialog import (
@@ -1062,7 +1062,7 @@
                 names)
             yes = dlg.exec() == QDialog.DialogCode.Accepted
         else:
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 None,
                 self.tr("Revert changes"),
                 self.tr("""Do you really want to revert all changes of"""
@@ -1085,7 +1085,7 @@
         
         reposURL = self.svnGetReposName(dname)
         if reposURL is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Subversion Error"),
                 self.tr(
@@ -1114,7 +1114,7 @@
             rx_base = re.compile('(.+)/(trunk|tags|branches).*')
             match = rx_base.fullmatch(reposURL)
             if match is None:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Subversion Error"),
                     self.tr(
@@ -1761,7 +1761,7 @@
         if dlg.exec() == QDialog.DialogCode.Accepted:
             propName, fileFlag, propValue = dlg.getData()
             if not propName:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Subversion Set Property"),
                     self.tr("""You have to supply a property name."""
@@ -1806,7 +1806,7 @@
             return
         
         if not propName:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Subversion Delete Property"),
                 self.tr("""You have to supply a property name."""
@@ -1893,11 +1893,11 @@
         names = name[:] if isinstance(name, list) else [name]
         for nam in names:
             if os.path.isfile(nam):
-                editor = e5App().getObject("ViewManager").getOpenEditor(nam)
+                editor = ericApp().getObject("ViewManager").getOpenEditor(nam)
                 if editor and not editor.checkDirty():
                     return
             else:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if nam == project.ppath and not project.saveAllScripts():
                     return
         from .SvnRevisionSelectionDialog import SvnRevisionSelectionDialog
@@ -1926,11 +1926,11 @@
         names = name[:] if isinstance(name, list) else [name]
         for nam in names:
             if os.path.isfile(nam):
-                editor = e5App().getObject("ViewManager").getOpenEditor(nam)
+                editor = ericApp().getObject("ViewManager").getOpenEditor(nam)
                 if editor and not editor.checkDirty():
                     return
             else:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if nam == project.ppath and not project.saveAllScripts():
                     return
         
@@ -2021,7 +2021,7 @@
         
         output1, error = self.__svnGetFileForRevision(name, rev=rev1)
         if error:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.__ui,
                 self.tr("Subversion Side-by-Side Difference"),
                 error)
@@ -2031,7 +2031,7 @@
         if rev2:
             output2, error = self.__svnGetFileForRevision(name, rev=rev2)
             if error:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Subversion Side-by-Side Difference"),
                     error)
@@ -2043,7 +2043,7 @@
                     output2 = f1.read()
                 name2 = name
             except OSError:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.__ui,
                     self.tr("Subversion Side-by-Side Difference"),
                     self.tr(
@@ -2266,7 +2266,7 @@
         args.append("--non-interactive")
         args.append(".")
         
-        ppath = e5App().getObject("Project").getProjectPath()
+        ppath = ericApp().getObject("Project").getProjectPath()
         process = QProcess()
         process.setWorkingDirectory(ppath)
         process.start('svn', args)
--- a/eric7/Plugins/ViewManagerPlugins/Tabview/Tabview.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/ViewManagerPlugins/Tabview/Tabview.py	Sat May 22 18:51:46 2021 +0200
@@ -19,7 +19,7 @@
     QMenu, QLabel
 )
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from ViewManager.ViewManager import ViewManager
 
@@ -29,8 +29,8 @@
 
 import UI.PixmapCache
 
-from E5Gui.E5TabWidget import E5TabWidget, E5WheelTabBar
-from E5Gui.E5Led import E5Led
+from E5Gui.EricTabWidget import EricTabWidget, EricWheelTabBar
+from E5Gui.EricLed import EricLed
 
 import Preferences
 from Globals import isMacPlatform
@@ -38,7 +38,7 @@
 from eric7config import getConfig
 
 
-class TabBar(E5WheelTabBar):
+class TabBar(EricWheelTabBar):
     """
     Class implementing a customized tab bar supporting drag & drop.
     
@@ -162,7 +162,7 @@
         super().dropEvent(event)
 
 
-class TabWidget(E5TabWidget):
+class TabWidget(EricTabWidget):
     """
     Class implementing a custimized tab widget.
     """
@@ -195,7 +195,7 @@
         self.vm = vm
         self.editors = []
         
-        self.indicator = E5Led(self)
+        self.indicator = EricLed(self)
         self.setCornerWidget(self.indicator, Qt.Corner.TopLeftCorner)
         
         self.rightCornerWidget = QWidget(self)
@@ -429,7 +429,7 @@
             if Preferences.getUI("TabViewManagerFilenameOnly"):
                 txt = os.path.basename(fn)
             else:
-                txt = e5App().getObject("Project").getRelativePath(fn)
+                txt = ericApp().getObject("Project").getRelativePath(fn)
             
             maxFileNameChars = Preferences.getUI(
                 "TabViewManagerFilenameLength")
@@ -953,7 +953,7 @@
             if self.filenameOnly:
                 txt = os.path.basename(fn)
             else:
-                txt = e5App().getObject("Project").getRelativePath(fn)
+                txt = ericApp().getObject("Project").getRelativePath(fn)
             if len(txt) > self.maxFileNameChars:
                 txt = "...{0}".format(txt[-self.maxFileNameChars:])
             if not QFileInfo(fn).isWritable():
@@ -1008,7 +1008,7 @@
             if self.filenameOnly:
                 txt = os.path.basename(fn)
             else:
-                txt = e5App().getObject("Project").getRelativePath(fn)
+                txt = ericApp().getObject("Project").getRelativePath(fn)
             if len(txt) > self.maxFileNameChars:
                 txt = "...{0}".format(txt[-self.maxFileNameChars:])
             if not QFileInfo(fn).isWritable():
@@ -1091,7 +1091,7 @@
             if self.filenameOnly:
                 tabName = os.path.basename(newName)
             else:
-                tabName = e5App().getObject("Project").getRelativePath(newName)
+                tabName = ericApp().getObject("Project").getRelativePath(newName)
             if len(tabName) > self.maxFileNameChars:
                 tabName = "...{0}".format(tabName[-self.maxFileNameChars:])
             index = self.currentTabWidget.indexOf(editor)
@@ -1346,7 +1346,7 @@
         ):
             switched = True
             self.currentTabWidget.showIndicator(False)
-            if isinstance(watched, E5TabWidget):
+            if isinstance(watched, EricTabWidget):
                 switched = watched is not self.currentTabWidget
                 self.currentTabWidget = watched
             elif isinstance(watched, QTabBar):
@@ -1402,7 +1402,7 @@
                         if self.filenameOnly:
                             txt = os.path.basename(fn)
                         else:
-                            txt = e5App().getObject(
+                            txt = ericApp().getObject(
                                 "Project").getRelativePath(fn)
                         if len(txt) > self.maxFileNameChars:
                             txt = "...{0}".format(txt[-self.maxFileNameChars:])
--- a/eric7/Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtGui import QColor
 from PyQt6.QtWidgets import QColorDialog, QDialog, QDialogButtonBox
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_ColorDialogWizardDialog import Ui_ColorDialogWizardDialog
 
@@ -68,7 +68,7 @@
                          ' QColorDialog.getColor({0}, None, "{1}")'.format(
                              coStr, self.eTitle.text()))
                 except Exception:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("QColorDialog Wizard Error"),
                         self.tr(
--- a/eric7/Plugins/WizardPlugins/DotDesktopWizard/DotDesktopWizardDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/DotDesktopWizard/DotDesktopWizardDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from .Ui_DotDesktopWizardDialog import Ui_DotDesktopWizardDialog
 
@@ -101,7 +101,7 @@
         self.kdeEncodingComboBox.setCurrentIndex(
             self.kdeEncodingComboBox.findText("utf-8"))
         
-        projectOpen = e5App().getObject("Project").isOpen()
+        projectOpen = ericApp().getObject("Project").isOpen()
         self.projectButton.setEnabled(projectOpen)
         
         icon = UI.PixmapCache.getIcon("listSelection")
@@ -237,7 +237,7 @@
         Private slot to populate some fields with data retrieved from the
         current project.
         """
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         
         self.nameEdit.setText(project.getProjectName())
         self.genericNameEdit.setText(project.getProjectName())
@@ -285,7 +285,7 @@
         """
         self.__checkOK()
         if bool(self.onlyShowEdit.text()) and bool(self.notShowEdit.text()):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr(".desktop Wizard"),
                 self.tr("""Only one of 'Only Show In' or """
@@ -315,7 +315,7 @@
         """
         self.__checkOK()
         if bool(self.onlyShowEdit.text()) and bool(self.notShowEdit.text()):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr(".desktop Wizard"),
                 self.tr("""Only one of 'Only Show In' or """
--- a/eric7/Plugins/WizardPlugins/E5MessageBoxWizard/E5MessageBoxWizardDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/E5MessageBoxWizard/E5MessageBoxWizardDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QAbstractButton
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_E5MessageBoxWizardDialog import Ui_E5MessageBoxWizardDialog
 
@@ -22,7 +22,7 @@
     Class implementing the eric message box wizard dialog.
     
     It displays a dialog for entering the parameters
-    for the E5MessageBox code generator.
+    for the EricMessageBox code generator.
     """
     def __init__(self, parent=None):
         """
@@ -56,46 +56,46 @@
             self.tr("Yes to all"),
         ]
         self.buttonsCodeListBinary = [
-            E5MessageBox.NoButton,
-            E5MessageBox.Abort,
-            E5MessageBox.Apply,
-            E5MessageBox.Cancel,
-            E5MessageBox.Close,
-            E5MessageBox.Discard,
-            E5MessageBox.Help,
-            E5MessageBox.Ignore,
-            E5MessageBox.No,
-            E5MessageBox.NoToAll,
-            E5MessageBox.Ok,
-            E5MessageBox.Open,
-            E5MessageBox.Reset,
-            E5MessageBox.RestoreDefaults,
-            E5MessageBox.Retry,
-            E5MessageBox.Save,
-            E5MessageBox.SaveAll,
-            E5MessageBox.Yes,
-            E5MessageBox.YesToAll,
+            EricMessageBox.NoButton,
+            EricMessageBox.Abort,
+            EricMessageBox.Apply,
+            EricMessageBox.Cancel,
+            EricMessageBox.Close,
+            EricMessageBox.Discard,
+            EricMessageBox.Help,
+            EricMessageBox.Ignore,
+            EricMessageBox.No,
+            EricMessageBox.NoToAll,
+            EricMessageBox.Ok,
+            EricMessageBox.Open,
+            EricMessageBox.Reset,
+            EricMessageBox.RestoreDefaults,
+            EricMessageBox.Retry,
+            EricMessageBox.Save,
+            EricMessageBox.SaveAll,
+            EricMessageBox.Yes,
+            EricMessageBox.YesToAll,
         ]
         self.buttonsCodeListText = [
-            "E5MessageBox.NoButton",
-            "E5MessageBox.Abort",
-            "E5MessageBox.Apply",
-            "E5MessageBox.Cancel",
-            "E5MessageBox.Close",
-            "E5MessageBox.Discard",
-            "E5MessageBox.Help",
-            "E5MessageBox.Ignore",
-            "E5MessageBox.No",
-            "E5MessageBox.NoToAll",
-            "E5MessageBox.Ok",
-            "E5MessageBox.Open",
-            "E5MessageBox.Reset",
-            "E5MessageBox.RestoreDefaults",
-            "E5MessageBox.Retry",
-            "E5MessageBox.Save",
-            "E5MessageBox.SaveAll",
-            "E5MessageBox.Yes",
-            "E5MessageBox.YesToAll",
+            "EricMessageBox.NoButton",
+            "EricMessageBox.Abort",
+            "EricMessageBox.Apply",
+            "EricMessageBox.Cancel",
+            "EricMessageBox.Close",
+            "EricMessageBox.Discard",
+            "EricMessageBox.Help",
+            "EricMessageBox.Ignore",
+            "EricMessageBox.No",
+            "EricMessageBox.NoToAll",
+            "EricMessageBox.Ok",
+            "EricMessageBox.Open",
+            "EricMessageBox.Reset",
+            "EricMessageBox.RestoreDefaults",
+            "EricMessageBox.Retry",
+            "EricMessageBox.Save",
+            "EricMessageBox.SaveAll",
+            "EricMessageBox.Yes",
+            "EricMessageBox.YesToAll",
         ]
         
         self.defaultCombo.addItems(self.buttonsList)
@@ -250,13 +250,13 @@
         Private method to test the selected options.
         """
         if self.rAbout.isChecked():
-            E5MessageBox.about(
+            EricMessageBox.about(
                 None,
                 self.eCaption.text(),
                 self.eMessage.toPlainText()
             )
         elif self.rAboutQt.isChecked():
-            E5MessageBox.aboutQt(
+            EricMessageBox.aboutQt(
                 None, self.eCaption.text()
             )
         elif (
@@ -265,51 +265,51 @@
             self.rWarning.isChecked() or
             self.rCritical.isChecked()
         ):
-            buttons = E5MessageBox.NoButton
+            buttons = EricMessageBox.NoButton
             if self.abortCheck.isChecked():
-                buttons |= E5MessageBox.Abort
+                buttons |= EricMessageBox.Abort
             if self.applyCheck.isChecked():
-                buttons |= E5MessageBox.Apply
+                buttons |= EricMessageBox.Apply
             if self.cancelCheck.isChecked():
-                buttons |= E5MessageBox.Cancel
+                buttons |= EricMessageBox.Cancel
             if self.closeCheck.isChecked():
-                buttons |= E5MessageBox.Close
+                buttons |= EricMessageBox.Close
             if self.discardCheck.isChecked():
-                buttons |= E5MessageBox.Discard
+                buttons |= EricMessageBox.Discard
             if self.helpCheck.isChecked():
-                buttons |= E5MessageBox.Help
+                buttons |= EricMessageBox.Help
             if self.ignoreCheck.isChecked():
-                buttons |= E5MessageBox.Ignore
+                buttons |= EricMessageBox.Ignore
             if self.noCheck.isChecked():
-                buttons |= E5MessageBox.No
+                buttons |= EricMessageBox.No
             if self.notoallCheck.isChecked():
-                buttons |= E5MessageBox.NoToAll
+                buttons |= EricMessageBox.NoToAll
             if self.okCheck.isChecked():
-                buttons |= E5MessageBox.Ok
+                buttons |= EricMessageBox.Ok
             if self.openCheck.isChecked():
-                buttons |= E5MessageBox.Open
+                buttons |= EricMessageBox.Open
             if self.resetCheck.isChecked():
-                buttons |= E5MessageBox.Reset
+                buttons |= EricMessageBox.Reset
             if self.restoreCheck.isChecked():
-                buttons |= E5MessageBox.RestoreDefaults
+                buttons |= EricMessageBox.RestoreDefaults
             if self.retryCheck.isChecked():
-                buttons |= E5MessageBox.Retry
+                buttons |= EricMessageBox.Retry
             if self.saveCheck.isChecked():
-                buttons |= E5MessageBox.Save
+                buttons |= EricMessageBox.Save
             if self.saveallCheck.isChecked():
-                buttons |= E5MessageBox.SaveAll
+                buttons |= EricMessageBox.SaveAll
             if self.yesCheck.isChecked():
-                buttons |= E5MessageBox.Yes
+                buttons |= EricMessageBox.Yes
             if self.yestoallCheck.isChecked():
-                buttons |= E5MessageBox.YesToAll
-            if buttons == E5MessageBox.NoButton:
-                buttons = E5MessageBox.Ok
+                buttons |= EricMessageBox.YesToAll
+            if buttons == EricMessageBox.NoButton:
+                buttons = EricMessageBox.Ok
             
             defaultButton = self.buttonsCodeListBinary[
                 self.defaultCombo.currentIndex()]
             
             if self.rInformation.isChecked():
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.eCaption.text(),
                     self.eMessage.toPlainText(),
@@ -317,7 +317,7 @@
                     defaultButton
                 )
             elif self.rQuestion.isChecked():
-                E5MessageBox.question(
+                EricMessageBox.question(
                     self,
                     self.eCaption.text(),
                     self.eMessage.toPlainText(),
@@ -325,7 +325,7 @@
                     defaultButton
                 )
             elif self.rWarning.isChecked():
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.eCaption.text(),
                     self.eMessage.toPlainText(),
@@ -333,7 +333,7 @@
                     defaultButton
                 )
             elif self.rCritical.isChecked():
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.eCaption.text(),
                     self.eMessage.toPlainText(),
@@ -345,16 +345,16 @@
             self.rRetryAbort.isChecked()
         ):
             if self.iconInformation.isChecked():
-                icon = E5MessageBox.Information
+                icon = EricMessageBox.Information
             elif self.iconQuestion.isChecked():
-                icon = E5MessageBox.Question
+                icon = EricMessageBox.Question
             elif self.iconWarning.isChecked():
-                icon = E5MessageBox.Warning
+                icon = EricMessageBox.Warning
             elif self.iconCritical.isChecked():
-                icon = E5MessageBox.Critical
+                icon = EricMessageBox.Critical
             
             if self.rYesNo.isChecked():
-                E5MessageBox.yesNo(
+                EricMessageBox.yesNo(
                     self,
                     self.eCaption.text(),
                     self.eMessage.toPlainText(),
@@ -362,14 +362,14 @@
                     yesDefault=self.yesDefaultCheck.isChecked()
                 )
             elif self.rRetryAbort.isChecked():
-                E5MessageBox.retryAbort(
+                EricMessageBox.retryAbort(
                     self,
                     self.eCaption.text(),
                     self.eMessage.toPlainText(),
                     icon=icon
                 )
         elif self.rOkToClearData.isChecked():
-            E5MessageBox.okToClearData(
+            EricMessageBox.okToClearData(
                 self,
                 self.eCaption.text(),
                 self.eMessage.toPlainText(),
@@ -388,41 +388,41 @@
         """
         buttons = []
         if self.abortCheck.isChecked():
-            buttons.append("E5MessageBox.Abort")
+            buttons.append("EricMessageBox.Abort")
         if self.applyCheck.isChecked():
-            buttons.append("E5MessageBox.Apply")
+            buttons.append("EricMessageBox.Apply")
         if self.cancelCheck.isChecked():
-            buttons.append("E5MessageBox.Cancel")
+            buttons.append("EricMessageBox.Cancel")
         if self.closeCheck.isChecked():
-            buttons.append("E5MessageBox.Close")
+            buttons.append("EricMessageBox.Close")
         if self.discardCheck.isChecked():
-            buttons.append("E5MessageBox.Discard")
+            buttons.append("EricMessageBox.Discard")
         if self.helpCheck.isChecked():
-            buttons.append("E5MessageBox.Help")
+            buttons.append("EricMessageBox.Help")
         if self.ignoreCheck.isChecked():
-            buttons.append("E5MessageBox.Ignore")
+            buttons.append("EricMessageBox.Ignore")
         if self.noCheck.isChecked():
-            buttons.append("E5MessageBox.No")
+            buttons.append("EricMessageBox.No")
         if self.notoallCheck.isChecked():
-            buttons.append("E5MessageBox.NoToAll")
+            buttons.append("EricMessageBox.NoToAll")
         if self.okCheck.isChecked():
-            buttons.append("E5MessageBox.Ok")
+            buttons.append("EricMessageBox.Ok")
         if self.openCheck.isChecked():
-            buttons.append("E5MessageBox.Open")
+            buttons.append("EricMessageBox.Open")
         if self.resetCheck.isChecked():
-            buttons.append("E5MessageBox.Reset")
+            buttons.append("EricMessageBox.Reset")
         if self.restoreCheck.isChecked():
-            buttons.append("E5MessageBox.RestoreDefaults")
+            buttons.append("EricMessageBox.RestoreDefaults")
         if self.retryCheck.isChecked():
-            buttons.append("E5MessageBox.Retry")
+            buttons.append("EricMessageBox.Retry")
         if self.saveCheck.isChecked():
-            buttons.append("E5MessageBox.Save")
+            buttons.append("EricMessageBox.Save")
         if self.saveallCheck.isChecked():
-            buttons.append("E5MessageBox.SaveAll")
+            buttons.append("EricMessageBox.SaveAll")
         if self.yesCheck.isChecked():
-            buttons.append("E5MessageBox.Yes")
+            buttons.append("EricMessageBox.Yes")
         if self.yestoallCheck.isChecked():
-            buttons.append("E5MessageBox.YesToAll")
+            buttons.append("EricMessageBox.YesToAll")
         if len(buttons) == 0:
             return ""
         
@@ -477,13 +477,13 @@
                 parent = "None"
         
         if self.iconInformation.isChecked():
-            icon = "E5MessageBox.Information"
+            icon = "EricMessageBox.Information"
         elif self.iconQuestion.isChecked():
-            icon = "E5MessageBox.Question"
+            icon = "EricMessageBox.Question"
         elif self.iconWarning.isChecked():
-            icon = "E5MessageBox.Warning"
+            icon = "EricMessageBox.Warning"
         elif self.iconCritical.isChecked():
-            icon = "E5MessageBox.Critical"
+            icon = "EricMessageBox.Critical"
         
         if not self.rStandard.isChecked():
             resvar = self.eResultVar.text()
@@ -491,29 +491,29 @@
                 resvar = "res"
             
             if self.rAbout.isChecked():
-                msgdlg = "E5MessageBox.about({0}".format(os.linesep)
+                msgdlg = "EricMessageBox.about({0}".format(os.linesep)
             elif self.rAboutQt.isChecked():
-                msgdlg = "E5MessageBox.aboutQt({0}".format(os.linesep)
+                msgdlg = "EricMessageBox.aboutQt({0}".format(os.linesep)
             elif self.rInformation.isChecked():
-                msgdlg = "{0} = E5MessageBox.information({1}".format(
+                msgdlg = "{0} = EricMessageBox.information({1}".format(
                     resvar, os.linesep)
             elif self.rQuestion.isChecked():
-                msgdlg = "{0} = E5MessageBox.question({1}".format(
+                msgdlg = "{0} = EricMessageBox.question({1}".format(
                     resvar, os.linesep)
             elif self.rWarning.isChecked():
-                msgdlg = "{0} = E5MessageBox.warning({1}".format(
+                msgdlg = "{0} = EricMessageBox.warning({1}".format(
                     resvar, os.linesep)
             elif self.rCritical.isChecked():
-                msgdlg = "{0} = E5MessageBox.critical({1}".format(
+                msgdlg = "{0} = EricMessageBox.critical({1}".format(
                     resvar, os.linesep)
             elif self.rYesNo.isChecked():
-                msgdlg = "{0} = E5MessageBox.yesNo({1}".format(
+                msgdlg = "{0} = EricMessageBox.yesNo({1}".format(
                     resvar, os.linesep)
             elif self.rRetryAbort.isChecked():
-                msgdlg = "{0} = E5MessageBox.retryAbort({1}".format(
+                msgdlg = "{0} = EricMessageBox.retryAbort({1}".format(
                     resvar, os.linesep)
             elif self.rOkToClearData.isChecked():
-                msgdlg = "{0} = E5MessageBox.okToClearData({1}".format(
+                msgdlg = "{0} = EricMessageBox.okToClearData({1}".format(
                     resvar, os.linesep)
             
             msgdlg += '{0}{1},{2}'.format(istring, parent, os.linesep)
@@ -553,7 +553,7 @@
             if not resvar:
                 resvar = "dlg"
             
-            msgdlg = "{0} = E5MessageBox.E5MessageBox({1}".format(
+            msgdlg = "{0} = EricMessageBox.EricMessageBox({1}".format(
                 resvar, os.linesep)
             msgdlg += '{0}{1},{2}'.format(istring, icon, os.linesep)
             msgdlg += '{0}self.tr("{1}")'.format(
--- a/eric7/Plugins/WizardPlugins/E5MessageBoxWizard/E5MessageBoxWizardDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/E5MessageBoxWizard/E5MessageBoxWizardDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
    </rect>
   </property>
   <property name="windowTitle">
-   <string>E5MessageBox Wizard</string>
+   <string>EricMessageBox Wizard</string>
   </property>
   <property name="sizeGripEnabled">
    <bool>true</bool>
--- a/eric7/Plugins/WizardPlugins/EricPluginWizard/PluginWizardDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/EricPluginWizard/PluginWizardDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot, QDate
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from .Ui_PluginWizardDialog import Ui_PluginWizardDialog
 
@@ -41,7 +41,7 @@
             QDialogButtonBox.StandardButton.Ok)
         self.__okButton.setEnabled(False)
         
-        projectOpen = e5App().getObject("Project").isOpen()
+        projectOpen = ericApp().getObject("Project").isOpen()
         self.projectButton.setEnabled(projectOpen)
         
         self.nameEdit.textChanged.connect(self.__enableOkButton)
@@ -90,7 +90,7 @@
         Private slot to populate some fields with data retrieved from the
         current project.
         """
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         
         try:
             self.versionEdit.setText(project.getProjectVersion())
--- a/eric7/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
     QDialog, QDialogButtonBox, QFileDialog, QButtonGroup
 )
 
-from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
+from E5Gui.EricCompleters import EricFileCompleter, EricDirCompleter
 
 from .Ui_FileDialogWizardDialog import Ui_FileDialogWizardDialog
 
@@ -26,14 +26,14 @@
     Class implementing the color dialog wizard dialog.
     
     It displays a dialog for entering the parameters for the
-    E5FileDialog or QFileDialog code generator.
+    EricFileDialog or QFileDialog code generator.
     """
     def __init__(self, dialogVariant, parent=None):
         """
         Constructor
         
         @param dialogVariant variant of the file dialog to be generated
-            (-1 = E5FileDialog, 0 = unknown, 5 = PyQt5)
+            (-1 = EricFileDialog, 0 = unknown, 5 = PyQt5)
         @type int
         @param parent parent widget
         @type QWidget
@@ -41,8 +41,8 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.eStartWithCompleter = E5FileCompleter(self.eStartWith)
-        self.eWorkDirCompleter = E5DirCompleter(self.eWorkDir)
+        self.eStartWithCompleter = EricFileCompleter(self.eStartWith)
+        self.eWorkDirCompleter = EricDirCompleter(self.eWorkDir)
         
         self.__dialogVariant = dialogVariant
         
@@ -65,7 +65,7 @@
         
         if self.__dialogVariant == -1:
             self.pyqtComboBox.addItems(["eric"])
-            self.setWindowTitle(self.tr("E5FileDialog Wizard"))
+            self.setWindowTitle(self.tr("EricFileDialog Wizard"))
             self.pyqtComboBox.setCurrentIndex(0)
             self.pyqtComboBox.setEnabled(False)
         else:
@@ -384,7 +384,7 @@
             filterVariable = ", " + filterVariable
         
         if self.__dialogVariant == -1:
-            dialogType = "E5FileDialog"
+            dialogType = "EricFileDialog"
             optionStr = ""
         else:
             dialogType = "QFileDialog"
--- a/eric7/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -17,8 +17,8 @@
     QVBoxLayout, QTableWidgetItem
 )
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5MainWindow import E5MainWindow
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricMainWindow import EricMainWindow
 
 from .Ui_PyRegExpWizardDialog import Ui_PyRegExpWizardDialog
 
@@ -181,7 +181,7 @@
         regex = self.regexpTextEdit.toPlainText()[:length]
         names = self.namedGroups(regex)
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Named reference"),
                 self.tr("""No named groups have been defined yet."""))
@@ -319,13 +319,13 @@
         """
         Private slot to save the regexp to a file.
         """
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save regular expression"),
             "",
             self.tr("RegExp Files (*.rx);;All Files (*)"),
             None,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         if fname:
             ext = QFileInfo(fname).suffix()
             if not ext:
@@ -333,12 +333,12 @@
                 if ex:
                     fname += ex
             if QFileInfo(fname).exists():
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self,
                     self.tr("Save regular expression"),
                     self.tr("<p>The file <b>{0}</b> already exists."
                             " Overwrite it?</p>").format(fname),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
             
@@ -347,7 +347,7 @@
                 with open(fname, "w", encoding="utf-8") as f:
                     f.write(self.regexpTextEdit.toPlainText())
             except OSError as err:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("Save regular expression"),
                     self.tr("""<p>The regular expression could not"""
@@ -359,7 +359,7 @@
         """
         Private slot to load a regexp from a file.
         """
-        fname = E5FileDialog.getOpenFileName(
+        fname = EricFileDialog.getOpenFileName(
             self,
             self.tr("Load regular expression"),
             "",
@@ -371,7 +371,7 @@
                     regexp = f.read()
                 self.regexpTextEdit.setPlainText(regexp)
             except OSError as err:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("Save regular expression"),
                     self.tr("""<p>The regular expression could not"""
@@ -413,26 +413,26 @@
                 if self.unicodeCheckBox.isChecked():
                     flags |= re.ASCII
                 re.compile(regex, flags)
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("Validation"),
                     self.tr("""The regular expression is valid."""))
             except re.error as e:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Error"),
                     self.tr("""Invalid regular expression: {0}""")
                     .format(str(e)))
                 return
             except IndexError:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Error"),
                     self.tr("""Invalid regular expression: missing"""
                             """ group name"""))
                 return
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Error"),
                 self.tr("""A regular expression must be given."""))
@@ -564,21 +564,21 @@
                 self.resultTable.verticalHeader().hide()
                 self.resultTable.horizontalHeader().hide()
             except re.error as e:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Error"),
                     self.tr("""Invalid regular expression: {0}""")
                     .format(str(e)))
                 return
             except IndexError:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Error"),
                     self.tr("""Invalid regular expression: missing"""
                             """ group name"""))
                 return
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Error"),
                 self.tr("""A regular expression and a text must be"""
@@ -682,7 +682,7 @@
         return self.cw.getCode(indLevel, indString)
 
 
-class PyRegExpWizardWindow(E5MainWindow):
+class PyRegExpWizardWindow(EricMainWindow):
     """
     Main window class for the standalone dialog.
     """
--- a/eric7/Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -19,8 +19,8 @@
     QVBoxLayout, QTableWidgetItem
 )
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5MainWindow import E5MainWindow
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricMainWindow import EricMainWindow
 
 from .Ui_QRegularExpressionWizardDialog import (
     Ui_QRegularExpressionWizardDialog
@@ -169,7 +169,7 @@
             responseStr = data.decode("utf-8")
             responseDict = json.loads(responseStr)
             if responseDict["error"]:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Communication Error"),
                     self.tr("""<p>The PyQt5 backend reported"""
@@ -286,7 +286,7 @@
         regex = self.regexpTextEdit.toPlainText()[:length]
         names = self.namedGroups(regex)
         if not names:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Named reference"),
                 self.tr("""No named groups have been defined yet."""))
@@ -402,13 +402,13 @@
         """
         Private slot to save the QRegularExpression to a file.
         """
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save regular expression"),
             "",
             self.tr("RegExp Files (*.rx);;All Files (*)"),
             None,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         if fname:
             ext = QFileInfo(fname).suffix()
             if not ext:
@@ -416,12 +416,12 @@
                 if ex:
                     fname += ex
             if QFileInfo(fname).exists():
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self,
                     self.tr("Save regular expression"),
                     self.tr("<p>The file <b>{0}</b> already exists."
                             " Overwrite it?</p>").format(fname),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
             
@@ -430,7 +430,7 @@
                 with open(fname, "w", encoding="utf-8") as f:
                     f.write(self.regexpTextEdit.toPlainText())
             except OSError as err:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("Save regular expression"),
                     self.tr("""<p>The regular expression could not"""
@@ -442,7 +442,7 @@
         """
         Private slot to load a QRegularExpression from a file.
         """
-        fname = E5FileDialog.getOpenFileName(
+        fname = EricFileDialog.getOpenFileName(
             self,
             self.tr("Load regular expression"),
             "",
@@ -454,7 +454,7 @@
                     regexp = f.read()
                 self.regexpTextEdit.setPlainText(regexp)
             except OSError as err:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("Save regular expression"),
                     self.tr("""<p>The regular expression could not"""
@@ -507,13 +507,13 @@
                 response = self.__receiveResponse()
                 if response and "valid" in response:
                     if response["valid"]:
-                        E5MessageBox.information(
+                        EricMessageBox.information(
                             self,
                             self.tr("Validation"),
                             self.tr(
                                 """The regular expression is valid."""))
                     else:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self,
                             self.tr("Error"),
                             self.tr("""Invalid regular expression: {0}""")
@@ -526,19 +526,19 @@
                         self.regexpTextEdit.setFocus()
                         return
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Communication Error"),
                         self.tr("""Invalid response received from"""
                                 """ PyQt5 backend."""))
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Communication Error"),
                     self.tr("""Communication with PyQt5 backend"""
                             """ failed."""))
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Error"),
                 self.tr("""A regular expression must be given."""))
@@ -582,7 +582,7 @@
                 response = self.__receiveResponse()
                 if response and ("valid" in response or "matched" in response):
                     if "valid" in response:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self,
                             self.tr("Error"),
                             self.tr("""Invalid regular expression: {0}""")
@@ -697,19 +697,19 @@
                         self.resultTable.verticalHeader().hide()
                         self.resultTable.horizontalHeader().hide()
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Communication Error"),
                         self.tr("""Invalid response received from"""
                                 """ PyQt5 backend."""))
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Communication Error"),
                     self.tr("""Communication with PyQt5"""
                             """ backend failed."""))
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Error"),
                 self.tr("""A regular expression and a text must"""
@@ -837,7 +837,7 @@
         super().reject()
 
 
-class QRegularExpressionWizardWindow(E5MainWindow):
+class QRegularExpressionWizardWindow(EricMainWindow):
     """
     Main window class for the standalone dialog.
     """
--- a/eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -16,10 +16,10 @@
 )
 from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5Completers import E5DirCompleter
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricCompleters import EricDirCompleter
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .Ui_SetupWizardDialog import Ui_SetupWizardDialog
 
@@ -33,7 +33,7 @@
     Class implementing the setup.py wizard dialog.
     
     It displays a dialog for entering the parameters
-    for the E5MessageBox code generator.
+    for the EricMessageBox code generator.
     """
     ClassifiersUrl = "https://pypi.org/pypi?%3Aaction=list_classifiers"
     
@@ -50,9 +50,9 @@
         
         self.dataTabWidget.setCurrentIndex(0)
         
-        self.__packageDirCompleter = E5DirCompleter(self.packageEdit)
-        self.__packageRootDirCompleter = E5DirCompleter(self.packageRootEdit)
-        self.__sourceDirCompleter = E5DirCompleter(self.sourceDirectoryEdit)
+        self.__packageDirCompleter = EricDirCompleter(self.packageEdit)
+        self.__packageRootDirCompleter = EricDirCompleter(self.packageRootEdit)
+        self.__sourceDirCompleter = EricDirCompleter(self.sourceDirectoryEdit)
         
         self.packageRootDirButton.setIcon(UI.PixmapCache.getIcon("open"))
         self.packageDirButton.setIcon(UI.PixmapCache.getIcon("open"))
@@ -75,7 +75,7 @@
             QDialogButtonBox.StandardButton.Ok)
         self.__okButton.setEnabled(False)
         
-        projectOpen = e5App().getObject("Project").isOpen()
+        projectOpen = ericApp().getObject("Project").isOpen()
         self.projectButton.setEnabled(projectOpen)
         self.autodiscoverPackagesButton.setEnabled(projectOpen)
         
@@ -113,7 +113,7 @@
         request.setAttribute(
             QNetworkRequest.Attribute.CacheLoadControlAttribute,
             QNetworkRequest.CacheLoadControl.AlwaysNetwork)
-        reply = e5App().getObject("UserInterface").networkAccessManager().get(
+        reply = ericApp().getObject("UserInterface").networkAccessManager().get(
             request)
         reply.finished.connect(lambda: self.__classifiersDownloadDone(reply))
         self.__replies.append(reply)
@@ -152,7 +152,7 @@
             with open(filename, "r") as f:
                 lines = f.readlines()
         except OSError as err:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Reading Trove Classifiers"),
                 self.tr("""<p>The Trove Classifiers file <b>{0}</b>"""
@@ -467,7 +467,7 @@
         Private slot to populate some fields with data retrieved from the
         current project.
         """
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         
         self.nameEdit.setText(project.getProjectName())
         try:
@@ -546,7 +546,7 @@
         startDir = self.packageEdit.text()
         if not startDir:
             startDir = self.packageRootEdit.text() or self.__getStartDir()
-        packageDir = E5FileDialog.getExistingDirectory(
+        packageDir = EricFileDialog.getExistingDirectory(
             self,
             self.tr("Package Directory"),
             Utilities.fromNativeSeparators(startDir))
@@ -559,7 +559,7 @@
         """
         Private slot to discover packages automatically.
         """
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             self.autodiscoverPackagesButton.setEnabled(False)
             startDir = self.packageRootEdit.text() or self.__getStartDir()
             if startDir:
@@ -578,11 +578,11 @@
         startDir = self.packageRootEdit.text()
         if not startDir:
             startDir = self.__getStartDir()
-        packagesRootDir = E5FileDialog.getExistingDirectory(
+        packagesRootDir = EricFileDialog.getExistingDirectory(
             self,
             self.tr("Packages Root Directory"),
             Utilities.fromNativeSeparators(startDir),
-            E5FileDialog.ShowDirsOnly)
+            EricFileDialog.ShowDirsOnly)
         if packagesRootDir:
             self.packageRootEdit.setText(
                 Utilities.toNativeSeparators(packagesRootDir))
@@ -594,7 +594,7 @@
         
         @param txt text of the line edit (string)
         """
-        projectOpen = e5App().getObject("Project").isOpen()
+        projectOpen = ericApp().getObject("Project").isOpen()
         validPackagesRoot = bool(txt) and os.path.exists(txt)
         self.autodiscoverPackagesButton.setEnabled(
             projectOpen or validPackagesRoot)
@@ -617,14 +617,14 @@
                     Utilities.toNativeSeparators(pkgDir),
                     "__init__.py")
                 if not os.path.exists(initName):
-                    res = E5MessageBox.information(
+                    res = EricMessageBox.information(
                         self,
                         self.tr("Add Package"),
                         self.tr("""<p>The directory <b>{0}</b> is not"""
                                 """ a Python package.</p>""")
                         .format(pkgDir),
-                        E5MessageBox.Ignore | E5MessageBox.Ok)
-                    if res == E5MessageBox.Ok:
+                        EricMessageBox.Ignore | EricMessageBox.Ok)
+                    if res == EricMessageBox.Ok:
                         return
             
             pkg = pkgDir.replace(
@@ -671,7 +671,7 @@
         Private slot to add scripts to the list.
         """
         startDir = self.packageRootEdit.text() or self.__getStartDir()
-        scriptsList = E5FileDialog.getOpenFileNames(
+        scriptsList = EricFileDialog.getOpenFileNames(
             self,
             self.tr("Add Scripts"),
             startDir,
@@ -710,7 +710,7 @@
         Private slot to add Python modules to the list.
         """
         startDir = self.packageRootEdit.text() or self.__getStartDir()
-        modulesList = E5FileDialog.getOpenFileNames(
+        modulesList = EricFileDialog.getOpenFileNames(
             self,
             self.tr("Add Python Modules"),
             startDir,
@@ -791,11 +791,11 @@
         directory selection dialog.
         """
         startDir = self.sourceDirectoryEdit.text() or self.__getStartDir()
-        sourceDirectory = E5FileDialog.getExistingDirectory(
+        sourceDirectory = EricFileDialog.getExistingDirectory(
             self,
             self.tr("Source Directory"),
             Utilities.fromNativeSeparators(startDir),
-            E5FileDialog.ShowDirsOnly)
+            EricFileDialog.ShowDirsOnly)
         if sourceDirectory:
             self.sourceDirectoryEdit.setText(
                 Utilities.toNativeSeparators(sourceDirectory))
--- a/eric7/Preferences/ConfigurationDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -20,9 +20,9 @@
     QVBoxLayout, QTreeWidgetItem, QLabel, QAbstractScrollArea, QLineEdit
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
-from E5Gui.E5MainWindow import E5MainWindow
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
+from E5Gui.EricMainWindow import EricMainWindow
 
 from Globals import isMacPlatform, getWebBrowserSupport
 
@@ -116,17 +116,17 @@
         if not fromEric:
             from PluginManager.PluginManager import PluginManager
             try:
-                self.pluginManager = e5App().getObject("PluginManager")
+                self.pluginManager = ericApp().getObject("PluginManager")
             except KeyError:
                 self.pluginManager = PluginManager(self)
-                e5App().registerObject("PluginManager", self.pluginManager)
+                ericApp().registerObject("PluginManager", self.pluginManager)
             
             from VirtualEnv.VirtualenvManager import VirtualenvManager
             try:
-                self.virtualenvManager = e5App().getObject("VirtualEnvManager")
+                self.virtualenvManager = ericApp().getObject("VirtualEnvManager")
             except KeyError:
                 self.virtualenvManager = VirtualenvManager(self)
-                e5App().registerObject("VirtualEnvManager",
+                ericApp().registerObject("VirtualEnvManager",
                                        self.virtualenvManager)
         
         if displayMode == ConfigurationMode.DEFAULTMODE:
@@ -364,7 +364,7 @@
                 })
             
             self.configItems.update(
-                e5App().getObject("PluginManager").getPluginConfigData())
+                ericApp().getObject("PluginManager").getPluginConfigData())
         
         elif displayMode == ConfigurationMode.WEBBROWSERMODE:
             self.configItems = {
@@ -662,7 +662,7 @@
                 mod = getattr(mod, comp)
             return mod
         except ImportError:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Configuration Page Error"),
                 self.tr("""<p>The configuration page <b>{0}</b>"""
@@ -1018,7 +1018,7 @@
         super().accept()
 
 
-class ConfigurationWindow(E5MainWindow):
+class ConfigurationWindow(EricMainWindow):
     """
     Main window class for the standalone dialog.
     """
--- a/eric7/Preferences/ConfigurationPages/CondaPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/CondaPage.py	Sat May 22 18:51:46 2021 +0200
@@ -7,7 +7,7 @@
 Module implementing the conda configuration page.
 """
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_CondaPage import Ui_CondaPage
@@ -27,7 +27,7 @@
         self.setupUi(self)
         self.setObjectName("CondaPage")
         
-        self.condaExePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.condaExePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.condaExePicker.setToolTip(self.tr(
             "Press to select the conda executable via a file selection"
             " dialog."))
--- a/eric7/Preferences/ConfigurationPages/CondaPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/CondaPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -38,7 +38,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout">
       <item>
-       <widget class="E5PathPicker" name="condaExePicker" native="true">
+       <widget class="EricPathPicker" name="condaExePicker" native="true">
         <property name="focusPolicy">
          <enum>Qt::StrongFocus</enum>
         </property>
@@ -74,9 +74,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/CorbaPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/CorbaPage.py	Sat May 22 18:51:46 2021 +0200
@@ -7,7 +7,7 @@
 Module implementing the Corba configuration page.
 """
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_CorbaPage import Ui_CorbaPage
@@ -27,7 +27,7 @@
         self.setupUi(self)
         self.setObjectName("CorbaPage")
         
-        self.idlPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.idlPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.idlPicker.setToolTip(self.tr(
             "Press to select the IDL compiler via a file selection dialog."))
         
--- a/eric7/Preferences/ConfigurationPages/CorbaPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/CorbaPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -38,7 +38,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout">
       <item>
-       <widget class="E5PathPicker" name="idlPicker" native="true">
+       <widget class="EricPathPicker" name="idlPicker" native="true">
         <property name="focusPolicy">
          <enum>Qt::StrongFocus</enum>
         </property>
@@ -74,9 +74,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/DebuggerGeneralPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/DebuggerGeneralPage.py	Sat May 22 18:51:46 2021 +0200
@@ -15,9 +15,9 @@
 from PyQt6.QtWidgets import QLineEdit, QInputDialog
 from PyQt6.QtNetwork import QNetworkInterface, QAbstractSocket, QHostAddress
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricCompleters import EricFileCompleter, EricDirCompleter
+from E5Gui import EricMessageBox
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_DebuggerGeneralPage import Ui_DebuggerGeneralPage
@@ -44,7 +44,7 @@
             self.execLineEdit.setWhatsThis(t)
         
         try:
-            backends = e5App().getObject("DebugServer").getSupportedLanguages()
+            backends = ericApp().getObject("DebugServer").getSupportedLanguages()
             for backend in sorted(backends):
                 self.passiveDbgBackendCombo.addItem(backend)
         except KeyError:
@@ -55,8 +55,8 @@
             t += Utilities.getPercentReplacementHelp()
             self.consoleDbgEdit.setWhatsThis(t)
         
-        self.consoleDbgCompleter = E5FileCompleter(self.consoleDbgEdit)
-        self.dbgTranslationLocalCompleter = E5DirCompleter(
+        self.consoleDbgCompleter = EricFileCompleter(self.consoleDbgEdit)
+        self.dbgTranslationLocalCompleter = EricDirCompleter(
             self.dbgTranslationLocalEdit)
         
         # set initial values
@@ -280,7 +280,7 @@
             ]:
                 self.allowedHostsList.addItem(allowedHost)
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Add allowed host"),
                     self.tr(
@@ -315,7 +315,7 @@
             ]:
                 self.allowedHostsList.currentItem().setText(allowedHost)
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Edit allowed host"),
                     self.tr(
--- a/eric7/Preferences/ConfigurationPages/DebuggerPython3Page.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/DebuggerPython3Page.py	Sat May 22 18:51:46 2021 +0200
@@ -9,8 +9,8 @@
 
 from PyQt6.QtCore import pyqtSlot
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_DebuggerPython3Page import Ui_DebuggerPython3Page
@@ -32,14 +32,14 @@
         self.setObjectName("DebuggerPython3Page")
         
         try:
-            self.__virtualenvManager = e5App().getObject("VirtualEnvManager")
+            self.__virtualenvManager = ericApp().getObject("VirtualEnvManager")
         except KeyError:
             from VirtualEnv.VirtualenvManager import VirtualenvManager
             self.__virtualenvManager = VirtualenvManager()
         
         self.venvDlgButton.setIcon(UI.PixmapCache.getIcon("virtualenv"))
         
-        self.debugClientPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.debugClientPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.debugClientPicker.setToolTip(self.tr(
             "Press to select the Debug Client via a file selection dialog"))
         self.debugClientPicker.setFilters(self.tr("Python Files (*.py *.py3)"))
--- a/eric7/Preferences/ConfigurationPages/DebuggerPython3Page.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/DebuggerPython3Page.ui	Sat May 22 18:51:46 2021 +0200
@@ -64,7 +64,7 @@
      </property>
      <layout class="QGridLayout" name="gridLayout">
       <item row="1" column="0" colspan="2">
-       <widget class="E5PathPicker" name="debugClientPicker" native="true">
+       <widget class="EricPathPicker" name="debugClientPicker" native="true">
         <property name="enabled">
          <bool>false</bool>
         </property>
@@ -202,9 +202,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/EditorAPIsPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorAPIsPage.py	Sat May 22 18:51:46 2021 +0200
@@ -10,9 +10,9 @@
 from PyQt6.QtCore import QDir, pyqtSlot, QFileInfo
 from PyQt6.QtWidgets import QInputDialog
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorAPIsPage import Ui_EditorAPIsPage
@@ -33,7 +33,7 @@
         self.setupUi(self)
         self.setObjectName("EditorAPIsPage")
         
-        self.apiFilePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.apiFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.apiFilePicker.setToolTip(self.tr(
             "Press to select an API file via a selection dialog"))
         self.apiFilePicker.setFilters(self.tr(
@@ -44,7 +44,7 @@
         self.__inPreparation = False
         
         # set initial values
-        self.pluginManager = e5App().getObject("PluginManager")
+        self.pluginManager = ericApp().getObject("PluginManager")
         self.apiAutoPrepareCheckBox.setChecked(
             Preferences.getEditor("AutoPrepareAPIs"))
         
@@ -132,7 +132,7 @@
         apiProjectTypes = sorted(
             [("", "")] +
             [(trans, ptype) for ptype, trans in
-                e5App().getObject("Project").getProjectTypes(language).items()
+                ericApp().getObject("Project").getProjectTypes(language).items()
              ]
         )
         for projectTypeStr, projectType in apiProjectTypes:
@@ -255,7 +255,7 @@
                     QFileInfo(QDir(installedAPIFilesPath), file)
                     .absoluteFilePath()))
         else:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Add from installed APIs"),
                 self.tr("""There are no APIs installed yet."""
--- a/eric7/Preferences/ConfigurationPages/EditorAPIsPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorAPIsPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -125,7 +125,7 @@
        </widget>
       </item>
       <item row="1" column="2">
-       <widget class="E5PathPicker" name="apiFilePicker" native="true">
+       <widget class="EricPathPicker" name="apiFilePicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -194,9 +194,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/EditorDocViewerPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorDocViewerPage.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorDocViewerPage import Ui_EditorDocViewerPage
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 
@@ -28,7 +28,7 @@
         self.setObjectName("EditorExportersPage")
         
         try:
-            providers = e5App().getObject("DocuViewer").getProviders()
+            providers = ericApp().getObject("DocuViewer").getProviders()
             for provider, text in providers:
                 self.providerComboBox.addItem(text, provider)
             
--- a/eric7/Preferences/ConfigurationPages/EditorFilePage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorFilePage.py	Sat May 22 18:51:46 2021 +0200
@@ -13,8 +13,8 @@
 from PyQt6.QtWidgets import QListWidgetItem, QInputDialog, QLineEdit
 from PyQt6.Qsci import QsciScintilla
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorFilePage import Ui_EditorFilePage
@@ -270,7 +270,7 @@
             not self.__showsOpenFilters and
             fileFilter.count("*") != 1
         ):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Add File Filter"),
                 self.tr("""A Save File Filter must contain exactly one"""
@@ -279,7 +279,7 @@
             return False
         
         if fileFilter.count("*") == 0:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Add File Filter"),
                 self.tr("""A File Filter must contain at least one"""
@@ -360,7 +360,7 @@
         """
         Private slot to install the pymdown extensions package via pip.
         """
-        pip = e5App().getObject("Pip")
+        pip = ericApp().getObject("Pip")
         pip.installPackages(["pymdown-extensions"], interpreter=sys.executable)
         self.polishPage()
         
--- a/eric7/Preferences/ConfigurationPages/EditorGeneralPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorGeneralPage.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 from PyQt6.QtWidgets import QTreeWidgetItem, QHeaderView, QDialog
 from PyQt6.Qsci import QsciScintillaBase
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorGeneralPage import Ui_EditorGeneralPage
@@ -241,7 +241,7 @@
         """
         Private slot to delete the selected override entries.
         """
-        ok = E5MessageBox.yesNo(
+        ok = EricMessageBox.yesNo(
             self,
             self.tr("Tab and Indent Override"),
             self.tr("""Shall the selected entries really be removed?"""))
--- a/eric7/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Sat May 22 18:51:46 2021 +0200
@@ -19,7 +19,7 @@
 from .Ui_EditorHighlightingStylesPage import Ui_EditorHighlightingStylesPage
 from ..SubstyleDefinitionDialog import SubstyleDefinitionDialog
 
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui import EricMessageBox, EricFileDialog
 
 import UI.PixmapCache
 
@@ -542,13 +542,13 @@
         
         lexers = [self.lexers[name] for name in lexerNames]
         
-        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Export Highlighting Styles"),
             stylesDir,
             self.tr("Highlighting Styles File (*.ehj)"),
             "",
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fn:
             return
@@ -560,7 +560,7 @@
                 fn += ex
         
         ok = (
-            E5MessageBox.yesNo(
+            EricMessageBox.yesNo(
                 self,
                 self.tr("Export Highlighting Styles"),
                 self.tr("""<p>The highlighting styles file <b>{0}</b> exists"""
@@ -586,7 +586,7 @@
         from eric7config import getConfig
         stylesDir = getConfig("ericStylesDir")
         
-        fn = E5FileDialog.getOpenFileName(
+        fn = EricFileDialog.getOpenFileName(
             self,
             self.tr("Import Highlighting Styles"),
             stylesDir,
@@ -618,7 +618,7 @@
                 if not styles:
                     return
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Import Highlighting Styles"),
                     self.tr(
@@ -759,7 +759,7 @@
         Private slot to delete the selected sub-style.
         """
         style, substyle = self.__currentStyles()
-        ok = E5MessageBox.yesNo(
+        ok = EricMessageBox.yesNo(
             self,
             self.tr("Delete Sub-Style"),
             self.tr("""<p>Shall the sub-style <b>{0}</b> really be"""
@@ -827,7 +827,7 @@
         Private slot to reset all substyles to default values.
         """
         style, substyle = self.__currentStyles()
-        ok = E5MessageBox.yesNo(
+        ok = EricMessageBox.yesNo(
             self,
             self.tr("Reset Sub-Styles to Default"),
             self.tr("<p>Do you really want to reset all defined sub-styles of"
--- a/eric7/Preferences/ConfigurationPages/EditorKeywordsPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorKeywordsPage.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtCore import pyqtSlot
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorKeywordsPage import Ui_EditorKeywordsPage
@@ -171,7 +171,7 @@
         Private slot to set the current keyword set to default values.
         """
         ok = (
-            E5MessageBox.yesNo(
+            EricMessageBox.yesNo(
                 self,
                 self.tr("Reset to Default"),
                 self.tr("Shall the current keyword set really be reset to"
@@ -194,7 +194,7 @@
         Private slot to set all keyword sets of the current language to default
         values.
         """
-        ok = E5MessageBox.yesNo(
+        ok = EricMessageBox.yesNo(
             self,
             self.tr("Reset All to Default"),
             self.tr("Shall all keyword sets of the current language really be"
--- a/eric7/Preferences/ConfigurationPages/EditorSpellCheckingPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorSpellCheckingPage.py	Sat May 22 18:51:46 2021 +0200
@@ -7,7 +7,7 @@
 Module implementing the Editor Spellchecking configuration page.
 """
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorSpellCheckingPage import Ui_EditorSpellCheckingPage
@@ -28,11 +28,11 @@
         self.setupUi(self)
         self.setObjectName("EditorSpellCheckingPage")
         
-        self.pwlPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.pwlPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.pwlPicker.setFilters(self.tr(
             "Dictionary File (*.dic);;All Files (*)"))
         
-        self.pelPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.pelPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.pelPicker.setFilters(self.tr(
             "Dictionary File (*.dic);;All Files (*)"))
         
--- a/eric7/Preferences/ConfigurationPages/EditorSpellCheckingPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorSpellCheckingPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -271,7 +271,7 @@
           </widget>
          </item>
          <item row="0" column="1">
-          <widget class="E5PathPicker" name="pwlPicker" native="true">
+          <widget class="EricPathPicker" name="pwlPicker" native="true">
            <property name="sizePolicy">
             <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
              <horstretch>0</horstretch>
@@ -291,7 +291,7 @@
           </widget>
          </item>
          <item row="1" column="1">
-          <widget class="E5PathPicker" name="pelPicker" native="true">
+          <widget class="EricPathPicker" name="pelPicker" native="true">
            <property name="sizePolicy">
             <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
              <horstretch>0</horstretch>
@@ -399,9 +399,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/EmailPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EmailPage.py	Sat May 22 18:51:46 2021 +0200
@@ -13,9 +13,9 @@
 
 from PyQt6.QtCore import pyqtSlot
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from EricNetwork.EricGoogleMailHelpers import getInstallCommand, RequiredPackages
 
@@ -199,7 +199,7 @@
         Private slot to test the mail server login data.
         """
         try:
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 if self.useSslButton.isChecked():
                     server = smtplib.SMTP_SSL(self.mailServerEdit.text(),
                                               self.portSpin.value(),
@@ -213,7 +213,7 @@
                 server.login(self.mailUserEdit.text(),
                              self.mailPasswordEdit.text())
                 server.quit()
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Login Test"),
                 self.tr("""The login test succeeded."""))
@@ -229,7 +229,7 @@
                     errorStr = str(e)
             else:
                 errorStr = str(e)
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Login Test"),
                 self.tr(
@@ -251,8 +251,8 @@
                     " Use <code>{0}</code> to install it.</p>"
                 ).format(getInstallCommand())
             
-            from E5Gui.E5SimpleHelpDialog import E5SimpleHelpDialog
-            self.__helpDialog = E5SimpleHelpDialog(
+            from E5Gui.EricSimpleHelpDialog import EricSimpleHelpDialog
+            self.__helpDialog = EricSimpleHelpDialog(
                 title=self.tr("Gmail API Help"),
                 helpStr=helpStr, parent=self)
         
@@ -263,7 +263,7 @@
         """
         Private slot to install the required packages for use of Google Mail.
         """
-        pip = e5App().getObject("Pip")
+        pip = ericApp().getObject("Pip")
         pip.installPackages(RequiredPackages, interpreter=sys.executable)
         self.__checkGoogleMail()
     
--- a/eric7/Preferences/ConfigurationPages/HelpDocumentationPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/HelpDocumentationPage.py	Sat May 22 18:51:46 2021 +0200
@@ -7,7 +7,7 @@
 Module implementing the Help Documentation configuration page.
 """
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_HelpDocumentationPage import Ui_HelpDocumentationPage
@@ -27,30 +27,30 @@
         self.setupUi(self)
         self.setObjectName("HelpDocumentationPage")
         
-        self.ericDocDirPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.ericDocDirPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.ericDocDirPicker.setFilters(self.tr(
             "HTML Files (*.html *.htm);;All Files (*)"))
-        self.pythonDocDirPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.pythonDocDirPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.pythonDocDirPicker.setFilters(self.tr(
             "HTML Files (*.html *.htm);;"
             "Compressed Help Files (*.chm);;"
             "All Files (*)"))
-        self.qt5DocDirPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.qt5DocDirPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.qt5DocDirPicker.setFilters(self.tr(
             "HTML Files (*.html *.htm);;All Files (*)"))
-        self.qt6DocDirPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.qt6DocDirPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.qt6DocDirPicker.setFilters(self.tr(
             "HTML Files (*.html *.htm);;All Files (*)"))
-        self.pyqt5DocDirPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.pyqt5DocDirPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.pyqt5DocDirPicker.setFilters(self.tr(
             "HTML Files (*.html *.htm);;All Files (*)"))
-        self.pyqt6DocDirPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.pyqt6DocDirPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.pyqt6DocDirPicker.setFilters(self.tr(
             "HTML Files (*.html *.htm);;All Files (*)"))
-        self.pyside2DocDirPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.pyside2DocDirPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.pyside2DocDirPicker.setFilters(self.tr(
             "HTML Files (*.html *.htm);;All Files (*)"))
-        self.pyside6DocDirPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.pyside6DocDirPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.pyside6DocDirPicker.setFilters(self.tr(
             "HTML Files (*.html *.htm);;All Files (*)"))
         
--- a/eric7/Preferences/ConfigurationPages/HelpDocumentationPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/HelpDocumentationPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -38,7 +38,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_9">
       <item>
-       <widget class="E5PathPicker" name="ericDocDirPicker" native="true">
+       <widget class="EricPathPicker" name="ericDocDirPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -73,7 +73,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_3">
       <item>
-       <widget class="E5PathPicker" name="pythonDocDirPicker" native="true">
+       <widget class="EricPathPicker" name="pythonDocDirPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -108,7 +108,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_5">
       <item>
-       <widget class="E5PathPicker" name="qt5DocDirPicker" native="true">
+       <widget class="EricPathPicker" name="qt5DocDirPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -143,7 +143,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_6">
       <item>
-       <widget class="E5PathPicker" name="qt6DocDirPicker" native="true">
+       <widget class="EricPathPicker" name="qt6DocDirPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -178,7 +178,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_7">
       <item>
-       <widget class="E5PathPicker" name="pyqt5DocDirPicker" native="true">
+       <widget class="EricPathPicker" name="pyqt5DocDirPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -213,7 +213,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_8">
       <item>
-       <widget class="E5PathPicker" name="pyqt6DocDirPicker" native="true">
+       <widget class="EricPathPicker" name="pyqt6DocDirPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -248,7 +248,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_10">
       <item>
-       <widget class="E5PathPicker" name="pyside2DocDirPicker" native="true">
+       <widget class="EricPathPicker" name="pyside2DocDirPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -283,7 +283,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_11">
       <item>
-       <widget class="E5PathPicker" name="pyside6DocDirPicker" native="true">
+       <widget class="EricPathPicker" name="pyside6DocDirPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -328,9 +328,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/HelpViewersPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/HelpViewersPage.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 
 from Globals import getWebBrowserSupport
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_HelpViewersPage import Ui_HelpViewersPage
@@ -31,7 +31,7 @@
         self.setupUi(self)
         self.setObjectName("HelpViewersPage")
         
-        self.customViewerPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.customViewerPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         
         self.helpViewerGroup = QButtonGroup()
         self.helpViewerGroup.addButton(self.helpBrowserButton)
--- a/eric7/Preferences/ConfigurationPages/HelpViewersPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/HelpViewersPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -81,7 +81,7 @@
        </widget>
       </item>
       <item row="1" column="0" colspan="4">
-       <widget class="E5PathPicker" name="customViewerPicker" native="true">
+       <widget class="EricPathPicker" name="customViewerPicker" native="true">
         <property name="enabled">
          <bool>false</bool>
         </property>
@@ -119,9 +119,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/IconsPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/IconsPage.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QListWidgetItem
 
-from E5Gui.E5PathPicker import E5PathPickerModes
-from E5Gui.E5Application import e5App
+from E5Gui.EricPathPicker import EricPathPickerModes
+from E5Gui.EricApplication import ericApp
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_IconsPage import Ui_IconsPage
@@ -35,7 +35,7 @@
         self.setupUi(self)
         self.setObjectName("IconsPage")
         
-        self.iconDirectoryPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.iconDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         # set initial values
         defaultIconsPath = Preferences.getIcons("DefaultIconsPath")
@@ -198,7 +198,7 @@
         """
         defaultIconsPath = self.__getSelectedDefaultIconsPath()
         if defaultIconsPath == "automatic":
-            if e5App().usesDarkPalette():
+            if ericApp().usesDarkPalette():
                 defaultIconsPath = "breeze-dark"
             else:
                 defaultIconsPath = "breeze-light"
--- a/eric7/Preferences/ConfigurationPages/IconsPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/IconsPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -235,7 +235,7 @@
          </widget>
         </item>
         <item>
-         <widget class="E5PathPicker" name="iconDirectoryPicker" native="true">
+         <widget class="EricPathPicker" name="iconDirectoryPicker" native="true">
           <property name="sizePolicy">
            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
             <horstretch>0</horstretch>
@@ -266,9 +266,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/InterfacePage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/InterfacePage.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import pyqtSlot, QTranslator
 from PyQt6.QtWidgets import QStyleFactory
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_InterfacePage import Ui_InterfacePage
@@ -36,7 +36,7 @@
         self.setupUi(self)
         self.setObjectName("InterfacePage")
         
-        self.styleSheetPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.styleSheetPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.styleSheetPicker.setFilters(self.tr(
             "Qt Style Sheets (*.qss);;Cascading Style Sheets (*.css);;"
             "All files (*)"))
--- a/eric7/Preferences/ConfigurationPages/InterfacePage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/InterfacePage.ui	Sat May 22 18:51:46 2021 +0200
@@ -179,7 +179,7 @@
       </widget>
      </item>
      <item row="1" column="1">
-      <widget class="E5PathPicker" name="styleSheetPicker" native="true">
+      <widget class="EricPathPicker" name="styleSheetPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -504,9 +504,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/LogViewerPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/LogViewerPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -99,7 +99,7 @@
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_2">
        <item>
-        <widget class="E5StringListEditWidget" name="stdoutFilterEdit" native="true"/>
+        <widget class="EricStringListEditWidget" name="stdoutFilterEdit" native="true"/>
        </item>
       </layout>
      </widget>
@@ -109,7 +109,7 @@
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_3">
        <item>
-        <widget class="E5StringListEditWidget" name="stderrFilterEdit" native="true"/>
+        <widget class="EricStringListEditWidget" name="stderrFilterEdit" native="true"/>
        </item>
       </layout>
      </widget>
@@ -119,7 +119,7 @@
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_4">
        <item>
-        <widget class="E5StringListEditWidget" name="stdxxxFilterEdit" native="true"/>
+        <widget class="EricStringListEditWidget" name="stdxxxFilterEdit" native="true"/>
        </item>
       </layout>
      </widget>
@@ -129,9 +129,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5StringListEditWidget</class>
+   <class>EricStringListEditWidget</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5StringListEditWidget.h</header>
+   <header>E5Gui/EricStringListEditWidget.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/MasterPasswordEntryDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/MasterPasswordEntryDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -96,7 +96,7 @@
     </layout>
    </item>
    <item>
-    <widget class="E5PasswordMeter" name="passwordMeter">
+    <widget class="EricPasswordMeter" name="passwordMeter">
      <property name="toolTip">
       <string>Shows an indication for the password strength</string>
      </property>
@@ -126,9 +126,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PasswordMeter</class>
+   <class>EricPasswordMeter</class>
    <extends>QProgressBar</extends>
-   <header>E5Gui/E5PasswordMeter</header>
+   <header>E5Gui/EricPasswordMeter</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/Preferences/ConfigurationPages/MicroPythonPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/MicroPythonPage.py	Sat May 22 18:51:46 2021 +0200
@@ -7,7 +7,7 @@
 Module implementing the MicroPython configuration page.
 """
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_MicroPythonPage import Ui_MicroPythonPage
@@ -33,7 +33,7 @@
         self.setupUi(self)
         self.setObjectName("MicroPythonPage")
         
-        self.workspacePicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.workspacePicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.colorSchemeComboBox.addItems(sorted(AnsiColorSchemes.keys()))
         
@@ -70,10 +70,10 @@
         except ImportError:
             self.chartThemeComboBox.setEnabled(False)
         
-        self.mpyCrossPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.mpyCrossPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.mpyCrossPicker.setFilters(self.tr("All Files (*)"))
         
-        self.dfuUtilPathPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.dfuUtilPathPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.dfuUtilPathPicker.setFilters(self.tr("All Files (*)"))
         
         # set initial values
--- a/eric7/Preferences/ConfigurationPages/MicroPythonPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/MicroPythonPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -38,7 +38,7 @@
      </property>
      <layout class="QHBoxLayout" name="horizontalLayout_4">
       <item>
-       <widget class="E5PathPicker" name="workspacePicker" native="true">
+       <widget class="EricPathPicker" name="workspacePicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -202,7 +202,7 @@
        </widget>
       </item>
       <item>
-       <widget class="E5PathPicker" name="mpyCrossPicker" native="true">
+       <widget class="EricPathPicker" name="mpyCrossPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -234,7 +234,7 @@
        </widget>
       </item>
       <item>
-       <widget class="E5PathPicker" name="dfuUtilPathPicker" native="true">
+       <widget class="EricPathPicker" name="dfuUtilPathPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -521,9 +521,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/MimeTypesPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/MimeTypesPage.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtCore import pyqtSlot
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_MimeTypesPage import Ui_MimeTypesPage
@@ -55,7 +55,7 @@
         """
         Private slot to set the default list of mime types.
         """
-        ok = E5MessageBox.yesNo(
+        ok = EricMessageBox.yesNo(
             self,
             self.tr("Reset Mime Types"),
             self.tr("""Do you really want to reset the configured list of"""
--- a/eric7/Preferences/ConfigurationPages/MimeTypesPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/MimeTypesPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -42,7 +42,7 @@
     </widget>
    </item>
    <item>
-    <widget class="E5StringListEditWidget" name="textMimeTypesList" native="true">
+    <widget class="EricStringListEditWidget" name="textMimeTypesList" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
        <horstretch>0</horstretch>
@@ -68,9 +68,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5StringListEditWidget</class>
+   <class>EricStringListEditWidget</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5StringListEditWidget.h</header>
+   <header>E5Gui/EricStringListEditWidget.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/MultiProjectPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/MultiProjectPage.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_MultiProjectPage import Ui_MultiProjectPage
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 import Preferences
 import Utilities
@@ -28,7 +28,7 @@
         self.setupUi(self)
         self.setObjectName("MultiProjectPage")
         
-        self.workspacePicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.workspacePicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         # set initial values
         self.openMasterAutomaticallyCheckBox.setChecked(
--- a/eric7/Preferences/ConfigurationPages/MultiProjectPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/MultiProjectPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -38,7 +38,7 @@
      </property>
      <layout class="QHBoxLayout" name="horizontalLayout">
       <item>
-       <widget class="E5PathPicker" name="workspacePicker" native="true">
+       <widget class="EricPathPicker" name="workspacePicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -160,9 +160,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/NetworkPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/NetworkPage.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtCore import pyqtSlot
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from EricNetwork.EricFtp import EricFtpProxyType
 
@@ -38,7 +38,7 @@
         self.__displayMode = None
         self.__webEngine = False
         
-        self.downloadDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.downloadDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.ftpProxyTypeCombo.addItem(
             self.tr("No FTP Proxy"), EricFtpProxyType.NO_PROXY.value)
--- a/eric7/Preferences/ConfigurationPages/NetworkPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/NetworkPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -47,7 +47,7 @@
          </widget>
         </item>
         <item>
-         <widget class="E5PathPicker" name="downloadDirPicker" native="true">
+         <widget class="EricPathPicker" name="downloadDirPicker" native="true">
           <property name="sizePolicy">
            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
             <horstretch>0</horstretch>
@@ -475,9 +475,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/PluginManagerPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/PluginManagerPage.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtCore import pyqtSlot
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_PluginManagerPage import Ui_PluginManagerPage
@@ -29,7 +29,7 @@
         self.setupUi(self)
         self.setObjectName("PluginManagerPage")
         
-        self.downloadDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.downloadDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         # set initial values
         self.activateExternalPluginsCheckBox.setChecked(
--- a/eric7/Preferences/ConfigurationPages/PluginManagerPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/PluginManagerPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -41,7 +41,7 @@
       </widget>
      </item>
      <item>
-      <widget class="E5PathPicker" name="downloadDirPicker" native="true">
+      <widget class="EricPathPicker" name="downloadDirPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -261,9 +261,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/ProjectBrowserPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/ProjectBrowserPage.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtCore import pyqtSlot
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_ProjectBrowserPage import Ui_ProjectBrowserPage
@@ -35,7 +35,7 @@
         self.projectTypeCombo.addItem('', '')
         self.__projectBrowserFlags = {'': 0}
         try:
-            projectTypes = e5App().getObject("Project").getProjectTypes()
+            projectTypes = ericApp().getObject("Project").getProjectTypes()
             for projectType in sorted(projectTypes.keys()):
                 self.projectTypeCombo.addItem(projectTypes[projectType],
                                               projectType)
--- a/eric7/Preferences/ConfigurationPages/ProtobufPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/ProtobufPage.py	Sat May 22 18:51:46 2021 +0200
@@ -7,7 +7,7 @@
 Module implementing the protobuf configuration page.
 """
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_ProtobufPage import Ui_ProtobufPage
@@ -27,12 +27,12 @@
         self.setupUi(self)
         self.setObjectName("ProtobufPage")
         
-        self.protocPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.protocPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.protocPicker.setToolTip(self.tr(
             "Press to select the Protobuf compiler via a file selection"
             " dialog."))
         
-        self.grpcPythonPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.grpcPythonPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.grpcPythonPicker.setToolTip(self.tr(
             "Press to select the Python interpreter containing the gRPC"
             " compiler via a file selection dialog."))
--- a/eric7/Preferences/ConfigurationPages/ProtobufPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/ProtobufPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -38,7 +38,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_2">
       <item>
-       <widget class="E5PathPicker" name="protocPicker" native="true">
+       <widget class="EricPathPicker" name="protocPicker" native="true">
         <property name="focusPolicy">
          <enum>Qt::StrongFocus</enum>
         </property>
@@ -64,7 +64,7 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_3">
       <item>
-       <widget class="E5PathPicker" name="grpcPythonPicker" native="true">
+       <widget class="EricPathPicker" name="grpcPythonPicker" native="true">
         <property name="focusPolicy">
          <enum>Qt::StrongFocus</enum>
         </property>
@@ -100,9 +100,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/QtPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/QtPage.py	Sat May 22 18:51:46 2021 +0200
@@ -9,8 +9,8 @@
 
 from PyQt6.QtCore import pyqtSlot
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_QtPage import Ui_QtPage
@@ -32,7 +32,7 @@
         self.setObjectName("QtPage")
         
         try:
-            self.__virtualenvManager = e5App().getObject("VirtualEnvManager")
+            self.__virtualenvManager = ericApp().getObject("VirtualEnvManager")
         except KeyError:
             from VirtualEnv.VirtualenvManager import VirtualenvManager
             self.__virtualenvManager = VirtualenvManager()
@@ -43,7 +43,7 @@
         ):
             button.setIcon(UI.PixmapCache.getIcon("virtualenv"))
         
-        self.qtTransPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.qtTransPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         for picker in (
             self.qtToolsDirPicker,
             self.pyqtToolsDirPicker,
@@ -51,7 +51,7 @@
             self.pyside2ToolsDirPicker,
             self.pyside6ToolsDirPicker,
         ):
-            picker.setMode(E5PathPickerModes.DIRECTORY_SHOW_FILES_MODE)
+            picker.setMode(EricPathPickerModes.DIRECTORY_SHOW_FILES_MODE)
         
         self.__populateAndSetVenvComboBoxes(True)
         
--- a/eric7/Preferences/ConfigurationPages/QtPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/QtPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -51,7 +51,7 @@
           </widget>
          </item>
          <item>
-          <widget class="E5PathPicker" name="qtTransPicker" native="true">
+          <widget class="EricPathPicker" name="qtTransPicker" native="true">
            <property name="sizePolicy">
             <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
              <horstretch>0</horstretch>
@@ -95,7 +95,7 @@
             </widget>
            </item>
            <item>
-            <widget class="E5PathPicker" name="qtToolsDirPicker" native="true">
+            <widget class="EricPathPicker" name="qtToolsDirPicker" native="true">
              <property name="sizePolicy">
               <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
                <horstretch>0</horstretch>
@@ -230,7 +230,7 @@
             </widget>
            </item>
            <item>
-            <widget class="E5PathPicker" name="pyqtToolsDirPicker" native="true">
+            <widget class="EricPathPicker" name="pyqtToolsDirPicker" native="true">
              <property name="sizePolicy">
               <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
                <horstretch>0</horstretch>
@@ -365,7 +365,7 @@
             </widget>
            </item>
            <item>
-            <widget class="E5PathPicker" name="pyqt6ToolsDirPicker" native="true">
+            <widget class="EricPathPicker" name="pyqt6ToolsDirPicker" native="true">
              <property name="sizePolicy">
               <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
                <horstretch>0</horstretch>
@@ -502,7 +502,7 @@
             </widget>
            </item>
            <item>
-            <widget class="E5PathPicker" name="pyside2ToolsDirPicker" native="true">
+            <widget class="EricPathPicker" name="pyside2ToolsDirPicker" native="true">
              <property name="sizePolicy">
               <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
                <horstretch>0</horstretch>
@@ -588,7 +588,7 @@
             </widget>
            </item>
            <item>
-            <widget class="E5PathPicker" name="pyside6ToolsDirPicker" native="true">
+            <widget class="EricPathPicker" name="pyside6ToolsDirPicker" native="true">
              <property name="sizePolicy">
               <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
                <horstretch>0</horstretch>
@@ -644,9 +644,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/ViewmanagerPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/ViewmanagerPage.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtCore import pyqtSlot
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_ViewmanagerPage import Ui_ViewmanagerPage
@@ -30,7 +30,7 @@
         self.setObjectName("ViewmanagerPage")
         
         # set initial values
-        self.pluginManager = e5App().getObject("PluginManager")
+        self.pluginManager = ericApp().getObject("PluginManager")
         self.viewmanagers = self.pluginManager.getPluginDisplayStrings(
             "viewmanager")
         self.windowComboBox.clear()
--- a/eric7/Preferences/ConfigurationPages/WebBrowserAppearancePage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/WebBrowserAppearancePage.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtGui import QFont
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_WebBrowserAppearancePage import Ui_WebBrowserAppearancePage
@@ -30,7 +30,7 @@
         self.setupUi(self)
         self.setObjectName("WebBrowserAppearancePage")
         
-        self.styleSheetPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.styleSheetPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.styleSheetPicker.setFilters(self.tr(
             "Cascading Style Sheets (*.css);;All files (*)"))
         
--- a/eric7/Preferences/ConfigurationPages/WebBrowserAppearancePage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/WebBrowserAppearancePage.ui	Sat May 22 18:51:46 2021 +0200
@@ -429,7 +429,7 @@
        </widget>
       </item>
       <item>
-       <widget class="E5PathPicker" name="styleSheetPicker" native="true">
+       <widget class="EricPathPicker" name="styleSheetPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -528,9 +528,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ConfigurationPages/WebBrowserInterfacePage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/WebBrowserInterfacePage.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QStyleFactory
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_WebBrowserInterfacePage import Ui_WebBrowserInterfacePage
@@ -31,7 +31,7 @@
         self.setupUi(self)
         self.setObjectName("InterfacePage")
         
-        self.styleSheetPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.styleSheetPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.styleSheetPicker.setFilters(self.tr(
             "Qt Style Sheets (*.qss);;Cascading Style Sheets (*.css);;"
             "All files (*)"))
--- a/eric7/Preferences/ConfigurationPages/WebBrowserInterfacePage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/WebBrowserInterfacePage.ui	Sat May 22 18:51:46 2021 +0200
@@ -55,7 +55,7 @@
       </widget>
      </item>
      <item row="1" column="1">
-      <widget class="E5PathPicker" name="styleSheetPicker" native="true">
+      <widget class="EricPathPicker" name="styleSheetPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -89,9 +89,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/HighlightingStylesFile.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/HighlightingStylesFile.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 
 from PyQt6.QtCore import QObject
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverridenCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverridenCursor
 
 import Preferences
 
@@ -84,8 +84,8 @@
             with open(filename, "w") as f:
                 f.write(jsonString)
         except (TypeError, OSError) as err:
-            with E5OverridenCursor():
-                E5MessageBox.critical(
+            with EricOverridenCursor():
+                EricMessageBox.critical(
                     None,
                     self.tr("Export Highlighting Styles"),
                     self.tr(
@@ -112,7 +112,7 @@
                 jsonString = f.read()
             stylesDict = json.loads(jsonString)
         except (OSError, json.JSONDecodeError) as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Import Highlighting Styles"),
                 self.tr(
--- a/eric7/Preferences/ProgramsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ProgramsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
     QApplication, QTreeWidgetItem, QHeaderView, QDialog, QDialogButtonBox
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .Ui_ProgramsDialog import Ui_ProgramsDialog
 
@@ -85,7 +85,7 @@
         header.setSortIndicator(0, Qt.SortOrder.AscendingOrder)
         header.setSortIndicatorShown(False)
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             # 1. do the Qt programs
             # 1a. Translation Converter
             exe = (
@@ -212,7 +212,7 @@
                 self.tr("conda Manager"), exe, '--version', 'conda', -1)
             
             # 5. do the pip program(s)
-            virtualenvManager = e5App().getObject("VirtualEnvManager")
+            virtualenvManager = ericApp().getObject("VirtualEnvManager")
             for venvName in virtualenvManager.getVirtualenvNames():
                 interpreter = virtualenvManager.getVirtualenvInterpreter(
                     venvName)
@@ -298,7 +298,7 @@
                 'dfu-util', -1)
             
             # 10. do the plugin related programs
-            pm = e5App().getObject("PluginManager")
+            pm = ericApp().getObject("PluginManager")
             for info in pm.getPluginExeDisplayData():
                 if info["programEntry"]:
                     if "exeModule" not in info:
--- a/eric7/Preferences/Shortcuts.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/Shortcuts.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 from PyQt6.QtCore import QFile, QIODevice, QCoreApplication
 from PyQt6.QtGui import QKeySequence
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from Preferences import Prefs, syncPreferences
 
@@ -22,7 +22,7 @@
     """
     Private function to read a single keyboard shortcut from the settings.
     
-    @param act reference to the action object (E5Action)
+    @param act reference to the action object (EricAction)
     @param category category the action belongs to (string)
     @param prefClass preferences class used as the storage area
     """
@@ -47,45 +47,45 @@
         (string)
     """
     if helpViewer is None and pluginName is None:
-        for act in e5App().getObject("Project").getActions():
+        for act in ericApp().getObject("Project").getActions():
             __readShortcut(act, "Project", prefClass)
         
-        for act in e5App().getObject("UserInterface").getActions('ui'):
+        for act in ericApp().getObject("UserInterface").getActions('ui'):
             __readShortcut(act, "General", prefClass)
         
-        for act in e5App().getObject("UserInterface").getActions('wizards'):
+        for act in ericApp().getObject("UserInterface").getActions('wizards'):
             __readShortcut(act, "Wizards", prefClass)
         
-        for act in e5App().getObject("DebugUI").getActions():
+        for act in ericApp().getObject("DebugUI").getActions():
             __readShortcut(act, "Debug", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('edit'):
+        for act in ericApp().getObject("ViewManager").getActions('edit'):
             __readShortcut(act, "Edit", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('file'):
+        for act in ericApp().getObject("ViewManager").getActions('file'):
             __readShortcut(act, "File", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('search'):
+        for act in ericApp().getObject("ViewManager").getActions('search'):
             __readShortcut(act, "Search", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('view'):
+        for act in ericApp().getObject("ViewManager").getActions('view'):
             __readShortcut(act, "View", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('macro'):
+        for act in ericApp().getObject("ViewManager").getActions('macro'):
             __readShortcut(act, "Macro", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('bookmark'):
+        for act in ericApp().getObject("ViewManager").getActions('bookmark'):
             __readShortcut(act, "Bookmarks", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('spelling'):
+        for act in ericApp().getObject("ViewManager").getActions('spelling'):
             __readShortcut(act, "Spelling", prefClass)
         
-        actions = e5App().getObject("ViewManager").getActions('window')
+        actions = ericApp().getObject("ViewManager").getActions('window')
         if actions:
             for act in actions:
                 __readShortcut(act, "Window", prefClass)
         
-        for category, ref in e5App().getPluginObjects():
+        for category, ref in ericApp().getPluginObjects():
             if hasattr(ref, "getActions"):
                 actions = ref.getActions()
                 for act in actions:
@@ -98,7 +98,7 @@
     
     if pluginName is not None:
         with contextlib.suppress(KeyError):
-            ref = e5App().getPluginObject(pluginName)
+            ref = ericApp().getPluginObject(pluginName)
             if hasattr(ref, "getActions"):
                 actions = ref.getActions()
                 for act in actions:
@@ -109,7 +109,7 @@
     """
     Private function to write a single keyboard shortcut to the settings.
     
-    @param act reference to the action object (E5Action)
+    @param act reference to the action object (EricAction)
     @param category category the action belongs to (string)
     @param prefClass preferences class used as the storage area
     """
@@ -136,45 +136,45 @@
         prefClass.settings.endGroup()
         
         # step 2: save the various shortcuts
-        for act in e5App().getObject("Project").getActions():
+        for act in ericApp().getObject("Project").getActions():
             __saveShortcut(act, "Project", prefClass)
         
-        for act in e5App().getObject("UserInterface").getActions('ui'):
+        for act in ericApp().getObject("UserInterface").getActions('ui'):
             __saveShortcut(act, "General", prefClass)
         
-        for act in e5App().getObject("UserInterface").getActions('wizards'):
+        for act in ericApp().getObject("UserInterface").getActions('wizards'):
             __saveShortcut(act, "Wizards", prefClass)
         
-        for act in e5App().getObject("DebugUI").getActions():
+        for act in ericApp().getObject("DebugUI").getActions():
             __saveShortcut(act, "Debug", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('edit'):
+        for act in ericApp().getObject("ViewManager").getActions('edit'):
             __saveShortcut(act, "Edit", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('file'):
+        for act in ericApp().getObject("ViewManager").getActions('file'):
             __saveShortcut(act, "File", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('search'):
+        for act in ericApp().getObject("ViewManager").getActions('search'):
             __saveShortcut(act, "Search", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('view'):
+        for act in ericApp().getObject("ViewManager").getActions('view'):
             __saveShortcut(act, "View", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('macro'):
+        for act in ericApp().getObject("ViewManager").getActions('macro'):
             __saveShortcut(act, "Macro", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('bookmark'):
+        for act in ericApp().getObject("ViewManager").getActions('bookmark'):
             __saveShortcut(act, "Bookmarks", prefClass)
         
-        for act in e5App().getObject("ViewManager").getActions('spelling'):
+        for act in ericApp().getObject("ViewManager").getActions('spelling'):
             __saveShortcut(act, "Spelling", prefClass)
         
-        actions = e5App().getObject("ViewManager").getActions('window')
+        actions = ericApp().getObject("ViewManager").getActions('window')
         if actions:
             for act in actions:
                 __saveShortcut(act, "Window", prefClass)
         
-        for category, ref in e5App().getPluginObjects():
+        for category, ref in ericApp().getPluginObjects():
             if hasattr(ref, "getActions"):
                 actions = ref.getActions()
                 for act in actions:
@@ -205,7 +205,7 @@
     @type WebBrowserWindow
     """
     # let the plugin manager create on demand plugin objects
-    pm = e5App().getObject("PluginManager")
+    pm = ericApp().getObject("PluginManager")
     pm.initOnDemandPlugins()
     
     from .ShortcutsFile import ShortcutsFile
@@ -223,7 +223,7 @@
     @type WebBrowserWindow
     """
     # let the plugin manager create on demand plugin objects
-    pm = e5App().getObject("PluginManager")
+    pm = ericApp().getObject("PluginManager")
     pm.initOnDemandPlugins()
     
     if fn.endswith(".ekj"):
@@ -249,7 +249,7 @@
                 saveShortcuts()
                 syncPreferences()
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 QCoreApplication.translate(
                     "Shortcuts", "Import Keyboard Shortcuts"),
@@ -265,7 +265,7 @@
     Private function to set a single keyboard shortcut category shortcuts.
     
     @param actions list of actions to set
-    @type list of E5Action
+    @type list of EricAction
     @param shortcutsDict dictionary containing accelerator information for
         one category
     @type dict
@@ -292,65 +292,65 @@
     if helpViewer is None:
         if "Project" in shortcuts:
             __setAction(
-                e5App().getObject("Project").getActions(),
+                ericApp().getObject("Project").getActions(),
                 shortcuts["Project"])
         
         if "General" in shortcuts:
             __setAction(
-                e5App().getObject("UserInterface").getActions('ui'),
+                ericApp().getObject("UserInterface").getActions('ui'),
                 shortcuts["General"])
         
         if "Wizards" in shortcuts:
             __setAction(
-                e5App().getObject("UserInterface").getActions('wizards'),
+                ericApp().getObject("UserInterface").getActions('wizards'),
                 shortcuts["Wizards"])
         
         if "Debug" in shortcuts:
             __setAction(
-                e5App().getObject("DebugUI").getActions(),
+                ericApp().getObject("DebugUI").getActions(),
                 shortcuts["Debug"])
         
         if "Edit" in shortcuts:
             __setAction(
-                e5App().getObject("ViewManager").getActions('edit'),
+                ericApp().getObject("ViewManager").getActions('edit'),
                 shortcuts["Edit"])
         
         if "File" in shortcuts:
             __setAction(
-                e5App().getObject("ViewManager").getActions('file'),
+                ericApp().getObject("ViewManager").getActions('file'),
                 shortcuts["File"])
         
         if "Search" in shortcuts:
             __setAction(
-                e5App().getObject("ViewManager").getActions('search'),
+                ericApp().getObject("ViewManager").getActions('search'),
                 shortcuts["Search"])
         
         if "View" in shortcuts:
             __setAction(
-                e5App().getObject("ViewManager").getActions('view'),
+                ericApp().getObject("ViewManager").getActions('view'),
                 shortcuts["View"])
         
         if "Macro" in shortcuts:
             __setAction(
-                e5App().getObject("ViewManager").getActions('macro'),
+                ericApp().getObject("ViewManager").getActions('macro'),
                 shortcuts["Macro"])
         
         if "Bookmarks" in shortcuts:
             __setAction(
-                e5App().getObject("ViewManager").getActions('bookmark'),
+                ericApp().getObject("ViewManager").getActions('bookmark'),
                 shortcuts["Bookmarks"])
         
         if "Spelling" in shortcuts:
             __setAction(
-                e5App().getObject("ViewManager").getActions('spelling'),
+                ericApp().getObject("ViewManager").getActions('spelling'),
                 shortcuts["Spelling"])
         
         if "Window" in shortcuts:
-            actions = e5App().getObject("ViewManager").getActions('window')
+            actions = ericApp().getObject("ViewManager").getActions('window')
             if actions:
                 __setAction(actions, shortcuts["Window"])
         
-        for category, ref in e5App().getPluginObjects():
+        for category, ref in ericApp().getPluginObjects():
             if category in shortcuts and hasattr(ref, "getActions"):
                 actions = ref.getActions()
                 __setAction(actions, shortcuts[category])
--- a/eric7/Preferences/ShortcutsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ShortcutsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,8 +14,8 @@
 from PyQt6.QtGui import QKeySequence
 from PyQt6.QtWidgets import QHeaderView, QDialog, QTreeWidgetItem
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from .Ui_ShortcutsDialog import Ui_ShortcutsDialog
 
@@ -92,7 +92,7 @@
         Private method to generate a keyboard shortcut item.
         
         @param category reference to the category item (QTreeWidgetItem)
-        @param action reference to the keyboard action (E5Action)
+        @param action reference to the keyboard action (EricAction)
         @param noCheck flag indicating that no uniqueness check should
             be performed (boolean)
         @param objectType type of the object (string). Objects of the same
@@ -125,59 +125,59 @@
         
         if helpViewer is None:
             # let the plugin manager create on demand plugin objects
-            pm = e5App().getObject("PluginManager")
+            pm = ericApp().getObject("PluginManager")
             pm.initOnDemandPlugins()
             
             # populate the various lists
             self.projectItem = self.__generateCategoryItem(self.tr("Project"))
-            for act in e5App().getObject("Project").getActions():
+            for act in ericApp().getObject("Project").getActions():
                 self.__generateShortcutItem(self.projectItem, act)
             
             self.uiItem = self.__generateCategoryItem(self.tr("General"))
-            for act in e5App().getObject("UserInterface").getActions('ui'):
+            for act in ericApp().getObject("UserInterface").getActions('ui'):
                 self.__generateShortcutItem(self.uiItem, act)
             
             self.wizardsItem = self.__generateCategoryItem(self.tr("Wizards"))
             for act in (
-                e5App().getObject("UserInterface").getActions('wizards')
+                ericApp().getObject("UserInterface").getActions('wizards')
             ):
                 self.__generateShortcutItem(self.wizardsItem, act)
             
             self.debugItem = self.__generateCategoryItem(self.tr("Debug"))
-            for act in e5App().getObject("DebugUI").getActions():
+            for act in ericApp().getObject("DebugUI").getActions():
                 self.__generateShortcutItem(self.debugItem, act)
             
             self.editItem = self.__generateCategoryItem(self.tr("Edit"))
-            for act in e5App().getObject("ViewManager").getActions('edit'):
+            for act in ericApp().getObject("ViewManager").getActions('edit'):
                 self.__generateShortcutItem(self.editItem, act)
             
             self.fileItem = self.__generateCategoryItem(self.tr("File"))
-            for act in e5App().getObject("ViewManager").getActions('file'):
+            for act in ericApp().getObject("ViewManager").getActions('file'):
                 self.__generateShortcutItem(self.fileItem, act)
             
             self.searchItem = self.__generateCategoryItem(self.tr("Search"))
-            for act in e5App().getObject("ViewManager").getActions('search'):
+            for act in ericApp().getObject("ViewManager").getActions('search'):
                 self.__generateShortcutItem(self.searchItem, act)
             
             self.viewItem = self.__generateCategoryItem(self.tr("View"))
-            for act in e5App().getObject("ViewManager").getActions('view'):
+            for act in ericApp().getObject("ViewManager").getActions('view'):
                 self.__generateShortcutItem(self.viewItem, act)
             
             self.macroItem = self.__generateCategoryItem(self.tr("Macro"))
-            for act in e5App().getObject("ViewManager").getActions('macro'):
+            for act in ericApp().getObject("ViewManager").getActions('macro'):
                 self.__generateShortcutItem(self.macroItem, act)
             
             self.bookmarkItem = self.__generateCategoryItem(
                 self.tr("Bookmarks"))
-            for act in e5App().getObject("ViewManager").getActions('bookmark'):
+            for act in ericApp().getObject("ViewManager").getActions('bookmark'):
                 self.__generateShortcutItem(self.bookmarkItem, act)
             
             self.spellingItem = self.__generateCategoryItem(
                 self.tr("Spelling"))
-            for act in e5App().getObject("ViewManager").getActions('spelling'):
+            for act in ericApp().getObject("ViewManager").getActions('spelling'):
                 self.__generateShortcutItem(self.spellingItem, act)
             
-            actions = e5App().getObject("ViewManager").getActions('window')
+            actions = ericApp().getObject("ViewManager").getActions('window')
             if actions:
                 self.windowItem = self.__generateCategoryItem(
                     self.tr("Window"))
@@ -185,10 +185,10 @@
                     self.__generateShortcutItem(self.windowItem, act)
             
             self.pluginCategoryItems = []
-            for category, ref in e5App().getPluginObjects():
+            for category, ref in ericApp().getPluginObjects():
                 if hasattr(ref, "getActions"):
                     categoryItem = self.__generateCategoryItem(category)
-                    objectType = e5App().getPluginObjectType(category)
+                    objectType = ericApp().getPluginObjectType(category)
                     for act in ref.getActions():
                         self.__generateShortcutItem(categoryItem, act,
                                                     objectType=objectType)
@@ -325,7 +325,7 @@
                         itmseq = itm.text(col)
                         # step 1: check if shortcut is already allocated
                         if keystr == itmseq:
-                            res = E5MessageBox.yesNo(
+                            res = EricMessageBox.yesNo(
                                 self,
                                 self.tr("Edit shortcuts"),
                                 self.tr(
@@ -333,7 +333,7 @@
                                     """ allocated to the <b>{1}</b> action. """
                                     """Remove this binding?</p>""")
                                 .format(keystr, itm.text(0)),
-                                icon=E5MessageBox.Warning)
+                                icon=EricMessageBox.Warning)
                             if res:
                                 itm.setText(col, "")
                                 return True
@@ -345,14 +345,14 @@
                         
                         # step 2: check if shortcut hides an already allocated
                         if itmseq.startswith("{0}+".format(keystr)):
-                            res = E5MessageBox.yesNo(
+                            res = EricMessageBox.yesNo(
                                 self,
                                 self.tr("Edit shortcuts"),
                                 self.tr(
                                     """<p><b>{0}</b> hides the <b>{1}</b>"""
                                     """ action. Remove this binding?</p>""")
                                 .format(keystr, itm.text(0)),
-                                icon=E5MessageBox.Warning)
+                                icon=EricMessageBox.Warning)
                             if res:
                                 itm.setText(col, "")
                                 return True
@@ -362,7 +362,7 @@
                         # step 3: check if shortcut is hidden by an
                         #         already allocated
                         if keystr.startswith("{0}+".format(itmseq)):
-                            res = E5MessageBox.yesNo(
+                            res = EricMessageBox.yesNo(
                                 self,
                                 self.tr("Edit shortcuts"),
                                 self.tr(
@@ -370,7 +370,7 @@
                                     """<b>{1}</b> action. """
                                     """Remove this binding?</p>""")
                                 .format(keystr, itm.text(0)),
-                                icon=E5MessageBox.Warning)
+                                icon=EricMessageBox.Warning)
                             if res:
                                 itm.setText(col, "")
                                 return True
@@ -384,7 +384,7 @@
         Private method to save the actions for a category.
         
         @param category reference to the category item (QTreeWidgetItem)
-        @param actions list of actions for the category (list of E5Action)
+        @param actions list of actions for the category (list of EricAction)
         """
         for index in range(category.childCount()):
             itm = category.child(index)
@@ -403,45 +403,45 @@
         if self.__helpViewer is None:
             self.__saveCategoryActions(
                 self.projectItem,
-                e5App().getObject("Project").getActions())
+                ericApp().getObject("Project").getActions())
             self.__saveCategoryActions(
                 self.uiItem,
-                e5App().getObject("UserInterface").getActions('ui'))
+                ericApp().getObject("UserInterface").getActions('ui'))
             self.__saveCategoryActions(
                 self.wizardsItem,
-                e5App().getObject("UserInterface").getActions('wizards'))
+                ericApp().getObject("UserInterface").getActions('wizards'))
             self.__saveCategoryActions(
                 self.debugItem,
-                e5App().getObject("DebugUI").getActions())
+                ericApp().getObject("DebugUI").getActions())
             self.__saveCategoryActions(
                 self.editItem,
-                e5App().getObject("ViewManager").getActions('edit'))
+                ericApp().getObject("ViewManager").getActions('edit'))
             self.__saveCategoryActions(
                 self.fileItem,
-                e5App().getObject("ViewManager").getActions('file'))
+                ericApp().getObject("ViewManager").getActions('file'))
             self.__saveCategoryActions(
                 self.searchItem,
-                e5App().getObject("ViewManager").getActions('search'))
+                ericApp().getObject("ViewManager").getActions('search'))
             self.__saveCategoryActions(
                 self.viewItem,
-                e5App().getObject("ViewManager").getActions('view'))
+                ericApp().getObject("ViewManager").getActions('view'))
             self.__saveCategoryActions(
                 self.macroItem,
-                e5App().getObject("ViewManager").getActions('macro'))
+                ericApp().getObject("ViewManager").getActions('macro'))
             self.__saveCategoryActions(
                 self.bookmarkItem,
-                e5App().getObject("ViewManager").getActions('bookmark'))
+                ericApp().getObject("ViewManager").getActions('bookmark'))
             self.__saveCategoryActions(
                 self.spellingItem,
-                e5App().getObject("ViewManager").getActions('spelling'))
+                ericApp().getObject("ViewManager").getActions('spelling'))
             
-            actions = e5App().getObject("ViewManager").getActions('window')
+            actions = ericApp().getObject("ViewManager").getActions('window')
             if actions:
                 self.__saveCategoryActions(self.windowItem, actions)
             
             for categoryItem in self.pluginCategoryItems:
                 category = categoryItem.text(0)
-                ref = e5App().getPluginObject(category)
+                ref = ericApp().getPluginObject(category)
                 if ref is not None and hasattr(ref, "getActions"):
                     self.__saveCategoryActions(categoryItem, ref.getActions())
             
--- a/eric7/Preferences/ShortcutsFile.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ShortcutsFile.py	Sat May 22 18:51:46 2021 +0200
@@ -13,9 +13,9 @@
 
 from PyQt6.QtCore import QObject
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverridenCursor
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverridenCursor
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 
@@ -76,66 +76,66 @@
         if helpViewer is None:
             self.__addActionsToDict(
                 "Project",
-                e5App().getObject("Project").getActions(),
+                ericApp().getObject("Project").getActions(),
                 actionsDict
             )
             self.__addActionsToDict(
                 "General",
-                e5App().getObject("UserInterface").getActions('ui'),
+                ericApp().getObject("UserInterface").getActions('ui'),
                 actionsDict
             )
             self.__addActionsToDict(
                 "Wizards",
-                e5App().getObject("UserInterface").getActions('wizards'),
+                ericApp().getObject("UserInterface").getActions('wizards'),
                 actionsDict
             )
             self.__addActionsToDict(
                 "Debug",
-                e5App().getObject("DebugUI").getActions(),
+                ericApp().getObject("DebugUI").getActions(),
                 actionsDict
             )
             self.__addActionsToDict(
                 "Edit",
-                e5App().getObject("ViewManager").getActions('edit'),
+                ericApp().getObject("ViewManager").getActions('edit'),
                 actionsDict
             )
             self.__addActionsToDict(
                 "File",
-                e5App().getObject("ViewManager").getActions('file'),
+                ericApp().getObject("ViewManager").getActions('file'),
                 actionsDict
             )
             self.__addActionsToDict(
                 "Search",
-                e5App().getObject("ViewManager").getActions('search'),
+                ericApp().getObject("ViewManager").getActions('search'),
                 actionsDict
             )
             self.__addActionsToDict(
                 "View",
-                e5App().getObject("ViewManager").getActions('view'),
+                ericApp().getObject("ViewManager").getActions('view'),
                 actionsDict
             )
             self.__addActionsToDict(
                 "Macro",
-                e5App().getObject("ViewManager").getActions('macro'),
+                ericApp().getObject("ViewManager").getActions('macro'),
                 actionsDict
             )
             self.__addActionsToDict(
                 "Bookmarks",
-                e5App().getObject("ViewManager").getActions('bookmark'),
+                ericApp().getObject("ViewManager").getActions('bookmark'),
                 actionsDict
             )
             self.__addActionsToDict(
                 "Spelling",
-                e5App().getObject("ViewManager").getActions('spelling'),
+                ericApp().getObject("ViewManager").getActions('spelling'),
                 actionsDict
             )
             self.__addActionsToDict(
                 "Window",
-                e5App().getObject("ViewManager").getActions('window'),
+                ericApp().getObject("ViewManager").getActions('window'),
                 actionsDict
             )
             
-            for category, ref in e5App().getPluginObjects():
+            for category, ref in ericApp().getPluginObjects():
                 if hasattr(ref, "getActions"):
                     self.__addActionsToDict(
                         category, ref.getActions(), actionsDict
@@ -164,8 +164,8 @@
             with open(filename, "w") as f:
                 f.write(jsonString)
         except (TypeError, OSError) as err:
-            with E5OverridenCursor():
-                E5MessageBox.critical(
+            with EricOverridenCursor():
+                EricMessageBox.critical(
                     None,
                     self.tr("Export Keyboard Shortcuts"),
                     self.tr(
@@ -194,7 +194,7 @@
                 jsonString = f.read()
             shortcutsDict = json.loads(jsonString)
         except (OSError, json.JSONDecodeError) as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Import Keyboard Shortcuts"),
                 self.tr(
--- a/eric7/Preferences/SubstyleDefinitionDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/SubstyleDefinitionDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_SubstyleDefinitionDialog import Ui_SubstyleDefinitionDialog
 
@@ -79,7 +79,7 @@
         """
         Private slot to reset the dialog contents.
         """
-        ok = E5MessageBox.yesNo(
+        ok = EricMessageBox.yesNo(
             self,
             self.tr("Reset Sub-Style Data"),
             self.tr("""Shall the entered sub-style data be reset?"""))
@@ -103,7 +103,7 @@
             bool(self.wordsEdit.toPlainText().strip())
         )
         ok = (
-            E5MessageBox.yesNo(
+            EricMessageBox.yesNo(
                 self,
                 self.tr("Set Sub-Style Data to Default"),
                 self.tr("""Shall the sub-style data be set to default"""
--- a/eric7/Preferences/ToolConfigurationDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ToolConfigurationDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 from PyQt6.QtCore import Qt, pyqtSlot
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui import E5MessageBox
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui import EricMessageBox
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_ToolConfigurationDialog import Ui_ToolConfigurationDialog
 
@@ -34,9 +34,9 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.iconPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.iconPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.iconPicker.setFilters(self.tr("Icon files (*.png)"))
-        self.executablePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.executablePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         
         self.redirectionModes = [
             ("no", self.tr("no redirection")),
@@ -97,7 +97,7 @@
         redirect = self.redirectionModes[self.redirectCombo.currentIndex()][0]
         
         if not executable:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Add tool entry"),
                 self.tr(
@@ -106,7 +106,7 @@
             return
         
         if not menutext:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Add tool entry"),
                 self.tr(
@@ -115,7 +115,7 @@
             return
         
         if not Utilities.isinpath(executable):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Add tool entry"),
                 self.tr(
@@ -126,7 +126,7 @@
         
         if len(self.toolsList.findItems(
                 menutext, Qt.MatchFlag.MatchExactly)):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Add tool entry"),
                 self.tr("An entry for the menu text {0} already exists.")
@@ -159,7 +159,7 @@
         redirect = self.redirectionModes[self.redirectCombo.currentIndex()][0]
         
         if not executable:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Change tool entry"),
                 self.tr(
@@ -168,7 +168,7 @@
             return
             
         if not menutext:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Change tool entry"),
                 self.tr(
@@ -177,7 +177,7 @@
             return
             
         if not Utilities.isinpath(executable):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Change tool entry"),
                 self.tr(
@@ -267,7 +267,7 @@
         @type str
         """
         if path and not Utilities.isinpath(path):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Select executable"),
                 self.tr(
--- a/eric7/Preferences/ToolConfigurationDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ToolConfigurationDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -210,7 +210,7 @@
         </widget>
        </item>
        <item row="1" column="1">
-        <widget class="E5PathPicker" name="iconPicker" native="true">
+        <widget class="EricPathPicker" name="iconPicker" native="true">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
            <horstretch>0</horstretch>
@@ -240,7 +240,7 @@
         </widget>
        </item>
        <item row="2" column="1">
-        <widget class="E5PathPicker" name="executablePicker" native="true">
+        <widget class="EricPathPicker" name="executablePicker" native="true">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
            <horstretch>0</horstretch>
@@ -319,9 +319,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Preferences/ToolGroupConfigurationDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/ToolGroupConfigurationDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import Qt, pyqtSlot
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_ToolGroupConfigurationDialog import Ui_ToolGroupConfigurationDialog
 
@@ -56,7 +56,7 @@
         groupName = self.nameEdit.text()
         
         if not groupName:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Add tool group entry"),
                 self.tr("You have to give a name for the group to add."))
@@ -64,7 +64,7 @@
         
         if len(self.groupsList.findItems(
                 groupName, Qt.MatchFlag.MatchExactly)):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Add tool group entry"),
                 self.tr("An entry for the group name {0} already exists.")
@@ -86,7 +86,7 @@
         groupName = self.nameEdit.text()
         
         if not groupName:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Add tool group entry"),
                 self.tr("You have to give a name for the group to add."))
@@ -94,7 +94,7 @@
         
         if len(self.groupsList.findItems(
                 groupName, Qt.MatchFlag.MatchExactly)):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Add tool group entry"),
                 self.tr("An entry for the group name {0} already exists.")
@@ -113,13 +113,13 @@
         if row < 0:
             return
         
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Delete tool group entry"),
             self.tr("""<p>Do you really want to delete the tool group"""
                     """ <b>"{0}"</b>?</p>""")
             .format(self.groupsList.currentItem().text()),
-            icon=E5MessageBox.Warning)
+            icon=EricMessageBox.Warning)
         if not res:
             return
         
--- a/eric7/Preferences/__init__.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Preferences/__init__.py	Sat May 22 18:51:46 2021 +0200
@@ -36,7 +36,7 @@
     QWebEngineSettings = None
 from PyQt6.Qsci import QsciScintilla, QsciLexerPython
 
-from E5Gui import E5FileDialog
+from E5Gui import EricFileDialog
 
 from EricNetwork.EricFtp import EricFtpProxyType
 
@@ -1593,11 +1593,11 @@
     """
     Module function to initialize the central configuration store.
     """
-    from E5Gui.E5Application import e5App
+    from E5Gui.EricApplication import ericApp
     Prefs.settings = QSettings(
         QSettings.Format.IniFormat, QSettings.Scope.UserScope,
         Globals.settingsNameOrganization, Globals.settingsNameGlobal,
-        e5App())
+        ericApp())
     if not Globals.isWindowsPlatform():
         hp = QDir.homePath()
         dn = QDir(hp)
@@ -1627,7 +1627,7 @@
     
     @param prefClass preferences class used as the storage area
     """
-    filename, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+    filename, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
         None,
         QCoreApplication.translate("Preferences", "Export Preferences"),
         "",
@@ -1635,7 +1635,7 @@
             "Preferences",
             "Properties File (*.ini);;All Files (*)"),
         None,
-        E5FileDialog.DontConfirmOverwrite)
+        EricFileDialog.DontConfirmOverwrite)
     if filename:
         ext = QFileInfo(filename).suffix()
         if not ext:
@@ -1655,7 +1655,7 @@
     
     @param prefClass preferences class used as the storage area
     """
-    filename = E5FileDialog.getOpenFileName(
+    filename = EricFileDialog.getOpenFileName(
         None,
         QCoreApplication.translate("Preferences", "Import Preferences"),
         "",
@@ -1751,8 +1751,8 @@
             "Debugger/" + newKey, prefClass.debuggerDefaults[newKey])
         if venvName:
             try:
-                from E5Gui.E5Application import e5App
-                virtualenvManager = e5App().getObject("VirtualEnvManager")
+                from E5Gui.EricApplication import ericApp
+                virtualenvManager = ericApp().getObject("VirtualEnvManager")
             except KeyError:
                 from VirtualEnv.VirtualenvManager import VirtualenvManager
                 virtualenvManager = VirtualenvManager()
--- a/eric7/Project/AddDirectoryDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/AddDirectoryDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_AddDirectoryDialog import Ui_AddDirectoryDialog
 
@@ -35,9 +35,9 @@
             self.setObjectName(name)
         self.setupUi(self)
         
-        self.sourceDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.sourceDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.sourceDirPicker.setDefaultDirectory(startdir)
-        self.targetDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.targetDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.targetDirPicker.setDefaultDirectory(startdir)
         
         self.ppath = pro.ppath
--- a/eric7/Project/AddDirectoryDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/AddDirectoryDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -48,7 +48,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5PathPicker" name="sourceDirPicker" native="true">
+    <widget class="EricPathPicker" name="sourceDirPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -79,7 +79,7 @@
     </widget>
    </item>
    <item row="2" column="1">
-    <widget class="E5PathPicker" name="targetDirPicker" native="true">
+    <widget class="EricPathPicker" name="targetDirPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -124,9 +124,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Project/AddFileDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/AddFileDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_AddFileDialog import Ui_AddFileDialog
 
@@ -37,8 +37,8 @@
             self.setObjectName(name)
         self.setupUi(self)
         
-        self.sourceFilesPicker.setMode(E5PathPickerModes.OPEN_FILES_MODE)
-        self.targetDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.sourceFilesPicker.setMode(EricPathPickerModes.OPEN_FILES_MODE)
+        self.targetDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.targetDirPicker.setDefaultDirectory(startdir)
         
         self.targetDirPicker.setText(pro.ppath)
--- a/eric7/Project/AddFileDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/AddFileDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -34,7 +34,7 @@
       </widget>
      </item>
      <item row="0" column="1">
-      <widget class="E5PathPicker" name="sourceFilesPicker" native="true">
+      <widget class="EricPathPicker" name="sourceFilesPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -66,7 +66,7 @@
       </widget>
      </item>
      <item row="1" column="1">
-      <widget class="E5PathPicker" name="targetDirPicker" native="true">
+      <widget class="EricPathPicker" name="targetDirPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -116,9 +116,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Project/CreateDialogCodeDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/CreateDialogCodeDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -20,8 +20,8 @@
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from .Ui_CreateDialogCodeDialog import Ui_CreateDialogCodeDialog
 from .NewDialogClassDialog import NewDialogClassDialog
@@ -91,7 +91,7 @@
             self.packagesPath = self.project.getProjectPath()
         
         if os.path.exists(self.srcFile):
-            vm = e5App().getObject("ViewManager")
+            vm = ericApp().getObject("ViewManager")
             ed = vm.getOpenEditor(self.srcFile)
             if ed and not vm.checkDirty(ed):
                 self.__initError = True
@@ -129,7 +129,7 @@
             self.classNameCombo.count() == 0
         ):
             self.__initError = True
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Create Dialog Code"),
                 self.tr(
@@ -158,7 +158,7 @@
         @return tuple of process output and error flag
         @rtype tuple of (str, bool)
         """
-        venvManager = e5App().getObject("VirtualEnvManager")
+        venvManager = ericApp().getObject("VirtualEnvManager")
         projectType = self.project.getProjectType()
         
         venvName = self.project.getDebugProperty("VIRTUALENV")
@@ -210,7 +210,7 @@
                 ok = True
                 uicText = outText.strip()
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("uic error"),
                     self.tr(
@@ -219,7 +219,7 @@
                         self.formFile, outText)
                 )
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("uic error"),
                 self.tr(
@@ -342,7 +342,7 @@
                     ):
                         itm2.setFlags(Qt.ItemFlag.ItemIsEnabled)
                         itm2.setCheckState(Qt.CheckState.Checked)
-                        if e5App().usesDarkPalette():
+                        if ericApp().usesDarkPalette():
                             itm2.setForeground(QBrush(QColor("#75bfff")))
                         else:
                             itm2.setForeground(QBrush(Qt.GlobalColor.blue))
@@ -387,7 +387,7 @@
         Private slot to generate Python code as requested by the user.
         """
         if self.project.getProjectLanguage() != "Python3":
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Code Generation"),
                 self.tr(
@@ -424,7 +424,7 @@
                         getConfig('ericCodeTemplatesDir'),
                         "impl_pyqt6.py.tmpl")
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Code Generation"),
                         self.tr(
@@ -435,7 +435,7 @@
                 with open(tmplName, 'r', encoding="utf-8") as tmplFile:
                     template = tmplFile.read()
             except OSError as why:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Code Generation"),
                     self.tr(
@@ -472,7 +472,7 @@
                 if not sourceImpl[-1].endswith("\n"):
                     sourceImpl[-1] = "{0}{1}".format(sourceImpl[-1], "\n")
             except OSError as why:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Code Generation"),
                     self.tr(
@@ -564,7 +564,7 @@
             with open(fn, 'w', encoding="utf-8", newline=newline) as srcFile:
                 srcFile.write("".join(sourceImpl))
         except OSError as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Code Generation"),
                 self.tr("""<p>Could not write the source file "{0}".</p>"""
--- a/eric7/Project/DebuggerPropertiesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/DebuggerPropertiesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,9 +12,9 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QComboBox
 
-from E5Gui.E5Completers import E5DirCompleter
-from E5Gui.E5PathPicker import E5PathPickerModes
-from E5Gui.E5Application import e5App
+from E5Gui.EricCompleters import EricDirCompleter
+from E5Gui.EricPathPicker import EricPathPickerModes
+from E5Gui.EricApplication import ericApp
 
 from .Ui_DebuggerPropertiesDialog import Ui_DebuggerPropertiesDialog
 
@@ -45,7 +45,7 @@
         
         debugClientsHistory = Preferences.getProject(
             "DebugClientsHistory")
-        self.debugClientPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.debugClientPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.debugClientPicker.setInsertPolicy(
             QComboBox.InsertPolicy.InsertAtTop)
         self.debugClientPicker.setSizeAdjustPolicy(
@@ -54,12 +54,12 @@
         self.debugClientClearHistoryButton.setIcon(
             UI.PixmapCache.getIcon("editDelete"))
         
-        venvManager = e5App().getObject("VirtualEnvManager")
+        venvManager = ericApp().getObject("VirtualEnvManager")
         
         self.venvComboBox.addItem("")
         self.venvComboBox.addItems(sorted(venvManager.getVirtualenvNames()))
         
-        self.translationLocalCompleter = E5DirCompleter(
+        self.translationLocalCompleter = EricDirCompleter(
             self.translationLocalEdit)
         
         self.project = project
@@ -214,7 +214,7 @@
         Private method to clear a path picker history.
         
         @param picker reference to the path picker
-        @type E5ComboPathPicker
+        @type EricComboPathPicker
         """
         currentText = picker.text()
         picker.clear()
--- a/eric7/Project/DebuggerPropertiesDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/DebuggerPropertiesDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -24,7 +24,7 @@
      </property>
      <layout class="QHBoxLayout" name="horizontalLayout">
       <item>
-       <widget class="E5ComboPathPicker" name="debugClientPicker" native="true">
+       <widget class="EricComboPathPicker" name="debugClientPicker" native="true">
         <property name="focusPolicy">
          <enum>Qt::StrongFocus</enum>
         </property>
@@ -265,9 +265,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5ComboPathPicker</class>
+   <class>EricComboPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Project/DebuggerPropertiesFile.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/DebuggerPropertiesFile.py	Sat May 22 18:51:46 2021 +0200
@@ -14,8 +14,8 @@
 
 from PyQt6.QtCore import QObject
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverridenCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverridenCursor
 
 import Preferences
 
@@ -69,8 +69,8 @@
             with open(filename, "w") as f:
                 f.write(jsonString)
         except (TypeError, OSError) as err:
-            with E5OverridenCursor():
-                E5MessageBox.critical(
+            with EricOverridenCursor():
+                EricMessageBox.critical(
                     None,
                     self.tr("Save Debugger Properties"),
                     self.tr(
@@ -98,7 +98,7 @@
                 jsonString = f.read()
             debuggerPropertiesDict = json.loads(jsonString)
         except (OSError, json.JSONDecodeError) as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Read Debugger Properties"),
                 self.tr(
--- a/eric7/Project/IdlCompilerOptionsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/IdlCompilerOptionsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,8 +14,8 @@
 
 import UI.PixmapCache
 
-from E5Gui import E5PathPickerDialog
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui import EricPathPickerDialog
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .IdlCompilerDefineNameDialog import IdlCompilerDefineNameDialog
 
@@ -134,11 +134,11 @@
         """
         defaultDirectory = (self.__project.getProjectPath() if self.__project
                             else "")
-        path, ok = E5PathPickerDialog.getPath(
+        path, ok = EricPathPickerDialog.getPath(
             self,
             self.tr("Include Directory"),
             self.tr("Select Include Directory"),
-            E5PathPickerModes.DIRECTORY_SHOW_FILES_MODE,
+            EricPathPickerModes.DIRECTORY_SHOW_FILES_MODE,
             defaultDirectory=defaultDirectory
         )
         if ok and path:
@@ -171,11 +171,11 @@
         else:
             path = itm.text()
             defaultDirectory = ""
-        path, ok = E5PathPickerDialog.getPath(
+        path, ok = EricPathPickerDialog.getPath(
             self,
             self.tr("Include Directory"),
             self.tr("Select Include Directory"),
-            E5PathPickerModes.DIRECTORY_SHOW_FILES_MODE,
+            EricPathPickerModes.DIRECTORY_SHOW_FILES_MODE,
             path=path,
             defaultDirectory=defaultDirectory
         )
--- a/eric7/Project/MakePropertiesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/MakePropertiesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_MakePropertiesDialog import Ui_MakePropertiesDialog
 
@@ -34,10 +34,10 @@
         
         self.__project = project
         
-        self.makePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.makePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.makePicker.setFilters(self.tr("All Files (*)"))
         
-        self.makefilePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.makefilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.makefilePicker.setDefaultDirectory(self.__project.ppath)
         self.makefilePicker.setFilters(self.tr(
             "Makefiles (*makefile Makefile *.mak);;All Files (*)"))
--- a/eric7/Project/MakePropertiesDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/MakePropertiesDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -25,7 +25,7 @@
     </widget>
    </item>
    <item>
-    <widget class="E5PathPicker" name="makePicker" native="true">
+    <widget class="EricPathPicker" name="makePicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -48,7 +48,7 @@
     </widget>
    </item>
    <item>
-    <widget class="E5PathPicker" name="makefilePicker" native="true">
+    <widget class="EricPathPicker" name="makefilePicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -124,9 +124,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Project/NewDialogClassDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/NewDialogClassDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_NewDialogClassDialog import Ui_NewDialogClassDialog
 
@@ -33,7 +33,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.pathnamePicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.pathnamePicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.okButton = self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok)
--- a/eric7/Project/NewDialogClassDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/NewDialogClassDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -64,7 +64,7 @@
       </widget>
      </item>
      <item row="2" column="1">
-      <widget class="E5PathPicker" name="pathnamePicker" native="true">
+      <widget class="EricPathPicker" name="pathnamePicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -95,9 +95,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Project/Project.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/Project.py	Sat May 22 18:51:46 2021 +0200
@@ -26,18 +26,18 @@
 )
 from PyQt6.Qsci import QsciScintilla
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5FileDialog, E5MessageBox
-from E5Gui.E5ListSelectionDialog import E5ListSelectionDialog
-from E5Gui.E5ProgressDialog import E5ProgressDialog
-from E5Gui.E5OverrideCursor import E5OverrideCursor, E5OverridenCursor
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricFileDialog, EricMessageBox
+from E5Gui.EricListSelectionDialog import EricListSelectionDialog
+from E5Gui.EricProgressDialog import EricProgressDialog
+from E5Gui.EricOverrideCursor import EricOverrideCursor, EricOverridenCursor
 
 from Globals import recentNameProject
 
 import UI.PixmapCache
 from UI.NotificationWidget import NotificationTypes
 
-from E5Gui.E5Action import E5Action, createActionGroup
+from E5Gui.EricAction import EricAction, createActionGroup
 
 import Preferences
 import Utilities
@@ -361,7 +361,7 @@
         if progLanguages:
             for progLanguage in progLanguages:
                 if progLanguage not in self.__projectProgLanguages:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Registering Project Type"),
                         self.tr(
@@ -372,7 +372,7 @@
                     return
                 
                 if type_ in self.__projectProgLanguages[progLanguage]:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Registering Project Type"),
                         self.tr(
@@ -384,7 +384,7 @@
                     return
             
         if type_ in self.__projectTypes:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Registering Project Type"),
                 self.tr("""<p>The Project type <b>{0}</b> is already"""
@@ -805,7 +805,7 @@
         """
         if os.path.splitext(fn)[1] == ".epj":
             # new JSON based format
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 res = self.__projectFile.readFile(fn)
         else:
             # old XML based format
@@ -826,7 +826,7 @@
                     self.pdata["HASH"] = hashStr
                     self.setDirty(True)
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Read Project File"),
                     self.tr(
@@ -914,7 +914,7 @@
         if fn is None:
             fn = self.pfile
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             res = self.__projectFile.writeFile(fn)
         
         if res:
@@ -954,7 +954,7 @@
                     reader.readXML()
                     f.close()
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Read User Project Properties"),
                         self.tr(
@@ -971,7 +971,7 @@
         fn, ext = os.path.splitext(os.path.basename(self.pfile))
         fn = os.path.join(self.getProjectManagementDir(), '{0}.eqj'.format(fn))
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             self.__userProjectFile.writeFile(fn)
     
     def __showContextMenuSession(self):
@@ -1004,7 +1004,7 @@
         """
         if self.pfile is None:
             if not quiet:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Read Project Session"),
                     self.tr("Please save the project first."))
@@ -1029,7 +1029,7 @@
                     f.close()
                 else:
                     if not quiet:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self.ui,
                             self.tr("Read project session"),
                             self.tr(
@@ -1047,7 +1047,7 @@
         """
         if self.pfile is None:
             if not quiet:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Save Project Session"),
                     self.tr("Please save the project first."))
@@ -1064,7 +1064,7 @@
         Private method to delete the session file.
         """
         if self.pfile is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Delete Project Session"),
                 self.tr("Please save the project first."))
@@ -1079,7 +1079,7 @@
                 try:
                     os.remove(fn)
                 except OSError:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Delete Project Session"),
                         self.tr(
@@ -1091,7 +1091,7 @@
         Private method to read in the project tasks file (.etj or .e6t).
         """
         if self.pfile is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Read Tasks"),
                 self.tr("Please save the project first."))
@@ -1115,7 +1115,7 @@
                     reader.readXML()
                     f.close()
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Read Tasks"),
                         self.tr(
@@ -1169,7 +1169,7 @@
         """
         if self.pfile is None:
             if not quiet:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Read Debugger Properties"),
                     self.tr("Please save the project first."))
@@ -1198,7 +1198,7 @@
                 self.debugPropertiesChanged = False
             else:
                 if not quiet:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Read Debugger Properties"),
                         self.tr(
@@ -1215,7 +1215,7 @@
         """
         if self.pfile is None:
             if not quiet:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Save Debugger Properties"),
                     self.tr("Please save the project first."))
@@ -1224,7 +1224,7 @@
         fn, ext = os.path.splitext(os.path.basename(self.pfile))
         fn = os.path.join(self.getProjectManagementDir(), '{0}.edj'.format(fn))
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             self.__debuggerPropertiesFile.writeFile(fn)
     
     def __deleteDebugProperties(self):
@@ -1233,7 +1233,7 @@
         (.edj or .e4d).
         """
         if self.pfile is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Delete Debugger Properties"),
                 self.tr("Please save the project first."))
@@ -1248,7 +1248,7 @@
                 try:
                     os.remove(fn)
                 except OSError:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Delete Debugger Properties"),
                         self.tr(
@@ -1305,7 +1305,7 @@
         """
         if key == "INTERPRETER":
             return (
-                e5App().getObject("VirtualEnvManager")
+                ericApp().getObject("VirtualEnvManager")
                 .getVirtualenvInterpreter(self.debugProperties["VIRTUALENV"])
             )
         else:
@@ -1392,7 +1392,7 @@
         Public slot used to add a language to the project.
         """
         if not self.pdata["TRANSLATIONPATTERN"]:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Add Language"),
                 self.tr(
@@ -1494,7 +1494,7 @@
             if os.path.exists(fn):
                 s2t(fn)
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Delete translation"),
                 self.tr(
@@ -1516,7 +1516,7 @@
                 if os.path.exists(fn):
                     s2t(fn)
             except OSError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Delete translation"),
                     self.tr(
@@ -1652,20 +1652,20 @@
                                 os.makedirs(target)
                                 
                             if os.path.exists(targetfile):
-                                res = E5MessageBox.yesNo(
+                                res = EricMessageBox.yesNo(
                                     self.ui,
                                     self.tr("Add file"),
                                     self.tr(
                                         "<p>The file <b>{0}</b> already"
                                         " exists.</p><p>Overwrite it?</p>")
                                     .format(targetfile),
-                                    icon=E5MessageBox.Warning)
+                                    icon=EricMessageBox.Warning)
                                 if not res:
                                     return  # don't overwrite
                                     
                             shutil.copy(fn, target)
                         except OSError as why:
-                            E5MessageBox.critical(
+                            EricMessageBox.critical(
                                 self.ui,
                                 self.tr("Add file"),
                                 self.tr(
@@ -1678,7 +1678,7 @@
                     self.appendFile(targetfile,
                                     isSource or fileTypeFilter == 'source')
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Add file"),
                     self.tr("The target directory must not be empty."))
@@ -1709,7 +1709,7 @@
         
         if len(files) == 0:
             if not quiet:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self.ui,
                     self.tr("Add directory"),
                     self.tr(
@@ -1724,7 +1724,7 @@
             try:
                 os.makedirs(target)
             except OSError as why:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Add directory"),
                     self.tr(
@@ -1742,14 +1742,14 @@
             if not Utilities.samepath(target, source):
                 try:
                     if os.path.exists(targetfile):
-                        res = E5MessageBox.yesNo(
+                        res = EricMessageBox.yesNo(
                             self.ui,
                             self.tr("Add directory"),
                             self.tr(
                                 "<p>The file <b>{0}</b> already exists.</p>"
                                 "<p>Overwrite it?</p>")
                             .format(targetfile),
-                            icon=E5MessageBox.Warning)
+                            icon=EricMessageBox.Warning)
                         if not res:
                             continue
                             # don't overwrite, carry on with next file
@@ -1810,7 +1810,7 @@
         if dlg.exec() == QDialog.DialogCode.Accepted:
             filetype, source, target, recursive = dlg.getData()
             if target == '':
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Add directory"),
                     self.tr("The target directory must not be empty."))
@@ -1821,7 +1821,7 @@
                 return
             
             if source == '':
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Add directory"),
                     self.tr("The source directory must not be empty."))
@@ -1958,31 +1958,31 @@
         isSourceFile = fn in self.pdata["SOURCES"]
         
         if newfn is None:
-            newfn = E5FileDialog.getSaveFileName(
+            newfn = EricFileDialog.getSaveFileName(
                 None,
                 self.tr("Rename file"),
                 oldfn,
                 "",
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
             if not newfn:
                 return False
             newfn = Utilities.toNativeSeparators(newfn)
         
         if os.path.exists(newfn):
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.ui,
                 self.tr("Rename File"),
                 self.tr("""<p>The file <b>{0}</b> already exists."""
                         """ Overwrite it?</p>""")
                     .format(newfn),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return False
         
         try:
             os.rename(oldfn, newfn)
         except OSError as msg:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Rename File"),
                 self.tr(
@@ -2229,7 +2229,7 @@
                 for f in glob.glob(pat):
                     s2t(f)
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Delete file"),
                 self.tr(
@@ -2259,7 +2259,7 @@
             except ImportError:
                 shutil.rmtree(dn, True)
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Delete directory"),
                 self.tr(
@@ -2351,7 +2351,7 @@
                 try:
                     os.makedirs(self.ppath)
                 except OSError:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Create project directory"),
                         self.tr(
@@ -2416,7 +2416,7 @@
                     # create management directory if not present
                     self.createProjectManagementDir()
                 except OSError:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Create project management directory"),
                         self.tr(
@@ -2437,7 +2437,7 @@
                             with open(ms, "w"):
                                 pass
                         except OSError as err:
-                            E5MessageBox.critical(
+                            EricMessageBox.critical(
                                 self.ui,
                                 self.tr("Create main script"),
                                 self.tr(
@@ -2461,7 +2461,7 @@
                             with open(mf, "w"):
                                 pass
                         except OSError as err:
-                            E5MessageBox.critical(
+                            EricMessageBox.critical(
                                 self.ui,
                                 self.tr("Create Makefile"),
                                 self.tr(
@@ -2471,7 +2471,7 @@
                     self.appendFile(mf)
                 
                 # add existing files to the project
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self.ui,
                     self.tr("New Project"),
                     self.tr("""Add existing files to the project?"""),
@@ -2493,7 +2493,7 @@
                 
                 # check, if the existing project directory is already under
                 # VCS control
-                pluginManager = e5App().getObject("PluginManager")
+                pluginManager = ericApp().getObject("PluginManager")
                 for indicator, vcsData in list(
                         pluginManager.getVcsSystemIndicators().items()):
                     if os.path.exists(os.path.join(self.ppath, indicator)):
@@ -2524,7 +2524,7 @@
                         if self.vcs is not None:
                             # edit VCS command options
                             if self.vcs.vcsSupportCommandOptions():
-                                vcores = E5MessageBox.yesNo(
+                                vcores = EricMessageBox.yesNo(
                                     self.ui,
                                     self.tr("New Project"),
                                     self.tr(
@@ -2541,7 +2541,7 @@
                                     self.vcs.vcsSetOptions(codlg.getOptions())
                             # add project file to repository
                             if res == 0:
-                                apres = E5MessageBox.yesNo(
+                                apres = EricMessageBox.yesNo(
                                     self.ui,
                                     self.tr("New project"),
                                     self.tr(
@@ -2563,7 +2563,7 @@
                 self.vcsRequested
             ):
                 vcsSystemsDict = (
-                    e5App().getObject("PluginManager")
+                    ericApp().getObject("PluginManager")
                     .getPluginDisplayStrings("version_control")
                 )
                 vcsSystemsDisplay = [self.tr("None")]
@@ -2598,7 +2598,7 @@
                 if self.vcs is not None:
                     # edit VCS command options
                     if self.vcs.vcsSupportCommandOptions():
-                        vcores = E5MessageBox.yesNo(
+                        vcores = EricMessageBox.yesNo(
                             self.ui,
                             self.tr("New Project"),
                             self.tr(
@@ -2636,7 +2636,7 @@
         # Show the file type associations for the user to change
         self.__showFiletypeAssociations()
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             # search the project directory for files with known extensions
             filespecs = list(self.pdata["FILETYPES"].keys())
             for filespec in filespecs:
@@ -2752,7 +2752,7 @@
                         with open(mf, "w"):
                             pass
                     except OSError as err:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self.ui,
                             self.tr("Create Makefile"),
                             self.tr(
@@ -2819,7 +2819,7 @@
                     self.vcs.vcsShutdown()
                     self.vcs.deleteLater()
                     self.vcs = None
-                    e5App().getObject("PluginManager").deactivateVcsPlugins()
+                    ericApp().getObject("PluginManager").deactivateVcsPlugins()
                 # reinit VCS
                 self.vcs = self.initVCS()
                 # start the VCS monitor thread
@@ -2915,7 +2915,7 @@
             return
         
         if fn is None:
-            fn = E5FileDialog.getOpenFileName(
+            fn = EricFileDialog.getOpenFileName(
                 self.parent(),
                 self.tr("Open project"),
                 Preferences.getMultiProject("Workspace") or
@@ -2925,7 +2925,7 @@
         QApplication.processEvents()
         
         if fn and self.closeProject():
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 ok = self.__readProject(fn)
             if ok:
                 self.opened = True
@@ -2938,7 +2938,7 @@
                     # create management directory if not present
                     self.createProjectManagementDir()
                 except OSError:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Create project management directory"),
                         self.tr(
@@ -2950,12 +2950,12 @@
                 # read a user specific project file
                 self.__readUserProperties()
                 
-                with E5OverrideCursor():
+                with EricOverrideCursor():
                     oldState = self.isDirty()
                     self.vcs = self.initVCS()
                     if self.vcs is None and self.isDirty() == oldState:
                         # check, if project is version controlled
-                        pluginManager = e5App().getObject("PluginManager")
+                        pluginManager = ericApp().getObject("PluginManager")
                         for indicator, vcsData in (
                             pluginManager.getVcsSystemIndicators().items()
                         ):
@@ -2967,7 +2967,7 @@
                                         _vcsSystemStr, vcsSystemDisplay
                                     ) in vcsData:
                                         vcsList.append(vcsSystemDisplay)
-                                    with E5OverridenCursor():
+                                    with EricOverridenCursor():
                                         res, vcs_ok = QInputDialog.getItem(
                                             None,
                                             self.tr("New Project"),
@@ -3041,7 +3041,7 @@
                 self.ui.taskViewer.setProjectOpen(True)
                 # rescan project tasks
                 if Preferences.getProject("TasksProjectRescanOnOpen"):
-                    e5App().getObject("TaskViewer"
+                    ericApp().getObject("TaskViewer"
                                       ).regenerateProjectTasks(quiet=True)
                 
                 if restoreSession:
@@ -3114,13 +3114,13 @@
             (Preferences.getMultiProject("Workspace") or
              Utilities.getHomeDir())
         )
-        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self.parent(),
             self.tr("Save Project"),
             defaultPath,
             self.tr("Project Files (*.epj)"),
             defaultFilter,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if fn:
             ext = QFileInfo(fn).suffix()
@@ -3129,12 +3129,12 @@
                 if ex:
                     fn += ex
             if QFileInfo(fn).exists():
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self.ui,
                     self.tr("Save File"),
                     self.tr("""<p>The file <b>{0}</b> already exists."""
                             """ Overwrite it?</p>""").format(fn),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return False
                 
@@ -3165,7 +3165,7 @@
         @return flag indicating whether this operation was successful (boolean)
         """
         if self.isDirty():
-            res = E5MessageBox.okToClearData(
+            res = EricMessageBox.okToClearData(
                 self.parent(),
                 self.tr("Close Project"),
                 self.tr("The current project has unsaved changes."),
@@ -3204,7 +3204,7 @@
         if not self.checkDirty():
             return False
         
-        e5App().getObject("TaskViewer").stopProjectTaskExtraction()
+        ericApp().getObject("TaskViewer").stopProjectTaskExtraction()
         
         # save the user project properties
         if not noSave:
@@ -3224,7 +3224,7 @@
         ):
             self.__writeDebugProperties(True)
         
-        vm = e5App().getObject("ViewManager")
+        vm = ericApp().getObject("ViewManager")
         
         # check dirty status of all project files first
         for fn in vm.getOpenFilenames():
@@ -3257,7 +3257,7 @@
             self.vcs.vcsShutdown()
             self.vcs.deleteLater()
             self.vcs = None
-            e5App().getObject("PluginManager").deactivateVcsPlugins()
+            ericApp().getObject("PluginManager").deactivateVcsPlugins()
         
         # now close all project related tool windows
         self.__closeAllWindows()
@@ -3298,7 +3298,7 @@
             for syntax errors (boolean)
         @return flag indicating success (boolean)
         """
-        vm = e5App().getObject("ViewManager")
+        vm = ericApp().getObject("ViewManager")
         success = True
         filesWithSyntaxErrors = 0
         for fn in vm.getOpenFilenames():
@@ -3310,7 +3310,7 @@
                     filesWithSyntaxErrors += 1
         
         if reportSyntaxErrors and filesWithSyntaxErrors > 0:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Syntax errors detected"),
                 self.tr(
@@ -3330,7 +3330,7 @@
             for syntax errors (boolean)
         @return flag indicating success (boolean)
         """
-        vm = e5App().getObject("ViewManager")
+        vm = ericApp().getObject("ViewManager")
         success = True
         filesWithSyntaxErrors = 0
         for fn in vm.getOpenFilenames():
@@ -3342,7 +3342,7 @@
                     filesWithSyntaxErrors += 1
         
         if reportSyntaxErrors and filesWithSyntaxErrors > 0:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Syntax errors detected"),
                 self.tr(
@@ -3828,7 +3828,7 @@
         
         self.actGrp1 = createActionGroup(self)
         
-        act = E5Action(
+        act = EricAction(
             self.tr('New project'),
             UI.PixmapCache.getIcon("projectNew"),
             self.tr('&New...'), 0, 0,
@@ -3842,7 +3842,7 @@
         act.triggered.connect(self.createNewProject)
         self.actions.append(act)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Open project'),
             UI.PixmapCache.getIcon("projectOpen"),
             self.tr('&Open...'), 0, 0,
@@ -3855,7 +3855,7 @@
         act.triggered.connect(self.openProject)
         self.actions.append(act)
 
-        self.closeAct = E5Action(
+        self.closeAct = EricAction(
             self.tr('Close project'),
             UI.PixmapCache.getIcon("projectClose"),
             self.tr('&Close'), 0, 0, self, 'project_close')
@@ -3867,7 +3867,7 @@
         self.closeAct.triggered.connect(self.closeProject)
         self.actions.append(self.closeAct)
 
-        self.saveAct = E5Action(
+        self.saveAct = EricAction(
             self.tr('Save project'),
             UI.PixmapCache.getIcon("projectSave"),
             self.tr('&Save'), 0, 0, self, 'project_save')
@@ -3879,7 +3879,7 @@
         self.saveAct.triggered.connect(self.saveProject)
         self.actions.append(self.saveAct)
 
-        self.saveasAct = E5Action(
+        self.saveasAct = EricAction(
             self.tr('Save project as'),
             UI.PixmapCache.getIcon("projectSaveAs"),
             self.tr('Save &as...'), 0, 0, self, 'project_save_as')
@@ -3894,7 +3894,7 @@
 
         self.actGrp2 = createActionGroup(self)
         
-        self.addFilesAct = E5Action(
+        self.addFilesAct = EricAction(
             self.tr('Add files to project'),
             UI.PixmapCache.getIcon("fileMisc"),
             self.tr('Add &files...'), 0, 0,
@@ -3910,7 +3910,7 @@
         self.addFilesAct.triggered.connect(self.addFiles)
         self.actions.append(self.addFilesAct)
 
-        self.addDirectoryAct = E5Action(
+        self.addDirectoryAct = EricAction(
             self.tr('Add directory to project'),
             UI.PixmapCache.getIcon("dirOpen"),
             self.tr('Add directory...'), 0, 0,
@@ -3925,7 +3925,7 @@
         self.addDirectoryAct.triggered.connect(self.addDirectory)
         self.actions.append(self.addDirectoryAct)
 
-        self.addLanguageAct = E5Action(
+        self.addLanguageAct = EricAction(
             self.tr('Add translation to project'),
             UI.PixmapCache.getIcon("linguist4"),
             self.tr('Add &translation...'), 0, 0,
@@ -3940,7 +3940,7 @@
         self.addLanguageAct.triggered.connect(self.addLanguage)
         self.actions.append(self.addLanguageAct)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Search new files'),
             self.tr('Searc&h new files...'), 0, 0,
             self.actGrp2, 'project_search_new_files')
@@ -3955,7 +3955,7 @@
         act.triggered.connect(self.__searchNewFiles)
         self.actions.append(act)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Search Project File'),
             self.tr('Search Project File...'),
             QKeySequence(self.tr("Alt+Ctrl+P", "Project|Search Project File")),
@@ -3970,7 +3970,7 @@
         act.triggered.connect(self.__searchProjectFile)
         self.actions.append(act)
         
-        self.propsAct = E5Action(
+        self.propsAct = EricAction(
             self.tr('Project properties'),
             UI.PixmapCache.getIcon("projectProps"),
             self.tr('&Properties...'), 0, 0, self,
@@ -3983,7 +3983,7 @@
         self.propsAct.triggered.connect(self.__showProperties)
         self.actions.append(self.propsAct)
 
-        self.userPropsAct = E5Action(
+        self.userPropsAct = EricAction(
             self.tr('User project properties'),
             UI.PixmapCache.getIcon("projectUserProps"),
             self.tr('&User Properties...'), 0, 0, self,
@@ -3998,7 +3998,7 @@
         self.userPropsAct.triggered.connect(self.__showUserProperties)
         self.actions.append(self.userPropsAct)
 
-        self.filetypesAct = E5Action(
+        self.filetypesAct = EricAction(
             self.tr('Filetype Associations'),
             self.tr('Filetype Associations...'), 0, 0,
             self, 'project_filetype_associations')
@@ -4016,7 +4016,7 @@
             self.__showFiletypeAssociations)
         self.actions.append(self.filetypesAct)
 
-        self.lexersAct = E5Action(
+        self.lexersAct = EricAction(
             self.tr('Lexer Associations'),
             self.tr('Lexer Associations...'), 0, 0,
             self, 'project_lexer_associations')
@@ -4034,7 +4034,7 @@
 
         self.dbgActGrp = createActionGroup(self)
         
-        act = E5Action(
+        act = EricAction(
             self.tr('Debugger Properties'),
             self.tr('Debugger &Properties...'), 0, 0,
             self.dbgActGrp, 'project_debugger_properties')
@@ -4047,7 +4047,7 @@
         act.triggered.connect(self.__showDebugProperties)
         self.actions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             self.tr('Load'),
             self.tr('&Load'), 0, 0,
             self.dbgActGrp, 'project_debugger_properties_load')
@@ -4059,7 +4059,7 @@
         act.triggered.connect(self.__readDebugProperties)
         self.actions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             self.tr('Save'),
             self.tr('&Save'), 0, 0,
             self.dbgActGrp, 'project_debugger_properties_save')
@@ -4071,7 +4071,7 @@
         act.triggered.connect(self.__writeDebugProperties)
         self.actions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             self.tr('Delete'),
             self.tr('&Delete'), 0, 0,
             self.dbgActGrp, 'project_debugger_properties_delete')
@@ -4084,7 +4084,7 @@
         act.triggered.connect(self.__deleteDebugProperties)
         self.actions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             self.tr('Reset'),
             self.tr('&Reset'), 0, 0,
             self.dbgActGrp, 'project_debugger_properties_resets')
@@ -4098,7 +4098,7 @@
         
         self.sessActGrp = createActionGroup(self)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Load session'),
             self.tr('Load session'), 0, 0,
             self.sessActGrp, 'project_load_session')
@@ -4116,7 +4116,7 @@
         act.triggered.connect(self.__readSession)
         self.actions.append(act)
 
-        act = E5Action(
+        act = EricAction(
             self.tr('Save session'),
             self.tr('Save session'), 0, 0,
             self.sessActGrp, 'project_save_session')
@@ -4134,7 +4134,7 @@
         act.triggered.connect(self.__writeSession)
         self.actions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             self.tr('Delete session'),
             self.tr('Delete session'), 0, 0,
             self.sessActGrp, 'project_delete_session')
@@ -4148,7 +4148,7 @@
         
         self.chkGrp = createActionGroup(self)
 
-        self.codeMetricsAct = E5Action(
+        self.codeMetricsAct = EricAction(
             self.tr('Code Metrics'),
             self.tr('&Code Metrics...'), 0, 0,
             self.chkGrp, 'project_code_metrics')
@@ -4162,7 +4162,7 @@
         self.codeMetricsAct.triggered.connect(self.__showCodeMetrics)
         self.actions.append(self.codeMetricsAct)
 
-        self.codeCoverageAct = E5Action(
+        self.codeCoverageAct = EricAction(
             self.tr('Python Code Coverage'),
             self.tr('Code Co&verage...'), 0, 0,
             self.chkGrp, 'project_code_coverage')
@@ -4176,7 +4176,7 @@
         self.codeCoverageAct.triggered.connect(self.__showCodeCoverage)
         self.actions.append(self.codeCoverageAct)
 
-        self.codeProfileAct = E5Action(
+        self.codeProfileAct = EricAction(
             self.tr('Profile Data'),
             self.tr('&Profile Data...'), 0, 0,
             self.chkGrp, 'project_profile_data')
@@ -4191,7 +4191,7 @@
 
         self.graphicsGrp = createActionGroup(self)
 
-        self.applicationDiagramAct = E5Action(
+        self.applicationDiagramAct = EricAction(
             self.tr('Application Diagram'),
             self.tr('&Application Diagram...'), 0, 0,
             self.graphicsGrp, 'project_application_diagram')
@@ -4205,7 +4205,7 @@
             self.handleApplicationDiagram)
         self.actions.append(self.applicationDiagramAct)
 
-        self.loadDiagramAct = E5Action(
+        self.loadDiagramAct = EricAction(
             self.tr('Load Diagram'),
             self.tr('&Load Diagram...'), 0, 0,
             self.graphicsGrp, 'project_load_diagram')
@@ -4220,7 +4220,7 @@
 
         self.pluginGrp = createActionGroup(self)
 
-        self.pluginPkgListAct = E5Action(
+        self.pluginPkgListAct = EricAction(
             self.tr('Create Package List'),
             UI.PixmapCache.getIcon("pluginArchiveList"),
             self.tr('Create &Package List'), 0, 0,
@@ -4236,7 +4236,7 @@
         self.pluginPkgListAct.triggered.connect(self.__pluginCreatePkgList)
         self.actions.append(self.pluginPkgListAct)
 
-        self.pluginArchiveAct = E5Action(
+        self.pluginArchiveAct = EricAction(
             self.tr('Create Plugin Archives'),
             UI.PixmapCache.getIcon("pluginArchive"),
             self.tr('Create Plugin &Archives'), 0, 0,
@@ -4253,7 +4253,7 @@
         self.pluginArchiveAct.triggered.connect(self.__pluginCreateArchives)
         self.actions.append(self.pluginArchiveAct)
     
-        self.pluginSArchiveAct = E5Action(
+        self.pluginSArchiveAct = EricAction(
             self.tr('Create Plugin Archives (Snapshot)'),
             UI.PixmapCache.getIcon("pluginArchiveSnapshot"),
             self.tr('Create Plugin Archives (&Snapshot)'), 0, 0,
@@ -4274,7 +4274,7 @@
 
         self.makeGrp = createActionGroup(self)
 
-        self.makeExecuteAct = E5Action(
+        self.makeExecuteAct = EricAction(
             self.tr('Execute Make'),
             self.tr('&Execute Make'), 0, 0,
             self.makeGrp, 'project_make_execute')
@@ -4288,7 +4288,7 @@
         self.makeExecuteAct.triggered.connect(self.__executeMake)
         self.actions.append(self.makeExecuteAct)
 
-        self.makeTestAct = E5Action(
+        self.makeTestAct = EricAction(
             self.tr('Test for Changes'),
             self.tr('&Test for Changes'), 0, 0,
             self.makeGrp, 'project_make_test')
@@ -4456,7 +4456,7 @@
         toolbar.
         
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         @return tuple of the generated toolbars (tuple of two QToolBar)
         """
         tb = QToolBar(self.tr("Project"), self.ui)
@@ -4683,7 +4683,7 @@
         # if newfiles is empty, put up message box informing user nothing found
         if not newFiles:
             if onUserDemand:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self.ui,
                     self.tr("Search New Files"),
                     self.tr("There were no new files found to be added."))
@@ -4721,23 +4721,23 @@
         """
         Public method to get a list of all actions.
         
-        @return list of all actions (list of E5Action)
+        @return list of all actions (list of EricAction)
         """
         return self.actions[:]
         
-    def addE5Actions(self, actions):
+    def addEricActions(self, actions):
         """
         Public method to add actions to the list of actions.
         
-        @param actions list of actions (list of E5Action)
+        @param actions list of actions (list of EricAction)
         """
         self.actions.extend(actions)
         
-    def removeE5Actions(self, actions):
+    def removeEricActions(self, actions):
         """
         Public method to remove actions from the list of actions.
         
-        @param actions list of actions (list of E5Action)
+        @param actions list of actions (list of EricAction)
         """
         for act in actions:
             with contextlib.suppress(ValueError):
@@ -4764,7 +4764,7 @@
         if not self.isOpen():
             return
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             name = self.getRelativePath(fullname)
             self.prepareRepopulateItem.emit(name)
             self.__model.repopulateItem(name)
@@ -4818,8 +4818,8 @@
             if not vcsExists:
                 if override:
                     # override failed, revert to original
-                    with E5OverridenCursor():
-                        E5MessageBox.critical(
+                    with EricOverridenCursor():
+                        EricMessageBox.critical(
                             self.ui,
                             self.tr("Version Control System"),
                             self.tr(
@@ -4830,8 +4830,8 @@
                         self.pudata["VCSOVERRIDE"] = ""
                     return self.initVCS(nooverride=True)
                 
-                with E5OverridenCursor():
-                    E5MessageBox.critical(
+                with EricOverridenCursor():
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Version Control System"),
                         self.tr(
@@ -4876,7 +4876,7 @@
         """
         self.pdata["VCS"] = 'None'
         self.vcs = self.initVCS()
-        e5App().getObject("PluginManager").deactivateVcsPlugins()
+        ericApp().getObject("PluginManager").deactivateVcsPlugins()
     
     def __showContextMenuVCS(self):
         """
@@ -4894,7 +4894,7 @@
         @return flag indicating availability of VCS software (boolean)
         """
         vcsSystemsDict = (
-            e5App().getObject("PluginManager")
+            ericApp().getObject("PluginManager")
             .getPluginDisplayStrings("version_control")
         )
         return len(vcsSystemsDict) != 0
@@ -4957,7 +4957,7 @@
         """
         fn = self.getMainScript(True)
         if fn is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Coverage Data"),
                 self.tr(
@@ -5007,7 +5007,7 @@
         """
         fn = self.getMainScript(True)
         if fn is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Profile Data"),
                 self.tr(
@@ -5084,7 +5084,7 @@
         """
         Public method to handle the application diagram context menu action.
         """
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self.ui,
             self.tr("Application Diagram"),
             self.tr("""Include module names?"""),
@@ -5229,13 +5229,13 @@
         """
         pkglist = os.path.join(self.ppath, "PKGLIST")
         if os.path.exists(pkglist):
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.ui,
                 self.tr("Create Package List"),
                 self.tr(
                     "<p>The file <b>PKGLIST</b> already"
                     " exists.</p><p>Overwrite it?</p>"),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return  # don't overwrite
         
@@ -5277,7 +5277,7 @@
                 pkglistFile.write("\n")
                 # ensure the file ends with an empty line
         except OSError as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Create Package List"),
                 self.tr(
@@ -5296,7 +5296,7 @@
         @param snapshot flag indicating snapshot archives (boolean)
         """
         if not self.pdata["MAINSCRIPT"]:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Create Plugin Archive"),
                 self.tr(
@@ -5310,7 +5310,7 @@
         if len(pkglists) == 1:
             selectedLists = [os.path.join(self.ppath, pkglists[0])]
         elif len(pkglists) > 1:
-            dlg = E5ListSelectionDialog(
+            dlg = EricListSelectionDialog(
                 sorted(pkglists), title=self.tr("Create Plugin Archive"),
                 message=self.tr("Select package lists:"),
                 checkBoxSelection=True)
@@ -5321,14 +5321,14 @@
                 return
         
         if not selectedLists:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Create Plugin Archive"),
                 self.tr("""<p>No package list files (PKGLIST*) available or"""
                         """ selected. Aborting...</p>"""))
             return
         
-        progress = E5ProgressDialog(
+        progress = EricProgressDialog(
             self.tr("Creating plugin archives..."), self.tr("Abort"),
             0, len(selectedLists), self.tr("%v/%m Archives"))
         progress.setMinimumDuration(0)
@@ -5343,7 +5343,7 @@
                 with open(pkglist, "r", encoding="utf-8") as pkglistFile:
                     names = pkglistFile.read()
             except OSError as why:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Create Plugin Archive"),
                     self.tr(
@@ -5370,7 +5370,7 @@
                     elif line.startswith("archive_version="):
                         archiveVersion = line.split("=")[1]
                     elif line.startswith("initial_list "):
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self.ui,
                             self.tr("Create Plugin Archive"),
                             self.tr(
@@ -5397,7 +5397,7 @@
             try:
                 archiveFile = zipfile.ZipFile(archive, "w")
             except OSError as why:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Create Plugin Archive"),
                     self.tr(
@@ -5432,7 +5432,7 @@
                                 ):
                                     version = archiveVersion
                     except OSError as why:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self.ui,
                             self.tr("Create Plugin Archive"),
                             self.tr(
@@ -5501,7 +5501,7 @@
             sourcelines, encoding = Utilities.readEncodedFile(filename)
             sourcelines = sourcelines.splitlines(True)
         except (OSError, UnicodeError) as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Create Plugin Archive"),
                 self.tr("""<p>The plugin file <b>{0}</b> could """
@@ -5542,7 +5542,7 @@
             sourcelines = Utilities.readEncodedFile(filename)[0]
             sourcelines = sourcelines.splitlines(True)
         except (OSError, UnicodeError) as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Create Plugin Archive"),
                 self.tr(
@@ -5657,7 +5657,7 @@
         self.__makeProcess.start(prog, args)
         
         if not self.__makeProcess.waitForStarted():
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Execute Make"),
                 self.tr("""The make process did not start."""))
@@ -5702,7 +5702,7 @@
         @type bool
         """
         if exitStatus == QProcess.ExitStatus.CrashExit:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.ui,
                 self.tr("Execute Make"),
                 self.tr("""The make process crashed."""))
@@ -5728,7 +5728,7 @@
                     kind=NotificationTypes.WARNING,
                     timeout=0)
             elif exitCode > 1:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Execute Make"),
                     self.tr("""The makefile contains errors."""))
--- a/eric7/Project/ProjectBaseBrowser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/ProjectBaseBrowser.py	Sat May 22 18:51:46 2021 +0200
@@ -18,9 +18,9 @@
     QTreeView, QApplication, QMenu, QDialog, QAbstractItemView
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from UI.Browser import Browser
 from UI.BrowserModel import BrowserDirectoryItem, BrowserFileItem
@@ -373,7 +373,7 @@
         Protected slot to handle the 'Expand all directories' menu action.
         """
         self._disconnectExpandedCollapsed()
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             index = self.model().index(0, 0)
             while index.isValid():
                 itm = self.model().item(index)
@@ -394,7 +394,7 @@
         Protected slot to handle the 'Collapse all directories' menu action.
         """
         self._disconnectExpandedCollapsed()
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             # step 1: find last valid index
             vindex = QModelIndex()
             index = self.model().index(0, 0)
@@ -511,7 +511,7 @@
         
         self.selectionModel().clear()
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             # now iterate over all entries
             startIndex = None
             endIndex = None
@@ -542,7 +542,7 @@
                 self._setItemRangeSelected(startIndex, endIndex, True)
         
         if selectedEntries == 0:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 QCoreApplication.translate(
                     'ProjectBaseBrowser', "Select entries"),
@@ -769,5 +769,5 @@
         """
         Protected method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences(
+        ericApp().getObject("UserInterface").showPreferences(
             "projectBrowserPage")
--- a/eric7/Project/ProjectBrowser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/ProjectBrowser.py	Sat May 22 18:51:46 2021 +0200
@@ -11,8 +11,8 @@
 from PyQt6.QtGui import QColor
 from PyQt6.QtWidgets import QApplication
 
-from E5Gui.E5TabWidget import E5TabWidget
-from E5Gui.E5Led import E5ClickableLed
+from E5Gui.EricTabWidget import EricTabWidget
+from E5Gui.EricLed import EricClickableLed
 
 import UI.PixmapCache
 import Preferences
@@ -24,7 +24,7 @@
 )
 
 
-class ProjectBrowser(E5TabWidget):
+class ProjectBrowser(EricTabWidget):
     """
     Class implementing the project browser part of the eric UI.
     
@@ -42,14 +42,14 @@
         @param project reference to the project object
         @param parent parent widget (QWidget)
         """
-        E5TabWidget.__init__(self, parent)
+        EricTabWidget.__init__(self, parent)
         self.project = project
         
         self.setWindowIcon(UI.PixmapCache.getIcon("eric"))
         
         self.setUsesScrollButtons(True)
         
-        self.vcsStatusIndicator = E5ClickableLed(self)
+        self.vcsStatusIndicator = EricClickableLed(self)
         self.setCornerWidget(self.vcsStatusIndicator, Qt.Corner.TopLeftCorner)
         self.vcsStatusIndicator.clicked.connect(
             self.__vcsStatusIndicatorClicked)
--- a/eric7/Project/ProjectFile.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/ProjectFile.py	Sat May 22 18:51:46 2021 +0200
@@ -14,8 +14,8 @@
 
 from PyQt6.QtCore import QObject
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverridenCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverridenCursor
 
 import Preferences
 import Utilities
@@ -88,8 +88,8 @@
             with open(filename, "w", newline="") as f:
                 f.write(jsonString)
         except (TypeError, OSError) as err:
-            with E5OverridenCursor():
-                E5MessageBox.critical(
+            with EricOverridenCursor():
+                EricMessageBox.critical(
                     None,
                     self.tr("Save Project File"),
                     self.tr(
@@ -115,7 +115,7 @@
                 jsonString = f.read()
             projectDict = json.loads(jsonString)
         except (OSError, json.JSONDecodeError) as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Read Project File"),
                 self.tr(
--- a/eric7/Project/ProjectFormsBrowser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/ProjectFormsBrowser.py	Sat May 22 18:51:46 2021 +0200
@@ -15,9 +15,9 @@
 from PyQt6.QtCore import QThread, QFileInfo, pyqtSignal, QProcess
 from PyQt6.QtWidgets import QDialog, QInputDialog, QApplication, QMenu
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5ProgressDialog import E5ProgressDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricProgressDialog import EricProgressDialog
 
 from .ProjectBrowserModel import (
     ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem,
@@ -593,13 +593,13 @@
         templateFile = os.path.join(
             getConfig('ericTemplatesDir'), self.templates4[templateIndex])
         
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("New Form"),
             path,
             self.tr("Qt User-Interface Files (*.ui);;All Files (*)"),
             "",
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fname:
             # user aborted or didn't enter a filename
@@ -612,11 +612,11 @@
                 fname += ex
         
         if os.path.exists(fname):
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("New Form"),
                 self.tr("The file already exists! Overwrite it?"),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 # user selected to not overwrite
                 return
@@ -624,7 +624,7 @@
         try:
             shutil.copy(templateFile, fname)
         except OSError as e:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("New Form"),
                 self.tr(
@@ -745,8 +745,8 @@
         @param exitStatus exit status of the process (QProcess.ExitStatus)
         """
         self.compileRunning = False
-        e5App().getObject("ViewManager").enableEditorsCheckFocusIn(True)
-        ui = e5App().getObject("UserInterface")
+        ericApp().getObject("ViewManager").enableEditorsCheckFocusIn(True)
+        ui = ericApp().getObject("UserInterface")
         if (
             exitStatus == QProcess.ExitStatus.NormalExit and
             exitCode == 0 and
@@ -857,13 +857,13 @@
         procStarted = self.compileProc.waitForStarted(5000)
         if procStarted:
             self.compileRunning = True
-            e5App().getObject("ViewManager").enableEditorsCheckFocusIn(False)
+            ericApp().getObject("ViewManager").enableEditorsCheckFocusIn(False)
             return self.compileProc
         else:
             self.compileRunning = False
             if progress is not None:
                 progress.cancel()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -917,7 +917,7 @@
             self.hooks["compileAllForms"](self.project.pdata["FORMS"])
         else:
             numForms = len(self.project.pdata["FORMS"])
-            progress = E5ProgressDialog(
+            progress = EricProgressDialog(
                 self.tr("Compiling forms..."),
                 self.tr("Abort"), 0, numForms,
                 self.tr("%v/%m Forms"), self)
@@ -952,7 +952,7 @@
             self.hooks["compileSelectedForms"](files)
         else:
             numForms = len(files)
-            progress = E5ProgressDialog(
+            progress = EricProgressDialog(
                 self.tr("Compiling forms..."),
                 self.tr("Abort"), 0, numForms,
                 self.tr("%v/%m Forms"), self)
@@ -988,7 +988,7 @@
                 # ignore the request for non Qt GUI projects
                 return
             
-            progress = E5ProgressDialog(
+            progress = EricProgressDialog(
                 self.tr("Determining changed forms..."),
                 self.tr("Abort"), 0, 100, self.tr("%v/%m Forms"))
             progress.setMinimumDuration(0)
--- a/eric7/Project/ProjectInterfacesBrowser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/ProjectInterfacesBrowser.py	Sat May 22 18:51:46 2021 +0200
@@ -15,9 +15,9 @@
 from PyQt6.QtCore import QThread, pyqtSignal, QProcess
 from PyQt6.QtWidgets import QDialog, QApplication, QMenu
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
-from E5Gui.E5ProgressDialog import E5ProgressDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
+from E5Gui.EricProgressDialog import EricProgressDialog
 
 from .ProjectBrowserModel import (
     ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem,
@@ -514,7 +514,7 @@
         @param exitStatus exit status of the process (QProcess.ExitStatus)
         """
         self.compileRunning = False
-        ui = e5App().getObject("UserInterface")
+        ui = ericApp().getObject("UserInterface")
         if exitStatus == QProcess.ExitStatus.NormalExit and exitCode == 0:
             path = os.path.dirname(self.idlFile)
             poaList = glob.glob(os.path.join(path, "*__POA"))
@@ -546,7 +546,7 @@
 
         @param fn filename of the .idl file to be compiled (string)
         @param noDialog flag indicating silent operations (boolean)
-        @param progress reference to the progress dialog (E5ProgressDialog)
+        @param progress reference to the progress dialog (EricProgressDialog)
         @return reference to the compile process (QProcess)
         """
         params = self.project.pdata["IDLPARAMS"]
@@ -583,7 +583,7 @@
             self.compileRunning = False
             if progress is not None:
                 progress.cancel()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -608,7 +608,7 @@
         """
         if self.omniidl is not None:
             numIDLs = len(self.project.pdata["INTERFACES"])
-            progress = E5ProgressDialog(
+            progress = EricProgressDialog(
                 self.tr("Compiling interfaces..."),
                 self.tr("Abort"), 0, numIDLs,
                 self.tr("%v/%m Interfaces"), self)
@@ -640,7 +640,7 @@
             files = [self.project.getRelativePath(itm.fileName())
                      for itm in items]
             numIDLs = len(files)
-            progress = E5ProgressDialog(
+            progress = EricProgressDialog(
                 self.tr("Compiling interfaces..."),
                 self.tr("Abort"), 0, numIDLs,
                 self.tr("%v/%m Interfaces"), self)
@@ -689,4 +689,4 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences("corbaPage")
+        ericApp().getObject("UserInterface").showPreferences("corbaPage")
--- a/eric7/Project/ProjectOthersBrowser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/ProjectOthersBrowser.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 from PyQt6.QtGui import QDesktopServices
 from PyQt6.QtWidgets import QDialog, QMenu
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .ProjectBrowserModel import (
     ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem,
@@ -270,13 +270,13 @@
         if itmList:
             mimetype = Utilities.MimeTypes.mimeType(itmList[0].fileName())
             if mimetype is None:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Show Mime-Type"),
                     self.tr("""The mime type of the file could not be"""
                             """ determined."""))
             elif mimetype.split("/")[0] == "text":
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("Show Mime-Type"),
                     self.tr("""The file has the mime type <b>{0}</b>.""")
@@ -284,13 +284,13 @@
             else:
                 textMimeTypesList = Preferences.getUI("TextMimeTypes")
                 if mimetype in textMimeTypesList:
-                    E5MessageBox.information(
+                    EricMessageBox.information(
                         self,
                         self.tr("Show Mime-Type"),
                         self.tr("""The file has the mime type <b>{0}</b>.""")
                         .format(mimetype))
                 else:
-                    ok = E5MessageBox.yesNo(
+                    ok = EricMessageBox.yesNo(
                         self,
                         self.tr("Show Mime-Type"),
                         self.tr("""The file has the mime type <b>{0}</b>."""
--- a/eric7/Project/ProjectProtocolsBrowser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/ProjectProtocolsBrowser.py	Sat May 22 18:51:46 2021 +0200
@@ -16,9 +16,9 @@
 from PyQt6.QtCore import QThread, pyqtSignal, QProcess
 from PyQt6.QtWidgets import QDialog, QApplication, QMenu
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
-from E5Gui.E5ProgressDialog import E5ProgressDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
+from E5Gui.EricProgressDialog import EricProgressDialog
 
 from .ProjectBrowserModel import (
     ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem,
@@ -539,7 +539,7 @@
         @type bool
         """
         self.__compileRunning = False
-        ui = e5App().getObject("UserInterface")
+        ui = ericApp().getObject("UserInterface")
         if exitStatus == QProcess.ExitStatus.NormalExit and exitCode == 0:
             path = os.path.dirname(self.__protoFile)
             fileList = glob.glob(os.path.join(path, "*_pb2.py"))
@@ -580,7 +580,7 @@
         @param noDialog flag indicating silent operations
         @type bool
         @param progress reference to the progress dialog
-        @type E5ProgressDialog
+        @type EricProgressDialog
         @param grpc flag indicating to compile as gRPC files
         @type bool
         @return reference to the compile process
@@ -616,7 +616,7 @@
                 self.__compileRunning = False
                 if progress is not None:
                     progress.cancel()
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr('Process Generation Error'),
                     self.tr(
@@ -625,7 +625,7 @@
                     ).format(exe))
                 return None
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Compiler Invalid'),
                 self.tr('The configured compiler is invalid.'))
@@ -653,7 +653,7 @@
         """
         if self.__getCompilerCommand(grpc)[0] is not None:
             numProtos = len(self.project.pdata["PROTOCOLS"])
-            progress = E5ProgressDialog(
+            progress = EricProgressDialog(
                 self.tr("Compiling Protocols..."),
                 self.tr("Abort"), 0, numProtos,
                 self.tr("%v/%m Protocols"), self)
@@ -688,7 +688,7 @@
             files = [self.project.getRelativePath(itm.fileName())
                      for itm in items]
             numProtos = len(files)
-            progress = E5ProgressDialog(
+            progress = EricProgressDialog(
                 self.tr("Compiling Protocols..."),
                 self.tr("Abort"), 0, numProtos,
                 self.tr("%v/%m Protocols"), self)
@@ -714,4 +714,4 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences("protobufPage")
+        ericApp().getObject("UserInterface").showPreferences("protobufPage")
--- a/eric7/Project/ProjectResourcesBrowser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/ProjectResourcesBrowser.py	Sat May 22 18:51:46 2021 +0200
@@ -13,9 +13,9 @@
 from PyQt6.QtCore import QThread, QFileInfo, pyqtSignal, QProcess
 from PyQt6.QtWidgets import QDialog, QApplication, QMenu
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5ProgressDialog import E5ProgressDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricProgressDialog import EricProgressDialog
 
 from .ProjectBrowserModel import (
     ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem,
@@ -465,13 +465,13 @@
         if self.hooks["newResource"] is not None:
             self.hooks["newResource"](path)
         else:
-            fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+            fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
                 self,
                 self.tr("New Resource"),
                 path,
                 self.tr("Qt Resource Files (*.qrc)"),
                 "",
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
             
             if not fname:
                 # user aborted or didn't enter a filename
@@ -484,11 +484,11 @@
                     fname += ex
             
             if os.path.exists(fname):
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self,
                     self.tr("New Resource"),
                     self.tr("The file already exists! Overwrite it?"),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     # user selected to not overwrite
                     return
@@ -504,7 +504,7 @@
                     rcfile.write('</qresource>\n')
                     rcfile.write('</RCC>\n')
             except OSError as e:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("New Resource"),
                     self.tr(
@@ -590,8 +590,8 @@
         @param exitStatus exit status of the process (QProcess.ExitStatus)
         """
         self.compileRunning = False
-        e5App().getObject("ViewManager").enableEditorsCheckFocusIn(True)
-        ui = e5App().getObject("UserInterface")
+        ericApp().getObject("ViewManager").enableEditorsCheckFocusIn(True)
+        ui = ericApp().getObject("UserInterface")
         if (
             exitStatus == QProcess.ExitStatus.NormalExit and
             exitCode == 0 and
@@ -613,7 +613,7 @@
                             " was successful."))
             except OSError as msg:
                 if not self.noDialog:
-                    E5MessageBox.information(
+                    EricMessageBox.information(
                         self,
                         self.tr("Resource Compilation"),
                         self.tr(
@@ -701,13 +701,13 @@
         procStarted = self.compileProc.waitForStarted(5000)
         if procStarted:
             self.compileRunning = True
-            e5App().getObject("ViewManager").enableEditorsCheckFocusIn(False)
+            ericApp().getObject("ViewManager").enableEditorsCheckFocusIn(False)
             return self.compileProc
         else:
             self.compileRunning = False
             if progress is not None:
                 progress.cancel()
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -736,7 +736,7 @@
             self.hooks["compileAllResources"](self.project.pdata["RESOURCES"])
         else:
             numResources = len(self.project.pdata["RESOURCES"])
-            progress = E5ProgressDialog(
+            progress = EricProgressDialog(
                 self.tr("Compiling resources..."),
                 self.tr("Abort"), 0, numResources,
                 self.tr("%v/%m Resources"), self)
@@ -770,7 +770,7 @@
             self.hooks["compileSelectedResources"](files)
         else:
             numResources = len(files)
-            progress = E5ProgressDialog(
+            progress = EricProgressDialog(
                 self.tr("Compiling resources..."),
                 self.tr("Abort"), 0, numResources,
                 self.tr("%v/%m Resources"), self)
@@ -841,7 +841,7 @@
             self.hooks["compileChangedResources"](
                 self.project.pdata["RESOURCES"])
         else:
-            progress = E5ProgressDialog(
+            progress = EricProgressDialog(
                 self.tr("Determining changed resources..."),
                 self.tr("Abort"), 0, 100, self.tr("%v/%m Resources"))
             progress.setMinimumDuration(0)
--- a/eric7/Project/ProjectSourcesBrowser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/ProjectSourcesBrowser.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import pyqtSignal
 from PyQt6.QtWidgets import QDialog, QInputDialog, QMenu
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from UI.BrowserModel import (
     BrowserFileItem, BrowserClassItem, BrowserMethodItem,
@@ -824,7 +824,7 @@
                     try:
                         os.mkdir(packagePath)
                     except OSError as err:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self,
                             self.tr("Add new Python package"),
                             self.tr(
@@ -839,7 +839,7 @@
                         with open(packageFile, "w", encoding="utf-8"):
                             pass
                     except OSError as err:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self,
                             self.tr("Add new Python package"),
                             self.tr(
@@ -1072,7 +1072,7 @@
             fn = itm.fileName()
         except AttributeError:
             fn = itm.dirName()
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Class Diagram"),
             self.tr("""Include class attributes?"""),
@@ -1094,7 +1094,7 @@
         except AttributeError:
             fn = itm.dirName()
         package = fn if os.path.isdir(fn) else os.path.dirname(fn)
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Imports Diagram"),
             self.tr("""Include imports from external modules?"""))
@@ -1115,7 +1115,7 @@
         except AttributeError:
             fn = itm.dirName()
         package = fn if os.path.isdir(fn) else os.path.dirname(fn)
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Package Diagram"),
             self.tr("""Include class attributes?"""),
@@ -1131,7 +1131,7 @@
         """
         Private method to handle the application diagram context menu action.
         """
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Application Diagram"),
             self.tr("""Include module names?"""),
--- a/eric7/Project/ProjectTranslationsBrowser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/ProjectTranslationsBrowser.py	Sat May 22 18:51:46 2021 +0200
@@ -17,8 +17,8 @@
 from PyQt6.QtCore import pyqtSignal, QProcess
 from PyQt6.QtWidgets import QDialog, QMenu
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 from .ProjectBrowserModel import (
     ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem,
@@ -788,7 +788,7 @@
             except IndexError:
                 langs = []
         if not langs:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Write temporary project file"),
                 self.tr("""No translation files (*.ts) selected."""))
@@ -830,7 +830,7 @@
                 
                 self.__tmpProjects.append(outFile)
             except OSError:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Write temporary project file"),
                     self.tr(
@@ -936,7 +936,7 @@
         @param exitStatus exit status of the process
         @type QProcess.ExitStatus
         """
-        ui = e5App().getObject("UserInterface")
+        ui = ericApp().getObject("UserInterface")
         if exitStatus == QProcess.ExitStatus.NormalExit and exitCode == 0:
             ui.showNotification(
                 UI.PixmapCache.getPixmap("linguist48"),
@@ -1051,7 +1051,7 @@
                 except IndexError:
                     langs = []
             if not langs:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Translation file generation"),
                     self.tr("""No translation files (*.ts) selected."""))
@@ -1083,7 +1083,7 @@
                     self.pylupdateProcRunning = True
                     self.__pylupdateProcesses.append((proc, ""))
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr('Process Generation Error'),
                         self.tr(
@@ -1119,7 +1119,7 @@
                     self.pylupdateProcRunning = True
                     self.__pylupdateProcesses.append((proc, tempProjectFile))
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr('Process Generation Error'),
                         self.tr(
@@ -1180,7 +1180,7 @@
         @param exitStatus exit status of the process
         @type QProcess.ExitStatus
         """
-        ui = e5App().getObject("UserInterface")
+        ui = ericApp().getObject("UserInterface")
         if exitStatus == QProcess.ExitStatus.NormalExit and exitCode == 0:
             ui.showNotification(
                 UI.PixmapCache.getPixmap("linguist48"),
@@ -1260,7 +1260,7 @@
             except IndexError:
                 langs = []
         if not langs:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Write temporary project file"),
                 self.tr("""No translation files (*.ts) selected."""))
@@ -1291,7 +1291,7 @@
             self.lreleaseProcRunning = True
             self.__lreleaseProcesses.append(proc)
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
--- a/eric7/Project/PropertiesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/PropertiesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 from PyQt6.QtCore import QDir, pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_PropertiesDialog import Ui_PropertiesDialog
 
@@ -42,8 +42,8 @@
             self.setObjectName(name)
         self.setupUi(self)
         
-        self.dirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
-        self.mainscriptPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.dirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
+        self.mainscriptPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         
         self.makeButton.setIcon(UI.PixmapCache.getIcon("makefile"))
         
@@ -110,7 +110,7 @@
             self.vcsLabel.show()
             if self.project.vcs is not None:
                 vcsSystemsDict = (
-                    e5App().getObject("PluginManager")
+                    ericApp().getObject("PluginManager")
                     .getPluginDisplayStrings("version_control")
                 )
                 try:
--- a/eric7/Project/PropertiesDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/PropertiesDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -159,7 +159,7 @@
       </widget>
      </item>
      <item row="5" column="1">
-      <widget class="E5PathPicker" name="dirPicker" native="true">
+      <widget class="EricPathPicker" name="dirPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -211,7 +211,7 @@
       </widget>
      </item>
      <item row="7" column="1">
-      <widget class="E5PathPicker" name="mainscriptPicker" native="true">
+      <widget class="EricPathPicker" name="mainscriptPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -421,9 +421,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Project/SpellingPropertiesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/SpellingPropertiesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_SpellingPropertiesDialog import Ui_SpellingPropertiesDialog
 
@@ -31,12 +31,12 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.pwlPicker.setMode(E5PathPickerModes.SAVE_FILE_MODE)
+        self.pwlPicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
         self.pwlPicker.setDefaultDirectory(project.ppath)
         self.pwlPicker.setFilters(self.tr(
             "Dictionary File (*.dic);;All Files (*)"))
         
-        self.pelPicker.setMode(E5PathPickerModes.SAVE_FILE_MODE)
+        self.pelPicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
         self.pelPicker.setDefaultDirectory(project.ppath)
         self.pelPicker.setFilters(self.tr(
             "Dictionary File (*.dic);;All Files (*)"))
--- a/eric7/Project/SpellingPropertiesDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/SpellingPropertiesDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -45,7 +45,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5PathPicker" name="pwlPicker" native="true">
+    <widget class="EricPathPicker" name="pwlPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -71,7 +71,7 @@
     </widget>
    </item>
    <item row="2" column="1">
-    <widget class="E5PathPicker" name="pelPicker" native="true">
+    <widget class="EricPathPicker" name="pelPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -100,9 +100,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Project/TranslationPropertiesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/TranslationPropertiesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,9 +12,9 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QListWidgetItem, QDialog, QDialogButtonBox
 
-from E5Gui.E5Completers import E5FileCompleter
-from E5Gui import E5FileDialog
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricCompleters import EricFileCompleter
+from E5Gui import EricFileDialog
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_TranslationPropertiesDialog import Ui_TranslationPropertiesDialog
 
@@ -36,15 +36,15 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.transPatternPicker.setMode(E5PathPickerModes.SAVE_FILE_MODE)
+        self.transPatternPicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
         self.transPatternPicker.setDefaultDirectory(project.ppath)
-        self.transBinPathPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.transBinPathPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.transBinPathPicker.setDefaultDirectory(project.ppath)
         
         self.project = project
         self.parent = parent
         
-        self.exceptionCompleter = E5FileCompleter(self.exceptionEdit)
+        self.exceptionCompleter = EricFileCompleter(self.exceptionEdit)
         
         self.initFilters()
         if not new:
@@ -147,7 +147,7 @@
         """
         Private slot to select a file to exempt from translation.
         """
-        texcept = E5FileDialog.getOpenFileName(
+        texcept = EricFileDialog.getOpenFileName(
             self,
             self.tr("Exempt file from translation"),
             self.project.ppath,
@@ -160,11 +160,11 @@
         """
         Private slot to select a file to exempt from translation.
         """
-        texcept = E5FileDialog.getExistingDirectory(
+        texcept = EricFileDialog.getExistingDirectory(
             self,
             self.tr("Exempt directory from translation"),
             self.project.ppath,
-            E5FileDialog.ShowDirsOnly)
+            EricFileDialog.ShowDirsOnly)
         if texcept:
             self.exceptionEdit.setText(Utilities.toNativeSeparators(texcept))
         
--- a/eric7/Project/TranslationPropertiesDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/TranslationPropertiesDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -32,7 +32,7 @@
     </widget>
    </item>
    <item>
-    <widget class="E5PathPicker" name="transPatternPicker" native="true">
+    <widget class="EricPathPicker" name="transPatternPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -62,7 +62,7 @@
     </widget>
    </item>
    <item>
-    <widget class="E5PathPicker" name="transBinPathPicker" native="true">
+    <widget class="EricPathPicker" name="transBinPathPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -170,9 +170,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Project/UserProjectFile.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/UserProjectFile.py	Sat May 22 18:51:46 2021 +0200
@@ -13,8 +13,8 @@
 
 from PyQt6.QtCore import QObject
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverridenCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverridenCursor
 
 import Preferences
 
@@ -65,8 +65,8 @@
             with open(filename, "w") as f:
                 f.write(jsonString)
         except (TypeError, OSError) as err:
-            with E5OverridenCursor():
-                E5MessageBox.critical(
+            with EricOverridenCursor():
+                EricMessageBox.critical(
                     None,
                     self.tr("Save User Project Properties"),
                     self.tr(
@@ -94,7 +94,7 @@
                 jsonString = f.read()
             userProjectDict = json.loads(jsonString)
         except (OSError, json.JSONDecodeError) as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Read User Project Properties"),
                 self.tr(
--- a/eric7/Project/UserPropertiesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Project/UserPropertiesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 
@@ -46,7 +46,7 @@
         if self.project.pdata["VCS"]:
             found = False
             for _indicator, vcsData in (
-                e5App().getObject("PluginManager")
+                ericApp().getObject("PluginManager")
                 .getVcsSystemIndicators().items()
             ):
                 for vcsSystem, _vcsSystemDisplay in vcsData:
--- a/eric7/PyUnit/UnittestDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PyUnit/UnittestDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -21,10 +21,10 @@
     QComboBox, QTreeWidgetItem
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_UnittestDialog import Ui_UnittestDialog
 
@@ -77,13 +77,13 @@
             self.setObjectName(name)
         self.setupUi(self)
         
-        self.testsuitePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.testsuitePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.testsuitePicker.setInsertPolicy(
             QComboBox.InsertPolicy.InsertAtTop)
         self.testsuitePicker.setSizeAdjustPolicy(
             QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon)
         
-        self.discoveryPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.discoveryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.discoveryPicker.setInsertPolicy(
             QComboBox.InsertPolicy.InsertAtTop)
         self.discoveryPicker.setSizeAdjustPolicy(
@@ -138,7 +138,7 @@
             
             # virtual environment manager is only used in the integrated
             # variant
-            self.__venvManager = e5App().getObject("VirtualEnvManager")
+            self.__venvManager = ericApp().getObject("VirtualEnvManager")
             self.__populateVenvComboBox()
             self.__venvManager.virtualEnvironmentAdded.connect(
                 self.__populateVenvComboBox)
@@ -232,7 +232,7 @@
         """
         self.__forProject = forProject
         if forProject:
-            project = e5App().getObject("Project")
+            project = ericApp().getObject("Project")
             if project.isOpen():
                 self.insertDiscovery(project.getProjectPath())
             else:
@@ -312,7 +312,7 @@
         if not defaultDirectory:
             defaultDirectory = os.path.expanduser("~")
         if self.__dbs:
-            project = e5App().getObject("Project")
+            project = ericApp().getObject("Project")
             if self.__forProject and project.isOpen():
                 defaultDirectory = project.getProjectPath()
         self.testsuitePicker.setDefaultDirectory(defaultDirectory)
@@ -350,7 +350,7 @@
         
         if not bool(self.discoveryPicker.currentText()):
             if self.__forProject:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if project.isOpen():
                     self.insertDiscovery(project.getProjectPath())
                     return
@@ -391,7 +391,7 @@
             venvName = self.venvComboBox.currentText()
             
             # we are cooperating with the eric IDE
-            project = e5App().getObject("Project")
+            project = ericApp().getObject("Project")
             if self.__forProject:
                 mainScript = project.getMainScript(True)
                 clientType = project.getProjectLanguage()
@@ -404,7 +404,7 @@
                     discoveryStart = workdir
             else:
                 if not discoveryStart:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Unittest"),
                         self.tr("You must enter a start directory for"
@@ -420,7 +420,7 @@
         else:
             # we are running as an application
             if not discoveryStart:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Unittest"),
                     self.tr("You must enter a start directory for"
@@ -448,7 +448,7 @@
                 testLoader = unittest.TestLoader()
                 test = testLoader.discover(discoveryStart)
                 if hasattr(testLoader, "errors") and bool(testLoader.errors):
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Unittest"),
                         self.tr(
@@ -468,7 +468,7 @@
                     self.tabWidget.setCurrentIndex(0)
             except Exception:
                 exc_type, exc_value, exc_tb = sys.exc_info()
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Unittest"),
                     self.tr(
@@ -624,7 +624,7 @@
                         len(testCases)))
             self.tabWidget.setCurrentIndex(0)
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Unittest"),
                 self.tr("<p>Unable to discover tests.</p>"
@@ -690,7 +690,7 @@
                 testName = "suite"
         
         if not discover and not testFileName and not testName:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Unittest"),
                 self.tr("You must select auto-discovery or enter a test suite"
@@ -720,7 +720,7 @@
             testCases = self.__selectedTestCases()
         
             if not testCases and self.discoveryList.topLevelItemCount():
-                ok = E5MessageBox.yesNo(
+                ok = EricMessageBox.yesNo(
                     self,
                     self.tr("Unittest"),
                     self.tr("""No test case has been selected. Shall all"""
@@ -732,7 +732,7 @@
             venvName = self.venvComboBox.currentText()
             
             # we are cooperating with the eric IDE
-            project = e5App().getObject("Project")
+            project = ericApp().getObject("Project")
             if self.__forProject:
                 mainScript = project.getMainScript(True)
                 clientType = project.getProjectLanguage()
@@ -748,7 +748,7 @@
             else:
                 if discover:
                     if not discoveryStart:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self,
                             self.tr("Unittest"),
                             self.tr("You must enter a start directory for"
@@ -787,7 +787,7 @@
         else:
             # we are running as an application
             if discover and not discoveryStart:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Unittest"),
                     self.tr("You must enter a start directory for"
@@ -849,7 +849,7 @@
                             testName, module)
             except Exception:
                 exc_type, exc_value, exc_tb = sys.exc_info()
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Unittest"),
                     self.tr(
@@ -881,7 +881,7 @@
                 self, self.failfastCheckBox.isChecked())
             self.totalTests = test.countTestCases()
             if self.totalTests == 0:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Unittest"),
                     self.tr("""No unittest were found. Aborting..."""))
@@ -909,7 +909,7 @@
         @param exc_value value of exception occured during preparation (string)
         """
         if nrTests == 0:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Unittest"),
                 self.tr(
@@ -1066,7 +1066,7 @@
         self.skippedCount += 1
         self.progressCounterSkippedCount.setText(str(self.skippedCount))
         itm = QListWidgetItem(self.tr("    Skipped: {0}").format(reason))
-        if e5App().usesDarkPalette():
+        if ericApp().usesDarkPalette():
             itm.setForeground(self.SkippedColorDarkTheme)
         else:
             itm.setForeground(self.SkippedColorLightTheme)
@@ -1084,7 +1084,7 @@
         self.progressCounterExpectedFailureCount.setText(
             str(self.expectedFailureCount))
         itm = QListWidgetItem(self.tr("    Expected Failure"))
-        if e5App().usesDarkPalette():
+        if ericApp().usesDarkPalette():
             itm.setForeground(self.FailedExpectedColorDarkTheme)
         else:
             itm.setForeground(self.FailedExpectedColorLightTheme)
@@ -1101,7 +1101,7 @@
         self.progressCounterUnexpectedSuccessCount.setText(
             str(self.unexpectedSuccessCount))
         itm = QListWidgetItem(self.tr("    Unexpected Success"))
-        if e5App().usesDarkPalette():
+        if ericApp().usesDarkPalette():
             itm.setForeground(self.SucceededUnexpectedColorDarkTheme)
         else:
             itm.setForeground(self.SucceededUnexpectedColorLightTheme)
@@ -1330,7 +1330,7 @@
         self.parent.testFinished()
 
 
-class UnittestWindow(E5MainWindow):
+class UnittestWindow(EricMainWindow):
     """
     Main window class for the standalone dialog.
     """
--- a/eric7/PyUnit/UnittestDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/PyUnit/UnittestDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -51,7 +51,7 @@
            </widget>
           </item>
           <item row="1" column="1">
-           <widget class="E5ComboPathPicker" name="discoveryPicker" native="true">
+           <widget class="EricComboPathPicker" name="discoveryPicker" native="true">
             <property name="enabled">
              <bool>false</bool>
             </property>
@@ -85,7 +85,7 @@
            </widget>
           </item>
           <item row="2" column="1">
-           <widget class="E5ComboPathPicker" name="testsuitePicker" native="true">
+           <widget class="EricComboPathPicker" name="testsuitePicker" native="true">
             <property name="sizePolicy">
              <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
               <horstretch>0</horstretch>
@@ -291,7 +291,7 @@
              </spacer>
             </item>
             <item>
-             <widget class="E5Led" name="progressLed"/>
+             <widget class="EricLed" name="progressLed"/>
             </item>
            </layout>
           </item>
@@ -547,15 +547,15 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5ComboPathPicker</class>
+   <class>EricComboPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
   <customwidget>
-   <class>E5Led</class>
+   <class>EricLed</class>
    <extends>QFrame</extends>
-   <header>E5Gui/E5Led.h</header>
+   <header>E5Gui/EricLed.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/QScintilla/DocstringGenerator/BaseDocstringGenerator.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/DocstringGenerator/BaseDocstringGenerator.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import Qt
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 
@@ -120,7 +120,7 @@
         """
         docstringStyle = ""
         
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         filename = self.editor.getFileName()
         if (
             filename and
--- a/eric7/QScintilla/Editor.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/Editor.py	Sat May 22 18:51:46 2021 +0200
@@ -25,9 +25,9 @@
 from PyQt6.QtPrintSupport import QPrinter, QPrintDialog, QAbstractPrintDialog
 from PyQt6.Qsci import QsciScintilla, QsciMacro, QsciStyledText
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5FileDialog, E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricFileDialog, EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from EricUtilities.EricCache import EricCache
 
@@ -205,7 +205,7 @@
         self.filetype = filetype
         self.filetypeByFlag = False
         self.noName = ""
-        self.project = e5App().getObject("Project")
+        self.project = ericApp().getObject("Project")
         
         # clear some variables
         self.lastHighlight = None   # remember the last highlighted line
@@ -373,7 +373,7 @@
         
         # initialize the online syntax check timer
         try:
-            self.syntaxCheckService = e5App().getObject('SyntaxCheckService')
+            self.syntaxCheckService = ericApp().getObject('SyntaxCheckService')
             self.syntaxCheckService.syntaxChecked.connect(
                 self.__processSyntaxCheckResult)
             self.syntaxCheckService.error.connect(
@@ -389,7 +389,7 @@
                     (QFileInfo(self.fileName).size() // 1024) >
                         Preferences.getEditor("WarnFilesize")
                 ):
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         self,
                         self.tr("Open File"),
                         self.tr("""<p>The size of the file <b>{0}</b>"""
@@ -397,7 +397,7 @@
                                 """ Do you really want to load it?</p>""")
                         .format(self.fileName,
                                 QFileInfo(self.fileName).size() // 1024),
-                        icon=E5MessageBox.Warning)
+                        icon=EricMessageBox.Warning)
                     if not res:
                         raise OSError()
                 self.readFile(self.fileName, True)
@@ -1402,7 +1402,7 @@
             if exporter:
                 exporter.exportSource()
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Export source"),
                     self.tr(
@@ -1410,7 +1410,7 @@
                         """export format <b>{0}</b>. Aborting...</p>""")
                     .format(exporterFormat))
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Export source"),
                 self.tr("""No export format given. Aborting..."""))
@@ -1984,7 +1984,7 @@
         """
         Private slot to handle the modificationAttempted signal.
         """
-        E5MessageBox.warning(
+        EricMessageBox.warning(
             self,
             self.tr("Modification of Read Only file"),
             self.tr("""You are attempting to change a read only file. """
@@ -2691,7 +2691,7 @@
         """
         from .Printer import Printer
         printer = Printer(mode=QPrinter.PrinterMode.HighResolution)
-        sb = e5App().getObject("UserInterface").statusBar()
+        sb = ericApp().getObject("UserInterface").statusBar()
         printDialog = QPrintDialog(printer, self)
         if self.hasSelectedText():
             printDialog.setOption(
@@ -3076,7 +3076,7 @@
             fn = self.fileName
             if fn is None:
                 fn = self.noName
-            res = E5MessageBox.okToClearData(
+            res = EricMessageBox.okToClearData(
                 self,
                 self.tr("File Modified"),
                 self.tr("<p>The file <b>{0}</b> has unsaved changes.</p>")
@@ -3121,7 +3121,7 @@
         self.__loadEditorConfig(fileName=fn)
         
         try:
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 if createIt and not os.path.exists(fn):
                     with open(fn, "w"):
                         pass
@@ -3134,7 +3134,7 @@
                 else:
                     txt, self.encoding = Utilities.readEncodedFile(fn)
         except (UnicodeDecodeError, OSError) as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.vm,
                 self.tr('Open File'),
                 self.tr('<p>The file <b>{0}</b> could not be opened.</p>'
@@ -3142,7 +3142,7 @@
                     .format(fn, str(why)))
             raise
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             modified = False
             
             self.setText(txt)
@@ -3252,7 +3252,7 @@
                 os.chmod(fn, permissions)
             return True
         except (OSError, Utilities.CodingError, UnicodeError) as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Save File'),
                 self.tr('<p>The file <b>{0}</b> could not be saved.<br/>'
@@ -3297,13 +3297,13 @@
                 defaultFilter = Preferences.getEditor("DefaultSaveFilter")
         else:
             defaultFilter = Preferences.getEditor("DefaultSaveFilter")
-        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save File"),
             path,
             Lexers.getSaveFileFiltersList(True, True),
             defaultFilter,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if fn:
             if fn.endswith("."):
@@ -3315,12 +3315,12 @@
                 if ex:
                     fn += ex
             if QFileInfo(fn).exists():
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self,
                     self.tr("Save File"),
                     self.tr("<p>The file <b>{0}</b> already exists."
                             " Overwrite it?</p>").format(fn),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return ""
             fn = Utilities.toNativeSeparators(fn)
@@ -4796,7 +4796,7 @@
         elif acs == QsciScintilla.AutoCompletionSource.AcsAll:
             self.autoCompleteFromAll()
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Autocompletion"),
                 self.tr(
@@ -4934,7 +4934,7 @@
             key in self.__completionListAsyncHookFunctions
         ):
             # it was already registered
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Auto-Completion Provider"),
                 self.tr("""The completion list provider '{0}' was already"""
@@ -5218,7 +5218,7 @@
         """
         if key in self.__ctHookFunctions:
             # it was already registered
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Call-Tips Provider"),
                 self.tr("""The call-tips provider '{0}' was already"""
@@ -6091,14 +6091,14 @@
                 self.__markerMap.update()
             else:
                 if not silent:
-                    E5MessageBox.information(
+                    EricMessageBox.information(
                         self,
                         self.tr("Show Code Coverage Annotations"),
                         self.tr("""All lines have been covered."""))
             self.showingNotcoveredMarkers = True
         else:
             if not silent:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Show Code Coverage Annotations"),
                     self.tr("""There is no coverage file available."""))
@@ -6371,13 +6371,13 @@
         for handle in list(self.syntaxerrors.keys()):
             if self.markerLine(handle) == line:
                 errors = [e[0] for e in self.syntaxerrors[handle]]
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Syntax Error"),
                     "\n".join(errors))
                 break
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Syntax Error"),
                 self.tr("No syntax error message available."))
@@ -6583,13 +6583,13 @@
         
         for handle in list(self.warnings.keys()):
             if self.markerLine(handle) == line:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Warning"),
                     '\n'.join([w[0] for w in self.warnings[handle]]))
                 break
         else:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Warning"),
                 self.tr("No warning messages available."))
@@ -6794,7 +6794,7 @@
         Public method to load a macro from a file.
         """
         configDir = Utilities.getConfigDir()
-        fname = E5FileDialog.getOpenFileName(
+        fname = EricFileDialog.getOpenFileName(
             self,
             self.tr("Load macro file"),
             configDir,
@@ -6807,7 +6807,7 @@
             with open(fname, "r", encoding="utf-8") as f:
                 lines = f.readlines()
         except OSError:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Error loading macro"),
                 self.tr(
@@ -6816,7 +6816,7 @@
             return
         
         if len(lines) != 2:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Error loading macro"),
                 self.tr("<p>The macro file <b>{0}</b> is corrupt.</p>")
@@ -6836,13 +6836,13 @@
         if not ok or not name:
             return  # user abort
         
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save macro file"),
             configDir,
             self.tr("Macro files (*.macro)"),
             "",
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
@@ -6853,12 +6853,12 @@
             if ex:
                 fname += ex
         if QFileInfo(fname).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save macro"),
                 self.tr("<p>The macro file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fname),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return
         fname = Utilities.toNativeSeparators(fname)
@@ -6868,7 +6868,7 @@
                 f.write("{0}{1}".format(name, "\n"))
                 f.write(self.macros[name].save())
         except OSError:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Error saving macro"),
                 self.tr(
@@ -6881,11 +6881,11 @@
         Public method to start macro recording.
         """
         if self.recording:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Start Macro Recording"),
                 self.tr("Macro recording is already active. Start new?"),
-                icon=E5MessageBox.Warning,
+                icon=EricMessageBox.Warning,
                 yesDefault=True)
             if res:
                 self.macroRecordingStop()
@@ -7072,10 +7072,10 @@
                         """<br><b>Warning:</b> You will lose"""
                         """ your changes upon reopening it.""")
                     yesDefault = False
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self,
                     self.tr("File changed"), msg,
-                    icon=E5MessageBox.Warning,
+                    icon=EricMessageBox.Warning,
                     yesDefault=yesDefault)
                 if res:
                     self.refresh()
@@ -7403,7 +7403,7 @@
                     if not QFileInfo(fname).isDir():
                         self.vm.openSourceFile(fname)
                     else:
-                        E5MessageBox.information(
+                        EricMessageBox.information(
                             self,
                             self.tr("Drop Error"),
                             self.tr("""<p><b>{0}</b> is not a file.</p>""")
@@ -7456,7 +7456,7 @@
         Private method to handle the Add file context menu action.
         """
         dirStr = os.path.dirname(self.fileName)
-        file = E5FileDialog.getOpenFileName(
+        file = EricFileDialog.getOpenFileName(
             self,
             self.tr("Add file resource"),
             dirStr,
@@ -7472,7 +7472,7 @@
         Private method to handle the Add files context menu action.
         """
         dirStr = os.path.dirname(self.fileName)
-        files = E5FileDialog.getOpenFileNames(
+        files = EricFileDialog.getOpenFileNames(
             self,
             self.tr("Add file resources"),
             dirStr,
@@ -7492,7 +7492,7 @@
         Private method to handle the Add aliased file context menu action.
         """
         dirStr = os.path.dirname(self.fileName)
-        file = E5FileDialog.getOpenFileName(
+        file = EricFileDialog.getOpenFileName(
             self,
             self.tr("Add aliased file resource"),
             dirStr,
@@ -7565,7 +7565,7 @@
             os.path.isdir(self.fileName) and
             self.fileName or os.path.dirname(self.fileName)
         )
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Package Diagram"),
             self.tr("""Include class attributes?"""),
@@ -7584,7 +7584,7 @@
             return
         
         package = os.path.dirname(self.fileName)
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Imports Diagram"),
             self.tr("""Include imports from external modules?"""))
@@ -7598,7 +7598,7 @@
         Private method to handle the Imports Diagram context menu action.
         """
         from Graphics.UMLDialog import UMLDialog, UMLDialogType
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Application Diagram"),
             self.tr("""Include module names?"""),
@@ -7645,7 +7645,7 @@
         """
         if cmd == QsciScintilla.SCI_TAB:
             try:
-                templateViewer = e5App().getObject("TemplateViewer")
+                templateViewer = ericApp().getObject("TemplateViewer")
             except KeyError:
                 # template viewer is not active
                 templateViewer = None
@@ -7691,7 +7691,7 @@
             from (string)
         """
         try:
-            templateViewer = e5App().getObject("TemplateViewer")
+            templateViewer = ericApp().getObject("TemplateViewer")
         except KeyError:
             # template viewer is not active
             return
@@ -8344,7 +8344,7 @@
                     try:
                         txt = float(txt)
                     except ValueError:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self,
                             self.tr("Sort Lines"),
                             self.tr(
@@ -8433,7 +8433,7 @@
         if int(button):
             key = (int(modifiers), int(button))
             if key in self.__mouseClickHandlers:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Register Mouse Click Handler"),
                     self.tr("""A mouse click handler for "{0}" was already"""
@@ -8517,7 +8517,7 @@
         Private slot to execute the selected text in the shell window.
         """
         txt = self.selectedText()
-        e5App().getObject("Shell").executeLines(txt)
+        ericApp().getObject("Shell").executeLines(txt)
     
     #######################################################################
     ## Methods implementing the interface to EditorConfig
@@ -8554,7 +8554,7 @@
             try:
                 editorConfig = editorconfig.get_properties(fileName)
             except editorconfig.EditorConfigError:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("EditorConfig Properties"),
                     self.tr("""<p>The EditorConfig properties for file"""
--- a/eric7/QScintilla/EditorAssembly.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/EditorAssembly.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import QTimer
 from PyQt6.QtWidgets import QWidget, QGridLayout, QComboBox
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import UI.PixmapCache
 import Preferences
@@ -91,7 +91,7 @@
         self.__activateOutline(self.__showOutline)
         self.__activateCombos(not self.__showOutline)
         
-        e5App().getObject("UserInterface").preferencesChanged.connect(
+        ericApp().getObject("UserInterface").preferencesChanged.connect(
             self.__preferencesChanged)
     
     def shutdownTimer(self):
--- a/eric7/QScintilla/EditorMarkerMap.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/EditorMarkerMap.py	Sat May 22 18:51:46 2021 +0200
@@ -7,12 +7,12 @@
 Module implementing a class for showing an editor marker map.
 """
 
-from E5Gui.E5MapWidget import E5MapWidget
+from E5Gui.EricMapWidget import EricMapWidget
 
 import Preferences
 
 
-class EditorMarkerMap(E5MapWidget):
+class EditorMarkerMap(EricMapWidget):
     """
     Class implementing a class for showing an editor marker map.
     """
--- a/eric7/QScintilla/EditorOutline.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/EditorOutline.py	Sat May 22 18:51:46 2021 +0200
@@ -401,7 +401,7 @@
         """
         Private slot to handle the selection of the goto menu.
         
-        @param act reference to the action (E5Action)
+        @param act reference to the action (EricAction)
         """
         lineno = act.data()
         self.__model.editor().gotoLine(lineno)
--- a/eric7/QScintilla/Exporters/ExporterBase.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/Exporters/ExporterBase.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtCore import QFileInfo, QObject, QCoreApplication
 
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui import EricMessageBox, EricFileDialog
 
 import Utilities
 
@@ -38,13 +38,13 @@
         """
         fileFilter += ";;"
         fileFilter += QCoreApplication.translate('Exporter', "All Files (*)")
-        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self.editor,
             QCoreApplication.translate('Exporter', "Export source"),
             "",
             fileFilter,
             "",
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if fn:
             ext = QFileInfo(fn).suffix()
@@ -53,7 +53,7 @@
                 if ex:
                     fn += ex
             if QFileInfo(fn).exists():
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self.editor,
                     QCoreApplication.translate(
                         'Exporter', "Export source"),
@@ -61,7 +61,7 @@
                         'Exporter',
                         "<p>The file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fn),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return ""
             
--- a/eric7/QScintilla/Exporters/ExporterHTML.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/Exporters/ExporterHTML.py	Sat May 22 18:51:46 2021 +0200
@@ -19,8 +19,8 @@
 from PyQt6.QtWidgets import QInputDialog
 from PyQt6.Qsci import QsciScintilla
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .ExporterBase import ExporterBase
 
@@ -441,7 +441,7 @@
             else:
                 # light background as default
                 colorSchemeIndex = 0
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 html = self.__generateFromMarkdown(colorSchemeIndex == 1)
         elif (
             extension in Preferences.getEditor(
@@ -449,7 +449,7 @@
             self.editor.getLanguage().lower() == "restructuredtext"
         ):
             # export ReST to HTML
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 html = self.__generateFromReSTDocutils()
         else:
             tabSize = self.editor.getEditorConfig("TabWidth")
@@ -463,7 +463,7 @@
                 "HTML/FullPathAsTitle")
             tabs = Preferences.getEditorExporter("HTML/UseTabs")
             
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 generator = HTMLGenerator(self.editor)
                 html = generator.generate(
                     tabSize=tabSize,
@@ -475,12 +475,12 @@
                 )
         
         if html:
-            with E5OverrideCursor(), open(filename, "w", encoding="utf-8"
+            with EricOverrideCursor(), open(filename, "w", encoding="utf-8"
                                           ) as f:
                 try:
                     f.write(html)
                 except OSError as err:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.editor,
                         self.tr("Export source"),
                         self.tr(
@@ -488,7 +488,7 @@
                             """ <b>{0}</b>.</p><p>Reason: {1}</p>""")
                         .format(filename, str(err)))
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.editor,
                 self.tr("Export source"),
                 self.tr(
@@ -513,7 +513,7 @@
         try:
             import docutils.core    # __IGNORE_EXCEPTION__
         except ImportError:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.editor,
                 self.tr("Export source"),
                 self.tr(
@@ -548,7 +548,7 @@
         try:
             import markdown     # __IGNORE_EXCEPTION__
         except ImportError:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.editor,
                 self.tr("Export source"),
                 self.tr(
--- a/eric7/QScintilla/Exporters/ExporterODT.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/Exporters/ExporterODT.py	Sat May 22 18:51:46 2021 +0200
@@ -9,8 +9,8 @@
 
 from PyQt6.QtGui import QTextDocument, QTextDocumentWriter
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .ExporterBase import ExporterBase
 from .ExporterHTML import HTMLGenerator
@@ -46,7 +46,7 @@
         onlyStylesUsed = Preferences.getEditorExporter("ODT/OnlyStylesUsed")
         tabs = Preferences.getEditorExporter("ODT/UseTabs")
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             # generate HTML of the source
             generator = HTMLGenerator(self.editor)
             html = generator.generate(
@@ -65,7 +65,7 @@
             ok = writer.write(doc)
         
         if not ok:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self.editor,
                 self.tr("Export source"),
                 self.tr(
--- a/eric7/QScintilla/Exporters/ExporterPDF.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/Exporters/ExporterPDF.py	Sat May 22 18:51:46 2021 +0200
@@ -13,8 +13,8 @@
 from PyQt6.QtGui import QFontInfo
 from PyQt6.Qsci import QsciScintilla
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .ExporterBase import ExporterBase
 
@@ -556,7 +556,7 @@
             else:
                 self.pr.fontSize = PDF_FONTSIZE_DEFAULT
         
-        with E5OverrideCursor(), open(filename, "w", encoding="cp1250",
+        with EricOverrideCursor(), open(filename, "w", encoding="cp1250",
                                       errors="backslashreplace") as f:
             # save file in win ansi using cp1250
             try:
@@ -625,7 +625,7 @@
                 # write required stuff and close the PDF file
                 self.pr.endPDF()
             except OSError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.editor,
                     self.tr("Export source"),
                     self.tr(
--- a/eric7/QScintilla/Exporters/ExporterRTF.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/Exporters/ExporterRTF.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
 from PyQt6.QtGui import QFontInfo
 from PyQt6.Qsci import QsciScintilla
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .ExporterBase import ExporterBase
 
@@ -124,7 +124,7 @@
         if tabSize == 0:
             tabSize = 4
         
-        with E5OverrideCursor(), open(filename, "w", encoding="utf-8") as f:
+        with EricOverrideCursor(), open(filename, "w", encoding="utf-8") as f:
             try:
                 styles, fontsize = self.__prepareStyles(f)
                 
@@ -211,7 +211,7 @@
                 
                 f.write(self.RTF_BODYCLOSE)
             except OSError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.editor,
                     self.tr("Export source"),
                     self.tr(
--- a/eric7/QScintilla/Exporters/ExporterTEX.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/Exporters/ExporterTEX.py	Sat May 22 18:51:46 2021 +0200
@@ -14,8 +14,8 @@
 
 from PyQt6.Qsci import QsciScintilla
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .ExporterBase import ExporterBase
 
@@ -161,7 +161,7 @@
                 styleIsUsed[index] = True
         styleIsUsed[QsciScintilla.STYLE_DEFAULT] = True
         
-        with E5OverrideCursor(), open(filename, "w", encoding="utf-8") as f:
+        with EricOverrideCursor(), open(filename, "w", encoding="utf-8") as f:
             try:
                 f.write("\\documentclass[a4paper]{article}\n")
                 f.write("\\usepackage[a4paper,margin=1.5cm]{geometry}\n")
@@ -294,7 +294,7 @@
                 # close last empty style macros and document too
                 f.write("}\n} %end tiny\n\n\\end{document}\n")
             except OSError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.editor,
                     self.tr("Export source"),
                     self.tr(
--- a/eric7/QScintilla/MarkupProviders/ImageMarkupDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/MarkupProviders/ImageMarkupDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtGui import QImage, QImageReader
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_ImageMarkupDialog import Ui_ImageMarkupDialog
 
@@ -89,7 +89,7 @@
             inputFormats.remove(filters["png"])
             inputFormats.insert(0, filters["png"])
         self.imagePicker.setFilters(';;'.join(inputFormats))
-        self.imagePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.imagePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         
         self.sizeCheckBox.setChecked(True)
         self.aspectRatioCheckBox.setChecked(True)
--- a/eric7/QScintilla/MarkupProviders/ImageMarkupDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/MarkupProviders/ImageMarkupDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -27,7 +27,7 @@
       </widget>
      </item>
      <item row="0" column="1">
-      <widget class="E5PathPicker" name="imagePicker" native="true">
+      <widget class="EricPathPicker" name="imagePicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -152,9 +152,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/QScintilla/MiniEditor.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/MiniEditor.py	Sat May 22 18:51:46 2021 +0200
@@ -25,12 +25,12 @@
 from PyQt6.QtPrintSupport import QPrinter, QPrintDialog, QAbstractPrintDialog
 from PyQt6.Qsci import QsciScintilla
 
-from E5Gui.E5Action import E5Action, createActionGroup
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5ClickableLabel import E5ClickableLabel
-from E5Gui.E5ZoomWidget import E5ZoomWidget
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricAction import EricAction, createActionGroup
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricClickableLabel import EricClickableLabel
+from E5Gui.EricZoomWidget import EricZoomWidget
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .QsciScintillaCompat import QsciScintillaCompat
 
@@ -185,7 +185,7 @@
         self.endUndoAction()
 
 
-class MiniEditor(E5MainWindow):
+class MiniEditor(EricMainWindow):
     """
     Class implementing an editor for simple editing tasks.
     
@@ -363,7 +363,7 @@
         Private slot to open a file.
         """
         if self.__maybeSave():
-            fileName = E5FileDialog.getOpenFileName(self)
+            fileName = EricFileDialog.getOpenFileName(self)
             if fileName:
                 self.__loadFile(fileName)
         self.__checkActions()
@@ -385,7 +385,7 @@
         
         @return flag indicating success (boolean)
         """
-        fileName = E5FileDialog.getSaveFileName(self)
+        fileName = EricFileDialog.getSaveFileName(self)
         if not fileName:
             return False
         
@@ -399,7 +399,7 @@
         """
         Private slot to save a copy of the file with a new name.
         """
-        fileName = E5FileDialog.getSaveFileName(self)
+        fileName = EricFileDialog.getSaveFileName(self)
         if not fileName:
             return
         
@@ -409,7 +409,7 @@
         """
         Private slot to show a little About message.
         """
-        E5MessageBox.about(
+        EricMessageBox.about(
             self,
             self.tr("About eric Mini Editor"),
             self.tr(
@@ -422,7 +422,7 @@
         """
         Private slot to handle the About Qt dialog.
         """
-        E5MessageBox.aboutQt(self, "eric Mini Editor")
+        EricMessageBox.aboutQt(self, "eric Mini Editor")
     
     def __whatsThis(self):
         """
@@ -510,7 +510,7 @@
         """
         Private function to read a single keyboard shortcut from the settings.
         
-        @param act reference to the action object (E5Action)
+        @param act reference to the action object (EricAction)
         @param category category the action belongs to (string)
         """
         if act.objectName():
@@ -557,7 +557,7 @@
         """
         Private method to create the File actions.
         """
-        self.newAct = E5Action(
+        self.newAct = EricAction(
             self.tr('New'),
             UI.PixmapCache.getIcon("new"),
             self.tr('&New'),
@@ -571,7 +571,7 @@
         self.newAct.triggered.connect(self.__newFile)
         self.fileActions.append(self.newAct)
         
-        self.openAct = E5Action(
+        self.openAct = EricAction(
             self.tr('Open'),
             UI.PixmapCache.getIcon("open"),
             self.tr('&Open...'),
@@ -585,7 +585,7 @@
         self.openAct.triggered.connect(self.__open)
         self.fileActions.append(self.openAct)
         
-        self.saveAct = E5Action(
+        self.saveAct = EricAction(
             self.tr('Save'),
             UI.PixmapCache.getIcon("fileSave"),
             self.tr('&Save'),
@@ -599,7 +599,7 @@
         self.saveAct.triggered.connect(self.__save)
         self.fileActions.append(self.saveAct)
         
-        self.saveAsAct = E5Action(
+        self.saveAsAct = EricAction(
             self.tr('Save as'),
             UI.PixmapCache.getIcon("fileSaveAs"),
             self.tr('Save &as...'),
@@ -615,7 +615,7 @@
         self.saveAsAct.triggered.connect(self.__saveAs)
         self.fileActions.append(self.saveAsAct)
         
-        self.saveCopyAct = E5Action(
+        self.saveCopyAct = EricAction(
             self.tr('Save Copy'),
             UI.PixmapCache.getIcon("fileSaveCopy"),
             self.tr('Save &Copy...'),
@@ -630,7 +630,7 @@
         self.saveCopyAct.triggered.connect(self.__saveCopy)
         self.fileActions.append(self.saveCopyAct)
         
-        self.closeAct = E5Action(
+        self.closeAct = EricAction(
             self.tr('Close'),
             UI.PixmapCache.getIcon("close"),
             self.tr('&Close'),
@@ -644,7 +644,7 @@
         self.closeAct.triggered.connect(self.close)
         self.fileActions.append(self.closeAct)
         
-        self.printAct = E5Action(
+        self.printAct = EricAction(
             self.tr('Print'),
             UI.PixmapCache.getIcon("print"),
             self.tr('&Print'),
@@ -658,7 +658,7 @@
         self.printAct.triggered.connect(self.__printFile)
         self.fileActions.append(self.printAct)
         
-        self.printPreviewAct = E5Action(
+        self.printPreviewAct = EricAction(
             self.tr('Print Preview'),
             UI.PixmapCache.getIcon("printPreview"),
             QCoreApplication.translate('ViewManager', 'Print Preview'),
@@ -676,7 +676,7 @@
         """
         Private method to create the Edit actions.
         """
-        self.undoAct = E5Action(
+        self.undoAct = EricAction(
             self.tr('Undo'),
             UI.PixmapCache.getIcon("editUndo"),
             self.tr('&Undo'),
@@ -691,7 +691,7 @@
         self.undoAct.triggered.connect(self.__undo)
         self.editActions.append(self.undoAct)
         
-        self.redoAct = E5Action(
+        self.redoAct = EricAction(
             self.tr('Redo'),
             UI.PixmapCache.getIcon("editRedo"),
             self.tr('&Redo'),
@@ -705,7 +705,7 @@
         self.redoAct.triggered.connect(self.__redo)
         self.editActions.append(self.redoAct)
         
-        self.cutAct = E5Action(
+        self.cutAct = EricAction(
             self.tr('Cut'),
             UI.PixmapCache.getIcon("editCut"),
             self.tr('Cu&t'),
@@ -721,7 +721,7 @@
         self.cutAct.triggered.connect(self.__textEdit.cut)
         self.editActions.append(self.cutAct)
         
-        self.copyAct = E5Action(
+        self.copyAct = EricAction(
             self.tr('Copy'),
             UI.PixmapCache.getIcon("editCopy"),
             self.tr('&Copy'),
@@ -737,7 +737,7 @@
         self.copyAct.triggered.connect(self.__textEdit.copy)
         self.editActions.append(self.copyAct)
         
-        self.pasteAct = E5Action(
+        self.pasteAct = EricAction(
             self.tr('Paste'),
             UI.PixmapCache.getIcon("editPaste"),
             self.tr('&Paste'),
@@ -754,7 +754,7 @@
         self.pasteAct.triggered.connect(self.__textEdit.paste)
         self.editActions.append(self.pasteAct)
         
-        self.deleteAct = E5Action(
+        self.deleteAct = EricAction(
             self.tr('Clear'),
             UI.PixmapCache.getIcon("editDelete"),
             self.tr('Cl&ear'),
@@ -787,7 +787,7 @@
         
         self.editorActGrp = createActionGroup(self)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move left one character'),
             QCoreApplication.translate('ViewManager',
@@ -801,7 +801,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move right one character'),
             QCoreApplication.translate('ViewManager',
@@ -815,7 +815,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move up one line'),
             QCoreApplication.translate('ViewManager', 'Move up one line'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Up')), 0,
@@ -827,7 +827,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move down one line'),
             QCoreApplication.translate('ViewManager', 'Move down one line'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Down')), 0,
@@ -839,7 +839,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move left one word part'),
             QCoreApplication.translate('ViewManager',
@@ -853,7 +853,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move right one word part'),
             QCoreApplication.translate('ViewManager',
@@ -867,7 +867,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move left one word'),
             QCoreApplication.translate('ViewManager', 'Move left one word'),
             0, 0,
@@ -882,7 +882,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move right one word'),
             QCoreApplication.translate('ViewManager', 'Move right one word'),
             0, 0,
@@ -897,7 +897,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Move to first visible character in document line'),
@@ -913,7 +913,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Move to start of display line'),
@@ -932,7 +932,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Move to end of document line'),
@@ -951,7 +951,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Scroll view down one line'),
             QCoreApplication.translate('ViewManager',
@@ -963,7 +963,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Scroll view up one line'),
             QCoreApplication.translate('ViewManager',
@@ -974,7 +974,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move up one paragraph'),
             QCoreApplication.translate('ViewManager', 'Move up one paragraph'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Alt+Up')),
@@ -983,7 +983,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move down one paragraph'),
             QCoreApplication.translate('ViewManager',
@@ -995,7 +995,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move up one page'),
             QCoreApplication.translate('ViewManager', 'Move up one page'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'PgUp')), 0,
@@ -1004,7 +1004,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move down one page'),
             QCoreApplication.translate('ViewManager', 'Move down one page'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'PgDown')),
@@ -1016,7 +1016,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move to start of document'),
             QCoreApplication.translate('ViewManager',
@@ -1033,7 +1033,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move to end of document'),
             QCoreApplication.translate('ViewManager',
@@ -1050,7 +1050,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Indent one level'),
             QCoreApplication.translate('ViewManager', 'Indent one level'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Tab')), 0,
@@ -1059,7 +1059,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Unindent one level'),
             QCoreApplication.translate('ViewManager', 'Unindent one level'),
             QKeySequence(QCoreApplication.translate('ViewManager',
@@ -1069,7 +1069,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection left one character'),
             QCoreApplication.translate(
@@ -1085,7 +1085,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend selection right one character'),
@@ -1102,7 +1102,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend selection up one line'),
@@ -1119,7 +1119,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend selection down one line'),
@@ -1136,7 +1136,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend selection left one word part'),
@@ -1152,7 +1152,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend selection right one word part'),
@@ -1168,7 +1168,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection left one word'),
             QCoreApplication.translate(
@@ -1185,7 +1185,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection right one word'),
             QCoreApplication.translate(
@@ -1202,7 +1202,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend selection to first visible character in document'
@@ -1220,7 +1220,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection to end of document line'),
             QCoreApplication.translate(
@@ -1237,7 +1237,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend selection up one paragraph'),
@@ -1251,7 +1251,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection down one paragraph'),
             QCoreApplication.translate(
@@ -1264,7 +1264,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend selection up one page'),
@@ -1278,7 +1278,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend selection down one page'),
@@ -1295,7 +1295,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection to start of document'),
             QCoreApplication.translate(
@@ -1312,7 +1312,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection to end of document'),
             QCoreApplication.translate(
@@ -1329,7 +1329,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Delete previous character'),
             QCoreApplication.translate('ViewManager',
@@ -1347,7 +1347,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Delete previous character if not at start of line'),
@@ -1360,7 +1360,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Delete current character'),
             QCoreApplication.translate('ViewManager',
@@ -1374,7 +1374,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete word to left'),
             QCoreApplication.translate('ViewManager', 'Delete word to left'),
             QKeySequence(QCoreApplication.translate('ViewManager',
@@ -1384,7 +1384,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete word to right'),
             QCoreApplication.translate('ViewManager', 'Delete word to right'),
             QKeySequence(QCoreApplication.translate('ViewManager',
@@ -1394,7 +1394,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete line to left'),
             QCoreApplication.translate('ViewManager', 'Delete line to left'),
             QKeySequence(QCoreApplication.translate('ViewManager',
@@ -1404,7 +1404,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete line to right'),
             QCoreApplication.translate('ViewManager', 'Delete line to right'),
             0, 0,
@@ -1419,7 +1419,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Insert new line'),
             QCoreApplication.translate('ViewManager', 'Insert new line'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Return')),
@@ -1429,7 +1429,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete current line'),
             QCoreApplication.translate('ViewManager', 'Delete current line'),
             QKeySequence(QCoreApplication.translate('ViewManager',
@@ -1439,7 +1439,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Duplicate current line'),
             QCoreApplication.translate('ViewManager',
@@ -1450,7 +1450,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Swap current and previous lines'),
@@ -1463,7 +1463,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Reverse selected lines'),
             QCoreApplication.translate('ViewManager',
@@ -1475,7 +1475,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Cut current line'),
             QCoreApplication.translate('ViewManager', 'Cut current line'),
             QKeySequence(QCoreApplication.translate('ViewManager',
@@ -1485,7 +1485,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Copy current line'),
             QCoreApplication.translate('ViewManager', 'Copy current line'),
             QKeySequence(QCoreApplication.translate('ViewManager',
@@ -1495,7 +1495,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Toggle insert/overtype'),
             QCoreApplication.translate('ViewManager',
@@ -1506,7 +1506,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Convert selection to lower case'),
@@ -1520,7 +1520,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Convert selection to upper case'),
@@ -1534,7 +1534,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Move to end of display line'),
             QCoreApplication.translate(
@@ -1551,7 +1551,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend selection to end of display line'),
@@ -1567,7 +1567,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Formfeed'),
             QCoreApplication.translate('ViewManager', 'Formfeed'),
             0, 0,
@@ -1576,7 +1576,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Escape'),
             QCoreApplication.translate('ViewManager', 'Escape'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Esc')), 0,
@@ -1585,7 +1585,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection down one line'),
@@ -1602,7 +1602,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection up one line'),
@@ -1619,7 +1619,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection left one character'),
@@ -1636,7 +1636,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection right one character'),
@@ -1653,7 +1653,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection to first'
@@ -1672,7 +1672,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection to end of document line'),
@@ -1691,7 +1691,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection up one page'),
@@ -1705,7 +1705,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection down one page'),
@@ -1722,7 +1722,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Duplicate current selection'),
@@ -1737,7 +1737,7 @@
         self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_SCROLLTOSTART"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Scroll to start of document'),
                 QCoreApplication.translate(
@@ -1752,7 +1752,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_SCROLLTOEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Scroll to end of document'),
                 QCoreApplication.translate(
@@ -1767,7 +1767,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_VERTICALCENTRECARET"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Scroll vertically to center current line'),
                 QCoreApplication.translate(
@@ -1782,7 +1782,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_WORDRIGHTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Move to end of next word'),
                 QCoreApplication.translate(
@@ -1797,7 +1797,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_WORDRIGHTENDEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Extend selection to end of next word'),
                 QCoreApplication.translate(
@@ -1813,7 +1813,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_WORDLEFTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Move to end of previous word'),
                 QCoreApplication.translate(
@@ -1825,7 +1825,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_WORDLEFTENDEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Extend selection to end of previous word'),
                 QCoreApplication.translate(
@@ -1837,7 +1837,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_HOME"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Move to start of document line'),
                 QCoreApplication.translate(
@@ -1852,7 +1852,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_HOMEEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Extend selection to start of document line'),
@@ -1870,7 +1870,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_HOMERECTEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Extend rectangular selection to start of document line'),
@@ -1888,7 +1888,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_HOMEDISPLAYEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Extend selection to start of display line'),
@@ -1907,7 +1907,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_HOMEWRAP"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Move to start of display or document line'),
@@ -1921,7 +1921,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_HOMEWRAPEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Extend selection to start of display or document line'),
@@ -1936,7 +1936,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_VCHOMEWRAP"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Move to first visible character in display'
@@ -1953,7 +1953,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_VCHOMEWRAPEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Extend selection to first visible character in'
@@ -1970,7 +1970,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_LINEENDWRAP"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Move to end of display or document line'),
@@ -1984,7 +1984,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_LINEENDWRAPEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Extend selection to end of display or document line'),
@@ -1999,7 +1999,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_STUTTEREDPAGEUP"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Stuttered move up one page'),
                 QCoreApplication.translate(
@@ -2011,7 +2011,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_STUTTEREDPAGEUPEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Stuttered extend selection up one page'),
@@ -2026,7 +2026,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_STUTTEREDPAGEDOWN"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Stuttered move down one page'),
                 QCoreApplication.translate(
@@ -2038,7 +2038,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_STUTTEREDPAGEDOWNEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Stuttered extend selection down one page'),
@@ -2053,7 +2053,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_DELWORDRIGHTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Delete right to end of next word'),
@@ -2070,7 +2070,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_MOVESELECTEDLINESUP"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Move selected lines up one line'),
@@ -2084,7 +2084,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_MOVESELECTEDLINESDOWN"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Move selected lines down one line'),
@@ -2097,7 +2097,7 @@
             act.triggered.connect(self.esm.map)
             self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Duplicate current selection'),
@@ -2118,7 +2118,7 @@
         Private method defining the user interface actions for the search
             commands.
         """
-        self.searchAct = E5Action(
+        self.searchAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Search'),
             UI.PixmapCache.getIcon("find"),
             QCoreApplication.translate('ViewManager', '&Search...'),
@@ -2138,7 +2138,7 @@
         self.searchAct.triggered.connect(self.showSearchWidget)
         self.searchActions.append(self.searchAct)
         
-        self.searchNextAct = E5Action(
+        self.searchNextAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Search next'),
             UI.PixmapCache.getIcon("findNext"),
             QCoreApplication.translate('ViewManager', 'Search &next'),
@@ -2158,7 +2158,7 @@
         self.searchNextAct.triggered.connect(self.__searchNext)
         self.searchActions.append(self.searchNextAct)
         
-        self.searchPrevAct = E5Action(
+        self.searchPrevAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Search previous'),
             UI.PixmapCache.getIcon("findPrev"),
             QCoreApplication.translate('ViewManager', 'Search &previous'),
@@ -2178,7 +2178,7 @@
         self.searchPrevAct.triggered.connect(self.__searchPrev)
         self.searchActions.append(self.searchPrevAct)
         
-        self.searchClearMarkersAct = E5Action(
+        self.searchClearMarkersAct = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Clear search markers'),
             UI.PixmapCache.getIcon("findClear"),
@@ -2198,7 +2198,7 @@
             self.__searchClearMarkers)
         self.searchActions.append(self.searchClearMarkersAct)
         
-        self.replaceAct = E5Action(
+        self.replaceAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Replace'),
             QCoreApplication.translate('ViewManager', '&Replace...'),
             QKeySequence(QCoreApplication.translate(
@@ -2217,7 +2217,7 @@
         self.replaceAct.triggered.connect(self.showReplaceWidget)
         self.searchActions.append(self.replaceAct)
         
-        self.replaceAndSearchAct = E5Action(
+        self.replaceAndSearchAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Replace and Search'),
             UI.PixmapCache.getIcon("editReplaceSearch"),
@@ -2241,7 +2241,7 @@
             self.__replaceWidget.replaceSearch)
         self.searchActions.append(self.replaceAndSearchAct)
         
-        self.replaceSelectionAct = E5Action(
+        self.replaceSelectionAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Replace Occurrence'),
             UI.PixmapCache.getIcon("editReplace"),
@@ -2263,7 +2263,7 @@
             self.__replaceWidget.replace)
         self.searchActions.append(self.replaceSelectionAct)
         
-        self.replaceAllAct = E5Action(
+        self.replaceAllAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Replace All'),
             UI.PixmapCache.getIcon("editReplaceAll"),
@@ -2289,7 +2289,7 @@
         """
         Private method to create the View actions.
         """
-        self.zoomInAct = E5Action(
+        self.zoomInAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Zoom in'),
             UI.PixmapCache.getIcon("zoomIn"),
             QCoreApplication.translate('ViewManager', 'Zoom &in'),
@@ -2308,7 +2308,7 @@
         self.zoomInAct.triggered.connect(self.__zoomIn)
         self.viewActions.append(self.zoomInAct)
         
-        self.zoomOutAct = E5Action(
+        self.zoomOutAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Zoom out'),
             UI.PixmapCache.getIcon("zoomOut"),
             QCoreApplication.translate('ViewManager', 'Zoom &out'),
@@ -2327,7 +2327,7 @@
         self.zoomOutAct.triggered.connect(self.__zoomOut)
         self.viewActions.append(self.zoomOutAct)
         
-        self.zoomResetAct = E5Action(
+        self.zoomResetAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Zoom reset'),
             UI.PixmapCache.getIcon("zoomReset"),
             QCoreApplication.translate('ViewManager', 'Zoom &reset'),
@@ -2346,7 +2346,7 @@
         self.zoomResetAct.triggered.connect(self.__zoomReset)
         self.viewActions.append(self.zoomResetAct)
         
-        self.zoomToAct = E5Action(
+        self.zoomToAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Zoom'),
             UI.PixmapCache.getIcon("zoomTo"),
             QCoreApplication.translate('ViewManager', '&Zoom'),
@@ -2369,7 +2369,7 @@
         """
         Private method to create the Help actions.
         """
-        self.aboutAct = E5Action(
+        self.aboutAct = EricAction(
             self.tr('About'),
             self.tr('&About'),
             0, 0, self, 'about_eric')
@@ -2381,7 +2381,7 @@
         self.aboutAct.triggered.connect(self.__about)
         self.helpActions.append(self.aboutAct)
         
-        self.aboutQtAct = E5Action(
+        self.aboutQtAct = EricAction(
             self.tr('About Qt'),
             self.tr('About &Qt'),
             0, 0, self, 'about_qt')
@@ -2394,7 +2394,7 @@
         self.aboutQtAct.triggered.connect(self.__aboutQt)
         self.helpActions.append(self.aboutQtAct)
         
-        self.whatsThisAct = E5Action(
+        self.whatsThisAct = EricAction(
             self.tr('What\'s This?'),
             UI.PixmapCache.getIcon("whatsThis"),
             self.tr('&What\'s This?'),
@@ -2515,7 +2515,7 @@
         self.__statusBar = self.statusBar()
         self.__statusBar.setSizeGripEnabled(True)
 
-        self.sbLanguage = E5ClickableLabel(self.__statusBar)
+        self.sbLanguage = EricClickableLabel(self.__statusBar)
         self.__statusBar.addPermanentWidget(self.sbLanguage)
         self.sbLanguage.setWhatsThis(self.tr(
             """<p>This part of the status bar displays the"""
@@ -2544,7 +2544,7 @@
             """ of the editor.</p>"""
         ))
         
-        self.sbZoom = E5ZoomWidget(
+        self.sbZoom = EricZoomWidget(
             UI.PixmapCache.getPixmap("zoomOut"),
             UI.PixmapCache.getPixmap("zoomIn"),
             UI.PixmapCache.getPixmap("zoomReset"),
@@ -2583,7 +2583,7 @@
         @return flag indicating, if it is ok to continue (boolean)
         """
         if self.__textEdit.isModified():
-            ret = E5MessageBox.okToClearData(
+            ret = EricMessageBox.okToClearData(
                 self,
                 self.tr("eric Mini Editor"),
                 self.tr("The document has unsaved changes."),
@@ -2601,7 +2601,7 @@
         self.__loadEditorConfig(fileName=fileName)
         
         try:
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 encoding = self.__getEditorConfig("DefaultEncoding",
                                                   nodefault=True)
                 if encoding:
@@ -2610,14 +2610,14 @@
                 else:
                     txt, self.encoding = Utilities.readEncodedFile(fileName)
         except (UnicodeDecodeError, OSError) as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self, self.tr('Open File'),
                 self.tr('<p>The file <b>{0}</b> could not be opened.</p>'
                         '<p>Reason: {1}</p>')
                 .format(fileName, str(why)))
             return
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             self.__textEdit.setText(txt)
             
             if filetype is None:
@@ -2710,14 +2710,14 @@
         
         # now write text to the file
         try:
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 editorConfigEncoding = self.__getEditorConfig(
                     "DefaultEncoding", nodefault=True, config=config)
                 self.encoding = Utilities.writeEncodedFile(
                     fileName, txt, self.encoding,
                     forcedEncoding=editorConfigEncoding)
         except (OSError, Utilities.CodingError, UnicodeError) as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self, self.tr('Save File'),
                 self.tr('<p>The file <b>{0}</b> could not be saved.<br/>'
                         'Reason: {1}</p>')
@@ -3731,7 +3731,7 @@
             try:
                 editorConfig = editorconfig.get_properties(fileName)
             except editorconfig.EditorConfigError:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("EditorConfig Properties"),
                     self.tr("""<p>The EditorConfig properties for file"""
--- a/eric7/QScintilla/SearchReplaceWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/SearchReplaceWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -18,8 +18,8 @@
 
 from .Editor import Editor
 
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
 
 import Preferences
 
@@ -164,7 +164,7 @@
             self.__updateQuickSearchMarkers)
         
         # define actions
-        self.findNextAct = E5Action(
+        self.findNextAct = EricAction(
             self.tr('Find Next'),
             self.tr('Find Next'),
             0, 0, self, 'search_widget_find_next')
@@ -172,7 +172,7 @@
         self.findNextAct.setShortcutContext(
             Qt.ShortcutContext.WidgetWithChildrenShortcut)
         
-        self.findPrevAct = E5Action(
+        self.findPrevAct = EricAction(
             self.tr('Find Prev'),
             self.tr('Find Prev'),
             0, 0, self, 'search_widget_find_prev')
@@ -181,7 +181,7 @@
             Qt.ShortcutContext.WidgetWithChildrenShortcut)
         
         if replace:
-            self.replaceAndSearchAct = E5Action(
+            self.replaceAndSearchAct = EricAction(
                 self.tr("Replace and Search"),
                 self.tr("Replace and Search"),
                 0, 0, self, "replace_widget_replace_search")
@@ -191,7 +191,7 @@
             self.replaceAndSearchAct.setShortcutContext(
                 Qt.ShortcutContext.WidgetWithChildrenShortcut)
             
-            self.replaceSelectionAct = E5Action(
+            self.replaceSelectionAct = EricAction(
                 self.tr("Replace Occurrence"),
                 self.tr("Replace Occurrence"),
                 0, 0, self, "replace_widget_replace_occurrence")
@@ -201,7 +201,7 @@
             self.replaceSelectionAct.setShortcutContext(
                 Qt.ShortcutContext.WidgetWithChildrenShortcut)
             
-            self.replaceAllAct = E5Action(
+            self.replaceAllAct = EricAction(
                 self.tr("Replace All"),
                 self.tr("Replace All"),
                 0, 0, self, "replace_widget_replace_all")
@@ -525,7 +525,7 @@
                 self.__setReplaceSelectionEnabled(True)
                 self.__setReplaceAndSearchEnabled(True)
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self, self.windowTitle(),
                 self.tr("'{0}' was not found.").format(txt))
 
@@ -563,7 +563,7 @@
                 self.__setReplaceSelectionEnabled(True)
                 self.__setReplaceAndSearchEnabled(True)
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self, self.windowTitle(),
                 self.tr("'{0}' was not found.").format(txt))
     
@@ -980,7 +980,7 @@
             if not ok:
                 self.__setReplaceSelectionEnabled(False)
                 self.__setReplaceAndSearchEnabled(False)
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self, self.windowTitle(),
                     self.tr("'{0}' was not found.").format(ftxt))
         else:
@@ -1126,12 +1126,12 @@
         self.__setReplaceAndSearchEnabled(False)
         
         if found:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self, self.windowTitle(),
                 self.tr("Replaced {0} occurrences.")
                 .format(replacements))
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self, self.windowTitle(),
                 self.tr("Nothing replaced because '{0}' was not found.")
                 .format(ftxt))
--- a/eric7/QScintilla/Shell.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/Shell.py	Sat May 22 18:51:46 2021 +0200
@@ -20,8 +20,8 @@
 )
 from PyQt6.Qsci import QsciScintilla
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from .QsciScintillaCompat import QsciScintillaCompat
 
@@ -391,7 +391,7 @@
         Private slot to prepare the start submenu.
         """
         self.lmenu.clear()
-        venvManager = e5App().getObject("VirtualEnvManager")
+        venvManager = ericApp().getObject("VirtualEnvManager")
         for venvName in sorted(venvManager.getVirtualenvNames()):
             self.lmenu.addAction(venvName)
         if self.__project.isOpen():
@@ -1869,7 +1869,7 @@
                         cmd = ''
                 elif cmd in ['%envs', '%environments']:
                     venvs = (
-                        e5App().getObject("VirtualEnvManager")
+                        ericApp().getObject("VirtualEnvManager")
                         .getVirtualenvNames()
                     )
                     s = (
@@ -2196,7 +2196,7 @@
                     if not QFileInfo(fname).isDir():
                         self.vm.openSourceFile(fname)
                     else:
-                        E5MessageBox.information(
+                        EricMessageBox.information(
                             self,
                             self.tr("Drop Error"),
                             self.tr("""<p><b>{0}</b> is not a file.</p>""")
@@ -2284,7 +2284,7 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences("shellPage")
+        ericApp().getObject("UserInterface").showPreferences("shellPage")
     
     def __find(self):
         """
--- a/eric7/QScintilla/ShellWindow.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/ShellWindow.py	Sat May 22 18:51:46 2021 +0200
@@ -19,11 +19,11 @@
 )
 from PyQt6.Qsci import QsciScintilla
 
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5Action import E5Action, createActionGroup
-from E5Gui.E5Application import e5App
-from E5Gui.E5ZoomWidget import E5ZoomWidget
-from E5Gui import E5MessageBox
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricAction import EricAction, createActionGroup
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricZoomWidget import EricZoomWidget
+from E5Gui import EricMessageBox
 
 import UI.Config
 import UI.PixmapCache
@@ -41,7 +41,7 @@
 from eric7config import getConfig
 
 
-class ShellWindow(E5MainWindow):
+class ShellWindow(EricMainWindow):
     """
     Class implementing a stand alone shell window.
     """
@@ -108,7 +108,7 @@
         
         # Generate the virtual environment manager and register it
         self.virtualenvManager = VirtualenvManager(self)
-        e5App().registerObject("VirtualEnvManager", self.virtualenvManager)
+        ericApp().registerObject("VirtualEnvManager", self.virtualenvManager)
         
         self.__shell.virtualEnvironmentChanged.connect(
             self.__virtualEnvironmentChanged)
@@ -177,7 +177,7 @@
         Private function to read a single keyboard shortcut from the settings.
         
         @param act reference to the action object
-        @type E5Action
+        @type EricAction
         @param category category the action belongs to
         @type str
         """
@@ -227,7 +227,7 @@
         Private method defining the user interface actions for the file
         commands.
         """
-        self.exitAct = E5Action(
+        self.exitAct = EricAction(
             self.tr('Quit'),
             UI.PixmapCache.getIcon("exit"),
             self.tr('&Quit'),
@@ -242,7 +242,7 @@
         self.exitAct.setMenuRole(QAction.MenuRole.QuitRole)
         self.fileActions.append(self.exitAct)
 
-        self.newWindowAct = E5Action(
+        self.newWindowAct = EricAction(
             self.tr('New Window'),
             UI.PixmapCache.getIcon("newWindow"),
             self.tr('New &Window'),
@@ -257,7 +257,7 @@
         self.newWindowAct.triggered.connect(self.__newWindow)
         self.fileActions.append(self.newWindowAct)
 
-        self.restartAct = E5Action(
+        self.restartAct = EricAction(
             self.tr('Restart'),
             UI.PixmapCache.getIcon("restart"),
             self.tr('Restart'),
@@ -272,7 +272,7 @@
         self.restartAct.triggered.connect(self.__shell.doRestart)
         self.fileActions.append(self.restartAct)
 
-        self.clearRestartAct = E5Action(
+        self.clearRestartAct = EricAction(
             self.tr('Restart and Clear'),
             UI.PixmapCache.getIcon("restartDelete"),
             self.tr('Restart and Clear'),
@@ -295,7 +295,7 @@
         self.editActGrp = createActionGroup(self)
         self.copyActGrp = createActionGroup(self.editActGrp)
         
-        self.cutAct = E5Action(
+        self.cutAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Cut'),
             UI.PixmapCache.getIcon("editCut"),
             QCoreApplication.translate('ViewManager', 'Cu&t'),
@@ -313,7 +313,7 @@
         self.cutAct.triggered.connect(self.__shell.cut)
         self.editActions.append(self.cutAct)
         
-        self.copyAct = E5Action(
+        self.copyAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Copy'),
             UI.PixmapCache.getIcon("editCopy"),
             QCoreApplication.translate('ViewManager', '&Copy'),
@@ -331,7 +331,7 @@
         self.copyAct.triggered.connect(self.__shell.copy)
         self.editActions.append(self.copyAct)
         
-        self.pasteAct = E5Action(
+        self.pasteAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Paste'),
             UI.PixmapCache.getIcon("editPaste"),
             QCoreApplication.translate('ViewManager', '&Paste'),
@@ -349,7 +349,7 @@
         self.pasteAct.triggered.connect(self.__shell.paste)
         self.editActions.append(self.pasteAct)
         
-        self.clearAct = E5Action(
+        self.clearAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Clear'),
             UI.PixmapCache.getIcon("editDelete"),
             QCoreApplication.translate('ViewManager', 'Clear'),
@@ -384,7 +384,7 @@
         
         self.editorActGrp = createActionGroup(self)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete current line'),
             QCoreApplication.translate('ViewManager', 'Delete current line'),
             QKeySequence(QCoreApplication.translate(
@@ -395,7 +395,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Indent one level'),
             QCoreApplication.translate('ViewManager', 'Indent one level'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Tab')), 0,
@@ -404,7 +404,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Insert new line'),
             QCoreApplication.translate('ViewManager', 'Insert new line'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Return')),
@@ -414,7 +414,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Delete previous character'),
             QCoreApplication.translate('ViewManager',
@@ -432,7 +432,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Delete current character'),
             QCoreApplication.translate('ViewManager',
@@ -446,7 +446,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete word to left'),
             QCoreApplication.translate('ViewManager', 'Delete word to left'),
             QKeySequence(QCoreApplication.translate(
@@ -457,7 +457,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete word to right'),
             QCoreApplication.translate('ViewManager', 'Delete word to right'),
             QKeySequence(QCoreApplication.translate('ViewManager',
@@ -467,7 +467,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete line to left'),
             QCoreApplication.translate('ViewManager', 'Delete line to left'),
             QKeySequence(QCoreApplication.translate(
@@ -478,7 +478,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete line to right'),
             QCoreApplication.translate('ViewManager', 'Delete line to right'),
             0, 0,
@@ -493,7 +493,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move left one character'),
             QCoreApplication.translate('ViewManager',
@@ -507,7 +507,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move right one character'),
             QCoreApplication.translate('ViewManager',
@@ -521,7 +521,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move left one word'),
             QCoreApplication.translate('ViewManager', 'Move left one word'),
             0, 0,
@@ -536,7 +536,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move right one word'),
             QCoreApplication.translate('ViewManager', 'Move right one word'),
             0, 0,
@@ -548,7 +548,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Move to first visible character in document line'),
@@ -564,7 +564,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Move to end of document line'),
             QCoreApplication.translate(
@@ -581,7 +581,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move up one line'),
             QCoreApplication.translate('ViewManager', 'Move up one line'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Up')), 0,
@@ -593,7 +593,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move down one line'),
             QCoreApplication.translate('ViewManager', 'Move down one line'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Down')), 0,
@@ -605,7 +605,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             self.tr('Move forward one history entry'),
             self.tr('Move forward one history entry'),
             QKeySequence(QCoreApplication.translate('ViewManager',
@@ -615,7 +615,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             self.tr('Move back one history entry'),
             self.tr('Move back one history entry'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Ctrl+Up')),
@@ -624,7 +624,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move up one page'),
             QCoreApplication.translate('ViewManager', 'Move up one page'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'PgUp')), 0,
@@ -633,7 +633,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move down one page'),
             QCoreApplication.translate('ViewManager', 'Move down one page'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'PgDown')),
@@ -645,7 +645,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Escape'),
             QCoreApplication.translate('ViewManager', 'Escape'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Esc')), 0,
@@ -654,7 +654,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection left one character'),
             QCoreApplication.translate(
@@ -669,7 +669,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection right one character'),
             QCoreApplication.translate(
@@ -684,7 +684,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection left one word'),
             QCoreApplication.translate(
@@ -701,7 +701,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection right one word'),
             QCoreApplication.translate(
@@ -718,7 +718,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend selection to first visible character in document'
@@ -736,7 +736,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection to end of document line'),
             QCoreApplication.translate(
@@ -760,7 +760,7 @@
         """
         self.searchActGrp = createActionGroup(self)
         
-        self.searchAct = E5Action(
+        self.searchAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Search'),
             UI.PixmapCache.getIcon("find"),
             QCoreApplication.translate('ViewManager', '&Search...'),
@@ -780,7 +780,7 @@
         self.searchAct.triggered.connect(self.__showFind)
         self.searchActions.append(self.searchAct)
         
-        self.searchNextAct = E5Action(
+        self.searchNextAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Search next'),
             UI.PixmapCache.getIcon("findNext"),
@@ -802,7 +802,7 @@
             self.__searchWidget.on_findNextButton_clicked)
         self.searchActions.append(self.searchNextAct)
         
-        self.searchPrevAct = E5Action(
+        self.searchPrevAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Search previous'),
             UI.PixmapCache.getIcon("findPrev"),
             QCoreApplication.translate('ViewManager', 'Search &previous'),
@@ -830,7 +830,7 @@
         """
         self.viewActGrp = createActionGroup(self)
         
-        self.zoomInAct = E5Action(
+        self.zoomInAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Zoom in'),
             UI.PixmapCache.getIcon("zoomIn"),
             QCoreApplication.translate('ViewManager', 'Zoom &in'),
@@ -849,7 +849,7 @@
         self.zoomInAct.triggered.connect(self.__zoomIn)
         self.viewActions.append(self.zoomInAct)
         
-        self.zoomOutAct = E5Action(
+        self.zoomOutAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Zoom out'),
             UI.PixmapCache.getIcon("zoomOut"),
             QCoreApplication.translate('ViewManager', 'Zoom &out'),
@@ -868,7 +868,7 @@
         self.zoomOutAct.triggered.connect(self.__zoomOut)
         self.viewActions.append(self.zoomOutAct)
         
-        self.zoomResetAct = E5Action(
+        self.zoomResetAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Zoom reset'),
             UI.PixmapCache.getIcon("zoomReset"),
             QCoreApplication.translate('ViewManager', 'Zoom &reset'),
@@ -887,7 +887,7 @@
         self.zoomResetAct.triggered.connect(self.__zoomReset)
         self.viewActions.append(self.zoomResetAct)
         
-        self.zoomToAct = E5Action(
+        self.zoomToAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Zoom'),
             UI.PixmapCache.getIcon("zoomTo"),
             QCoreApplication.translate('ViewManager', '&Zoom'),
@@ -911,7 +911,7 @@
         Private method defining the user interface actions for the history
         commands.
         """
-        self.showHistoryAct = E5Action(
+        self.showHistoryAct = EricAction(
             self.tr('Show History'),
             UI.PixmapCache.getIcon("history"),
             self.tr('&Show History...'),
@@ -921,7 +921,7 @@
             "Show the shell history in a dialog"))
         self.showHistoryAct.triggered.connect(self.__shell.showHistory)
         
-        self.clearHistoryAct = E5Action(
+        self.clearHistoryAct = EricAction(
             self.tr('Clear History'),
             UI.PixmapCache.getIcon("historyClear"),
             self.tr('&Clear History...'),
@@ -931,7 +931,7 @@
             "Clear the shell history"))
         self.clearHistoryAct.triggered.connect(self.__shell.clearHistory)
         
-        self.selectHistoryAct = E5Action(
+        self.selectHistoryAct = EricAction(
             self.tr('Select History Entry'),
             self.tr('Select History &Entry'),
             0, 0,
@@ -944,7 +944,7 @@
         """
         Private method to create the Help actions.
         """
-        self.aboutAct = E5Action(
+        self.aboutAct = EricAction(
             self.tr('About'),
             self.tr('&About'),
             0, 0, self, 'about_eric')
@@ -956,7 +956,7 @@
         self.aboutAct.triggered.connect(self.__about)
         self.helpActions.append(self.aboutAct)
         
-        self.aboutQtAct = E5Action(
+        self.aboutQtAct = EricAction(
             self.tr('About Qt'),
             self.tr('About &Qt'),
             0, 0, self, 'about_qt')
@@ -969,7 +969,7 @@
         self.aboutQtAct.triggered.connect(self.__aboutQt)
         self.helpActions.append(self.aboutQtAct)
         
-        self.whatsThisAct = E5Action(
+        self.whatsThisAct = EricAction(
             self.tr('What\'s This?'),
             UI.PixmapCache.getIcon("whatsThis"),
             self.tr('&What\'s This?'),
@@ -1035,7 +1035,7 @@
         """
         Public method to quit the application.
         """
-        e5App().closeAllWindows()
+        ericApp().closeAllWindows()
     
     def __newWindow(self):
         """
@@ -1120,7 +1120,7 @@
         """
         Private slot to show a little About message.
         """
-        E5MessageBox.about(
+        EricMessageBox.about(
             self,
             self.tr("About eric Shell Window"),
             self.tr(
@@ -1132,7 +1132,7 @@
         """
         Private slot to handle the About Qt dialog.
         """
-        E5MessageBox.aboutQt(self, "eric Shell Window")
+        EricMessageBox.aboutQt(self, "eric Shell Window")
     
     def __whatsThis(self):
         """
@@ -1271,7 +1271,7 @@
         self.__statusBar = self.statusBar()
         self.__statusBar.setSizeGripEnabled(True)
 
-        self.__sbZoom = E5ZoomWidget(
+        self.__sbZoom = EricZoomWidget(
             UI.PixmapCache.getPixmap("zoomOut"),
             UI.PixmapCache.getPixmap("zoomIn"),
             UI.PixmapCache.getPixmap("zoomReset"),
--- a/eric7/QScintilla/SpellingDictionaryEditDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/QScintilla/SpellingDictionaryEditDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -138,7 +138,7 @@
       </spacer>
      </item>
      <item row="0" column="0" rowspan="5">
-      <widget class="E5ListView" name="wordList">
+      <widget class="EricListView" name="wordList">
        <property name="alternatingRowColors">
         <bool>true</bool>
        </property>
@@ -163,9 +163,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5ListView</class>
+   <class>EricListView</class>
    <extends>QListView</extends>
-   <header>E5Gui/E5ListView.h</header>
+   <header>E5Gui/EricListView.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/Sessions/SessionFile.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Sessions/SessionFile.py	Sat May 22 18:51:46 2021 +0200
@@ -12,9 +12,9 @@
 
 from PyQt6.QtCore import Qt, QObject
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverridenCursor
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverridenCursor
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 
@@ -46,12 +46,12 @@
         @rtype bool
         """
         # get references to objects we need
-        project = e5App().getObject("Project")
-        projectBrowser = e5App().getObject("ProjectBrowser")
-        multiProject = e5App().getObject("MultiProject")
-        vm = e5App().getObject("ViewManager")
-        dbg = e5App().getObject("DebugUI")
-        dbs = e5App().getObject("DebugServer")
+        project = ericApp().getObject("Project")
+        projectBrowser = ericApp().getObject("ProjectBrowser")
+        multiProject = ericApp().getObject("MultiProject")
+        vm = ericApp().getObject("ViewManager")
+        dbg = ericApp().getObject("DebugUI")
+        dbs = ericApp().getObject("DebugServer")
         
         # prepare the session data dictionary
         # step 0: header
@@ -227,8 +227,8 @@
             with open(filename, "w") as f:
                 f.write(jsonString)
         except (TypeError, OSError) as err:
-            with E5OverridenCursor():
-                E5MessageBox.critical(
+            with EricOverridenCursor():
+                EricMessageBox.critical(
                     None,
                     self.tr("Save Session"),
                     self.tr(
@@ -254,7 +254,7 @@
                 jsonString = f.read()
             sessionDict = json.loads(jsonString)
         except (OSError, json.JSONDecodeError) as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Read Session"),
                 self.tr(
@@ -265,12 +265,12 @@
             return False
         
         # get references to objects we need
-        project = e5App().getObject("Project")
-        projectBrowser = e5App().getObject("ProjectBrowser")
-        multiProject = e5App().getObject("MultiProject")
-        vm = e5App().getObject("ViewManager")
-        dbg = e5App().getObject("DebugUI")
-        dbs = e5App().getObject("DebugServer")
+        project = ericApp().getObject("Project")
+        projectBrowser = ericApp().getObject("ProjectBrowser")
+        multiProject = ericApp().getObject("MultiProject")
+        vm = ericApp().getObject("ViewManager")
+        dbg = ericApp().getObject("DebugUI")
+        dbs = ericApp().getObject("DebugServer")
         
         # step 1: multi project and project
         # =================================
--- a/eric7/Snapshot/SnapWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Snapshot/SnapWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -22,7 +22,7 @@
 from PyQt6.QtGui import QImageWriter, QPixmap, QDrag, QKeySequence, QShortcut
 from PyQt6.QtWidgets import QWidget, QApplication
 
-from E5Gui import E5FileDialog, E5MessageBox
+from E5Gui import EricFileDialog, EricMessageBox
 
 from .Ui_SnapWidget import Ui_SnapWidget
 
@@ -200,13 +200,13 @@
             while os.path.exists(self.__filename):
                 self.__autoIncFilename()
             
-            fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+            fileName, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
                 self,
                 self.tr("Save Snapshot"),
                 self.__filename,
                 self.__outputFilter,
                 self.__defaultFilter,
-                E5FileDialog.DontConfirmOverwrite)
+                EricFileDialog.DontConfirmOverwrite)
             if not fileName:
                 return
             
@@ -230,18 +230,18 @@
         @return flag indicating success (boolean)
         """
         if QFileInfo(fileName).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save Snapshot"),
                 self.tr("<p>The file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fileName),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return False
         
         file = QFile(fileName)
         if not file.open(QFile.WriteOnly):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self, self.tr("Save Snapshot"),
                 self.tr("Cannot write file '{0}:\n{1}.")
                 .format(fileName, file.errorString()))
@@ -251,7 +251,7 @@
         file.close()
         
         if not ok:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self, self.tr("Save Snapshot"),
                 self.tr("Cannot write file '{0}:\n{1}.")
                 .format(fileName, file.errorString()))
@@ -388,17 +388,17 @@
         @param evt close event (QCloseEvent)
         """
         if self.__modified:
-            res = E5MessageBox.question(
+            res = EricMessageBox.question(
                 self,
                 self.tr("eric Snapshot"),
                 self.tr(
                     """The application contains an unsaved snapshot."""),
-                E5MessageBox.Abort | E5MessageBox.Discard | E5MessageBox.Save
+                EricMessageBox.Abort | EricMessageBox.Discard | EricMessageBox.Save
             )
-            if res == E5MessageBox.Abort:
+            if res == EricMessageBox.Abort:
                 evt.ignore()
                 return
-            elif res == E5MessageBox.Save:
+            elif res == EricMessageBox.Save:
                 self.on_saveButton_clicked()
         
         Preferences.Prefs.settings.setValue(
--- a/eric7/Snapshot/SnapshotWaylandGrabber.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Snapshot/SnapshotWaylandGrabber.py	Sat May 22 18:51:46 2021 +0200
@@ -21,7 +21,7 @@
 except ImportError:
     DBusAvailable = False
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .SnapshotModes import SnapshotModes
 
@@ -327,7 +327,7 @@
             if len(reply.arguments()) == argumentsCount:
                 return True
             
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Screenshot Error"),
                 self.tr("<p>Received an unexpected number of reply arguments."
@@ -337,7 +337,7 @@
                 ))
         
         elif reply.type() == QDBusMessage.MessageType.ErrorMessage:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Screenshot Error"),
                 self.tr("<p>Received error <b>{0}</b> from DBus while"
@@ -347,13 +347,13 @@
                 ))
         
         elif reply.type() == QDBusMessage.MessageType.InvalidMessage:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Screenshot Error"),
                 self.tr("Received an invalid reply."))
         
         else:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Screenshot Error"),
                 self.tr("Received an unexpected reply."))
--- a/eric7/SqlBrowser/SqlBrowser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/SqlBrowser/SqlBrowser.py	Sat May 22 18:51:46 2021 +0200
@@ -11,10 +11,10 @@
 from PyQt6.QtGui import QKeySequence
 from PyQt6.QtSql import QSqlError, QSqlDatabase
 
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5Application import e5App
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricApplication import ericApp
 
 import UI.PixmapCache
 import UI.Config
@@ -22,7 +22,7 @@
 import Preferences
 
 
-class SqlBrowser(E5MainWindow):
+class SqlBrowser(EricMainWindow):
     """
     Class implementing the SQL Browser main window.
     """
@@ -83,7 +83,7 @@
         loop is up.
         """
         for warning in self.__warnings:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("SQL Browser startup problem"),
                 warning)
@@ -98,7 +98,7 @@
         # list of all actions
         self.__actions = []
         
-        self.addConnectionAct = E5Action(
+        self.addConnectionAct = EricAction(
             self.tr('Add Connection'),
             UI.PixmapCache.getIcon("databaseConnection"),
             self.tr('Add &Connection...'),
@@ -114,7 +114,7 @@
             self.__browser.addConnectionByDialog)
         self.__actions.append(self.addConnectionAct)
         
-        self.exitAct = E5Action(
+        self.exitAct = EricAction(
             self.tr('Quit'),
             UI.PixmapCache.getIcon("exit"),
             self.tr('&Quit'),
@@ -125,9 +125,9 @@
             """<b>Quit</b>"""
             """<p>Quit the SQL browser.</p>"""
         ))
-        self.exitAct.triggered.connect(e5App().closeAllWindows)
+        self.exitAct.triggered.connect(ericApp().closeAllWindows)
         
-        self.aboutAct = E5Action(
+        self.aboutAct = EricAction(
             self.tr('About'),
             self.tr('&About'),
             0, 0, self, 'sql_help_about')
@@ -140,7 +140,7 @@
         self.aboutAct.triggered.connect(self.__about)
         self.__actions.append(self.aboutAct)
         
-        self.aboutQtAct = E5Action(
+        self.aboutQtAct = EricAction(
             self.tr('About Qt'),
             self.tr('About &Qt'),
             0, 0, self, 'sql_help_about_qt')
@@ -187,7 +187,7 @@
         """
         Private slot to show the about information.
         """
-        E5MessageBox.about(
+        EricMessageBox.about(
             self,
             self.tr("SQL Browser"),
             self.tr(
@@ -202,4 +202,4 @@
         """
         Private slot to show info about Qt.
         """
-        E5MessageBox.aboutQt(self, self.tr("SQL Browser"))
+        EricMessageBox.aboutQt(self, self.tr("SQL Browser"))
--- a/eric7/SqlBrowser/SqlBrowserWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/SqlBrowser/SqlBrowserWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
     QSqlDatabase, QSqlError, QSqlTableModel, QSqlQueryModel, QSqlQuery
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_SqlBrowserWidget import Ui_SqlBrowserWidget
 
@@ -42,7 +42,7 @@
         self.table.addAction(self.deleteRowAction)
         
         if len(QSqlDatabase.drivers()) == 0:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("No database drivers found"),
                 self.tr(
@@ -160,7 +160,7 @@
                 driver, dbName, user, password, host, port)
             
             if err.type() != QSqlError.ErrorType.NoError:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Unable to open database"),
                     self.tr(
--- a/eric7/SqlBrowser/SqlConnectionDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/SqlBrowser/SqlConnectionDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 from PyQt6.QtSql import QSqlDatabase
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_SqlConnectionDialog import Ui_SqlConnectionDialog
 
@@ -29,7 +29,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.databasePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.databasePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         
         self.okButton = self.buttonBox.button(
             QDialogButtonBox.StandardButton.Ok)
--- a/eric7/SqlBrowser/SqlConnectionDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/SqlBrowser/SqlConnectionDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -42,7 +42,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5PathPicker" name="databasePicker" native="true">
+    <widget class="EricPathPicker" name="databasePicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -151,9 +151,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/Tasks/TaskPropertiesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Tasks/TaskPropertiesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Completers import E5FileCompleter
+from E5Gui.EricCompleters import EricFileCompleter
 
 from .Ui_TaskPropertiesDialog import Ui_TaskPropertiesDialog
 
@@ -36,7 +36,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.filenameCompleter = E5FileCompleter(self.filenameEdit)
+        self.filenameCompleter = EricFileCompleter(self.filenameEdit)
         
         self.typeCombo.addItem(self.tr("Bugfix"), TaskType.FIXME)
         self.typeCombo.addItem(self.tr("Warning"), TaskType.WARNING)
--- a/eric7/Tasks/TaskViewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Tasks/TaskViewer.py	Sat May 22 18:51:46 2021 +0200
@@ -21,9 +21,9 @@
     QMenu, QAbstractItemView, QTreeWidgetItem
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
-from E5Gui.E5ProgressDialog import E5ProgressDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
+from E5Gui.EricProgressDialog import EricProgressDialog
 
 from .Task import Task, TaskType, TaskPriority
 
@@ -671,7 +671,7 @@
         @param on flag indicating the filter state (boolean)
         """
         if on and not self.taskFilter.hasActiveFilter():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Activate task filter"),
                 self.tr(
@@ -744,7 +744,7 @@
             self.__projectTaskExtractionThread.scan(
                 markers, [os.path.join(ppath, f) for f in files])
         else:
-            progress = E5ProgressDialog(
+            progress = EricProgressDialog(
                 self.tr("Extracting project tasks..."),
                 self.tr("Abort"), 0, len(files), self.tr("%v/%m Files"))
             progress.setMinimumDuration(0)
@@ -794,7 +794,7 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences("tasksPage")
+        ericApp().getObject("UserInterface").showPreferences("tasksPage")
     
     def saveProjectTasks(self):
         """
--- a/eric7/Tasks/TasksFile.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Tasks/TasksFile.py	Sat May 22 18:51:46 2021 +0200
@@ -12,9 +12,9 @@
 
 from PyQt6.QtCore import QObject
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverridenCursor
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverridenCursor
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 
@@ -63,12 +63,12 @@
             # step 2: tasks
             tasksDict["Tasks"] = [
                 task.toDict()
-                for task in e5App().getObject("TaskViewer").getGlobalTasks()
+                for task in ericApp().getObject("TaskViewer").getGlobalTasks()
             ]
         else:
             tasksDict["header"] = {
                 "comment": "eric tasks file for project {0}".format(
-                    e5App().getObject("Project").getProjectName()),
+                    ericApp().getObject("Project").getProjectName()),
                 "warning": (
                     "This file was generated automatically, do not edit."
                 ),
@@ -79,13 +79,13 @@
                 )
             # step 1: project scan filter
             tasksDict["ProjectScanFilter"] = (
-                e5App().getObject("TaskViewer").getTasksScanFilter()
+                ericApp().getObject("TaskViewer").getTasksScanFilter()
             )
             
             # step 2: tasks
             tasksDict["Tasks"] = [
                 task.toDict()
-                for task in e5App().getObject("TaskViewer").getProjectTasks()
+                for task in ericApp().getObject("TaskViewer").getProjectTasks()
             ]
         
         try:
@@ -93,8 +93,8 @@
             with open(filename, "w") as f:
                 f.write(jsonString)
         except (TypeError, OSError) as err:
-            with E5OverridenCursor():
-                E5MessageBox.critical(
+            with EricOverridenCursor():
+                EricMessageBox.critical(
                     None,
                     self.tr("Save Tasks"),
                     self.tr(
@@ -120,7 +120,7 @@
                 jsonString = f.read()
             tasksDict = json.loads(jsonString)
         except (OSError, json.JSONDecodeError) as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Read Tasks"),
                 self.tr(
@@ -130,7 +130,7 @@
             )
             return False
         
-        viewer = e5App().getObject("TaskViewer")
+        viewer = ericApp().getObject("TaskViewer")
         if tasksDict["ProjectScanFilter"]:
             viewer.setTasksScanFilter(tasksDict["ProjectScanFilter"])
         
--- a/eric7/Templates/TemplatePropertiesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Templates/TemplatePropertiesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 
 from .Ui_TemplatePropertiesDialog import Ui_TemplatePropertiesDialog
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 import Preferences
 
@@ -98,7 +98,7 @@
         @param ev key event (QKeyEvent)
         """
         if ev.key() == Qt.Key.Key_Escape:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Close dialog"),
                 self.tr("""Do you really want to close the dialog?"""))
@@ -111,8 +111,8 @@
         Private slot to show some help.
         """
         if self.__helpDialog is None:
-            from E5Gui.E5SimpleHelpDialog import E5SimpleHelpDialog
-            self.__helpDialog = E5SimpleHelpDialog(
+            from E5Gui.EricSimpleHelpDialog import EricSimpleHelpDialog
+            self.__helpDialog = EricSimpleHelpDialog(
                 title=self.tr("Template Help"),
                 label=self.tr("<b>Template Help</b>"),
                 helpStr=self.tr(
--- a/eric7/Templates/TemplateViewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Templates/TemplateViewer.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
     QTreeWidget, QDialog, QApplication, QMenu, QTreeWidgetItem
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox, EricFileDialog
 
 import Preferences
 
@@ -94,7 +94,7 @@
         """
         if name in self.entries:
             if not quiet:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     None,
                     QCoreApplication.translate("TemplateGroup",
                                                "Add Template"),
@@ -535,7 +535,7 @@
         Private slot to handle the Remove context menu action.
         """
         itm = self.currentItem()
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Remove Template"),
             self.tr("""<p>Do you really want to remove <b>{0}</b>?</p>""")
@@ -562,7 +562,7 @@
         """
         Private slot to handle the Import context menu action.
         """
-        fn = E5FileDialog.getOpenFileName(
+        fn = EricFileDialog.getOpenFileName(
             self,
             self.tr("Import Templates"),
             "",
@@ -578,14 +578,14 @@
         """
         Private slot to handle the Export context menu action.
         """
-        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Export Templates"),
             "",
             self.tr("Templates Files (*.ecj)"
                     "All Files (*)"),
             "",
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if fn:
             ext = QFileInfo(fn).suffix()
@@ -594,7 +594,7 @@
                 if ex:
                     fn += ex
             if os.path.exists(fn):
-                ok = E5MessageBox.yesNo(
+                ok = EricMessageBox.yesNo(
                     self,
                     self.tr("Export Templates"),
                     self.tr("""<p>The templates file <b>{0}</b> exists"""
@@ -610,13 +610,13 @@
         Private slot to reload the templates.
         """
         if self.__dirty:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Reload Templates"),
                 self.tr(
                     """The templates contain unsaved changes. Shall these"""
                     """ changes be discarded?"""),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return
         
@@ -629,7 +629,7 @@
         """
         Private method to show some help.
         """
-        E5MessageBox.information(
+        EricMessageBox.information(
             self,
             self.tr("Template Help"),
             self.tr(
@@ -649,7 +649,7 @@
         
         @return dictionary of predefined variables and their values
         """
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         editor = self.viewmanager.activeWindow()
         now = datetime.datetime.now()
         sepchar = Preferences.getTemplates("SeparatorChar")
@@ -884,7 +884,7 @@
         """
         if oldname != newname:
             if newname in self.groups:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Edit Template Group"),
                     self.tr("""<p>A template group with the name"""
@@ -1008,7 +1008,7 @@
                 reader.readXML()
                 f.close()
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Read Templates"),
                     self.tr(
@@ -1020,7 +1020,7 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences("templatesPage")
+        ericApp().getObject("UserInterface").showPreferences("templatesPage")
     
     def hasTemplate(self, entryName, groupName=None):
         """
--- a/eric7/Templates/TemplatesFile.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Templates/TemplatesFile.py	Sat May 22 18:51:46 2021 +0200
@@ -13,8 +13,8 @@
 
 from PyQt6.QtCore import QObject
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverridenCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverridenCursor
 
 
 TemplateViewer = typing.TypeVar("TemplateViewer")
@@ -77,8 +77,8 @@
             with open(filename, "w") as f:
                 f.write(jsonString)
         except (TypeError, OSError) as err:
-            with E5OverridenCursor():
-                E5MessageBox.critical(
+            with EricOverridenCursor():
+                EricMessageBox.critical(
                     None,
                     self.tr("Save Templates"),
                     self.tr(
@@ -104,7 +104,7 @@
                 jsonString = f.read()
             templatesDict = json.loads(jsonString)
         except (OSError, json.JSONDecodeError) as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Read Templates"),
                 self.tr(
--- a/eric7/Toolbox/SingleApplication.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Toolbox/SingleApplication.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import QByteArray
 from PyQt6.QtNetwork import QLocalServer, QLocalSocket
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 import Utilities
 
@@ -67,7 +67,7 @@
             try:
                 commandDict = json.loads(line.strip())
             except (TypeError, ValueError) as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     None,
                     self.tr("Single Application Protocol Error"),
                     self.tr("""<p>The response received from the single"""
@@ -77,7 +77,7 @@
                             """<p>Error: {0}</p>"""
                             """<p>Data:<br/>{1}</p>""").format(
                         str(err), Utilities.html_encode(line.strip())),
-                    E5MessageBox.Ok)
+                    EricMessageBox.Ok)
                 return
             
             command = commandDict["command"]
--- a/eric7/Toolbox/Startup.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Toolbox/Startup.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import QTranslator, QLocale, QLibraryInfo, QDir
 from PyQt6.QtWidgets import QApplication
 
-from E5Gui.E5Application import E5Application
+from E5Gui.EricApplication import EricApplication
 
 import Globals
 
@@ -118,7 +118,7 @@
     Module function to initialize the default mime source factory.
     
     @param application reference to the application object
-    @type E5Application
+    @type EricApplication
     """
     import Preferences
     
@@ -137,7 +137,7 @@
     Module function to determine the default icon paths.
     
     @param application reference to the application object
-    @type E5Application
+    @type EricApplication
     @return list of default icon paths
     @rtype list of str
     """
@@ -253,7 +253,7 @@
     if app is None:
         # set the library paths for plugins
         setLibraryPaths()
-        app = E5Application(argv)
+        app = EricApplication(argv)
         application = app
     app.setQuitOnLastWindowClosed(quitOnLastWindowClosed)
     
@@ -282,8 +282,8 @@
     
     if installErrorHandler:
         # generate a graphical error handler
-        from E5Gui import E5ErrorMessage
-        eMsg = E5ErrorMessage.qtHandler()
+        from E5Gui import EricErrorMessage
+        eMsg = EricErrorMessage.qtHandler()
         eMsg.setMinimumSize(600, 400)
     
     return app.exec()
--- a/eric7/Tools/TRPreviewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Tools/TRPreviewer.py	Sat May 22 18:51:46 2021 +0200
@@ -22,9 +22,9 @@
 from PyQt6 import uic
 
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricApplication import ericApp
 
 import UI.PixmapCache
 import UI.Config
@@ -36,7 +36,7 @@
     "TRPreviewer", "<No translation>")
 
 
-class TRPreviewer(E5MainWindow):
+class TRPreviewer(EricMainWindow):
     """
     Class implementing the UI Previewer main window.
     """
@@ -204,7 +204,7 @@
             """<b>Quit</b>"""
             """<p>Quit the application.</p>"""
         ))
-        self.exitAct.triggered.connect(e5App().closeAllWindows)
+        self.exitAct.triggered.connect(ericApp().closeAllWindows)
         
         self.whatsThisAct = QAction(
             UI.PixmapCache.getIcon("whatsThis"),
@@ -355,7 +355,7 @@
         """
         Private slot to show the about information.
         """
-        E5MessageBox.about(
+        EricMessageBox.about(
             self,
             self.tr("TR Previewer"),
             self.tr(
@@ -370,13 +370,13 @@
         """
         Private slot to show info about Qt.
         """
-        E5MessageBox.aboutQt(self, self.tr("TR Previewer"))
+        EricMessageBox.aboutQt(self, self.tr("TR Previewer"))
     
     def __openWidget(self):
         """
         Private slot to handle the Open Dialog action.
         """
-        fileNameList = E5FileDialog.getOpenFileNames(
+        fileNameList = EricFileDialog.getOpenFileNames(
             None,
             self.tr("Select UI files"),
             "",
@@ -391,7 +391,7 @@
         """
         Private slot to handle the Open Translation action.
         """
-        fileNameList = E5FileDialog.getOpenFileNames(
+        fileNameList = EricFileDialog.getOpenFileNames(
             None,
             self.tr("Select translation files"),
             "",
@@ -484,7 +484,7 @@
             ntr.fileName = fileName
             ntr.name = self.__uniqueName(fileName)
             if ntr.name is None:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self.parent(),
                     self.tr("Set Translator"),
                     self.tr(
@@ -514,7 +514,7 @@
         if name != noTranslationName:
             trans = self.__findName(name)
             if trans is None:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self.parent(),
                     self.tr("Set Translator"),
                     self.tr(
@@ -657,7 +657,7 @@
         if tr.load(transFileName):
             return tr
         
-        E5MessageBox.warning(
+        EricMessageBox.warning(
             self.parent(),
             self.tr("Load Translator"),
             self.tr("""<p>The translation file <b>{0}</b> could"""
@@ -728,7 +728,7 @@
             self.__widget = uic.loadUi(self.__uiFileName)
         
         if not self.__widget:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Load UI File"),
                 self.tr(
@@ -785,7 +785,7 @@
         if wview is None:
             name = os.path.basename(uiFileName)
             if not name:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Load UI File"),
                     self.tr(
--- a/eric7/Tools/TrayStarter.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Tools/TrayStarter.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
 from PyQt6.QtGui import QCursor
 from PyQt6.QtWidgets import QSystemTrayIcon, QMenu, QDialog, QApplication
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 import Globals
 import UI.PixmapCache
@@ -192,7 +192,7 @@
        
         self.__menu.addAction(
             UI.PixmapCache.getIcon("exit"),
-            self.tr('Quit'), e5App().quit)
+            self.tr('Quit'), ericApp().quit)
     
     def __loadRecentProjects(self):
         """
@@ -277,7 +277,7 @@
             not os.path.isfile(applPath) or
             not proc.startDetached(sys.executable, args)
         ):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -570,4 +570,4 @@
         )
         versionText += self.tr("""</table>""")
         
-        E5MessageBox.about(None, Program, versionText)
+        EricMessageBox.about(None, Program, versionText)
--- a/eric7/Tools/UIPreviewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Tools/UIPreviewer.py	Sat May 22 18:51:46 2021 +0200
@@ -20,17 +20,17 @@
 from PyQt6 import uic
 
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5Application import e5App
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 import Preferences
 import UI.PixmapCache
 import UI.Config
 
 
-class UIPreviewer(E5MainWindow):
+class UIPreviewer(EricMainWindow):
     """
     Class implementing the UI Previewer main window.
     """
@@ -187,7 +187,7 @@
             """<b>Quit</b>"""
             """<p>Quit the application.</p>"""
         ))
-        self.exitAct.triggered.connect(e5App().closeAllWindows)
+        self.exitAct.triggered.connect(ericApp().closeAllWindows)
         
         self.copyAct = QAction(
             UI.PixmapCache.getIcon("editCopy"), self.tr('&Copy'), self)
@@ -306,7 +306,7 @@
         """
         Private slot to show the about information.
         """
-        E5MessageBox.about(
+        EricMessageBox.about(
             self,
             self.tr("UI Previewer"),
             self.tr(
@@ -321,13 +321,13 @@
         """
         Private slot to show info about Qt.
         """
-        E5MessageBox.aboutQt(self, self.tr("UI Previewer"))
+        EricMessageBox.aboutQt(self, self.tr("UI Previewer"))
 
     def __openFile(self):
         """
         Private slot to load a new file.
         """
-        fn = E5FileDialog.getOpenFileName(
+        fn = EricFileDialog.getOpenFileName(
             self,
             self.tr("Select UI file"),
             self.currentFile,
@@ -362,7 +362,7 @@
                 self.previewSV.setWidget(self.mainWidget)
                 self.mainWidget.show()
         else:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Load UI File"),
                 self.tr(
@@ -376,7 +376,7 @@
         
         @param sstyle name of the selected style (string)
         """
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             qstyle = QStyleFactory.create(sstyle)
             self.mainWidget.setStyle(qstyle)
             
@@ -448,7 +448,7 @@
         Private slot to handle the Save Image menu action.
         """
         if self.mainWidget is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Save Image"),
                 self.tr("""There is no UI file loaded."""))
@@ -462,7 +462,7 @@
                 filters, bytes(imageFormat).decode().lower())
         fileFilter = self.tr("Images ({0})").format(filters[:-1])
         
-        fname = E5FileDialog.getSaveFileName(
+        fname = EricFileDialog.getSaveFileName(
             self,
             self.tr("Save Image"),
             "",
@@ -478,7 +478,7 @@
         pix = self.mainWidget.grab()
         self.__updateChildren(self.lastStyle)
         if not pix.save(fname, str(ext)):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Save Image"),
                 self.tr(
@@ -490,7 +490,7 @@
         Private slot to handle the Copy Image menu action.
         """
         if self.mainWidget is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Save Image"),
                 self.tr("""There is no UI file loaded."""))
@@ -505,7 +505,7 @@
         Private slot to handle the Print Image menu action.
         """
         if self.mainWidget is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Print Image"),
                 self.tr("""There is no UI file loaded."""))
@@ -548,7 +548,7 @@
         from PyQt6.QtPrintSupport import QPrintPreviewDialog
         
         if self.mainWidget is None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Print Preview"),
                 self.tr("""There is no UI file loaded."""))
--- a/eric7/UI/Browser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/Browser.py	Sat May 22 18:51:46 2021 +0200
@@ -20,8 +20,8 @@
     QLineEdit, QDialog
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5FileDialog, E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricFileDialog, EricMessageBox
 
 from Project.ProjectBrowserModel import ProjectBrowserSimpleDirectoryItem
 from .BrowserModel import (
@@ -444,7 +444,7 @@
         """
         Protected slot to handle the selection of the goto menu.
         
-        @param act reference to the action (E5Action)
+        @param act reference to the action (EricAction)
         """
         fileName, lineno = act.data()
         self.sourceFile[str, int].emit(fileName, lineno)
@@ -529,7 +529,7 @@
         if itmList:
             mimetype = Utilities.MimeTypes.mimeType(itmList[0].fileName())
             if mimetype is None:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     QCoreApplication.translate('Browser', "Show Mime-Type"),
                     QCoreApplication.translate(
@@ -537,7 +537,7 @@
                         """The mime type of the file could not be"""
                         """ determined."""))
             elif mimetype.split("/")[0] == "text":
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     QCoreApplication.translate('Browser', "Show Mime-Type"),
                     QCoreApplication.translate(
@@ -547,7 +547,7 @@
             else:
                 textMimeTypesList = Preferences.getUI("TextMimeTypes")
                 if mimetype in textMimeTypesList:
-                    E5MessageBox.information(
+                    EricMessageBox.information(
                         self,
                         QCoreApplication.translate(
                             'Browser', "Show Mime-Type"),
@@ -556,7 +556,7 @@
                             """The file has the mime type <b>{0}</b>.""")
                         .format(mimetype))
                 else:
-                    ok = E5MessageBox.yesNo(
+                    ok = EricMessageBox.yesNo(
                         self,
                         QCoreApplication.translate(
                             'Browser', "Show Mime-Type"),
@@ -644,11 +644,11 @@
         """
         Private slot to handle the New toplevel directory popup menu entry.
         """
-        dname = E5FileDialog.getExistingDirectory(
+        dname = EricFileDialog.getExistingDirectory(
             None,
             QCoreApplication.translate('Browser', "New toplevel directory"),
             "",
-            E5FileDialog.ShowDirsOnly)
+            EricFileDialog.ShowDirsOnly)
         if dname:
             dname = os.path.abspath(Utilities.toNativeSeparators(dname))
             self.__model.addTopLevelDir(dname)
@@ -684,7 +684,7 @@
         index = self.currentIndex()
         searchDir = self.model().item(index).dirName()
         
-        e5App().getObject("UserInterface").showFindFilesDialog(
+        ericApp().getObject("UserInterface").showFindFilesDialog(
             searchDir=searchDir)
         
     def __replaceInDirectory(self):
@@ -694,7 +694,7 @@
         index = self.currentIndex()
         searchDir = self.model().item(index).dirName()
         
-        e5App().getObject("UserInterface").showReplaceFilesDialog(
+        ericApp().getObject("UserInterface").showReplaceFilesDialog(
             searchDir=searchDir)
         
     def handleProgramChange(self, fn):
@@ -870,7 +870,7 @@
             if ok and bool(newName):
                 dirpath = os.path.join(dname, newName)
                 if os.path.exists(dirpath):
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         self,
                         self.tr("New Directory"),
                         self.tr("A file or directory named <b>{0}</b> exists"
@@ -880,7 +880,7 @@
                     try:
                         os.mkdir(dirpath, mode=0o751)
                     except OSError as err:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self,
                             self.tr("New Directory"),
                             self.tr("<p>The directory <b>{0}</b> could not be"
@@ -903,7 +903,7 @@
             if ok and bool(fname):
                 filepath = os.path.join(dname, fname)
                 if os.path.exists(filepath):
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         self,
                         self.tr("New File"),
                         self.tr("A file or directory named <b>{0}</b> exists"
@@ -914,7 +914,7 @@
                         with open(filepath, "w"):
                             pass
                     except OSError as err:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self,
                             self.tr("New File"),
                             self.tr("<p>The file <b>{0}</b> could not be"
@@ -961,7 +961,7 @@
             try:
                 s2t(fn)
             except OSError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Delete File"),
                     self.tr(
@@ -1001,7 +1001,7 @@
                 else:
                     shutil.rmtree(dn, True)
             except OSError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     self.tr("Delete Directory"),
                     self.tr(
@@ -1044,7 +1044,7 @@
                 try:
                     s2t(fn)
                 except OSError as err:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         self.tr("Delete File"),
                         self.tr(
--- a/eric7/UI/CodeDocumentationViewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/CodeDocumentationViewer.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
     QLineEdit, QTextBrowser, QToolTip
 )
 
-from E5Gui.E5TextEditSearchWidget import E5TextEditSearchWidget, E5TextEditType
-from E5Gui.E5Application import e5App
+from E5Gui.EricTextEditSearchWidget import EricTextEditSearchWidget, EricTextEditType
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 
@@ -87,11 +87,11 @@
             self.__contents.settings().setAttribute(
                 QWebEngineSettings.WebAttribute.FocusOnNavigationEnabled,
                 False)
-            self.__viewerType = E5TextEditType.QWEBENGINEVIEW
+            self.__viewerType = EricTextEditType.QWEBENGINEVIEW
         except ImportError:
             self.__contents = QTextBrowser(self)
             self.__contents.setOpenExternalLinks(True)
-            self.__viewerType = E5TextEditType.QTEXTBROWSER
+            self.__viewerType = EricTextEditType.QTEXTBROWSER
         
         sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred,
                                  QSizePolicy.Policy.Expanding)
@@ -102,11 +102,11 @@
         self.__contents.setSizePolicy(sizePolicy)
         self.__contents.setContextMenuPolicy(
             Qt.ContextMenuPolicy.NoContextMenu)
-        if self.__viewerType != E5TextEditType.QTEXTBROWSER:
+        if self.__viewerType != EricTextEditType.QTEXTBROWSER:
             self.__contents.setUrl(QUrl("about:blank"))
         self.__verticalLayout.addWidget(self.__contents)
         
-        self.__searchWidget = E5TextEditSearchWidget(self, False)
+        self.__searchWidget = EricTextEditSearchWidget(self, False)
         self.__searchWidget.setFocusPolicy(Qt.FocusPolicy.WheelFocus)
         self.__searchWidget.setObjectName("searchWidget")
         self.__verticalLayout.addWidget(self.__searchWidget)
@@ -139,10 +139,10 @@
         """
         Public method to clear the shown contents.
         """
-        if self.__viewerType == E5TextEditType.QTEXTBROWSER:
+        if self.__viewerType == EricTextEditType.QTEXTBROWSER:
             self.__contents.clear()
         else:
-            if e5App().usesDarkPalette():
+            if ericApp().usesDarkPalette():
                 self.__contents.setHtml(self.EmpytDocument_Dark)
             else:
                 self.__contents.setHtml(self.EmpytDocument_Light)
--- a/eric7/UI/CodeDocumentationViewerTemplate.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/CodeDocumentationViewerTemplate.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 
 from PyQt6.QtCore import QCoreApplication
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import Utilities
 
@@ -29,7 +29,7 @@
     @return stylesheet
     @rtype str
     """
-    stylesheetType = "dark" if e5App().usesDarkPalette() else "light"
+    stylesheetType = "dark" if ericApp().usesDarkPalette() else "light"
     if not _stylesheetsCache[stylesheetType]:
         # load the stylesheet from file
         stylesheetFilePath = os.path.join(
--- a/eric7/UI/CompareDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/CompareDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,9 +15,9 @@
 from PyQt6.QtGui import QFontMetrics, QBrush, QTextCursor
 from PyQt6.QtWidgets import QWidget, QApplication, QDialogButtonBox
 
-from E5Gui import E5MessageBox
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui import EricMessageBox
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 import UI.PixmapCache
 
@@ -101,8 +101,8 @@
         if files is None:
             files = []
         
-        self.file1Picker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
-        self.file2Picker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.file1Picker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
+        self.file2Picker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         
         self.diffButton = self.buttonBox.addButton(
             self.tr("Compare"), QDialogButtonBox.ButtonRole.ActionRole)
@@ -241,7 +241,7 @@
             with open(filename1, "r", encoding="utf-8") as f1:
                 lines1 = f1.readlines()
         except OSError:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Compare Files"),
                 self.tr(
@@ -254,7 +254,7 @@
             with open(filename2, "r", encoding="utf-8") as f2:
                 lines2 = f2.readlines()
         except OSError:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Compare Files"),
                 self.tr(
@@ -458,7 +458,7 @@
             self.hsb2.valueChanged.disconnect(self.hsb1.setValue)
 
 
-class CompareWindow(E5MainWindow):
+class CompareWindow(EricMainWindow):
     """
     Main window class for the standalone dialog.
     """
--- a/eric7/UI/CompareDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/CompareDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -34,7 +34,7 @@
        </widget>
       </item>
       <item>
-       <widget class="E5PathPicker" name="file1Picker" native="true">
+       <widget class="EricPathPicker" name="file1Picker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -60,7 +60,7 @@
        </widget>
       </item>
       <item>
-       <widget class="E5PathPicker" name="file2Picker" native="true">
+       <widget class="EricPathPicker" name="file2Picker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -287,9 +287,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/UI/DiffDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/DiffDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -16,9 +16,9 @@
 from PyQt6.QtGui import QTextCursor
 from PyQt6.QtWidgets import QWidget, QApplication, QDialogButtonBox
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_DiffDialog import Ui_DiffDialog
 from .DiffHighlighter import DiffHighlighter
@@ -40,8 +40,8 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.file1Picker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
-        self.file2Picker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.file1Picker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
+        self.file2Picker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         
         self.diffButton = self.buttonBox.addButton(
             self.tr("Compare"), QDialogButtonBox.ButtonRole.ActionRole)
@@ -103,13 +103,13 @@
         dname, fname = Utilities.splitPath(self.filename2)
         fname = "{0}.diff".format(self.filename2) if fname != '.' else dname
             
-        fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save Diff"),
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fname:
             return
@@ -120,12 +120,12 @@
             if ex:
                 fname += ex
         if QFileInfo(fname).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save Diff"),
                 self.tr("<p>The patch file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fname),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return
         fname = Utilities.toNativeSeparators(fname)
@@ -136,7 +136,7 @@
                     contextlib.suppress(UnicodeError):
                 f.write(txt)
         except OSError as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self, self.tr('Save Diff'),
                 self.tr(
                     '<p>The patch file <b>{0}</b> could not be saved.<br />'
@@ -156,7 +156,7 @@
             with open(self.filename1, "r", encoding="utf-8") as f1:
                 lines1 = f1.readlines()
         except OSError:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Compare Files"),
                 self.tr(
@@ -173,7 +173,7 @@
             with open(self.filename2, "r", encoding="utf-8") as f2:
                 lines2 = f2.readlines()
         except OSError:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Compare Files"),
                 self.tr(
@@ -269,7 +269,7 @@
             self.diffButton.setEnabled(True)
 
 
-class DiffWindow(E5MainWindow):
+class DiffWindow(EricMainWindow):
     """
     Main window class for the standalone dialog.
     """
--- a/eric7/UI/DiffDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/DiffDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -27,7 +27,7 @@
       </widget>
      </item>
      <item>
-      <widget class="E5PathPicker" name="file1Picker" native="true">
+      <widget class="EricPathPicker" name="file1Picker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -57,7 +57,7 @@
       </widget>
      </item>
      <item>
-      <widget class="E5PathPicker" name="file2Picker" native="true">
+      <widget class="EricPathPicker" name="file2Picker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -129,7 +129,7 @@
     </widget>
    </item>
    <item>
-    <widget class="E5TextEditSearchWidget" name="searchWidget" native="true">
+    <widget class="EricTextEditSearchWidget" name="searchWidget" native="true">
      <property name="focusPolicy">
       <enum>Qt::WheelFocus</enum>
      </property>
@@ -162,15 +162,15 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
   <customwidget>
-   <class>E5TextEditSearchWidget</class>
+   <class>EricTextEditSearchWidget</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5TextEditSearchWidget.h</header>
+   <header>E5Gui/EricTextEditSearchWidget.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/UI/DiffHighlighter.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/DiffHighlighter.py	Sat May 22 18:51:46 2021 +0200
@@ -7,10 +7,10 @@
 Module implementing a syntax highlighter for unified and context diff outputs.
 """
 
-from E5Gui.E5GenericDiffHighlighter import TERMINAL, E5GenericDiffHighlighter
+from E5Gui.EricGenericDiffHighlighter import TERMINAL, EricGenericDiffHighlighter
 
 
-class DiffHighlighter(E5GenericDiffHighlighter):
+class DiffHighlighter(EricGenericDiffHighlighter):
     """
     Class implementing a diff highlighter for Git.
     """
--- a/eric7/UI/EmailDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/EmailDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -19,8 +19,8 @@
     QTreeWidgetItem
 )
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .Ui_EmailDialog import Ui_EmailDialog
 
@@ -110,7 +110,7 @@
         @param ev key event (QKeyEvent)
         """
         if ev.key() == Qt.Key.Key_Escape:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Close dialog"),
                 self.tr("""Do you really want to close the dialog?"""))
@@ -132,7 +132,7 @@
         """
         Private slot to handle the rejected signal of the button box.
         """
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Close dialog"),
             self.tr("""Do you really want to close the dialog?"""))
@@ -155,8 +155,8 @@
                     " Use <code>{0}</code> to install it.</p>"
                 ).format(getInstallCommand())
             
-            from E5Gui.E5SimpleHelpDialog import E5SimpleHelpDialog
-            self.__helpDialog = E5SimpleHelpDialog(
+            from E5Gui.EricSimpleHelpDialog import EricSimpleHelpDialog
+            self.__helpDialog = EricSimpleHelpDialog(
                 title=self.tr("Gmail API Help"),
                 helpStr=helpStr, parent=self)
         
@@ -342,19 +342,19 @@
                         errorStr = e[1]
                     else:
                         errorStr = str(e)
-                    res = E5MessageBox.retryAbort(
+                    res = EricMessageBox.retryAbort(
                         self,
                         self.tr("Send Message"),
                         self.tr(
                             """<p>Authentication failed.<br>Reason: {0}</p>""")
                         .format(errorStr),
-                        E5MessageBox.Critical)
+                        EricMessageBox.Critical)
                     if res:
                         return self.__sendmail(msg)
                     else:
                         return False
 
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 server.sendmail(Preferences.getUser("Email"), self.__toAddress,
                                 msg)
                 server.quit()
@@ -367,13 +367,13 @@
                 errorStr = e.strerror
             else:
                 errorStr = str(e)
-            res = E5MessageBox.retryAbort(
+            res = EricMessageBox.retryAbort(
                 self,
                 self.tr("Send Message"),
                 self.tr(
                     """<p>Message could not be sent.<br>Reason: {0}</p>""")
                 .format(errorStr),
-                E5MessageBox.Critical)
+                EricMessageBox.Critical)
             if res:
                 return self.__sendmail(msg)
             else:
@@ -411,7 +411,7 @@
             self.accept()
         else:
             # we got an error
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Send Message via Gmail"),
                 self.tr(
@@ -424,7 +424,7 @@
         """
         Private slot to handle the Add... button.
         """
-        fname = E5FileDialog.getOpenFileName(
+        fname = EricFileDialog.getOpenFileName(
             self,
             self.tr("Attach file"))
         if fname:
--- a/eric7/UI/FindFileDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/FindFileDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -16,9 +16,9 @@
     QDialog, QApplication, QMenu, QDialogButtonBox, QTreeWidgetItem, QComboBox
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_FindFileDialog import Ui_FindFileDialog
 
@@ -59,7 +59,7 @@
         self.setupUi(self)
         self.setWindowFlags(Qt.WindowType.Window)
         
-        self.dirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.dirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.dirPicker.setInsertPolicy(QComboBox.InsertPolicy.InsertAtTop)
         self.dirPicker.setSizeAdjustPolicy(
             QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon)
@@ -315,7 +315,7 @@
         """
         if (
             self.__replaceMode and
-            not e5App().getObject("ViewManager").checkAllDirty()
+            not ericApp().getObject("ViewManager").checkAllDirty()
         ):
             return
         
@@ -424,7 +424,7 @@
                 excludeHiddenFiles=self.excludeHiddenCheckBox.isChecked(),
             )
         elif self.openFilesButton.isChecked():
-            vm = e5App().getObject("ViewManager")
+            vm = ericApp().getObject("ViewManager")
             vm.checkAllDirty()
             files = vm.getOpenFilenames()
         
@@ -447,7 +447,7 @@
         try:
             search = re.compile(txt, flags)
         except re.error as why:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Invalid search expression"),
                 self.tr("""<p>The search expression is not valid.</p>"""
@@ -689,7 +689,7 @@
                     )
                     lines = text.splitlines(True)
                 except (UnicodeError, OSError) as err:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Replace in Files"),
                         self.tr(
@@ -703,7 +703,7 @@
                 # Check the original and the current hash. Skip the file,
                 # if hashes are different.
                 if origHash != hashStr:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Replace in Files"),
                         self.tr(
@@ -728,7 +728,7 @@
                 try:
                     Utilities.writeEncodedFile(fn, txt, encoding)
                 except (OSError, Utilities.CodingError, UnicodeError) as err:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Replace in Files"),
                         self.tr(
--- a/eric7/UI/FindFileDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/FindFileDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -269,7 +269,7 @@
            </layout>
           </item>
           <item>
-           <widget class="E5ComboPathPicker" name="dirPicker" native="true">
+           <widget class="EricComboPathPicker" name="dirPicker" native="true">
             <property name="enabled">
              <bool>false</bool>
             </property>
@@ -335,7 +335,7 @@
     </layout>
    </item>
    <item>
-    <widget class="E5SqueezeLabelPath" name="findProgressLabel">
+    <widget class="EricSqueezeLabelPath" name="findProgressLabel">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -416,14 +416,14 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5SqueezeLabelPath</class>
+   <class>EricSqueezeLabelPath</class>
    <extends>QLabel</extends>
-   <header>E5Gui/E5SqueezeLabels.h</header>
+   <header>E5Gui/EricSqueezeLabels.h</header>
   </customwidget>
   <customwidget>
-   <class>E5ComboPathPicker</class>
+   <class>EricComboPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/UI/FindFileNameDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/FindFileNameDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,7 +15,7 @@
     QWidget, QHeaderView, QApplication, QDialogButtonBox, QTreeWidgetItem
 )
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_FindFileNameDialog import Ui_FindFileNameDialog
 
@@ -47,7 +47,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.searchDirPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.searchDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.fileList.headerItem().setText(self.fileList.columnCount(), "")
         
--- a/eric7/UI/FindFileNameDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/FindFileNameDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -74,7 +74,7 @@
       </widget>
      </item>
      <item>
-      <widget class="E5PathPicker" name="searchDirPicker" native="true">
+      <widget class="EricPathPicker" name="searchDirPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -155,9 +155,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/UI/InstallInfoDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/InstallInfoDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_InstallInfoDialog import Ui_InstallInfoDialog
 
@@ -96,7 +96,7 @@
             
             self.__updateButton.setEnabled(bool(self.__info["exe"]))
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Load Install Information"),
                 self.tr("<p>The file containing the install information could"
@@ -148,7 +148,7 @@
         Public slot handling the closing of the dialog.
         """
         if self.__edited:
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 self,
                 self.tr("Install Information"),
                 self.tr("""The install information was edited. Unsaved"""
@@ -185,7 +185,7 @@
             self.__edited = False
             self.editButton.setChecked(False)
         except OSError as err:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Save Install Information"),
                 self.tr("<p>The file containing the install information could"
@@ -198,7 +198,7 @@
         """
         Private slot deleting the install information file.
         """
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Delete Installation Information"),
             self.tr("""Do you really want to delete the installation"""
@@ -251,8 +251,8 @@
                 )
             )
         
-        from E5Gui.E5PlainTextDialog import E5PlainTextDialog
-        dlg = E5PlainTextDialog(
+        from E5Gui.EricPlainTextDialog import EricPlainTextDialog
+        dlg = EricPlainTextDialog(
             title=self.tr("Upgrade Instructions"),
             text="\n".join(updateTextList))
         dlg.exec()
--- a/eric7/UI/LogView.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/LogView.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
     QTextEdit, QApplication, QMenu, QWidget, QHBoxLayout, QSizePolicy
 )
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import UI.PixmapCache
 import Preferences
@@ -224,7 +224,7 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences("logViewerPage")
+        ericApp().getObject("UserInterface").showPreferences("logViewerPage")
         
     def __find(self):
         """
--- a/eric7/UI/NumbersWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/NumbersWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QAbstractTableModel
 from PyQt6.QtWidgets import QWidget, QHeaderView
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from .Ui_NumbersWidget import Ui_NumbersWidget
 
@@ -317,7 +317,7 @@
         """
         Private slot to retrieve a binary number from the current editor.
         """
-        number = e5App().getObject("ViewManager").getNumber()
+        number = ericApp().getObject("ViewManager").getNumber()
         if number == "":
             return
         
@@ -366,7 +366,7 @@
         """
         Private slot to retrieve an octal number from the current editor.
         """
-        number = e5App().getObject("ViewManager").getNumber()
+        number = ericApp().getObject("ViewManager").getNumber()
         if number == "":
             return
         
@@ -403,7 +403,7 @@
         """
         Private slot to retrieve a decimal number from the current editor.
         """
-        number = e5App().getObject("ViewManager").getNumber()
+        number = ericApp().getObject("ViewManager").getNumber()
         if number == "":
             return
         
@@ -440,7 +440,7 @@
         """
         Private slot to retrieve a hexadecimal number from the current editor.
         """
-        number = e5App().getObject("ViewManager").getNumber()
+        number = ericApp().getObject("ViewManager").getNumber()
         if number == "":
             return
         
--- a/eric7/UI/NumbersWidget.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/NumbersWidget.ui	Sat May 22 18:51:46 2021 +0200
@@ -251,7 +251,7 @@
       </widget>
      </item>
      <item row="0" column="1">
-      <widget class="E5TextSpinBox" name="formatBox">
+      <widget class="EricTextSpinBox" name="formatBox">
        <property name="toolTip">
         <string>Select the input format</string>
        </property>
@@ -271,7 +271,7 @@
       </widget>
      </item>
      <item row="1" column="1">
-      <widget class="E5TextSpinBox" name="sizeBox">
+      <widget class="EricTextSpinBox" name="sizeBox">
        <property name="toolTip">
         <string>Select the bit size</string>
        </property>
@@ -312,9 +312,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TextSpinBox</class>
+   <class>EricTextSpinBox</class>
    <extends>QSpinBox</extends>
-   <header>E5Gui/E5TextSpinBox.h</header>
+   <header>E5Gui/EricTextSpinBox.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/UI/Previewers/PreviewerHTML.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/Previewers/PreviewerHTML.py	Sat May 22 18:51:46 2021 +0200
@@ -22,7 +22,7 @@
     QWidget, QVBoxLayout, QLabel, QCheckBox, QSizePolicy, QToolTip
 )
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 import Utilities
 import Preferences
@@ -200,7 +200,7 @@
                 return
             
             if fn:
-                project = e5App().getObject("Project")
+                project = ericApp().getObject("Project")
                 if project.isProjectFile(fn):
                     rootPath = project.getProjectPath()
                 else:
@@ -746,7 +746,7 @@
                 " src='https://unpkg.com/mermaid@8/dist/mermaid.min.js'>\n"
                 "</script>\n"
             )
-            if e5App().usesDarkPalette():
+            if ericApp().usesDarkPalette():
                 mermaid_initialize = (
                     "<script>mermaid.initialize({"
                     "theme: 'dark', "
@@ -770,7 +770,7 @@
         style = (
             (PreviewerHTMLStyles.css_markdown_dark +
              PreviewerHTMLStyles.css_pygments_dark)
-            if e5App().usesDarkPalette() else
+            if ericApp().usesDarkPalette() else
             (PreviewerHTMLStyles.css_markdown_light +
              PreviewerHTMLStyles.css_pygments_light)
         )
--- a/eric7/UI/PythonAstViewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/PythonAstViewer.py	Sat May 22 18:51:46 2021 +0200
@@ -18,7 +18,7 @@
 
 from asttokens import ASTTokens
 
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 import Preferences
 
@@ -232,7 +232,7 @@
             ))
             return
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             try:
                 # generate the AST
                 root = ast.parse(source, self.__editor.getFileName(), "exec")
--- a/eric7/UI/PythonDisViewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/PythonDisViewer.py	Sat May 22 18:51:46 2021 +0200
@@ -20,8 +20,8 @@
     QTreeWidgetItem, QAbstractItemView, QWidget, QMenu
 )
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 import Preferences
 
@@ -475,7 +475,7 @@
         filename = self.__editor.getFileName()
         filename = os.path.basename(filename) if filename else "<dis>"
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             try:
                 codeObject = self.__tryCompile(source, filename)
             except Exception as exc:
@@ -886,5 +886,5 @@
         """
         Private method to open the configuration dialog.
         """
-        e5App().getObject("UserInterface").showPreferences(
+        ericApp().getObject("UserInterface").showPreferences(
             "pythonPage")
--- a/eric7/UI/UserInterface.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/UI/UserInterface.py	Sat May 22 18:51:46 2021 +0200
@@ -36,15 +36,15 @@
 from . import Config
 from .NotificationWidget import NotificationTypes
 
-from E5Gui.E5SingleApplication import E5SingleApplicationServer
-from E5Gui.E5Action import E5Action, createActionGroup
-from E5Gui.E5ToolBarManager import E5ToolBarManager
-from E5Gui import E5MessageBox, E5FileDialog, E5ErrorMessage
-from E5Gui.E5Application import e5App
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5ZoomWidget import E5ZoomWidget
-from E5Gui.E5ProgressDialog import E5ProgressDialog
-from E5Gui.E5ClickableLabel import E5ClickableLabel
+from E5Gui.EricSingleApplication import EricSingleApplicationServer
+from E5Gui.EricAction import EricAction, createActionGroup
+from E5Gui.EricToolBarManager import EricToolBarManager
+from E5Gui import EricMessageBox, EricFileDialog, EricErrorMessage
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricZoomWidget import EricZoomWidget
+from E5Gui.EricProgressDialog import EricProgressDialog
+from E5Gui.EricClickableLabel import EricClickableLabel
 
 import Preferences
 import Utilities
@@ -130,7 +130,7 @@
         self.__nWrite(self.__bufferedWrite())
 
 
-class UserInterface(E5MainWindow):
+class UserInterface(EricMainWindow):
     """
     Class implementing the main user interface.
     
@@ -166,7 +166,7 @@
         Constructor
         
         @param app reference to the application object
-        @type E5Application
+        @type EricApplication
         @param locale locale to be used by the UI
         @type str
         @param splash reference to the splashscreen
@@ -242,23 +242,23 @@
         # Generate the conda interface
         from CondaInterface.Conda import Conda
         self.condaInterface = Conda(self)
-        e5App().registerObject("Conda", self.condaInterface)
+        ericApp().registerObject("Conda", self.condaInterface)
         
         # Generate the pip interface
         from PipInterface.Pip import Pip
         self.pipInterface = Pip(self)
-        e5App().registerObject("Pip", self.pipInterface)
+        ericApp().registerObject("Pip", self.pipInterface)
         
         # Generate the virtual environment manager
         from VirtualEnv.VirtualenvManager import VirtualenvManager
         self.virtualenvManager = VirtualenvManager(self)
         # register it early because it is needed very soon
-        e5App().registerObject("VirtualEnvManager", self.virtualenvManager)
+        ericApp().registerObject("VirtualEnvManager", self.virtualenvManager)
         
         # Generate an empty project object and multi project object
         from Project.Project import Project
         self.project = Project(self)
-        e5App().registerObject("Project", self.project)
+        ericApp().registerObject("Project", self.project)
         
         from MultiProject.MultiProject import MultiProject
         self.multiProject = MultiProject(self.project, self)
@@ -572,7 +572,7 @@
             self.irc.autoConnected.connect(self.__ircAutoConnected)
         
         # create the toolbar manager object
-        self.toolbarManager = E5ToolBarManager(self, self)
+        self.toolbarManager = EricToolBarManager(self, self)
         self.toolbarManager.setMainWindow(self)
         
         # Initialize the tool groups and list of started tools
@@ -587,31 +587,31 @@
         
         # register all relevant objects
         splash.showMessage(self.tr("Registering Objects..."))
-        e5App().registerObject("UserInterface", self)
-        e5App().registerObject("DebugUI", self.debuggerUI)
-        e5App().registerObject("DebugServer", debugServer)
-        e5App().registerObject("BackgroundService", self.backgroundService)
-        e5App().registerObject("ViewManager", self.viewmanager)
-        e5App().registerObject("ProjectBrowser", self.projectBrowser)
-        e5App().registerObject("MultiProject", self.multiProject)
-        e5App().registerObject("TaskViewer", self.taskViewer)
+        ericApp().registerObject("UserInterface", self)
+        ericApp().registerObject("DebugUI", self.debuggerUI)
+        ericApp().registerObject("DebugServer", debugServer)
+        ericApp().registerObject("BackgroundService", self.backgroundService)
+        ericApp().registerObject("ViewManager", self.viewmanager)
+        ericApp().registerObject("ProjectBrowser", self.projectBrowser)
+        ericApp().registerObject("MultiProject", self.multiProject)
+        ericApp().registerObject("TaskViewer", self.taskViewer)
         if self.templateViewer is not None:
-            e5App().registerObject("TemplateViewer", self.templateViewer)
-        e5App().registerObject("Shell", self.shell)
-        e5App().registerObject("PluginManager", self.pluginManager)
-        e5App().registerObject("ToolbarManager", self.toolbarManager)
+            ericApp().registerObject("TemplateViewer", self.templateViewer)
+        ericApp().registerObject("Shell", self.shell)
+        ericApp().registerObject("PluginManager", self.pluginManager)
+        ericApp().registerObject("ToolbarManager", self.toolbarManager)
         if self.cooperation is not None:
-            e5App().registerObject("Cooperation", self.cooperation)
+            ericApp().registerObject("Cooperation", self.cooperation)
         if self.irc is not None:
-            e5App().registerObject("IRC", self.irc)
+            ericApp().registerObject("IRC", self.irc)
         if self.symbolsViewer is not None:
-            e5App().registerObject("Symbols", self.symbolsViewer)
+            ericApp().registerObject("Symbols", self.symbolsViewer)
         if self.numbersViewer is not None:
-            e5App().registerObject("Numbers", self.numbersViewer)
+            ericApp().registerObject("Numbers", self.numbersViewer)
         if self.codeDocumentationViewer is not None:
-            e5App().registerObject("DocuViewer", self.codeDocumentationViewer)
+            ericApp().registerObject("DocuViewer", self.codeDocumentationViewer)
         if self.microPythonWidget is not None:
-            e5App().registerObject("MicroPython", self.microPythonWidget)
+            ericApp().registerObject("MicroPython", self.microPythonWidget)
         
         # list of web addresses serving the versions file
         self.__httpAlternatives = Preferences.getUI("VersionsUrls7")
@@ -658,7 +658,7 @@
         if Preferences.getUI("SingleApplicationMode"):
             splash.showMessage(
                 self.tr("Initializing Single Application Server..."))
-            self.SAServer = E5SingleApplicationServer()
+            self.SAServer = EricSingleApplicationServer()
         else:
             self.SAServer = None
         
@@ -823,13 +823,13 @@
         
         @param debugServer reference to the debug server object
         """
-        from E5Gui.E5ToolBox import E5VerticalToolBox, E5HorizontalToolBox
+        from E5Gui.EricToolBox import EricVerticalToolBox, EricHorizontalToolBox
         
         logging.debug("Creating Toolboxes Layout...")
         
         # Create the left toolbox
         self.lToolboxDock = self.__createDockWindow("lToolboxDock")
-        self.lToolbox = E5VerticalToolBox(self.lToolboxDock)
+        self.lToolbox = EricVerticalToolBox(self.lToolboxDock)
         self.__setupDockWindow(self.lToolboxDock,
                                Qt.DockWidgetArea.LeftDockWidgetArea,
                                self.lToolbox,
@@ -837,7 +837,7 @@
         
         # Create the horizontal toolbox
         self.hToolboxDock = self.__createDockWindow("hToolboxDock")
-        self.hToolbox = E5HorizontalToolBox(self.hToolboxDock)
+        self.hToolbox = EricHorizontalToolBox(self.hToolboxDock)
         self.__setupDockWindow(self.hToolboxDock,
                                Qt.DockWidgetArea.BottomDockWidgetArea,
                                self.hToolbox,
@@ -845,7 +845,7 @@
         
         # Create the right toolbox
         self.rToolboxDock = self.__createDockWindow("rToolboxDock")
-        self.rToolbox = E5VerticalToolBox(self.rToolboxDock)
+        self.rToolbox = EricVerticalToolBox(self.rToolboxDock)
         self.__setupDockWindow(self.rToolboxDock,
                                Qt.DockWidgetArea.RightDockWidgetArea,
                                self.rToolbox,
@@ -1030,19 +1030,19 @@
         
         @param debugServer reference to the debug server object
         """
-        from E5Gui.E5SideBar import E5SideBar, E5SideBarSide
+        from E5Gui.EricSideBar import EricSideBar, EricSideBarSide
         
         logging.debug("Creating Sidebars Layout...")
         
         delay = Preferences.getUI("SidebarDelay")
         # Create the left sidebar
-        self.leftSidebar = E5SideBar(E5SideBarSide.WEST, delay)
+        self.leftSidebar = EricSideBar(EricSideBarSide.WEST, delay)
         
         # Create the bottom sidebar
-        self.bottomSidebar = E5SideBar(E5SideBarSide.SOUTH, delay)
+        self.bottomSidebar = EricSideBar(EricSideBarSide.SOUTH, delay)
         
         # Create the right sidebar
-        self.rightSidebar = E5SideBar(E5SideBarSide.EAST, delay)
+        self.rightSidebar = EricSideBar(EricSideBarSide.EAST, delay)
         
         ####################################################
         ## Populate the left side bar
@@ -1633,7 +1633,7 @@
         self.actions = []
         self.wizardsActions = []
         
-        self.exitAct = E5Action(
+        self.exitAct = EricAction(
             self.tr('Quit'),
             UI.PixmapCache.getIcon("exit"),
             self.tr('&Quit'),
@@ -1650,7 +1650,7 @@
         self.exitAct.setMenuRole(QAction.MenuRole.QuitRole)
         self.actions.append(self.exitAct)
 
-        self.restartAct = E5Action(
+        self.restartAct = EricAction(
             self.tr('Restart'),
             UI.PixmapCache.getIcon("restart"),
             self.tr('Restart'),
@@ -1666,7 +1666,7 @@
         self.restartAct.triggered.connect(self.__restart)
         self.actions.append(self.restartAct)
 
-        self.saveSessionAct = E5Action(
+        self.saveSessionAct = EricAction(
             self.tr('Save session'),
             self.tr('Save session...'),
             0, 0, self, 'save_session_to_file')
@@ -1679,7 +1679,7 @@
         self.saveSessionAct.triggered.connect(self.__saveSessionToFile)
         self.actions.append(self.saveSessionAct)
 
-        self.loadSessionAct = E5Action(
+        self.loadSessionAct = EricAction(
             self.tr('Load session'),
             self.tr('Load session...'),
             0, 0, self, 'load_session_from_file')
@@ -1692,7 +1692,7 @@
         self.loadSessionAct.triggered.connect(self.__loadSessionFromFile)
         self.actions.append(self.loadSessionAct)
 
-        self.newWindowAct = E5Action(
+        self.newWindowAct = EricAction(
             self.tr('New Window'),
             UI.PixmapCache.getIcon("newWindow"),
             self.tr('New &Window'),
@@ -1711,7 +1711,7 @@
         
         self.viewProfileActGrp = createActionGroup(self, "viewprofiles", True)
         
-        self.setEditProfileAct = E5Action(
+        self.setEditProfileAct = EricAction(
             self.tr('Edit Profile'),
             UI.PixmapCache.getIcon("viewProfileEdit"),
             self.tr('Edit Profile'),
@@ -1728,7 +1728,7 @@
         self.setEditProfileAct.triggered.connect(self.__setEditProfile)
         self.actions.append(self.setEditProfileAct)
         
-        self.setDebugProfileAct = E5Action(
+        self.setDebugProfileAct = EricAction(
             self.tr('Debug Profile'),
             UI.PixmapCache.getIcon("viewProfileDebug"),
             self.tr('Debug Profile'),
@@ -1745,7 +1745,7 @@
         self.setDebugProfileAct.triggered.connect(self.setDebugProfile)
         self.actions.append(self.setDebugProfileAct)
         
-        self.pbActivateAct = E5Action(
+        self.pbActivateAct = EricAction(
             self.tr('Project-Viewer'),
             self.tr('&Project-Viewer'),
             QKeySequence(self.tr("Alt+Shift+P")),
@@ -1762,7 +1762,7 @@
         self.actions.append(self.pbActivateAct)
         self.addAction(self.pbActivateAct)
 
-        self.mpbActivateAct = E5Action(
+        self.mpbActivateAct = EricAction(
             self.tr('Multiproject-Viewer'),
             self.tr('&Multiproject-Viewer'),
             QKeySequence(self.tr("Alt+Shift+M")),
@@ -1780,7 +1780,7 @@
         self.actions.append(self.mpbActivateAct)
         self.addAction(self.mpbActivateAct)
 
-        self.debugViewerActivateAct = E5Action(
+        self.debugViewerActivateAct = EricAction(
             self.tr('Debug-Viewer'),
             self.tr('&Debug-Viewer'),
             QKeySequence(self.tr("Alt+Shift+D")),
@@ -1798,7 +1798,7 @@
         self.actions.append(self.debugViewerActivateAct)
         self.addAction(self.debugViewerActivateAct)
 
-        self.shellActivateAct = E5Action(
+        self.shellActivateAct = EricAction(
             self.tr('Shell'),
             self.tr('&Shell'),
             QKeySequence(self.tr("Alt+Shift+S")),
@@ -1815,7 +1815,7 @@
         self.addAction(self.shellActivateAct)
         
         if self.browser is not None:
-            self.browserActivateAct = E5Action(
+            self.browserActivateAct = EricAction(
                 self.tr('File-Browser'),
                 self.tr('&File-Browser'),
                 QKeySequence(self.tr("Alt+Shift+F")),
@@ -1832,7 +1832,7 @@
             self.actions.append(self.browserActivateAct)
             self.addAction(self.browserActivateAct)
 
-        self.logViewerActivateAct = E5Action(
+        self.logViewerActivateAct = EricAction(
             self.tr('Log-Viewer'),
             self.tr('Lo&g-Viewer'),
             QKeySequence(self.tr("Alt+Shift+G")),
@@ -1850,7 +1850,7 @@
         self.actions.append(self.logViewerActivateAct)
         self.addAction(self.logViewerActivateAct)
 
-        self.taskViewerActivateAct = E5Action(
+        self.taskViewerActivateAct = EricAction(
             self.tr('Task-Viewer'),
             self.tr('&Task-Viewer'),
             QKeySequence(self.tr("Alt+Shift+T")),
@@ -1869,7 +1869,7 @@
         self.addAction(self.taskViewerActivateAct)
         
         if self.templateViewer is not None:
-            self.templateViewerActivateAct = E5Action(
+            self.templateViewerActivateAct = EricAction(
                 self.tr('Template-Viewer'),
                 self.tr('Templ&ate-Viewer'),
                 QKeySequence(self.tr("Alt+Shift+A")),
@@ -1887,7 +1887,7 @@
             self.actions.append(self.templateViewerActivateAct)
             self.addAction(self.templateViewerActivateAct)
 
-        self.ltAct = E5Action(
+        self.ltAct = EricAction(
             self.tr('Left Toolbox'),
             self.tr('&Left Toolbox'), 0, 0, self, 'vertical_toolbox', True)
         self.ltAct.setStatusTip(self.tr('Toggle the Left Toolbox window'))
@@ -1899,7 +1899,7 @@
         self.ltAct.triggered.connect(self.__toggleLeftToolbox)
         self.actions.append(self.ltAct)
         
-        self.rtAct = E5Action(
+        self.rtAct = EricAction(
             self.tr('Right Toolbox'),
             self.tr('&Right Toolbox'),
             0, 0, self, 'vertical_toolbox', True)
@@ -1912,7 +1912,7 @@
         self.rtAct.triggered.connect(self.__toggleRightToolbox)
         self.actions.append(self.rtAct)
         
-        self.htAct = E5Action(
+        self.htAct = EricAction(
             self.tr('Horizontal Toolbox'),
             self.tr('&Horizontal Toolbox'), 0, 0, self,
             'horizontal_toolbox', True)
@@ -1926,7 +1926,7 @@
         self.htAct.triggered.connect(self.__toggleHorizontalToolbox)
         self.actions.append(self.htAct)
         
-        self.lsbAct = E5Action(
+        self.lsbAct = EricAction(
             self.tr('Left Sidebar'),
             self.tr('&Left Sidebar'),
             0, 0, self, 'left_sidebar', True)
@@ -1939,7 +1939,7 @@
         self.lsbAct.triggered.connect(self.__toggleLeftSidebar)
         self.actions.append(self.lsbAct)
         
-        self.rsbAct = E5Action(
+        self.rsbAct = EricAction(
             self.tr('Right Sidebar'),
             self.tr('&Right Sidebar'),
             0, 0, self, 'right_sidebar', True)
@@ -1953,7 +1953,7 @@
         self.rsbAct.triggered.connect(self.__toggleRightSidebar)
         self.actions.append(self.rsbAct)
         
-        self.bsbAct = E5Action(
+        self.bsbAct = EricAction(
             self.tr('Bottom Sidebar'),
             self.tr('&Bottom Sidebar'), 0, 0, self,
             'bottom_sidebar', True)
@@ -1968,7 +1968,7 @@
         self.actions.append(self.bsbAct)
         
         if self.cooperation is not None:
-            self.cooperationViewerActivateAct = E5Action(
+            self.cooperationViewerActivateAct = EricAction(
                 self.tr('Cooperation-Viewer'),
                 self.tr('Co&operation-Viewer'),
                 QKeySequence(self.tr("Alt+Shift+O")),
@@ -1987,7 +1987,7 @@
             self.addAction(self.cooperationViewerActivateAct)
         
         if self.irc is not None:
-            self.ircActivateAct = E5Action(
+            self.ircActivateAct = EricAction(
                 self.tr('IRC'),
                 self.tr('&IRC'),
                 QKeySequence(self.tr("Ctrl+Alt+Shift+I")),
@@ -2005,7 +2005,7 @@
             self.addAction(self.ircActivateAct)
         
         if self.symbolsViewer is not None:
-            self.symbolsViewerActivateAct = E5Action(
+            self.symbolsViewerActivateAct = EricAction(
                 self.tr('Symbols-Viewer'),
                 self.tr('S&ymbols-Viewer'),
                 QKeySequence(self.tr("Alt+Shift+Y")),
@@ -2024,7 +2024,7 @@
             self.addAction(self.symbolsViewerActivateAct)
         
         if self.numbersViewer is not None:
-            self.numbersViewerActivateAct = E5Action(
+            self.numbersViewerActivateAct = EricAction(
                 self.tr('Numbers-Viewer'),
                 self.tr('Num&bers-Viewer'),
                 QKeySequence(self.tr("Alt+Shift+B")),
@@ -2043,7 +2043,7 @@
             self.addAction(self.numbersViewerActivateAct)
         
         if self.codeDocumentationViewer is not None:
-            self.codeDocumentationViewerActivateAct = E5Action(
+            self.codeDocumentationViewerActivateAct = EricAction(
                 self.tr('Code Documentation Viewer'),
                 self.tr('Code Documentation Viewer'),
                 QKeySequence(self.tr("Ctrl+Alt+Shift+D")),
@@ -2063,7 +2063,7 @@
             self.addAction(self.codeDocumentationViewerActivateAct)
         
         if self.pipWidget is not None:
-            self.pipWidgetActivateAct = E5Action(
+            self.pipWidgetActivateAct = EricAction(
                 self.tr('PyPI'),
                 self.tr('PyPI'),
                 QKeySequence(self.tr("Ctrl+Alt+Shift+P")),
@@ -2081,7 +2081,7 @@
             self.addAction(self.pipWidgetActivateAct)
         
         if self.condaWidget is not None:
-            self.condaWidgetActivateAct = E5Action(
+            self.condaWidgetActivateAct = EricAction(
                 self.tr('Conda'),
                 self.tr('Conda'),
                 QKeySequence(self.tr("Ctrl+Alt+Shift+C")),
@@ -2099,7 +2099,7 @@
             self.addAction(self.condaWidgetActivateAct)
         
         if self.microPythonWidget is not None:
-            self.microPythonWidgetActivateAct = E5Action(
+            self.microPythonWidgetActivateAct = EricAction(
                 self.tr('MicroPython'),
                 self.tr('MicroPython'),
                 QKeySequence(self.tr("Ctrl+Alt+Shift+M")),
@@ -2117,7 +2117,7 @@
             self.actions.append(self.microPythonWidgetActivateAct)
             self.addAction(self.microPythonWidgetActivateAct)
         
-        self.whatsThisAct = E5Action(
+        self.whatsThisAct = EricAction(
             self.tr('What\'s This?'),
             UI.PixmapCache.getIcon("whatsThis"),
             self.tr('&What\'s This?'),
@@ -2135,7 +2135,7 @@
         self.whatsThisAct.triggered.connect(self.__whatsThis)
         self.actions.append(self.whatsThisAct)
 
-        self.helpviewerAct = E5Action(
+        self.helpviewerAct = EricAction(
             self.tr('Helpviewer'),
             UI.PixmapCache.getIcon("help"),
             self.tr('&Helpviewer...'),
@@ -2161,7 +2161,7 @@
         self.__initEricDocAction()
         self.__initPySideDocActions()
       
-        self.versionAct = E5Action(
+        self.versionAct = EricAction(
             self.tr('Show Versions'),
             self.tr('Show &Versions'),
             0, 0, self, 'show_versions')
@@ -2174,7 +2174,7 @@
         self.versionAct.triggered.connect(self.__showVersions)
         self.actions.append(self.versionAct)
 
-        self.checkUpdateAct = E5Action(
+        self.checkUpdateAct = EricAction(
             self.tr('Check for Updates'),
             self.tr('Check for &Updates...'), 0, 0, self, 'check_updates')
         self.checkUpdateAct.setStatusTip(self.tr('Check for Updates'))
@@ -2185,7 +2185,7 @@
         self.checkUpdateAct.triggered.connect(self.performVersionCheck)
         self.actions.append(self.checkUpdateAct)
     
-        self.showVersionsAct = E5Action(
+        self.showVersionsAct = EricAction(
             self.tr('Show downloadable versions'),
             self.tr('Show &downloadable versions...'),
             0, 0, self, 'show_downloadable_versions')
@@ -2200,7 +2200,7 @@
             self.showAvailableVersionsInfo)
         self.actions.append(self.showVersionsAct)
 
-        self.showErrorLogAct = E5Action(
+        self.showErrorLogAct = EricAction(
             self.tr('Show Error Log'),
             self.tr('Show Error &Log...'),
             0, 0, self, 'show_error_log')
@@ -2212,7 +2212,7 @@
         self.showErrorLogAct.triggered.connect(self.__showErrorLog)
         self.actions.append(self.showErrorLogAct)
         
-        self.showInstallInfoAct = E5Action(
+        self.showInstallInfoAct = EricAction(
             self.tr('Show Install Info'),
             self.tr('Show Install &Info...'),
             0, 0, self, 'show_install_info')
@@ -2226,7 +2226,7 @@
         self.showInstallInfoAct.triggered.connect(self.__showInstallInfo)
         self.actions.append(self.showInstallInfoAct)
         
-        self.reportBugAct = E5Action(
+        self.reportBugAct = EricAction(
             self.tr('Report Bug'),
             self.tr('Report &Bug...'),
             0, 0, self, 'report_bug')
@@ -2238,7 +2238,7 @@
         self.reportBugAct.triggered.connect(self.__reportBug)
         self.actions.append(self.reportBugAct)
         
-        self.requestFeatureAct = E5Action(
+        self.requestFeatureAct = EricAction(
             self.tr('Request Feature'),
             self.tr('Request &Feature...'),
             0, 0, self, 'request_feature')
@@ -2253,7 +2253,7 @@
 
         self.utActGrp = createActionGroup(self)
         
-        self.utDialogAct = E5Action(
+        self.utDialogAct = EricAction(
             self.tr('Unittest'),
             UI.PixmapCache.getIcon("unittest"),
             self.tr('&Unittest...'),
@@ -2267,7 +2267,7 @@
         self.utDialogAct.triggered.connect(self.__unittest)
         self.actions.append(self.utDialogAct)
 
-        self.utRestartAct = E5Action(
+        self.utRestartAct = EricAction(
             self.tr('Unittest Restart'),
             UI.PixmapCache.getIcon("unittestRestart"),
             self.tr('&Restart Unittest...'),
@@ -2281,7 +2281,7 @@
         self.utRestartAct.setEnabled(False)
         self.actions.append(self.utRestartAct)
         
-        self.utRerunFailedAct = E5Action(
+        self.utRerunFailedAct = EricAction(
             self.tr('Unittest Rerun Failed'),
             UI.PixmapCache.getIcon("unittestRerunFailed"),
             self.tr('Rerun Failed Tests...'),
@@ -2297,7 +2297,7 @@
         self.utRerunFailedAct.setEnabled(False)
         self.actions.append(self.utRerunFailedAct)
         
-        self.utScriptAct = E5Action(
+        self.utScriptAct = EricAction(
             self.tr('Unittest Script'),
             UI.PixmapCache.getIcon("unittestScript"),
             self.tr('Unittest &Script...'),
@@ -2312,7 +2312,7 @@
         self.utScriptAct.setEnabled(False)
         self.actions.append(self.utScriptAct)
         
-        self.utProjectAct = E5Action(
+        self.utProjectAct = EricAction(
             self.tr('Unittest Project'),
             UI.PixmapCache.getIcon("unittestProject"),
             self.tr('Unittest &Project...'),
@@ -2339,7 +2339,7 @@
                 Utilities.getQtBinariesPath(),
                 Utilities.generateQtToolName("designer"))
         if os.path.exists(designerExe):
-            self.designer4Act = E5Action(
+            self.designer4Act = EricAction(
                 self.tr('Qt-Designer'),
                 UI.PixmapCache.getIcon("designer4"),
                 self.tr('Qt-&Designer...'),
@@ -2365,7 +2365,7 @@
                 Utilities.getQtBinariesPath(),
                 Utilities.generateQtToolName("linguist"))
         if os.path.exists(linguistExe):
-            self.linguist4Act = E5Action(
+            self.linguist4Act = EricAction(
                 self.tr('Qt-Linguist'),
                 UI.PixmapCache.getIcon("linguist4"),
                 self.tr('Qt-&Linguist...'),
@@ -2380,7 +2380,7 @@
         else:
             self.linguist4Act = None
     
-        self.uipreviewerAct = E5Action(
+        self.uipreviewerAct = EricAction(
             self.tr('UI Previewer'),
             UI.PixmapCache.getIcon("uiPreviewer"),
             self.tr('&UI Previewer...'),
@@ -2393,7 +2393,7 @@
         self.uipreviewerAct.triggered.connect(self.__UIPreviewer)
         self.actions.append(self.uipreviewerAct)
         
-        self.trpreviewerAct = E5Action(
+        self.trpreviewerAct = EricAction(
             self.tr('Translations Previewer'),
             UI.PixmapCache.getIcon("trPreviewer"),
             self.tr('&Translations Previewer...'),
@@ -2407,7 +2407,7 @@
         self.trpreviewerAct.triggered.connect(self.__TRPreviewer)
         self.actions.append(self.trpreviewerAct)
         
-        self.diffAct = E5Action(
+        self.diffAct = EricAction(
             self.tr('Compare Files'),
             UI.PixmapCache.getIcon("diffFiles"),
             self.tr('&Compare Files...'),
@@ -2420,7 +2420,7 @@
         self.diffAct.triggered.connect(self.__compareFiles)
         self.actions.append(self.diffAct)
 
-        self.compareAct = E5Action(
+        self.compareAct = EricAction(
             self.tr('Compare Files side by side'),
             UI.PixmapCache.getIcon("compareFiles"),
             self.tr('Compare &Files side by side...'),
@@ -2434,7 +2434,7 @@
         self.compareAct.triggered.connect(self.__compareFilesSbs)
         self.actions.append(self.compareAct)
 
-        self.sqlBrowserAct = E5Action(
+        self.sqlBrowserAct = EricAction(
             self.tr('SQL Browser'),
             UI.PixmapCache.getIcon("sqlBrowser"),
             self.tr('SQL &Browser...'),
@@ -2447,7 +2447,7 @@
         self.sqlBrowserAct.triggered.connect(self.__sqlBrowser)
         self.actions.append(self.sqlBrowserAct)
 
-        self.miniEditorAct = E5Action(
+        self.miniEditorAct = EricAction(
             self.tr('Mini Editor'),
             UI.PixmapCache.getIcon("editor"),
             self.tr('Mini &Editor...'),
@@ -2460,7 +2460,7 @@
         self.miniEditorAct.triggered.connect(self.__openMiniEditor)
         self.actions.append(self.miniEditorAct)
 
-        self.hexEditorAct = E5Action(
+        self.hexEditorAct = EricAction(
             self.tr('Hex Editor'),
             UI.PixmapCache.getIcon("hexEditor"),
             self.tr('&Hex Editor...'),
@@ -2475,7 +2475,7 @@
         self.hexEditorAct.triggered.connect(self.__openHexEditor)
         self.actions.append(self.hexEditorAct)
 
-        self.webBrowserAct = E5Action(
+        self.webBrowserAct = EricAction(
             self.tr('eric Web Browser'),
             UI.PixmapCache.getIcon("ericWeb"),
             self.tr('eric &Web Browser...'),
@@ -2489,7 +2489,7 @@
         self.webBrowserAct.triggered.connect(self.__startWebBrowser)
         self.actions.append(self.webBrowserAct)
 
-        self.iconEditorAct = E5Action(
+        self.iconEditorAct = EricAction(
             self.tr('Icon Editor'),
             UI.PixmapCache.getIcon("iconEditor"),
             self.tr('&Icon Editor...'),
@@ -2503,7 +2503,7 @@
         self.iconEditorAct.triggered.connect(self.__editPixmap)
         self.actions.append(self.iconEditorAct)
 
-        self.snapshotAct = E5Action(
+        self.snapshotAct = EricAction(
             self.tr('Snapshot'),
             UI.PixmapCache.getIcon("ericSnap"),
             self.tr('&Snapshot...'),
@@ -2518,7 +2518,7 @@
         self.snapshotAct.triggered.connect(self.__snapshot)
         self.actions.append(self.snapshotAct)
 
-        self.prefAct = E5Action(
+        self.prefAct = EricAction(
             self.tr('Preferences'),
             UI.PixmapCache.getIcon("configure"),
             self.tr('&Preferences...'),
@@ -2534,7 +2534,7 @@
         self.prefAct.setMenuRole(QAction.MenuRole.PreferencesRole)
         self.actions.append(self.prefAct)
 
-        self.prefExportAct = E5Action(
+        self.prefExportAct = EricAction(
             self.tr('Export Preferences'),
             UI.PixmapCache.getIcon("configureExport"),
             self.tr('E&xport Preferences...'),
@@ -2548,7 +2548,7 @@
         self.prefExportAct.triggered.connect(self.__exportPreferences)
         self.actions.append(self.prefExportAct)
 
-        self.prefImportAct = E5Action(
+        self.prefImportAct = EricAction(
             self.tr('Import Preferences'),
             UI.PixmapCache.getIcon("configureImport"),
             self.tr('I&mport Preferences...'),
@@ -2562,7 +2562,7 @@
         self.prefImportAct.triggered.connect(self.__importPreferences)
         self.actions.append(self.prefImportAct)
 
-        self.reloadAPIsAct = E5Action(
+        self.reloadAPIsAct = EricAction(
             self.tr('Reload APIs'),
             self.tr('Reload &APIs'),
             0, 0, self, 'reload_apis')
@@ -2575,7 +2575,7 @@
         self.reloadAPIsAct.triggered.connect(self.__reloadAPIs)
         self.actions.append(self.reloadAPIsAct)
 
-        self.showExternalToolsAct = E5Action(
+        self.showExternalToolsAct = EricAction(
             self.tr('Show external tools'),
             UI.PixmapCache.getIcon("showPrograms"),
             self.tr('Show external &tools'),
@@ -2591,7 +2591,7 @@
             self.__showExternalTools)
         self.actions.append(self.showExternalToolsAct)
 
-        self.configViewProfilesAct = E5Action(
+        self.configViewProfilesAct = EricAction(
             self.tr('View Profiles'),
             UI.PixmapCache.getIcon("configureViewProfiles"),
             self.tr('&View Profiles...'),
@@ -2608,7 +2608,7 @@
             self.__configViewProfiles)
         self.actions.append(self.configViewProfilesAct)
 
-        self.configToolBarsAct = E5Action(
+        self.configToolBarsAct = EricAction(
             self.tr('Toolbars'),
             UI.PixmapCache.getIcon("toolbarsConfigure"),
             self.tr('Tool&bars...'),
@@ -2623,7 +2623,7 @@
         self.configToolBarsAct.triggered.connect(self.__configToolBars)
         self.actions.append(self.configToolBarsAct)
 
-        self.shortcutsAct = E5Action(
+        self.shortcutsAct = EricAction(
             self.tr('Keyboard Shortcuts'),
             UI.PixmapCache.getIcon("configureShortcuts"),
             self.tr('Keyboard &Shortcuts...'),
@@ -2638,7 +2638,7 @@
         self.shortcutsAct.triggered.connect(self.__configShortcuts)
         self.actions.append(self.shortcutsAct)
 
-        self.exportShortcutsAct = E5Action(
+        self.exportShortcutsAct = EricAction(
             self.tr('Export Keyboard Shortcuts'),
             UI.PixmapCache.getIcon("exportShortcuts"),
             self.tr('&Export Keyboard Shortcuts...'),
@@ -2652,7 +2652,7 @@
         self.exportShortcutsAct.triggered.connect(self.__exportShortcuts)
         self.actions.append(self.exportShortcutsAct)
 
-        self.importShortcutsAct = E5Action(
+        self.importShortcutsAct = EricAction(
             self.tr('Import Keyboard Shortcuts'),
             UI.PixmapCache.getIcon("importShortcuts"),
             self.tr('&Import Keyboard Shortcuts...'),
@@ -2667,7 +2667,7 @@
         self.actions.append(self.importShortcutsAct)
 
         if SSL_AVAILABLE:
-            self.certificatesAct = E5Action(
+            self.certificatesAct = EricAction(
                 self.tr('Manage SSL Certificates'),
                 UI.PixmapCache.getIcon("certificates"),
                 self.tr('Manage SSL Certificates...'),
@@ -2683,7 +2683,7 @@
                 self.__showCertificatesDialog)
             self.actions.append(self.certificatesAct)
         
-        self.editMessageFilterAct = E5Action(
+        self.editMessageFilterAct = EricAction(
             self.tr('Edit Message Filters'),
             UI.PixmapCache.getIcon("warning"),
             self.tr('Edit Message Filters...'),
@@ -2697,10 +2697,10 @@
             """ window.</p>"""
         ))
         self.editMessageFilterAct.triggered.connect(
-            E5ErrorMessage.editMessageFilters)
+            EricErrorMessage.editMessageFilters)
         self.actions.append(self.editMessageFilterAct)
 
-        self.clearPrivateDataAct = E5Action(
+        self.clearPrivateDataAct = EricAction(
             self.tr('Clear private data'),
             UI.PixmapCache.getIcon("clearPrivateData"),
             self.tr('Clear private data'),
@@ -2717,7 +2717,7 @@
             self.__clearPrivateData)
         self.actions.append(self.clearPrivateDataAct)
         
-        self.viewmanagerActivateAct = E5Action(
+        self.viewmanagerActivateAct = EricAction(
             self.tr('Activate current editor'),
             self.tr('Activate current editor'),
             QKeySequence(self.tr("Alt+Shift+E")),
@@ -2727,7 +2727,7 @@
         self.actions.append(self.viewmanagerActivateAct)
         self.addAction(self.viewmanagerActivateAct)
 
-        self.nextTabAct = E5Action(
+        self.nextTabAct = EricAction(
             self.tr('Show next'),
             self.tr('Show next'),
             QKeySequence(self.tr('Ctrl+Alt+Tab')), 0,
@@ -2736,7 +2736,7 @@
         self.actions.append(self.nextTabAct)
         self.addAction(self.nextTabAct)
         
-        self.prevTabAct = E5Action(
+        self.prevTabAct = EricAction(
             self.tr('Show previous'),
             self.tr('Show previous'),
             QKeySequence(self.tr('Shift+Ctrl+Alt+Tab')), 0,
@@ -2745,7 +2745,7 @@
         self.actions.append(self.prevTabAct)
         self.addAction(self.prevTabAct)
         
-        self.switchTabAct = E5Action(
+        self.switchTabAct = EricAction(
             self.tr('Switch between tabs'),
             self.tr('Switch between tabs'),
             QKeySequence(self.tr('Ctrl+1')), 0,
@@ -2754,7 +2754,7 @@
         self.actions.append(self.switchTabAct)
         self.addAction(self.switchTabAct)
         
-        self.pluginInfoAct = E5Action(
+        self.pluginInfoAct = EricAction(
             self.tr('Plugin Infos'),
             UI.PixmapCache.getIcon("plugin"),
             self.tr('&Plugin Infos...'), 0, 0, self, 'plugin_infos')
@@ -2767,7 +2767,7 @@
         self.pluginInfoAct.triggered.connect(self.__showPluginInfo)
         self.actions.append(self.pluginInfoAct)
         
-        self.pluginInstallAct = E5Action(
+        self.pluginInstallAct = EricAction(
             self.tr('Install Plugins'),
             UI.PixmapCache.getIcon("pluginInstall"),
             self.tr('&Install Plugins...'),
@@ -2780,7 +2780,7 @@
         self.pluginInstallAct.triggered.connect(self.__installPlugins)
         self.actions.append(self.pluginInstallAct)
         
-        self.pluginDeinstallAct = E5Action(
+        self.pluginDeinstallAct = EricAction(
             self.tr('Uninstall Plugin'),
             UI.PixmapCache.getIcon("pluginUninstall"),
             self.tr('&Uninstall Plugin...'),
@@ -2793,7 +2793,7 @@
         self.pluginDeinstallAct.triggered.connect(self.__deinstallPlugin)
         self.actions.append(self.pluginDeinstallAct)
 
-        self.pluginRepoAct = E5Action(
+        self.pluginRepoAct = EricAction(
             self.tr('Plugin Repository'),
             UI.PixmapCache.getIcon("pluginRepository"),
             self.tr('Plugin &Repository...'),
@@ -2808,7 +2808,7 @@
         self.pluginRepoAct.triggered.connect(self.showPluginsAvailable)
         self.actions.append(self.pluginRepoAct)
         
-        self.virtualenvManagerAct = E5Action(
+        self.virtualenvManagerAct = EricAction(
             self.tr('Virtualenv Manager'),
             UI.PixmapCache.getIcon("virtualenv"),
             self.tr('&Virtualenv Manager...'),
@@ -2825,7 +2825,7 @@
             self.virtualenvManager.showVirtualenvManagerDialog)
         self.actions.append(self.virtualenvManagerAct)
         
-        self.virtualenvConfigAct = E5Action(
+        self.virtualenvConfigAct = EricAction(
             self.tr('Virtualenv Configurator'),
             UI.PixmapCache.getIcon("virtualenvConfig"),
             self.tr('Virtualenv &Configurator...'),
@@ -2859,7 +2859,7 @@
         """
         Private slot to initialize the action to show the Qt documentation.
         """
-        self.qt5DocAct = E5Action(
+        self.qt5DocAct = EricAction(
             self.tr('Qt5 Documentation'),
             self.tr('Qt5 Documentation'),
             0, 0, self, 'qt5_documentation')
@@ -2874,7 +2874,7 @@
         self.qt5DocAct.triggered.connect(lambda: self.__showQtDoc(5))
         self.actions.append(self.qt5DocAct)
       
-        self.qt6DocAct = E5Action(
+        self.qt6DocAct = EricAction(
             self.tr('Qt6 Documentation'),
             self.tr('Qt6 Documentation'),
             0, 0, self, 'qt6_documentation')
@@ -2889,7 +2889,7 @@
         self.qt6DocAct.triggered.connect(lambda: self.__showQtDoc(6))
         self.actions.append(self.qt6DocAct)
       
-        self.pyqt5DocAct = E5Action(
+        self.pyqt5DocAct = EricAction(
             self.tr('PyQt5 Documentation'),
             self.tr('PyQt5 Documentation'),
             0, 0, self, 'pyqt5_documentation')
@@ -2906,7 +2906,7 @@
             lambda: self.__showPyQtDoc(variant=5))
         self.actions.append(self.pyqt5DocAct)
       
-        self.pyqt6DocAct = E5Action(
+        self.pyqt6DocAct = EricAction(
             self.tr('PyQt6 Documentation'),
             self.tr('PyQt6 Documentation'),
             0, 0, self, 'pyqt6_documentation')
@@ -2928,7 +2928,7 @@
         Private slot to initialize the actions to show the Python
         documentation.
         """
-        self.pythonDocAct = E5Action(
+        self.pythonDocAct = EricAction(
             self.tr('Python 3 Documentation'),
             self.tr('Python 3 Documentation'),
             0, 0, self, 'python3_documentation')
@@ -2950,7 +2950,7 @@
         """
         Private slot to initialize the action to show the eric documentation.
         """
-        self.ericDocAct = E5Action(
+        self.ericDocAct = EricAction(
             self.tr("Eric API Documentation"),
             self.tr('Eric API Documentation'),
             0, 0, self, 'eric_documentation')
@@ -2971,7 +2971,7 @@
         documentation.
         """
         if Utilities.checkPyside(variant=2):
-            self.pyside2DocAct = E5Action(
+            self.pyside2DocAct = EricAction(
                 self.tr('PySide2 Documentation'),
                 self.tr('PySide2 Documentation'),
                 0, 0, self, 'pyside2_documentation')
@@ -2991,7 +2991,7 @@
             self.pyside2DocAct = None
         
         if Utilities.checkPyside(variant=6):
-            self.pyside6DocAct = E5Action(
+            self.pyside6DocAct = EricAction(
                 self.tr('PySide6 Documentation'),
                 self.tr('PySide6 Documentation'),
                 0, 0, self, 'pyside6_documentation')
@@ -3529,21 +3529,21 @@
         self.__statusBar = self.statusBar()
         self.__statusBar.setSizeGripEnabled(True)
 
-        self.sbLanguage = E5ClickableLabel(self.__statusBar)
+        self.sbLanguage = EricClickableLabel(self.__statusBar)
         self.__statusBar.addPermanentWidget(self.sbLanguage)
         self.sbLanguage.setWhatsThis(self.tr(
             """<p>This part of the status bar displays the"""
             """ current editors language.</p>"""
         ))
 
-        self.sbEncoding = E5ClickableLabel(self.__statusBar)
+        self.sbEncoding = EricClickableLabel(self.__statusBar)
         self.__statusBar.addPermanentWidget(self.sbEncoding)
         self.sbEncoding.setWhatsThis(self.tr(
             """<p>This part of the status bar displays the"""
             """ current editors encoding.</p>"""
         ))
 
-        self.sbEol = E5ClickableLabel(self.__statusBar)
+        self.sbEol = EricClickableLabel(self.__statusBar)
         self.__statusBar.addPermanentWidget(self.sbEol)
         self.sbEol.setWhatsThis(self.tr(
             """<p>This part of the status bar displays the"""
@@ -3571,7 +3571,7 @@
             """ of the current editor.</p>"""
         ))
         
-        self.sbZoom = E5ZoomWidget(
+        self.sbZoom = EricZoomWidget(
             UI.PixmapCache.getPixmap("zoomOut"),
             UI.PixmapCache.getPixmap("zoomIn"),
             UI.PixmapCache.getPixmap("zoomReset"),
@@ -3687,7 +3687,7 @@
         Private slot to show the Settings menu.
         """
         self.editMessageFilterAct.setEnabled(
-            E5ErrorMessage.messageHandlerInstalled())
+            EricErrorMessage.messageHandlerInstalled())
         
         self.showMenu.emit("Settings", self.__menus["settings"])
     
@@ -3781,7 +3781,7 @@
                         ).format(Program, Version)
         versionText += self.tr("""</table>""")
         
-        E5MessageBox.about(self, Program, versionText)
+        EricMessageBox.about(self, Program, versionText)
         
     def __reportBug(self):
         """
@@ -3810,7 +3810,7 @@
             if not Preferences.getUser("UseGoogleMailOAuth2") and (
                 Preferences.getUser("Email") == "" or
                     Preferences.getUser("MailServer") == ""):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Report Bug"),
                     self.tr(
@@ -3931,11 +3931,11 @@
         editor = MiniEditor(parent=self)
         editor.show()
         
-    def addE5Actions(self, actions, actionType):
+    def addEricActions(self, actions, actionType):
         """
         Public method to add actions to the list of actions.
         
-        @param actions list of actions to be added (list of E5Action)
+        @param actions list of actions to be added (list of EricAction)
         @param actionType string denoting the action set to add to.
             It must be one of "ui" or "wizards".
         """
@@ -3944,11 +3944,11 @@
         elif actionType == 'wizards':
             self.wizardsActions.extend(actions)
         
-    def removeE5Actions(self, actions, actionType='ui'):
+    def removeEricActions(self, actions, actionType='ui'):
         """
         Public method to remove actions from the list of actions.
         
-        @param actions list of actions (list of E5Action)
+        @param actions list of actions (list of EricAction)
         @param actionType string denoting the action set to remove from.
             It must be one of "ui" or "wizards".
         """
@@ -3965,7 +3965,7 @@
         
         @param actionType string denoting the action set to get.
             It must be one of "ui" or "wizards".
-        @return list of all actions (list of E5Action)
+        @return list of all actions (list of EricAction)
         """
         if actionType == 'ui':
             return self.actions[:]
@@ -4111,7 +4111,7 @@
         Private method to quit the application.
         """
         if self.__shutdown():
-            e5App().closeAllWindows()
+            ericApp().closeAllWindows()
     
     @pyqtSlot()
     def __restart(self, ask=False):
@@ -4122,7 +4122,7 @@
         @type bool
         """
         res = (
-            E5MessageBox.yesNo(
+            EricMessageBox.yesNo(
                 self,
                 self.tr("Restart application"),
                 self.tr(
@@ -4133,7 +4133,7 @@
         )
         
         if res and self.__shutdown():
-            e5App().closeAllWindows()
+            ericApp().closeAllWindows()
             program = sys.executable
             eric7 = os.path.join(getConfig("ericDir"), "eric7.py")
             args = [eric7]
@@ -5035,7 +5035,7 @@
                 if os.path.isfile(fn) and os.path.getsize(fn):
                     args.append(fn)
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr('Problem'),
                         self.tr(
@@ -5044,7 +5044,7 @@
                         .format(fn))
                     return
             except OSError:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr('Problem'),
                     self.tr(
@@ -5066,7 +5066,7 @@
         if designer:
             proc = QProcess()
             if not proc.startDetached(designer, args):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr('Process Generation Error'),
                     self.tr(
@@ -5075,7 +5075,7 @@
                     ).format(designer)
                 )
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -5105,7 +5105,7 @@
                 ):
                     args.append(fn)
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr('Problem'),
                         self.tr(
@@ -5114,7 +5114,7 @@
                         .format(fn))
                     return
             except OSError:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr('Problem'),
                     self.tr(
@@ -5136,7 +5136,7 @@
         if linguist:
             proc = QProcess()
             if not proc.startDetached(linguist, args):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr('Process Generation Error'),
                     self.tr(
@@ -5145,7 +5145,7 @@
                     ).format(linguist)
                 )
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -5180,7 +5180,7 @@
         if assistant:
             proc = QProcess()
             if not proc.startDetached(assistant, args):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr('Process Generation Error'),
                     self.tr(
@@ -5189,7 +5189,7 @@
                     ).format(assistant)
                 )
         else:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -5213,7 +5213,7 @@
         """
         customViewer = Preferences.getHelp("CustomViewer")
         if not customViewer:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Help"),
                 self.tr(
@@ -5227,7 +5227,7 @@
             args.append(home)
         
         if not proc.startDetached(customViewer, args):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -5247,7 +5247,7 @@
             args.append(home)
             
             if not proc.startDetached("hh", args):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr('Process Generation Error'),
                     self.tr(
@@ -5275,7 +5275,7 @@
                 if os.path.isfile(fn) and os.path.getsize(fn):
                     args.append(fn)
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr('Problem'),
                         self.tr(
@@ -5284,7 +5284,7 @@
                         .format(fn))
                     return
             except OSError:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr('Problem'),
                     self.tr(
@@ -5297,7 +5297,7 @@
             not os.path.isfile(viewer) or
             not proc.startDetached(sys.executable, args)
         ):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -5331,7 +5331,7 @@
                         args.append(fn)
                     else:
                         if not ignore:
-                            E5MessageBox.critical(
+                            EricMessageBox.critical(
                                 self,
                                 self.tr('Problem'),
                                 self.tr(
@@ -5341,7 +5341,7 @@
                             return
                 except OSError:
                     if not ignore:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self,
                             self.tr('Problem'),
                             self.tr(
@@ -5354,7 +5354,7 @@
             not os.path.isfile(viewer) or
             not proc.startDetached(sys.executable, args)
         ):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -5377,7 +5377,7 @@
             not os.path.isfile(browser) or
             not proc.startDetached(sys.executable, args)
         ):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -5462,7 +5462,7 @@
             not os.path.isfile(snap) or
             not proc.startDetached(sys.executable, args)
         ):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -5485,7 +5485,7 @@
                         self.__startToolProcess(tool)
                         return
                 
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("External Tools"),
                     self.tr(
@@ -5494,7 +5494,7 @@
                     .format(toolMenuText, toolGroupName))
                 return
         
-        E5MessageBox.information(
+        EricMessageBox.information(
             self,
             self.tr("External Tools"),
             self.tr("""No toolgroup entry '{0}' found.""")
@@ -5549,7 +5549,7 @@
         
         proc.start(program, args)
         if not proc.waitForStarted():
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Process Generation Error'),
                 self.tr(
@@ -5639,7 +5639,7 @@
             if Utilities.isWindowsPlatform():
                 venvName = Preferences.getDebugger("Python3VirtualEnv")
                 interpreter = (
-                    e5App().getObject("VirtualEnvManager")
+                    ericApp().getObject("VirtualEnvManager")
                     .getVirtualenvInterpreter(venvName)
                 )
                 if interpreter:
@@ -5668,7 +5668,7 @@
                 home = pythonDocDir
             
             if not os.path.exists(home):
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Documentation Missing"),
                     self.tr("""<p>The documentation starting point"""
@@ -5728,7 +5728,7 @@
                 home = qtDocDir
             
             if not os.path.exists(home):
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Documentation Missing"),
                     self.tr("""<p>The documentation starting point"""
@@ -5767,7 +5767,7 @@
                 "PYQT{0}DOCDIR".format(variant), None)
         
         if not pyqtDocDir:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Documentation"),
                 self.tr("""<p>The PyQt{0} documentation starting point"""
@@ -5794,7 +5794,7 @@
                     home = pyqtDocDir
             
             if not home or not os.path.exists(home):
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Documentation Missing"),
                     self.tr("""<p>The documentation starting point"""
@@ -5833,7 +5833,7 @@
         
         if not home.startswith(("http://", "https://", "qthelp://")):
             if not os.path.exists(home):
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Documentation Missing"),
                     self.tr("""<p>The documentation starting point"""
@@ -5872,7 +5872,7 @@
                 "PYSIDE{0}DOCDIR".format(variant), None)
         
         if not pysideDocDir:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Documentation"),
                 self.tr("""<p>The PySide{0} documentation starting point"""
@@ -5889,7 +5889,7 @@
             else:
                 home = pysideDocDir
             if not os.path.exists(home):
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Documentation Missing"),
                     self.tr("""<p>The documentation starting point"""
@@ -5985,7 +5985,7 @@
                 ]
                 process.start(sys.executable, args)
                 if not process.waitForStarted():
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         self,
                         self.tr("Start Web Browser"),
                         self.tr("""The eric web browser could not be"""
@@ -6049,7 +6049,7 @@
                 # Process exited prematurely due to missing pre-requisites
                 return -1
         if res <= 0:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Start Web Browser"),
                 self.tr("""<p>The eric web browser is not started.</p>"""
@@ -6092,7 +6092,7 @@
         """
         started = QDesktopServices.openUrl(QUrl(home))
         if not started:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('Open Browser'),
                 self.tr('Could not start a web browser'))
@@ -6166,7 +6166,7 @@
         
         if Preferences.getUI("SingleApplicationMode"):
             if self.SAServer is None:
-                self.SAServer = E5SingleApplicationServer()
+                self.SAServer = EricSingleApplicationServer()
         else:
             if self.SAServer is not None:
                 self.SAServer.shutdown()
@@ -6283,8 +6283,8 @@
         """
         Private slot to configure the various toolbars.
         """
-        from E5Gui.E5ToolBarDialog import E5ToolBarDialog
-        dlg = E5ToolBarDialog(self.toolbarManager)
+        from E5Gui.EricToolBarDialog import EricToolBarDialog
+        dlg = EricToolBarDialog(self.toolbarManager)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             Preferences.setUI(
                 "ToolbarManagerState", self.toolbarManager.saveState())
@@ -6303,13 +6303,13 @@
         """
         Private slot to export the keyboard shortcuts.
         """
-        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             None,
             self.tr("Export Keyboard Shortcuts"),
             "",
             self.tr("Keyboard Shortcuts File (*.ekj)"),
             "",
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fn:
             return
@@ -6321,7 +6321,7 @@
                 fn += ex
         
         ok = (
-            E5MessageBox.yesNo(
+            EricMessageBox.yesNo(
                 self,
                 self.tr("Export Keyboard Shortcuts"),
                 self.tr("""<p>The keyboard shortcuts file <b>{0}</b> exists"""
@@ -6338,7 +6338,7 @@
         """
         Private slot to import the keyboard shortcuts.
         """
-        fn = E5FileDialog.getOpenFileName(
+        fn = EricFileDialog.getOpenFileName(
             None,
             self.tr("Import Keyboard Shortcuts"),
             "",
@@ -6406,7 +6406,7 @@
         """
         from Debugger.DebugClientCapabilities import HasUnittest
         self.__setWindowCaption(project=self.project.name)
-        cap = e5App().getObject("DebugServer").getClientCapabilities(
+        cap = ericApp().getObject("DebugServer").getClientCapabilities(
             self.project.getProjectLanguage())
         self.utProjectAct.setEnabled(cap & HasUnittest)
         self.utProjectOpen = cap & HasUnittest
@@ -6458,7 +6458,7 @@
             len(self.__menus["wizards"].actions()) > 0)
         
         if fn and str(fn) != "None":
-            dbs = e5App().getObject("DebugServer")
+            dbs = ericApp().getObject("DebugServer")
             for language in dbs.getSupportedLanguages():
                 exts = dbs.getExtensions(language)
                 if fn.endswith(exts):
@@ -6481,7 +6481,7 @@
         fn = editor.getFileName() if editor else None
         
         if fn:
-            dbs = e5App().getObject("DebugServer")
+            dbs = ericApp().getObject("DebugServer")
             for language in dbs.getSupportedLanguages():
                 exts = dbs.getExtensions(language)
                 if fn.endswith(exts):
@@ -6524,7 +6524,7 @@
                     reader.readXML()
                     f.close()
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Read Tasks"),
                         self.tr(
@@ -6572,7 +6572,7 @@
                 fn = os.path.join(Utilities.getConfigDir(),
                                   "eric7session.e5s")
                 if not os.path.exists(fn):
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Read Session"),
                         self.tr("<p>The session file <b>{0}</b> could not"
@@ -6599,7 +6599,7 @@
                     f.close()
                     res = True
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("Read session"),
                         self.tr("<p>The session file <b>{0}</b> could not be"
@@ -6615,7 +6615,7 @@
         """
         Private slot to save a session to disk.
         """
-        sessionFile, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        sessionFile, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self,
             self.tr("Save Session"),
             Utilities.getHomeDir(),
@@ -6637,7 +6637,7 @@
         """
         Private slot to load a session from disk.
         """
-        sessionFile = E5FileDialog.getOpenFileName(
+        sessionFile = EricFileDialog.getOpenFileName(
             self,
             self.tr("Load session"),
             Utilities.getHomeDir(),
@@ -6687,7 +6687,7 @@
             fn = os.path.join(Utilities.getConfigDir(),
                               "eric7_crash_session.esj")
             if os.path.exists(fn):
-                yes = E5MessageBox.yesNo(
+                yes = EricMessageBox.yesNo(
                     self,
                     self.tr("Crash Session found!"),
                     self.tr("""A session file of a crashed session was"""
@@ -6892,7 +6892,7 @@
                     if QFileInfo(fname).isFile():
                         self.viewmanager.openSourceFile(fname)
                     else:
-                        E5MessageBox.information(
+                        EricMessageBox.information(
                             self,
                             self.tr("Drop Error"),
                             self.tr("""<p><b>{0}</b> is not a file.</p>""")
@@ -6916,7 +6916,7 @@
             event.accept()
             if not self.inCloseEvent:
                 self.inCloseEvent = True
-                QTimer.singleShot(0, e5App().closeAllWindows)
+                QTimer.singleShot(0, ericApp().closeAllWindows)
         else:
             event.ignore()
 
@@ -7054,7 +7054,7 @@
         self.__versionCheckCanceled = False
         if manual:
             if self.__versionCheckProgress is None:
-                self.__versionCheckProgress = E5ProgressDialog(
+                self.__versionCheckProgress = EricProgressDialog(
                     "", self.tr("&Cancel"),
                     0, len(self.__httpAlternatives),
                     self.tr("%v/%m"), self)
@@ -7115,14 +7115,14 @@
                 Preferences.Prefs.settings.setValue(
                     "Updates/FirstFailedCheckDate", firstFailure)
                 if self.manualUpdatesCheck:
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         self,
                         self.tr("Error getting versions information"),
                         self.tr("""The versions information could not be"""
                                 """ downloaded."""
                                 """ Please go online and try again."""))
                 elif failedDuration > 7:
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         self,
                         self.tr("Error getting versions information"),
                         self.tr("""The versions information could not be"""
@@ -7180,7 +7180,7 @@
                     installedSnapshotDate = VersionOnly.rsplit("-", 1)[-1]
                     availableSnapshotDate = versions[2].rsplit("-", 1)[-1]
                     if availableSnapshotDate > installedSnapshotDate:
-                        res = E5MessageBox.yesNo(
+                        res = EricMessageBox.yesNo(
                             self,
                             self.tr("Update available"),
                             self.tr(
@@ -7192,7 +7192,7 @@
                         url = res and versions[3] or ''
                 else:
                     if self.manualUpdatesCheck:
-                        E5MessageBox.information(
+                        EricMessageBox.information(
                             self,
                             self.tr("Update Check"),
                             self.tr(
@@ -7202,7 +7202,7 @@
             elif VersionOnly.startswith(("rev_", "@@")):
                 # check installation from source
                 if self.manualUpdatesCheck:
-                    E5MessageBox.information(
+                    EricMessageBox.information(
                         self,
                         self.tr("Update Check"),
                         self.tr(
@@ -7214,7 +7214,7 @@
                 installedVersionTuple = self.__versionToTuple(VersionOnly)
                 availableVersionTuple = self.__versionToTuple(versions[0])
                 if availableVersionTuple > installedVersionTuple:
-                    res = E5MessageBox.yesNo(
+                    res = EricMessageBox.yesNo(
                         self,
                         self.tr("Update available"),
                         self.tr(
@@ -7226,14 +7226,14 @@
                     url = res and versions[1] or ''
                 else:
                     if self.manualUpdatesCheck:
-                        E5MessageBox.information(
+                        EricMessageBox.information(
                             self,
                             self.tr("eric is up to date"),
                             self.tr(
                                 """You are using the latest version of"""
                                 """ eric"""))
         except (IndexError, TypeError):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Error during updates check"),
                 self.tr("""Could not perform updates check."""))
@@ -7274,12 +7274,12 @@
             line += 2
         versionText += self.tr("""</table>""")
         
-        self.__versionsDialog = E5MessageBox.E5MessageBox(
-            E5MessageBox.NoIcon,
+        self.__versionsDialog = EricMessageBox.EricMessageBox(
+            EricMessageBox.NoIcon,
             Program,
             versionText,
             modal=False,
-            buttons=E5MessageBox.Ok,
+            buttons=EricMessageBox.Ok,
             parent=self
         )
         self.__versionsDialog.setIconPixmap(
@@ -7309,7 +7309,7 @@
         if not Preferences.isConfigured():
             self.__initDebugToolbarsLayout()
             
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("First time usage"),
                 self.tr("""eric has not been configured yet. """
@@ -7328,11 +7328,11 @@
         workspace = Preferences.getMultiProject("Workspace")
         if workspace == "":
             default = Utilities.getHomeDir()
-            workspace = E5FileDialog.getExistingDirectory(
+            workspace = EricFileDialog.getExistingDirectory(
                 None,
                 self.tr("Select Workspace Directory"),
                 default,
-                E5FileDialog.Option(0))
+                EricFileDialog.Option(0))
             Preferences.setMultiProject("Workspace", workspace)
     
     def versionIsNewer(self, required, snapshot=None):
--- a/eric7/Utilities/BackgroundService.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Utilities/BackgroundService.py	Sat May 22 18:51:46 2021 +0200
@@ -19,8 +19,8 @@
 from PyQt6.QtWidgets import QApplication
 from PyQt6.QtNetwork import QTcpServer, QHostAddress
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 import Preferences
 import Utilities
 import Globals
@@ -69,7 +69,7 @@
         print('Background Service listening on: {0:d}'.format(port))
         # __IGNORE_WARNING__
         venvName = Preferences.getDebugger("Python3VirtualEnv")
-        interpreter = e5App().getObject(
+        interpreter = ericApp().getObject(
             "VirtualEnvManager").getVirtualenvInterpreter(venvName)
         if not interpreter:
             interpreter = sys.executable.replace("w.exe", ".exe")
@@ -188,7 +188,7 @@
             
             if fx == 'INIT':
                 if data != "ok":
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         None,
                         self.tr("Initialization of Background Service"),
                         self.tr(
@@ -202,7 +202,7 @@
                 # Call sys.excepthook(type, value, traceback) to emulate the
                 # exception which was caught on the client
                 sys.excepthook(*data)
-                res = E5MessageBox.question(
+                res = EricMessageBox.question(
                     None,
                     self.tr("Restart background client?"),
                     self.tr(
@@ -220,10 +220,10 @@
                         "<p>Note: The client can be restarted by opening and"
                         " accepting the preferences dialog or reloading/"
                         "changing the project.</p>").format(lang),
-                    E5MessageBox.Yes | E5MessageBox.No | E5MessageBox.Retry,
-                    E5MessageBox.Yes)
+                    EricMessageBox.Yes | EricMessageBox.No | EricMessageBox.Retry,
+                    EricMessageBox.Yes)
                 
-                if res == E5MessageBox.Retry:
+                if res == EricMessageBox.Retry:
                     self.enqueueRequest(*self.runningJob)
                 else:
                     fx, lng, fn, data = self.runningJob
@@ -232,7 +232,7 @@
                             "An error in Eric's background client stopped the"
                             " service.")
                         )
-                if res != E5MessageBox.No:
+                if res != EricMessageBox.No:
                     self.isWorking = None
                     self.restartService(lang, True)
                     return
@@ -267,7 +267,7 @@
         Public slot to restart the built in languages.
         """
         venvName = Preferences.getDebugger("Python3VirtualEnv")
-        interpreter = e5App().getObject(
+        interpreter = ericApp().getObject(
             "VirtualEnvManager").getVirtualenvInterpreter(venvName)
         if not interpreter:
             interpreter = sys.executable.replace("w.exe", ".exe")
@@ -437,7 +437,7 @@
         
         # Syntax check the open editors again
         try:
-            vm = e5App().getObject("ViewManager")
+            vm = ericApp().getObject("ViewManager")
         except KeyError:
             return
         for editor in vm.getOpenEditors():
@@ -462,7 +462,7 @@
                 )
             self.isWorking = None
             
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr('Background client disconnected.'),
                 self.tr(
--- a/eric7/Utilities/__init__.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Utilities/__init__.py	Sat May 22 18:51:46 2021 +0200
@@ -56,7 +56,7 @@
     getPyQt5ModulesDirectory, getQtBinariesPath, getPyQtToolsPath,
     qVersionTuple)
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from UI.Info import Program, Version
 
@@ -1343,7 +1343,7 @@
     """
     if code in ["C", "%C"]:
         # column of the cursor of the current editor
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw is None:
             column = -1
         else:
@@ -1351,7 +1351,7 @@
         return "{0:d}".format(column)
     elif code in ["D", "%D"]:
         # directory of active editor
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw is None:
             dn = "not_available"
         else:
@@ -1363,7 +1363,7 @@
         return dn
     elif code in ["F", "%F"]:
         # filename (complete) of active editor
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw is None:
             fn = "not_available"
         else:
@@ -1376,7 +1376,7 @@
         return getHomeDir()
     elif code in ["L", "%L"]:
         # line of the cursor of the current editor
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw is None:
             line = 0
         else:
@@ -1384,13 +1384,13 @@
         return "{0:d}".format(line)
     elif code in ["P", "%P"]:
         # project path
-        projectPath = e5App().getObject("Project").getProjectPath()
+        projectPath = ericApp().getObject("Project").getProjectPath()
         if not projectPath:
             projectPath = "not_available"
         return projectPath
     elif code in ["S", "%S"]:
         # selected text of the current editor
-        aw = e5App().getObject("ViewManager").activeWindow()
+        aw = ericApp().getObject("ViewManager").activeWindow()
         if aw is None:
             text = "not_available"
         else:
@@ -1525,7 +1525,7 @@
     }
     
     if not editor:
-        viewManager = e5App().getObject('ViewManager')
+        viewManager = ericApp().getObject('ViewManager')
         editor = viewManager.getOpenEditor(filename)
     
     # Maybe the user has changed the language
@@ -1539,7 +1539,7 @@
         flags = extractFlags(source)
         ext = os.path.splitext(filename)[1]
         py3Ext = Preferences.getPython("Python3Extensions")
-        project = e5App().getObject('Project')
+        project = ericApp().getObject('Project')
         basename = os.path.basename(filename)
         
         if "FileType" in flags:
@@ -1781,7 +1781,7 @@
         venvName = Preferences.getQt("PySide{0}VenvName".format(variant))
         if not venvName:
             venvName = Preferences.getDebugger("Python3VirtualEnv")
-        interpreter = e5App().getObject(
+        interpreter = ericApp().getObject(
             "VirtualEnvManager").getVirtualenvInterpreter(venvName)
         if interpreter == "" or not isinpath(interpreter):
             interpreter = sys.executable
@@ -1813,7 +1813,7 @@
     venvName = Preferences.getQt("PySide{0}VenvName".format(variant))
     if not venvName:
         venvName = Preferences.getDebugger("Python3VirtualEnv")
-    interpreter = e5App().getObject(
+    interpreter = ericApp().getObject(
         "VirtualEnvManager").getVirtualenvInterpreter(venvName)
     if interpreter == "" or not isinpath(interpreter):
         interpreter = sys.executable
@@ -1898,7 +1898,7 @@
     @rtype str
     """
     info = []
-    app = e5App()
+    app = ericApp()
     if app is not None:
         with contextlib.suppress(KeyError):
             pm = app.getObject("PluginManager")
--- a/eric7/Utilities/crypto/__init__.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/Utilities/crypto/__init__.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import QCoreApplication
 from PyQt6.QtWidgets import QLineEdit, QInputDialog
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 import Preferences
 
@@ -81,7 +81,7 @@
                 if verifyPassword(pw, masterPassword):
                     MasterPassword = pwEncode(pw)
                 else:
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         None,
                         QCoreApplication.translate(
                             "Crypto", "Master Password"),
@@ -89,14 +89,14 @@
                             "Crypto",
                             """The given password is incorrect."""))
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     None,
                     QCoreApplication.translate("Crypto", "Master Password"),
                     QCoreApplication.translate(
                         "Crypto",
                         """There is no master password registered."""))
         except ValueError as why:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 QCoreApplication.translate("Crypto", "Master Password"),
                 QCoreApplication.translate(
--- a/eric7/VCS/ProjectBrowserHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VCS/ProjectBrowserHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtCore import QObject, QCoreApplication
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog
 
@@ -179,7 +179,7 @@
                     name = itm.dirName()
                 names.append(name)
         if Preferences.getVCS("AutoSaveFiles"):
-            vm = e5App().getObject("ViewManager")
+            vm = ericApp().getObject("ViewManager")
             for name in names:
                 vm.saveEditor(name)
         self.vcs.vcsCommit(names, '')
--- a/eric7/VCS/ProjectHelper.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VCS/ProjectHelper.py	Sat May 22 18:51:46 2021 +0200
@@ -14,9 +14,9 @@
 from PyQt6.QtCore import pyqtSlot, QDir, QFileInfo, QObject, QCoreApplication
 from PyQt6.QtWidgets import QDialog, QInputDialog, QToolBar
 
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 import UI.PixmapCache
@@ -63,7 +63,7 @@
         """
         Public method to generate the action objects.
         """
-        self.vcsNewAct = E5Action(
+        self.vcsNewAct = EricAction(
             QCoreApplication.translate(
                 "VcsProjectHelper", 'New from repository'),
             UI.PixmapCache.getIcon("vcsCheckout"),
@@ -83,7 +83,7 @@
         self.vcsNewAct.triggered.connect(self._vcsCheckout)
         self.actions.append(self.vcsNewAct)
         
-        self.vcsExportAct = E5Action(
+        self.vcsExportAct = EricAction(
             QCoreApplication.translate(
                 "VcsProjectHelper", 'Export from repository'),
             UI.PixmapCache.getIcon("vcsExport"),
@@ -102,7 +102,7 @@
         self.vcsExportAct.triggered.connect(self._vcsExport)
         self.actions.append(self.vcsExportAct)
         
-        self.vcsAddAct = E5Action(
+        self.vcsAddAct = EricAction(
             QCoreApplication.translate(
                 "VcsProjectHelper", 'Add to repository'),
             UI.PixmapCache.getIcon("vcsCommit"),
@@ -142,7 +142,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         @return the toolbar generated (QToolBar)
         """
         return None     # __IGNORE_WARNING_M831__
@@ -153,7 +153,7 @@
         
         @param ui reference to the main window (UserInterface)
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         @return the toolbar generated (QToolBar)
         """
         tb = QToolBar(QCoreApplication.translate("VcsProjectHelper", "VCS"),
@@ -189,7 +189,7 @@
         if not self.project or not self.project.checkDirty():
             return
         
-        vcsSystemsDict = e5App().getObject(
+        vcsSystemsDict = ericApp().getObject(
             "PluginManager").getPluginDisplayStrings("version_control")
         if not vcsSystemsDict:
             # no version control system found
@@ -226,7 +226,7 @@
                 projectdir, vcsDataDict = vcsdlg.getData()
                 # edit VCS command options
                 if vcs.vcsSupportCommandOptions():
-                    vcores = E5MessageBox.yesNo(
+                    vcores = EricMessageBox.yesNo(
                         self.parent(),
                         QCoreApplication.translate(
                             "VcsProjectHelper", "New Project"),
@@ -247,7 +247,7 @@
                     try:
                         os.makedirs(projectdir)
                     except OSError:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self.parent(),
                             QCoreApplication.translate(
                                 "VcsProjectHelper",
@@ -300,7 +300,7 @@
                             self.project.setDirty(True)
                             self.project.saveProject()
                     else:
-                        res = E5MessageBox.yesNo(
+                        res = EricMessageBox.yesNo(
                             self.parent(),
                             QCoreApplication.translate(
                                 "VcsProjectHelper",
@@ -337,7 +337,7 @@
                                 self.project.saveProject()
                                 self.project.openProject(self.project.pfile)
                                 if not export:
-                                    res = E5MessageBox.yesNo(
+                                    res = EricMessageBox.yesNo(
                                         self.parent(),
                                         QCoreApplication.translate(
                                             "VcsProjectHelper",
@@ -351,7 +351,7 @@
                                         self.project.vcs.vcsAdd(
                                             self.project.pfile)
                 else:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.parent(),
                         QCoreApplication.translate(
                             "VcsProjectHelper", "New project from repository"),
@@ -395,7 +395,7 @@
         pdata_vcsother = copy.deepcopy(self.project.pdata["VCSOTHERDATA"])
         vcs = self.project.vcs
         vcsHelper = self.project.vcsProjectHelper
-        vcsSystemsDict = e5App().getObject(
+        vcsSystemsDict = ericApp().getObject(
             "PluginManager").getPluginDisplayStrings("version_control")
         if not vcsSystemsDict:
             # no version control system found
@@ -432,7 +432,7 @@
                     vcsDataDict = vcsdlg.getData()
                     # edit VCS command options
                     if self.project.vcs.vcsSupportCommandOptions():
-                        vcores = E5MessageBox.yesNo(
+                        vcores = EricMessageBox.yesNo(
                             self.parent(),
                             QCoreApplication.translate(
                                 "VcsProjectHelper", "Import Project"),
@@ -475,7 +475,7 @@
         
         shouldReopen = self.vcs.vcsUpdate(self.project.ppath)
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 QCoreApplication.translate("VcsProjectHelper", "Update"),
                 QCoreApplication.translate(
@@ -511,7 +511,7 @@
             # just in case
             return
         
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self.parent(),
             QCoreApplication.translate(
                 "VcsProjectHelper",
@@ -613,7 +613,7 @@
         
         shouldReopen = self.vcs.vcsSwitch(self.project.ppath)
         if shouldReopen:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self.parent(),
                 QCoreApplication.translate("VcsProjectHelper", "Switch"),
                 QCoreApplication.translate(
--- a/eric7/VCS/StatusMonitorLed.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VCS/StatusMonitorLed.py	Sat May 22 18:51:46 2021 +0200
@@ -12,12 +12,12 @@
 from PyQt6.QtGui import QColor
 from PyQt6.QtWidgets import QWidget, QInputDialog, QMenu, QHBoxLayout, QLabel
 
-from E5Gui.E5Led import E5ClickableLed, E5LedType
+from E5Gui.EricLed import EricClickableLed, EricLedType
 
 import Preferences
 
 
-class StatusMonitorLed(E5ClickableLed):
+class StatusMonitorLed(EricClickableLed):
     """
     Class implementing a LED to indicate the status of the VCS status monitor
     thread.
@@ -30,7 +30,7 @@
         @param parent reference to the parent object (QWidget)
         """
         super().__init__(
-            parent, shape=E5LedType.RECTANGULAR, rectRatio=1.0)
+            parent, shape=EricLedType.RECTANGULAR, rectRatio=1.0)
         
         self.__vcsClean = True
         self.project = project
--- a/eric7/VCS/VersionControl.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VCS/VersionControl.py	Sat May 22 18:51:46 2021 +0200
@@ -16,7 +16,7 @@
 )
 from PyQt6.QtWidgets import QApplication
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 import Preferences
 
@@ -601,7 +601,7 @@
         proc.start(program, arguments)
         procStarted = proc.waitForStarted(5000)
         if not procStarted:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 QCoreApplication.translate(
                     "VersionControl", 'Process Generation Error'),
--- a/eric7/VCS/__init__.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VCS/__init__.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 interfaces have to be subclasses of this base class.
 """
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 ######################################################################
 ## Below is the factory function to instantiate the appropriate
@@ -28,7 +28,7 @@
     @param vcs name of the VCS system to be used (string)
     @return the instantiated VCS object
     """
-    pluginManager = e5App().getObject("PluginManager")
+    pluginManager = ericApp().getObject("PluginManager")
     if pluginManager is None:
         # that should not happen
         vc = None
--- a/eric7/ViewManager/BookmarkedFilesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/ViewManager/BookmarkedFilesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 from PyQt6.QtGui import QColor
 from PyQt6.QtWidgets import QListWidgetItem, QDialog
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_BookmarkedFilesDialog import Ui_BookmarkedFilesDialog
 
@@ -30,7 +30,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.filePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.filePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         
         self.bookmarks = bookmarks[:]
         for bookmark in self.bookmarks:
--- a/eric7/ViewManager/BookmarkedFilesDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/ViewManager/BookmarkedFilesDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -153,7 +153,7 @@
       </widget>
      </item>
      <item row="6" column="1">
-      <widget class="E5PathPicker" name="filePicker" native="true">
+      <widget class="EricPathPicker" name="filePicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -189,9 +189,9 @@
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/ViewManager/ViewManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/ViewManager/ViewManager.py	Sat May 22 18:51:46 2021 +0200
@@ -21,8 +21,8 @@
 )
 from PyQt6.Qsci import QsciScintilla
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5FileDialog, E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricFileDialog, EricMessageBox
 
 from Globals import recentNameFiles, isMacPlatform
 
@@ -35,7 +35,7 @@
 import UI.PixmapCache
 import UI.Config
 
-from E5Gui.E5Action import E5Action, createActionGroup
+from E5Gui.EricAction import EricAction, createActionGroup
 
 
 class ViewManager(QWidget):
@@ -229,7 +229,7 @@
             statusbar (QLabel)
         @param sbEol reference to the eol indicator part of the statusbar
             (QLabel)
-        @param sbZoom reference to the zoom widget (E5ZoomWidget)
+        @param sbZoom reference to the zoom widget (EricZoomWidget)
         """
         self.sbLine = sbLine
         self.sbPos = sbPos
@@ -583,7 +583,7 @@
         """
         Private method defining the user interface actions for file handling.
         """
-        self.newAct = E5Action(
+        self.newAct = EricAction(
             QCoreApplication.translate('ViewManager', 'New'),
             UI.PixmapCache.getIcon("new"),
             QCoreApplication.translate('ViewManager', '&New'),
@@ -602,7 +602,7 @@
         self.newAct.triggered.connect(self.newEditor)
         self.fileActions.append(self.newAct)
         
-        self.openAct = E5Action(
+        self.openAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Open'),
             UI.PixmapCache.getIcon("open"),
             QCoreApplication.translate('ViewManager', '&Open...'),
@@ -623,7 +623,7 @@
         
         self.closeActGrp = createActionGroup(self)
         
-        self.closeAct = E5Action(
+        self.closeAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Close'),
             UI.PixmapCache.getIcon("closeEditor"),
             QCoreApplication.translate('ViewManager', '&Close'),
@@ -642,7 +642,7 @@
         self.closeAct.triggered.connect(self.closeCurrentWindow)
         self.fileActions.append(self.closeAct)
         
-        self.closeAllAct = E5Action(
+        self.closeAllAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Close All'),
             QCoreApplication.translate('ViewManager', 'Clos&e All'),
             0, 0, self.closeActGrp, 'vm_file_close_all')
@@ -661,7 +661,7 @@
         
         self.saveActGrp = createActionGroup(self)
         
-        self.saveAct = E5Action(
+        self.saveAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Save'),
             UI.PixmapCache.getIcon("fileSave"),
             QCoreApplication.translate('ViewManager', '&Save'),
@@ -678,7 +678,7 @@
         self.saveAct.triggered.connect(self.saveCurrentEditor)
         self.fileActions.append(self.saveAct)
         
-        self.saveAsAct = E5Action(
+        self.saveAsAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Save as'),
             UI.PixmapCache.getIcon("fileSaveAs"),
             QCoreApplication.translate('ViewManager', 'Save &as...'),
@@ -696,7 +696,7 @@
         self.saveAsAct.triggered.connect(self.saveAsCurrentEditor)
         self.fileActions.append(self.saveAsAct)
         
-        self.saveCopyAct = E5Action(
+        self.saveCopyAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Save Copy'),
             UI.PixmapCache.getIcon("fileSaveCopy"),
             QCoreApplication.translate('ViewManager', 'Save &Copy...'),
@@ -712,7 +712,7 @@
         self.saveCopyAct.triggered.connect(self.saveCopyCurrentEditor)
         self.fileActions.append(self.saveCopyAct)
         
-        self.saveAllAct = E5Action(
+        self.saveAllAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Save all'),
             UI.PixmapCache.getIcon("fileSaveAll"),
             QCoreApplication.translate('ViewManager', 'Save a&ll'),
@@ -729,7 +729,7 @@
         
         self.saveActGrp.setEnabled(False)
 
-        self.printAct = E5Action(
+        self.printAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Print'),
             UI.PixmapCache.getIcon("print"),
             QCoreApplication.translate('ViewManager', '&Print'),
@@ -747,7 +747,7 @@
         self.printAct.setEnabled(False)
         self.fileActions.append(self.printAct)
         
-        self.printPreviewAct = E5Action(
+        self.printPreviewAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Print Preview'),
             UI.PixmapCache.getIcon("printPreview"),
             QCoreApplication.translate('ViewManager', 'Print Preview'),
@@ -764,7 +764,7 @@
         self.printPreviewAct.setEnabled(False)
         self.fileActions.append(self.printPreviewAct)
         
-        self.findFileNameAct = E5Action(
+        self.findFileNameAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Search File'),
             QCoreApplication.translate('ViewManager', 'Search &File...'),
             QKeySequence(QCoreApplication.translate(
@@ -832,7 +832,7 @@
         Public method to create the File toolbar.
         
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         @return the generated toolbar
         """
         tb = QToolBar(QCoreApplication.translate('ViewManager', 'File'),
@@ -886,7 +886,7 @@
         """
         self.editActGrp = createActionGroup(self)
         
-        self.undoAct = E5Action(
+        self.undoAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Undo'),
             UI.PixmapCache.getIcon("editUndo"),
             QCoreApplication.translate('ViewManager', '&Undo'),
@@ -905,7 +905,7 @@
         self.undoAct.triggered.connect(self.__editUndo)
         self.editActions.append(self.undoAct)
         
-        self.redoAct = E5Action(
+        self.redoAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Redo'),
             UI.PixmapCache.getIcon("editRedo"),
             QCoreApplication.translate('ViewManager', '&Redo'),
@@ -923,7 +923,7 @@
         self.redoAct.triggered.connect(self.__editRedo)
         self.editActions.append(self.redoAct)
         
-        self.revertAct = E5Action(
+        self.revertAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Revert to last saved state'),
             QCoreApplication.translate(
@@ -945,7 +945,7 @@
         
         self.copyActGrp = createActionGroup(self.editActGrp)
         
-        self.cutAct = E5Action(
+        self.cutAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Cut'),
             UI.PixmapCache.getIcon("editCut"),
             QCoreApplication.translate('ViewManager', 'Cu&t'),
@@ -965,7 +965,7 @@
         self.cutAct.triggered.connect(self.__editCut)
         self.editActions.append(self.cutAct)
         
-        self.copyAct = E5Action(
+        self.copyAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Copy'),
             UI.PixmapCache.getIcon("editCopy"),
             QCoreApplication.translate('ViewManager', '&Copy'),
@@ -985,7 +985,7 @@
         self.copyAct.triggered.connect(self.__editCopy)
         self.editActions.append(self.copyAct)
         
-        self.pasteAct = E5Action(
+        self.pasteAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Paste'),
             UI.PixmapCache.getIcon("editPaste"),
             QCoreApplication.translate('ViewManager', '&Paste'),
@@ -1005,7 +1005,7 @@
         self.pasteAct.triggered.connect(self.__editPaste)
         self.editActions.append(self.pasteAct)
         
-        self.deleteAct = E5Action(
+        self.deleteAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Clear'),
             UI.PixmapCache.getIcon("editDelete"),
             QCoreApplication.translate('ViewManager', 'Clear'),
@@ -1023,7 +1023,7 @@
         self.deleteAct.triggered.connect(self.__editDelete)
         self.editActions.append(self.deleteAct)
         
-        self.joinAct = E5Action(
+        self.joinAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Join Lines'),
             QCoreApplication.translate('ViewManager', 'Join Lines'),
             QKeySequence(QCoreApplication.translate(
@@ -1040,7 +1040,7 @@
         self.joinAct.triggered.connect(self.__editJoin)
         self.editActions.append(self.joinAct)
         
-        self.indentAct = E5Action(
+        self.indentAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Indent'),
             UI.PixmapCache.getIcon("editIndent"),
             QCoreApplication.translate('ViewManager', '&Indent'),
@@ -1059,7 +1059,7 @@
         self.indentAct.triggered.connect(self.__editIndent)
         self.editActions.append(self.indentAct)
         
-        self.unindentAct = E5Action(
+        self.unindentAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Unindent'),
             UI.PixmapCache.getIcon("editUnindent"),
             QCoreApplication.translate('ViewManager', 'U&nindent'),
@@ -1078,7 +1078,7 @@
         self.unindentAct.triggered.connect(self.__editUnindent)
         self.editActions.append(self.unindentAct)
         
-        self.smartIndentAct = E5Action(
+        self.smartIndentAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Smart indent'),
             UI.PixmapCache.getIcon("editSmartIndent"),
             QCoreApplication.translate('ViewManager', 'Smart indent'),
@@ -1095,7 +1095,7 @@
         self.smartIndentAct.triggered.connect(self.__editSmartIndent)
         self.editActions.append(self.smartIndentAct)
         
-        self.commentAct = E5Action(
+        self.commentAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Comment'),
             UI.PixmapCache.getIcon("editComment"),
             QCoreApplication.translate('ViewManager', 'C&omment'),
@@ -1114,7 +1114,7 @@
         self.commentAct.triggered.connect(self.__editComment)
         self.editActions.append(self.commentAct)
         
-        self.uncommentAct = E5Action(
+        self.uncommentAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Uncomment'),
             UI.PixmapCache.getIcon("editUncomment"),
             QCoreApplication.translate('ViewManager', 'Unco&mment'),
@@ -1133,7 +1133,7 @@
         self.uncommentAct.triggered.connect(self.__editUncomment)
         self.editActions.append(self.uncommentAct)
         
-        self.toggleCommentAct = E5Action(
+        self.toggleCommentAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Toggle Comment'),
             UI.PixmapCache.getIcon("editToggleComment"),
             QCoreApplication.translate('ViewManager', 'Toggle Comment'),
@@ -1155,7 +1155,7 @@
         self.toggleCommentAct.triggered.connect(self.__editToggleComment)
         self.editActions.append(self.toggleCommentAct)
         
-        self.streamCommentAct = E5Action(
+        self.streamCommentAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Stream Comment'),
             QCoreApplication.translate('ViewManager', 'Stream Comment'),
             0, 0,
@@ -1172,7 +1172,7 @@
         self.streamCommentAct.triggered.connect(self.__editStreamComment)
         self.editActions.append(self.streamCommentAct)
         
-        self.boxCommentAct = E5Action(
+        self.boxCommentAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Box Comment'),
             QCoreApplication.translate('ViewManager', 'Box Comment'),
             0, 0,
@@ -1188,7 +1188,7 @@
         self.boxCommentAct.triggered.connect(self.__editBoxComment)
         self.editActions.append(self.boxCommentAct)
         
-        self.selectBraceAct = E5Action(
+        self.selectBraceAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Select to brace'),
             QCoreApplication.translate('ViewManager', 'Select to &brace'),
             QKeySequence(QCoreApplication.translate(
@@ -1206,7 +1206,7 @@
         self.selectBraceAct.triggered.connect(self.__editSelectBrace)
         self.editActions.append(self.selectBraceAct)
         
-        self.selectAllAct = E5Action(
+        self.selectAllAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Select all'),
             UI.PixmapCache.getIcon("editSelectAll"),
             QCoreApplication.translate('ViewManager', '&Select all'),
@@ -1224,7 +1224,7 @@
         self.selectAllAct.triggered.connect(self.__editSelectAll)
         self.editActions.append(self.selectAllAct)
         
-        self.deselectAllAct = E5Action(
+        self.deselectAllAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Deselect all'),
             QCoreApplication.translate('ViewManager', '&Deselect all'),
             QKeySequence(QCoreApplication.translate(
@@ -1241,7 +1241,7 @@
         self.deselectAllAct.triggered.connect(self.__editDeselectAll)
         self.editActions.append(self.deselectAllAct)
         
-        self.convertEOLAct = E5Action(
+        self.convertEOLAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Convert Line End Characters'),
             QCoreApplication.translate(
@@ -1259,7 +1259,7 @@
         self.convertEOLAct.triggered.connect(self.__convertEOL)
         self.editActions.append(self.convertEOLAct)
         
-        self.shortenEmptyAct = E5Action(
+        self.shortenEmptyAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Shorten empty lines'),
             QCoreApplication.translate('ViewManager', 'Shorten empty lines'),
             0, 0,
@@ -1275,7 +1275,7 @@
         self.shortenEmptyAct.triggered.connect(self.__shortenEmptyLines)
         self.editActions.append(self.shortenEmptyAct)
         
-        self.autoCompleteAct = E5Action(
+        self.autoCompleteAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Complete'),
             QCoreApplication.translate('ViewManager', '&Complete'),
             QKeySequence(QCoreApplication.translate(
@@ -1293,7 +1293,7 @@
         self.autoCompleteAct.triggered.connect(self.__editAutoComplete)
         self.editActions.append(self.autoCompleteAct)
         
-        self.autoCompleteFromDocAct = E5Action(
+        self.autoCompleteFromDocAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Complete from Document'),
             QCoreApplication.translate(
@@ -1316,7 +1316,7 @@
             self.__editAutoCompleteFromDoc)
         self.editActions.append(self.autoCompleteFromDocAct)
         
-        self.autoCompleteFromAPIsAct = E5Action(
+        self.autoCompleteFromAPIsAct = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Complete from APIs'),
             QCoreApplication.translate('ViewManager',
@@ -1339,7 +1339,7 @@
             self.__editAutoCompleteFromAPIs)
         self.editActions.append(self.autoCompleteFromAPIsAct)
         
-        self.autoCompleteFromAllAct = E5Action(
+        self.autoCompleteFromAllAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Complete from Document and APIs'),
             QCoreApplication.translate(
@@ -1362,7 +1362,7 @@
             self.__editAutoCompleteFromAll)
         self.editActions.append(self.autoCompleteFromAllAct)
         
-        self.calltipsAct = E5Action(
+        self.calltipsAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Calltip'),
             QCoreApplication.translate('ViewManager', '&Calltip'),
             QKeySequence(QCoreApplication.translate(
@@ -1380,7 +1380,7 @@
         self.calltipsAct.triggered.connect(self.__editShowCallTips)
         self.editActions.append(self.calltipsAct)
         
-        self.codeInfoAct = E5Action(
+        self.codeInfoAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Code Info'),
             UI.PixmapCache.getIcon("codeDocuViewer"),
             QCoreApplication.translate('ViewManager', 'Code Info'),
@@ -1398,7 +1398,7 @@
         self.codeInfoAct.triggered.connect(self.__editShowCodeInfo)
         self.editActions.append(self.codeInfoAct)
         
-        self.sortAct = E5Action(
+        self.sortAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Sort'),
             QCoreApplication.translate('ViewManager', 'Sort'),
             QKeySequence(QCoreApplication.translate(
@@ -1417,7 +1417,7 @@
         self.sortAct.triggered.connect(self.__editSortSelectedLines)
         self.editActions.append(self.sortAct)
         
-        self.docstringAct = E5Action(
+        self.docstringAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Generate Docstring'),
             QCoreApplication.translate('ViewManager', 'Generate Docstring'),
             QKeySequence(QCoreApplication.translate(
@@ -1451,7 +1451,7 @@
         
         self.editorActGrp = createActionGroup(self.editActGrp)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move left one character'),
             QCoreApplication.translate('ViewManager',
@@ -1465,7 +1465,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move right one character'),
             QCoreApplication.translate('ViewManager',
@@ -1479,7 +1479,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move up one line'),
             QCoreApplication.translate('ViewManager', 'Move up one line'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Up')), 0,
@@ -1491,7 +1491,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move down one line'),
             QCoreApplication.translate('ViewManager', 'Move down one line'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Down')), 0,
@@ -1503,7 +1503,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move left one word part'),
             QCoreApplication.translate('ViewManager',
@@ -1517,7 +1517,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move right one word part'),
             QCoreApplication.translate('ViewManager',
@@ -1531,7 +1531,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move left one word'),
             QCoreApplication.translate('ViewManager', 'Move left one word'),
             0, 0,
@@ -1546,7 +1546,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move right one word'),
             QCoreApplication.translate('ViewManager', 'Move right one word'),
             0, 0,
@@ -1558,7 +1558,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Move to first visible character in document line'),
@@ -1574,7 +1574,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Move to start of display line'),
             QCoreApplication.translate(
@@ -1591,7 +1591,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Move to end of document line'),
             QCoreApplication.translate(
@@ -1608,7 +1608,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Scroll view down one line'),
             QCoreApplication.translate('ViewManager',
@@ -1620,7 +1620,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Scroll view up one line'),
             QCoreApplication.translate('ViewManager',
@@ -1631,7 +1631,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move up one paragraph'),
             QCoreApplication.translate('ViewManager', 'Move up one paragraph'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Alt+Up')),
@@ -1640,7 +1640,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move down one paragraph'),
             QCoreApplication.translate('ViewManager',
@@ -1652,7 +1652,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move up one page'),
             QCoreApplication.translate('ViewManager', 'Move up one page'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'PgUp')), 0,
@@ -1661,7 +1661,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Move down one page'),
             QCoreApplication.translate('ViewManager', 'Move down one page'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'PgDown')),
@@ -1673,7 +1673,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move to start of document'),
             QCoreApplication.translate('ViewManager',
@@ -1690,7 +1690,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Move to end of document'),
             QCoreApplication.translate('ViewManager',
@@ -1707,7 +1707,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Indent one level'),
             QCoreApplication.translate('ViewManager', 'Indent one level'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Tab')), 0,
@@ -1716,7 +1716,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Unindent one level'),
             QCoreApplication.translate('ViewManager', 'Unindent one level'),
             QKeySequence(QCoreApplication.translate('ViewManager',
@@ -1726,7 +1726,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection left one character'),
             QCoreApplication.translate(
@@ -1741,7 +1741,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection right one character'),
             QCoreApplication.translate(
@@ -1756,7 +1756,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection up one line'),
             QCoreApplication.translate(
@@ -1771,7 +1771,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection down one line'),
             QCoreApplication.translate(
@@ -1786,7 +1786,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection left one word part'),
             QCoreApplication.translate(
@@ -1800,7 +1800,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection right one word part'),
             QCoreApplication.translate(
@@ -1814,7 +1814,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection left one word'),
             QCoreApplication.translate(
@@ -1831,7 +1831,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection right one word'),
             QCoreApplication.translate(
@@ -1848,7 +1848,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend selection to first visible character in document'
@@ -1866,7 +1866,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection to end of document line'),
             QCoreApplication.translate(
@@ -1883,7 +1883,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection up one paragraph'),
             QCoreApplication.translate(
@@ -1896,7 +1896,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection down one paragraph'),
             QCoreApplication.translate(
@@ -1909,7 +1909,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection up one page'),
             QCoreApplication.translate(
@@ -1921,7 +1921,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection down one page'),
             QCoreApplication.translate(
@@ -1937,7 +1937,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection to start of document'),
             QCoreApplication.translate(
@@ -1954,7 +1954,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection to end of document'),
             QCoreApplication.translate(
@@ -1971,7 +1971,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Delete previous character'),
             QCoreApplication.translate('ViewManager',
@@ -1989,7 +1989,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Delete previous character if not at start of line'),
@@ -2002,7 +2002,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Delete current character'),
             QCoreApplication.translate('ViewManager',
@@ -2016,7 +2016,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete word to left'),
             QCoreApplication.translate('ViewManager', 'Delete word to left'),
             QKeySequence(QCoreApplication.translate(
@@ -2027,7 +2027,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete word to right'),
             QCoreApplication.translate('ViewManager', 'Delete word to right'),
             QKeySequence(QCoreApplication.translate('ViewManager',
@@ -2037,7 +2037,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete line to left'),
             QCoreApplication.translate('ViewManager', 'Delete line to left'),
             QKeySequence(QCoreApplication.translate(
@@ -2048,7 +2048,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete line to right'),
             QCoreApplication.translate('ViewManager', 'Delete line to right'),
             0, 0,
@@ -2063,7 +2063,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Insert new line'),
             QCoreApplication.translate('ViewManager', 'Insert new line'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Return')),
@@ -2073,7 +2073,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Insert new line below current line'),
             QCoreApplication.translate(
@@ -2086,7 +2086,7 @@
         act.triggered.connect(self.__newLineBelow)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete current line'),
             QCoreApplication.translate('ViewManager', 'Delete current line'),
             QKeySequence(QCoreApplication.translate(
@@ -2097,7 +2097,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Duplicate current line'),
             QCoreApplication.translate(
@@ -2108,7 +2108,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Swap current and previous lines'),
             QCoreApplication.translate(
@@ -2119,7 +2119,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager',
                                        'Reverse selected lines'),
             QCoreApplication.translate('ViewManager',
@@ -2131,7 +2131,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Cut current line'),
             QCoreApplication.translate('ViewManager', 'Cut current line'),
             QKeySequence(QCoreApplication.translate('ViewManager',
@@ -2141,7 +2141,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Copy current line'),
             QCoreApplication.translate('ViewManager', 'Copy current line'),
             QKeySequence(QCoreApplication.translate(
@@ -2152,7 +2152,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Toggle insert/overtype'),
             QCoreApplication.translate(
@@ -2163,7 +2163,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Move to end of display line'),
             QCoreApplication.translate(
@@ -2180,7 +2180,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend selection to end of display line'),
             QCoreApplication.translate(
@@ -2194,7 +2194,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Formfeed'),
             QCoreApplication.translate('ViewManager', 'Formfeed'),
             0, 0,
@@ -2203,7 +2203,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate('ViewManager', 'Escape'),
             QCoreApplication.translate('ViewManager', 'Escape'),
             QKeySequence(QCoreApplication.translate('ViewManager', 'Esc')), 0,
@@ -2212,7 +2212,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend rectangular selection down one line'),
             QCoreApplication.translate(
@@ -2228,7 +2228,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Extend rectangular selection up one line'),
             QCoreApplication.translate(
@@ -2243,7 +2243,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection left one character'),
@@ -2261,7 +2261,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection right one character'),
@@ -2279,7 +2279,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection to first visible character in'
@@ -2298,7 +2298,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection to end of document line'),
@@ -2317,7 +2317,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection up one page'),
@@ -2332,7 +2332,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager',
                 'Extend rectangular selection down one page'),
@@ -2350,7 +2350,7 @@
         act.triggered.connect(self.esm.map)
         self.editActions.append(act)
         
-        act = E5Action(
+        act = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Duplicate current selection'),
             QCoreApplication.translate(
@@ -2364,7 +2364,7 @@
         self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_SCROLLTOSTART"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Scroll to start of document'),
                 QCoreApplication.translate(
@@ -2379,7 +2379,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_SCROLLTOEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Scroll to end of document'),
                 QCoreApplication.translate(
@@ -2394,7 +2394,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_VERTICALCENTRECARET"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Scroll vertically to center current line'),
                 QCoreApplication.translate(
@@ -2409,7 +2409,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_WORDRIGHTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Move to end of next word'),
                 QCoreApplication.translate(
@@ -2424,7 +2424,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_WORDRIGHTENDEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Extend selection to end of next word'),
                 QCoreApplication.translate(
@@ -2440,7 +2440,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_WORDLEFTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Move to end of previous word'),
                 QCoreApplication.translate(
@@ -2452,7 +2452,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_WORDLEFTENDEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Extend selection to end of previous word'),
                 QCoreApplication.translate(
@@ -2464,7 +2464,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_HOME"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Move to start of document line'),
                 QCoreApplication.translate(
@@ -2479,7 +2479,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_HOMEEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Extend selection to start of document line'),
@@ -2497,7 +2497,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_HOMERECTEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Extend rectangular selection to start of document line'),
@@ -2515,7 +2515,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_HOMEDISPLAYEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Extend selection to start of display line'),
@@ -2534,7 +2534,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_HOMEWRAP"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Move to start of display or document line'),
@@ -2548,7 +2548,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_HOMEWRAPEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Extend selection to start of display or document line'),
@@ -2563,7 +2563,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_VCHOMEWRAP"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Move to first visible character in display or document'
@@ -2580,7 +2580,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_VCHOMEWRAPEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Extend selection to first visible character in'
@@ -2597,7 +2597,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_LINEENDWRAP"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Move to end of display or document line'),
@@ -2611,7 +2611,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_LINEENDWRAPEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager',
                     'Extend selection to end of display or document line'),
@@ -2626,7 +2626,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_STUTTEREDPAGEUP"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Stuttered move up one page'),
                 QCoreApplication.translate(
@@ -2638,7 +2638,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_STUTTEREDPAGEUPEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Stuttered extend selection up one page'),
                 QCoreApplication.translate(
@@ -2651,7 +2651,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_STUTTEREDPAGEDOWN"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Stuttered move down one page'),
                 QCoreApplication.translate(
@@ -2663,7 +2663,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_STUTTEREDPAGEDOWNEXTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Stuttered extend selection down one page'),
                 QCoreApplication.translate(
@@ -2676,7 +2676,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_DELWORDRIGHTEND"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Delete right to end of next word'),
                 QCoreApplication.translate(
@@ -2691,7 +2691,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_MOVESELECTEDLINESUP"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Move selected lines up one line'),
                 QCoreApplication.translate(
@@ -2703,7 +2703,7 @@
             self.editActions.append(act)
         
         if hasattr(QsciScintilla, "SCI_MOVESELECTEDLINESDOWN"):
-            act = E5Action(
+            act = EricAction(
                 QCoreApplication.translate(
                     'ViewManager', 'Move selected lines down one line'),
                 QCoreApplication.translate(
@@ -2716,7 +2716,7 @@
         
         self.editorActGrp.setEnabled(False)
         
-        self.editLowerCaseAct = E5Action(
+        self.editLowerCaseAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Convert selection to lower case'),
             QCoreApplication.translate(
@@ -2728,7 +2728,7 @@
         self.editLowerCaseAct.triggered.connect(self.esm.map)
         self.editActions.append(self.editLowerCaseAct)
         
-        self.editUpperCaseAct = E5Action(
+        self.editUpperCaseAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Convert selection to upper case'),
             QCoreApplication.translate(
@@ -2809,7 +2809,7 @@
         Public method to create the Edit toolbar.
         
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         @return the generated toolbar
         """
         tb = QToolBar(QCoreApplication.translate('ViewManager', 'Edit'),
@@ -2848,7 +2848,7 @@
         """
         self.searchActGrp = createActionGroup(self)
         
-        self.searchAct = E5Action(
+        self.searchAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Search'),
             UI.PixmapCache.getIcon("find"),
             QCoreApplication.translate('ViewManager', '&Search...'),
@@ -2868,7 +2868,7 @@
         self.searchAct.triggered.connect(self.showSearchWidget)
         self.searchActions.append(self.searchAct)
         
-        self.searchNextAct = E5Action(
+        self.searchNextAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Search next'),
             UI.PixmapCache.getIcon("findNext"),
@@ -2889,7 +2889,7 @@
         self.searchNextAct.triggered.connect(self.__searchNext)
         self.searchActions.append(self.searchNextAct)
         
-        self.searchPrevAct = E5Action(
+        self.searchPrevAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Search previous'),
             UI.PixmapCache.getIcon("findPrev"),
             QCoreApplication.translate('ViewManager', 'Search &previous'),
@@ -2909,7 +2909,7 @@
         self.searchPrevAct.triggered.connect(self.__searchPrev)
         self.searchActions.append(self.searchPrevAct)
         
-        self.searchClearMarkersAct = E5Action(
+        self.searchClearMarkersAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Clear search markers'),
             UI.PixmapCache.getIcon("findClear"),
             QCoreApplication.translate('ViewManager', 'Clear search markers'),
@@ -2928,7 +2928,7 @@
             self.__searchClearMarkers)
         self.searchActions.append(self.searchClearMarkersAct)
         
-        self.searchNextWordAct = E5Action(
+        self.searchNextWordAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Search current word forward'),
             UI.PixmapCache.getIcon("findWordNext"),
@@ -2951,7 +2951,7 @@
         self.searchNextWordAct.triggered.connect(self.__findNextWord)
         self.searchActions.append(self.searchNextWordAct)
         
-        self.searchPrevWordAct = E5Action(
+        self.searchPrevWordAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Search current word backward'),
             UI.PixmapCache.getIcon("findWordPrev"),
@@ -2974,7 +2974,7 @@
         self.searchPrevWordAct.triggered.connect(self.__findPrevWord)
         self.searchActions.append(self.searchPrevWordAct)
         
-        self.replaceAct = E5Action(
+        self.replaceAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Replace'),
             QCoreApplication.translate('ViewManager', '&Replace...'),
             QKeySequence(QCoreApplication.translate(
@@ -2993,7 +2993,7 @@
         self.replaceAct.triggered.connect(self.showReplaceWidget)
         self.searchActions.append(self.replaceAct)
         
-        self.replaceAndSearchAct = E5Action(
+        self.replaceAndSearchAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Replace and Search'),
             UI.PixmapCache.getIcon("editReplaceSearch"),
@@ -3017,7 +3017,7 @@
             self.__replaceWidget.replaceSearch)
         self.searchActions.append(self.replaceAndSearchAct)
         
-        self.replaceSelectionAct = E5Action(
+        self.replaceSelectionAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Replace Occurrence'),
             UI.PixmapCache.getIcon("editReplace"),
@@ -3039,7 +3039,7 @@
             self.__replaceWidget.replace)
         self.searchActions.append(self.replaceSelectionAct)
         
-        self.replaceAllAct = E5Action(
+        self.replaceAllAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Replace All'),
             UI.PixmapCache.getIcon("editReplaceAll"),
@@ -3061,7 +3061,7 @@
             self.__replaceWidget.replaceAll)
         self.searchActions.append(self.replaceAllAct)
         
-        self.gotoAct = E5Action(
+        self.gotoAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Goto Line'),
             UI.PixmapCache.getIcon("goto"),
             QCoreApplication.translate('ViewManager', '&Goto Line...'),
@@ -3080,7 +3080,7 @@
         self.gotoAct.triggered.connect(self.__goto)
         self.searchActions.append(self.gotoAct)
         
-        self.gotoBraceAct = E5Action(
+        self.gotoBraceAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Goto Brace'),
             UI.PixmapCache.getIcon("gotoBrace"),
             QCoreApplication.translate('ViewManager', 'Goto &Brace'),
@@ -3098,7 +3098,7 @@
         self.gotoBraceAct.triggered.connect(self.__gotoBrace)
         self.searchActions.append(self.gotoBraceAct)
         
-        self.gotoLastEditAct = E5Action(
+        self.gotoLastEditAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Goto Last Edit Location'),
             UI.PixmapCache.getIcon("gotoLastEditPosition"),
@@ -3121,7 +3121,7 @@
         self.gotoLastEditAct.triggered.connect(self.__gotoLastEditPosition)
         self.searchActions.append(self.gotoLastEditAct)
         
-        self.gotoPreviousDefAct = E5Action(
+        self.gotoPreviousDefAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Goto Previous Method or Class'),
             QCoreApplication.translate(
@@ -3145,7 +3145,7 @@
             self.__gotoPreviousMethodClass)
         self.searchActions.append(self.gotoPreviousDefAct)
         
-        self.gotoNextDefAct = E5Action(
+        self.gotoNextDefAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Goto Next Method or Class'),
             QCoreApplication.translate(
@@ -3168,7 +3168,7 @@
         
         self.searchActGrp.setEnabled(False)
         
-        self.searchFilesAct = E5Action(
+        self.searchFilesAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Search in Files'),
             UI.PixmapCache.getIcon("projectFind"),
             QCoreApplication.translate('ViewManager', 'Search in &Files...'),
@@ -3188,7 +3188,7 @@
         self.searchFilesAct.triggered.connect(self.__searchFiles)
         self.searchActions.append(self.searchFilesAct)
         
-        self.replaceFilesAct = E5Action(
+        self.replaceFilesAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Replace in Files'),
             QCoreApplication.translate('ViewManager', 'Replace in F&iles...'),
             QKeySequence(QCoreApplication.translate(
@@ -3208,7 +3208,7 @@
         self.replaceFilesAct.triggered.connect(self.__replaceFiles)
         self.searchActions.append(self.replaceFilesAct)
         
-        self.searchOpenFilesAct = E5Action(
+        self.searchOpenFilesAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Search in Open Files'),
             UI.PixmapCache.getIcon("documentFind"),
@@ -3231,7 +3231,7 @@
         self.searchOpenFilesAct.triggered.connect(self.__searchOpenFiles)
         self.searchActions.append(self.searchOpenFilesAct)
         
-        self.replaceOpenFilesAct = E5Action(
+        self.replaceOpenFilesAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Replace in Open Files'),
             QCoreApplication.translate(
@@ -3287,7 +3287,7 @@
         Public method to create the Search toolbar.
         
         @param toolbarManager reference to a toolbar manager object
-        @type E5ToolBarManager
+        @type EricToolBarManager
         @return generated toolbar
         @rtype QToolBar
         """
@@ -3336,7 +3336,7 @@
         self.viewActGrp = createActionGroup(self)
         self.viewFoldActGrp = createActionGroup(self)
         
-        self.zoomInAct = E5Action(
+        self.zoomInAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Zoom in'),
             UI.PixmapCache.getIcon("zoomIn"),
             QCoreApplication.translate('ViewManager', 'Zoom &in'),
@@ -3355,7 +3355,7 @@
         self.zoomInAct.triggered.connect(self.__zoomIn)
         self.viewActions.append(self.zoomInAct)
         
-        self.zoomOutAct = E5Action(
+        self.zoomOutAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Zoom out'),
             UI.PixmapCache.getIcon("zoomOut"),
             QCoreApplication.translate('ViewManager', 'Zoom &out'),
@@ -3374,7 +3374,7 @@
         self.zoomOutAct.triggered.connect(self.__zoomOut)
         self.viewActions.append(self.zoomOutAct)
         
-        self.zoomResetAct = E5Action(
+        self.zoomResetAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Zoom reset'),
             UI.PixmapCache.getIcon("zoomReset"),
             QCoreApplication.translate('ViewManager', 'Zoom &reset'),
@@ -3393,7 +3393,7 @@
         self.zoomResetAct.triggered.connect(self.__zoomReset)
         self.viewActions.append(self.zoomResetAct)
         
-        self.zoomToAct = E5Action(
+        self.zoomToAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Zoom'),
             UI.PixmapCache.getIcon("zoomTo"),
             QCoreApplication.translate('ViewManager', '&Zoom'),
@@ -3412,7 +3412,7 @@
         self.zoomToAct.triggered.connect(self.__zoom)
         self.viewActions.append(self.zoomToAct)
         
-        self.toggleAllAct = E5Action(
+        self.toggleAllAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Toggle all folds'),
             QCoreApplication.translate('ViewManager', '&Toggle all folds'),
             0, 0, self.viewFoldActGrp, 'vm_view_toggle_all_folds')
@@ -3426,7 +3426,7 @@
         self.toggleAllAct.triggered.connect(self.__toggleAll)
         self.viewActions.append(self.toggleAllAct)
         
-        self.toggleAllChildrenAct = E5Action(
+        self.toggleAllChildrenAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Toggle all folds (including children)'),
             QCoreApplication.translate(
@@ -3444,7 +3444,7 @@
             self.__toggleAllChildren)
         self.viewActions.append(self.toggleAllChildrenAct)
         
-        self.toggleCurrentAct = E5Action(
+        self.toggleCurrentAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Toggle current fold'),
             QCoreApplication.translate('ViewManager', 'Toggle &current fold'),
             0, 0, self.viewFoldActGrp, 'vm_view_toggle_current_fold')
@@ -3459,7 +3459,7 @@
         self.toggleCurrentAct.triggered.connect(self.__toggleCurrent)
         self.viewActions.append(self.toggleCurrentAct)
         
-        self.clearAllFoldsAct = E5Action(
+        self.clearAllFoldsAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Clear all folds'),
             QCoreApplication.translate('ViewManager', 'Clear &all folds'),
             0, 0, self.viewFoldActGrp, 'vm_view_clear_all_folds')
@@ -3474,7 +3474,7 @@
         self.clearAllFoldsAct.triggered.connect(self.__clearAllFolds)
         self.viewActions.append(self.clearAllFoldsAct)
         
-        self.unhighlightAct = E5Action(
+        self.unhighlightAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Remove all highlights'),
             UI.PixmapCache.getIcon("unhighlight"),
             QCoreApplication.translate('ViewManager', 'Remove all highlights'),
@@ -3490,7 +3490,7 @@
         self.unhighlightAct.triggered.connect(self.__unhighlight)
         self.viewActions.append(self.unhighlightAct)
         
-        self.newDocumentViewAct = E5Action(
+        self.newDocumentViewAct = EricAction(
             QCoreApplication.translate('ViewManager', 'New Document View'),
             UI.PixmapCache.getIcon("documentNewView"),
             QCoreApplication.translate('ViewManager', 'New &Document View'),
@@ -3507,7 +3507,7 @@
         self.newDocumentViewAct.triggered.connect(self.__newDocumentView)
         self.viewActions.append(self.newDocumentViewAct)
         
-        self.newDocumentSplitViewAct = E5Action(
+        self.newDocumentSplitViewAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'New Document View (with new split)'),
             UI.PixmapCache.getIcon("splitVertical"),
@@ -3528,7 +3528,7 @@
             self.__newDocumentSplitView)
         self.viewActions.append(self.newDocumentSplitViewAct)
         
-        self.splitViewAct = E5Action(
+        self.splitViewAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Split view'),
             UI.PixmapCache.getIcon("splitVertical"),
             QCoreApplication.translate('ViewManager', '&Split view'),
@@ -3543,7 +3543,7 @@
         self.splitViewAct.triggered.connect(self.__splitView)
         self.viewActions.append(self.splitViewAct)
         
-        self.splitOrientationAct = E5Action(
+        self.splitOrientationAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Arrange horizontally'),
             QCoreApplication.translate('ViewManager', 'Arrange &horizontally'),
             0, 0, self, 'vm_view_arrange_horizontally', True)
@@ -3558,7 +3558,7 @@
         self.splitOrientationAct.toggled[bool].connect(self.__splitOrientation)
         self.viewActions.append(self.splitOrientationAct)
         
-        self.splitRemoveAct = E5Action(
+        self.splitRemoveAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Remove split'),
             UI.PixmapCache.getIcon("remsplitVertical"),
             QCoreApplication.translate('ViewManager', '&Remove split'),
@@ -3573,7 +3573,7 @@
         self.splitRemoveAct.triggered.connect(self.removeSplit)
         self.viewActions.append(self.splitRemoveAct)
         
-        self.nextSplitAct = E5Action(
+        self.nextSplitAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Next split'),
             QCoreApplication.translate('ViewManager', '&Next split'),
             QKeySequence(QCoreApplication.translate(
@@ -3590,7 +3590,7 @@
         self.nextSplitAct.triggered.connect(self.nextSplit)
         self.viewActions.append(self.nextSplitAct)
         
-        self.prevSplitAct = E5Action(
+        self.prevSplitAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Previous split'),
             QCoreApplication.translate('ViewManager', '&Previous split'),
             QKeySequence(QCoreApplication.translate(
@@ -3606,7 +3606,7 @@
         self.prevSplitAct.triggered.connect(self.prevSplit)
         self.viewActions.append(self.prevSplitAct)
         
-        self.previewAct = E5Action(
+        self.previewAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Preview'),
             UI.PixmapCache.getIcon("previewer"),
             QCoreApplication.translate('ViewManager', 'Preview'),
@@ -3623,7 +3623,7 @@
         self.previewAct.toggled[bool].connect(self.__previewEditor)
         self.viewActions.append(self.previewAct)
         
-        self.astViewerAct = E5Action(
+        self.astViewerAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Python AST Viewer'),
             UI.PixmapCache.getIcon("astTree"),
             QCoreApplication.translate('ViewManager', 'Python AST Viewer'),
@@ -3640,7 +3640,7 @@
         self.astViewerAct.toggled[bool].connect(self.__astViewer)
         self.viewActions.append(self.astViewerAct)
         
-        self.disViewerAct = E5Action(
+        self.disViewerAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Python Disassembly Viewer'),
             UI.PixmapCache.getIcon("disassembly"),
@@ -3712,7 +3712,7 @@
         Public method to create the View toolbar.
         
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         @return the generated toolbar
         """
         tb = QToolBar(QCoreApplication.translate('ViewManager', 'View'),
@@ -3749,7 +3749,7 @@
         """
         self.macroActGrp = createActionGroup(self)
 
-        self.macroStartRecAct = E5Action(
+        self.macroStartRecAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Start Macro Recording'),
             QCoreApplication.translate(
@@ -3765,7 +3765,7 @@
         self.macroStartRecAct.triggered.connect(self.__macroStartRecording)
         self.macroActions.append(self.macroStartRecAct)
         
-        self.macroStopRecAct = E5Action(
+        self.macroStopRecAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Stop Macro Recording'),
             QCoreApplication.translate('ViewManager', 'Sto&p Macro Recording'),
             0, 0, self.macroActGrp, 'vm_macro_stop_recording')
@@ -3779,7 +3779,7 @@
         self.macroStopRecAct.triggered.connect(self.__macroStopRecording)
         self.macroActions.append(self.macroStopRecAct)
         
-        self.macroRunAct = E5Action(
+        self.macroRunAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Run Macro'),
             QCoreApplication.translate('ViewManager', '&Run Macro'),
             0, 0, self.macroActGrp, 'vm_macro_run')
@@ -3793,7 +3793,7 @@
         self.macroRunAct.triggered.connect(self.__macroRun)
         self.macroActions.append(self.macroRunAct)
         
-        self.macroDeleteAct = E5Action(
+        self.macroDeleteAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Delete Macro'),
             QCoreApplication.translate('ViewManager', '&Delete Macro'),
             0, 0, self.macroActGrp, 'vm_macro_delete')
@@ -3807,7 +3807,7 @@
         self.macroDeleteAct.triggered.connect(self.__macroDelete)
         self.macroActions.append(self.macroDeleteAct)
         
-        self.macroLoadAct = E5Action(
+        self.macroLoadAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Load Macro'),
             QCoreApplication.translate('ViewManager', '&Load Macro'),
             0, 0, self.macroActGrp, 'vm_macro_load')
@@ -3821,7 +3821,7 @@
         self.macroLoadAct.triggered.connect(self.__macroLoad)
         self.macroActions.append(self.macroLoadAct)
         
-        self.macroSaveAct = E5Action(
+        self.macroSaveAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Save Macro'),
             QCoreApplication.translate('ViewManager', '&Save Macro'),
             0, 0, self.macroActGrp, 'vm_macro_save')
@@ -3861,7 +3861,7 @@
         """
         self.bookmarkActGrp = createActionGroup(self)
 
-        self.bookmarkToggleAct = E5Action(
+        self.bookmarkToggleAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Toggle Bookmark'),
             UI.PixmapCache.getIcon("bookmarkToggle"),
             QCoreApplication.translate('ViewManager', '&Toggle Bookmark'),
@@ -3880,7 +3880,7 @@
         self.bookmarkToggleAct.triggered.connect(self.__toggleBookmark)
         self.bookmarkActions.append(self.bookmarkToggleAct)
         
-        self.bookmarkNextAct = E5Action(
+        self.bookmarkNextAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Next Bookmark'),
             UI.PixmapCache.getIcon("bookmarkNext"),
             QCoreApplication.translate('ViewManager', '&Next Bookmark'),
@@ -3898,7 +3898,7 @@
         self.bookmarkNextAct.triggered.connect(self.__nextBookmark)
         self.bookmarkActions.append(self.bookmarkNextAct)
         
-        self.bookmarkPreviousAct = E5Action(
+        self.bookmarkPreviousAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Previous Bookmark'),
             UI.PixmapCache.getIcon("bookmarkPrevious"),
             QCoreApplication.translate('ViewManager', '&Previous Bookmark'),
@@ -3916,7 +3916,7 @@
         self.bookmarkPreviousAct.triggered.connect(self.__previousBookmark)
         self.bookmarkActions.append(self.bookmarkPreviousAct)
         
-        self.bookmarkClearAct = E5Action(
+        self.bookmarkClearAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Clear Bookmarks'),
             QCoreApplication.translate('ViewManager', '&Clear Bookmarks'),
             QKeySequence(QCoreApplication.translate(
@@ -3933,7 +3933,7 @@
         self.bookmarkClearAct.triggered.connect(self.__clearAllBookmarks)
         self.bookmarkActions.append(self.bookmarkClearAct)
         
-        self.syntaxErrorGotoAct = E5Action(
+        self.syntaxErrorGotoAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Goto Syntax Error'),
             UI.PixmapCache.getIcon("syntaxErrorGoto"),
             QCoreApplication.translate('ViewManager', '&Goto Syntax Error'),
@@ -3949,7 +3949,7 @@
         self.syntaxErrorGotoAct.triggered.connect(self.__gotoSyntaxError)
         self.bookmarkActions.append(self.syntaxErrorGotoAct)
         
-        self.syntaxErrorClearAct = E5Action(
+        self.syntaxErrorClearAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Clear Syntax Errors'),
             QCoreApplication.translate('ViewManager', 'Clear &Syntax Errors'),
             0, 0,
@@ -3965,7 +3965,7 @@
             self.__clearAllSyntaxErrors)
         self.bookmarkActions.append(self.syntaxErrorClearAct)
         
-        self.warningsNextAct = E5Action(
+        self.warningsNextAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Next warning message'),
             UI.PixmapCache.getIcon("warningNext"),
             QCoreApplication.translate('ViewManager', '&Next warning message'),
@@ -3982,7 +3982,7 @@
         self.warningsNextAct.triggered.connect(self.__nextWarning)
         self.bookmarkActions.append(self.warningsNextAct)
         
-        self.warningsPreviousAct = E5Action(
+        self.warningsPreviousAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Previous warning message'),
             UI.PixmapCache.getIcon("warningPrev"),
@@ -4001,7 +4001,7 @@
         self.warningsPreviousAct.triggered.connect(self.__previousWarning)
         self.bookmarkActions.append(self.warningsPreviousAct)
         
-        self.warningsClearAct = E5Action(
+        self.warningsClearAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Clear Warning Messages'),
             QCoreApplication.translate(
@@ -4018,7 +4018,7 @@
         self.warningsClearAct.triggered.connect(self.__clearAllWarnings)
         self.bookmarkActions.append(self.warningsClearAct)
         
-        self.notcoveredNextAct = E5Action(
+        self.notcoveredNextAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Next uncovered line'),
             UI.PixmapCache.getIcon("notcoveredNext"),
             QCoreApplication.translate('ViewManager', '&Next uncovered line'),
@@ -4035,7 +4035,7 @@
         self.notcoveredNextAct.triggered.connect(self.__nextUncovered)
         self.bookmarkActions.append(self.notcoveredNextAct)
         
-        self.notcoveredPreviousAct = E5Action(
+        self.notcoveredPreviousAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Previous uncovered line'),
             UI.PixmapCache.getIcon("notcoveredPrev"),
@@ -4055,7 +4055,7 @@
             self.__previousUncovered)
         self.bookmarkActions.append(self.notcoveredPreviousAct)
         
-        self.taskNextAct = E5Action(
+        self.taskNextAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Next Task'),
             UI.PixmapCache.getIcon("taskNext"),
             QCoreApplication.translate('ViewManager', '&Next Task'),
@@ -4071,7 +4071,7 @@
         self.taskNextAct.triggered.connect(self.__nextTask)
         self.bookmarkActions.append(self.taskNextAct)
         
-        self.taskPreviousAct = E5Action(
+        self.taskPreviousAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Previous Task'),
             UI.PixmapCache.getIcon("taskPrev"),
             QCoreApplication.translate(
@@ -4089,7 +4089,7 @@
         self.taskPreviousAct.triggered.connect(self.__previousTask)
         self.bookmarkActions.append(self.taskPreviousAct)
         
-        self.changeNextAct = E5Action(
+        self.changeNextAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Next Change'),
             UI.PixmapCache.getIcon("changeNext"),
             QCoreApplication.translate('ViewManager', '&Next Change'),
@@ -4106,7 +4106,7 @@
         self.changeNextAct.triggered.connect(self.__nextChange)
         self.bookmarkActions.append(self.changeNextAct)
         
-        self.changePreviousAct = E5Action(
+        self.changePreviousAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Previous Change'),
             UI.PixmapCache.getIcon("changePrev"),
             QCoreApplication.translate(
@@ -4173,7 +4173,7 @@
         Public method to create the Bookmark toolbar.
         
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         @return the generated toolbar
         """
         tb = QToolBar(QCoreApplication.translate('ViewManager', 'Bookmarks'),
@@ -4213,7 +4213,7 @@
         """
         self.spellingActGrp = createActionGroup(self)
         
-        self.spellCheckAct = E5Action(
+        self.spellCheckAct = EricAction(
             QCoreApplication.translate('ViewManager', 'Check spelling'),
             UI.PixmapCache.getIcon("spellchecking"),
             QCoreApplication.translate(
@@ -4232,7 +4232,7 @@
         self.spellCheckAct.triggered.connect(self.__spellCheck)
         self.spellingActions.append(self.spellCheckAct)
         
-        self.autoSpellCheckAct = E5Action(
+        self.autoSpellCheckAct = EricAction(
             QCoreApplication.translate(
                 'ViewManager', 'Automatic spell checking'),
             UI.PixmapCache.getIcon("autospellchecking"),
@@ -4302,7 +4302,7 @@
         Public method to create the Spelling toolbar.
         
         @param toolbarManager reference to a toolbar manager object
-            (E5ToolBarManager)
+            (EricToolBarManager)
         @return the generated toolbar
         """
         tb = QToolBar(QCoreApplication.translate('ViewManager', 'Spelling'),
@@ -4332,7 +4332,7 @@
         #     3: CWD
         import QScintilla.Lexers
         fileFilter = self._getOpenFileFilter()
-        progs = E5FileDialog.getOpenFileNamesAndFilter(
+        progs = EricFileDialog.getOpenFileNamesAndFilter(
             self.ui,
             QCoreApplication.translate('ViewManager', "Open files"),
             self._getOpenStartDir(),
@@ -4376,7 +4376,7 @@
             if autosave:
                 res = editor.saveFile()
             else:
-                res = E5MessageBox.okToClearData(
+                res = EricMessageBox.okToClearData(
                     self.ui,
                     QCoreApplication.translate('ViewManager', "File Modified"),
                     QCoreApplication.translate(
@@ -4680,7 +4680,7 @@
         from QScintilla.EditorAssembly import EditorAssembly
         assembly = EditorAssembly(self.dbs, fn, self, filetype=filetype,
                                   editor=caller,
-                                  tv=e5App().getObject("TaskViewer"))
+                                  tv=ericApp().getObject("TaskViewer"))
         editor = assembly.getEditor()
         self.editors.append(editor)
         self.__connectEditor(editor)
@@ -4810,8 +4810,8 @@
             .format(eol))
         
         if zoom is None:
-            if QApplication.focusWidget() == e5App().getObject("Shell"):
-                aw = e5App().getObject("Shell")
+            if QApplication.focusWidget() == ericApp().getObject("Shell"):
+                aw = ericApp().getObject("Shell")
             else:
                 aw = self.activeWindow()
             if aw:
@@ -4903,7 +4903,7 @@
                 from QScintilla.EditorAssembly import EditorAssembly
                 assembly = EditorAssembly(self.dbs, fn, self,
                                           filetype=filetype,
-                                          tv=e5App().getObject("TaskViewer"))
+                                          tv=ericApp().getObject("TaskViewer"))
                 editor = assembly.getEditor()
                 self.editors.append(editor)
                 self.__connectEditor(editor)
@@ -5110,7 +5110,7 @@
         """
         from QScintilla.EditorAssembly import EditorAssembly
         assembly = EditorAssembly(self.dbs, "", self,
-                                  tv=e5App().getObject("TaskViewer"))
+                                  tv=ericApp().getObject("TaskViewer"))
         editor = assembly.getEditor()
         self.editors.append(editor)
         self.__connectEditor(editor)
@@ -5357,8 +5357,8 @@
         """
         Private method to handle the cut action.
         """
-        if QApplication.focusWidget() == e5App().getObject("Shell"):
-            e5App().getObject("Shell").cut()
+        if QApplication.focusWidget() == ericApp().getObject("Shell"):
+            ericApp().getObject("Shell").cut()
         else:
             self.activeWindow().cut()
         
@@ -5366,8 +5366,8 @@
         """
         Private method to handle the copy action.
         """
-        if QApplication.focusWidget() == e5App().getObject("Shell"):
-            e5App().getObject("Shell").copy()
+        if QApplication.focusWidget() == ericApp().getObject("Shell"):
+            ericApp().getObject("Shell").copy()
         else:
             self.activeWindow().copy()
         
@@ -5375,8 +5375,8 @@
         """
         Private method to handle the paste action.
         """
-        if QApplication.focusWidget() == e5App().getObject("Shell"):
-            e5App().getObject("Shell").paste()
+        if QApplication.focusWidget() == ericApp().getObject("Shell"):
+            ericApp().getObject("Shell").paste()
         else:
             self.activeWindow().paste()
         
@@ -5384,8 +5384,8 @@
         """
         Private method to handle the delete action.
         """
-        if QApplication.focusWidget() == e5App().getObject("Shell"):
-            e5App().getObject("Shell").clear()
+        if QApplication.focusWidget() == ericApp().getObject("Shell"):
+            ericApp().getObject("Shell").clear()
         else:
             self.activeWindow().clear()
         
@@ -5684,8 +5684,8 @@
         """
         Private method to handle the zoom in action.
         """
-        if QApplication.focusWidget() == e5App().getObject("Shell"):
-            e5App().getObject("Shell").zoomIn()
+        if QApplication.focusWidget() == ericApp().getObject("Shell"):
+            ericApp().getObject("Shell").zoomIn()
         else:
             aw = self.activeWindow()
             if aw:
@@ -5696,8 +5696,8 @@
         """
         Private method to handle the zoom out action.
         """
-        if QApplication.focusWidget() == e5App().getObject("Shell"):
-            e5App().getObject("Shell").zoomOut()
+        if QApplication.focusWidget() == ericApp().getObject("Shell"):
+            ericApp().getObject("Shell").zoomOut()
         else:
             aw = self.activeWindow()
             if aw:
@@ -5715,8 +5715,8 @@
         Private method to handle the zoom action.
         """
         aw = (
-            e5App().getObject("Shell")
-            if QApplication.focusWidget() == e5App().getObject("Shell") else
+            ericApp().getObject("Shell")
+            if QApplication.focusWidget() == ericApp().getObject("Shell") else
             self.activeWindow()
         )
         if aw:
@@ -5733,8 +5733,8 @@
         @param value zoom value to be set (integer)
         """
         aw = (
-            e5App().getObject("Shell")
-            if QApplication.focusWidget() == e5App().getObject("Shell") else
+            ericApp().getObject("Shell")
+            if QApplication.focusWidget() == ericApp().getObject("Shell") else
             self.activeWindow()
         )
         if aw:
@@ -5751,8 +5751,8 @@
         @type Editor or Shell
         """
         aw = (
-            e5App().getObject("Shell")
-            if QApplication.focusWidget() == e5App().getObject("Shell") else
+            ericApp().getObject("Shell")
+            if QApplication.focusWidget() == ericApp().getObject("Shell") else
             self.activeWindow()
         )
         if aw and aw == zoomingWidget:
@@ -6138,11 +6138,11 @@
         """
         Private method to set up the edit dictionaries menu.
         """
-        proj = e5App().getObject("Project")
+        proj = ericApp().getObject("Project")
         projetOpen = proj.isOpen()
-        pwl = e5App().getObject("Project").getProjectDictionaries()[0]
+        pwl = ericApp().getObject("Project").getProjectDictionaries()[0]
         self.__editProjectPwlAct.setEnabled(projetOpen and bool(pwl))
-        pel = e5App().getObject("Project").getProjectDictionaries()[1]
+        pel = ericApp().getObject("Project").getProjectDictionaries()[1]
         self.__editProjectPelAct.setEnabled(projetOpen and bool(pel))
         
         from QScintilla.SpellChecker import SpellChecker
@@ -6172,14 +6172,14 @@
         """
         Private slot to edit the project word list.
         """
-        pwl = e5App().getObject("Project").getProjectDictionaries()[0]
+        pwl = ericApp().getObject("Project").getProjectDictionaries()[0]
         self.__editSpellingDictionary(pwl)
     
     def __editProjectPEL(self):
         """
         Private slot to edit the project exception list.
         """
-        pel = e5App().getObject("Project").getProjectDictionaries()[1]
+        pel = ericApp().getObject("Project").getProjectDictionaries()[1]
         self.__editSpellingDictionary(pel)
     
     def __editUserPWL(self):
@@ -6209,7 +6209,7 @@
                 with open(dictionaryFile, "r", encoding="utf-8") as f:
                     data = f.read()
             except OSError as err:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self.ui,
                     QCoreApplication.translate(
                         'ViewManager', "Edit Spelling Dictionary"),
@@ -6238,7 +6238,7 @@
                     with open(dictionaryFile, "w", encoding="utf-8") as f:
                         f.write(data)
                 except OSError as err:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self.ui,
                         QCoreApplication.translate(
                             'ViewManager', "Edit Spelling Dictionary"),
@@ -6287,7 +6287,7 @@
         @return flag indicating success (boolean)
         """
         with contextlib.suppress(TypeError):
-            e5App().focusChanged.disconnect(self.appFocusChanged)
+            ericApp().focusChanged.disconnect(self.appFocusChanged)
         
         self.closeAllWindows()
         self.currentEditor = None
@@ -6302,7 +6302,7 @@
         res = len(self.editors) == 0
         
         if not res:
-            e5App().focusChanged.connect(self.appFocusChanged)
+            ericApp().focusChanged.connect(self.appFocusChanged)
         
         return res
         
@@ -6637,7 +6637,7 @@
         @param actionSetType string denoting the action set to get.
             It must be one of "edit", "file", "search", "view", "window",
             "macro", "bookmark" or "spelling".
-        @return list of all actions (list of E5Action)
+        @return list of all actions (list of EricAction)
         """
         try:
             return self.__actions[actionSetType][:]
@@ -6651,8 +6651,8 @@
         @param cmd the scintilla command to be sent
         """
         focusWidget = QApplication.focusWidget()
-        if focusWidget == e5App().getObject("Shell"):
-            e5App().getObject("Shell").editorCommand(cmd)
+        if focusWidget == ericApp().getObject("Shell"):
+            ericApp().getObject("Shell").editorCommand(cmd)
         else:
             aw = self.activeWindow()
             if aw:
@@ -6664,7 +6664,7 @@
         cursor is not at the end of the line.
         """
         focusWidget = QApplication.focusWidget()
-        if focusWidget == e5App().getObject("Shell"):
+        if focusWidget == ericApp().getObject("Shell"):
             return
         else:
             aw = self.activeWindow()
@@ -6781,8 +6781,8 @@
             return os.path.dirname(self.activeWindow().getFileName())
         
         # check, if there is an active project and return its path
-        elif e5App().getObject("Project").isOpen():
-            return e5App().getObject("Project").ppath
+        elif ericApp().getObject("Project").isOpen():
+            return ericApp().getObject("Project").ppath
         
         else:
             return (
@@ -6859,7 +6859,7 @@
         @param fileName file name of the editor (string)
         @param message command message to be sent (string)
         """
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         if project.isProjectFile(fileName):
             self.__cooperationClient.sendEditorCommand(
                 project.getHash(),
@@ -6875,7 +6875,7 @@
         @param fileName project relative file name of the editor (string)
         @param command command string (string)
         """
-        project = e5App().getObject("Project")
+        project = ericApp().getObject("Project")
         if projectHash == project.getHash():
             fn = project.getAbsoluteUniversalPath(fileName)
             editor = self.getOpenEditor(fn)
@@ -6900,7 +6900,7 @@
         aw = self.activeWindow()
         if aw is not None:
             fn = aw.getFileName()
-            if fn and e5App().getObject("Project").isProjectFile(fn):
+            if fn and ericApp().getObject("Project").isProjectFile(fn):
                 aw.shareEditor(share)
     
     def startSharedEdit(self):
@@ -6910,7 +6910,7 @@
         aw = self.activeWindow()
         if aw is not None:
             fn = aw.getFileName()
-            if fn and e5App().getObject("Project").isProjectFile(fn):
+            if fn and ericApp().getObject("Project").isProjectFile(fn):
                 aw.startSharedEdit()
     
     def sendSharedEdit(self):
@@ -6921,7 +6921,7 @@
         aw = self.activeWindow()
         if aw is not None:
             fn = aw.getFileName()
-            if fn and e5App().getObject("Project").isProjectFile(fn):
+            if fn and ericApp().getObject("Project").isProjectFile(fn):
                 aw.sendSharedEdit()
     
     def cancelSharedEdit(self):
@@ -6931,7 +6931,7 @@
         aw = self.activeWindow()
         if aw is not None:
             fn = aw.getFileName()
-            if fn and e5App().getObject("Project").isProjectFile(fn):
+            if fn and ericApp().getObject("Project").isProjectFile(fn):
                 aw.cancelSharedEdit()
     
     #######################################################################
@@ -6944,8 +6944,8 @@
         
         @param txt text to be inserted (string)
         """
-        if self.__lastFocusWidget == e5App().getObject("Shell"):
-            e5App().getObject("Shell").insert(txt)
+        if self.__lastFocusWidget == ericApp().getObject("Shell"):
+            ericApp().getObject("Shell").insert(txt)
         else:
             aw = self.activeWindow()
             if aw is not None:
@@ -6963,8 +6963,8 @@
         
         @param txt text to be inserted (string)
         """
-        if self.__lastFocusWidget == e5App().getObject("Shell"):
-            aw = e5App().getObject("Shell")
+        if self.__lastFocusWidget == ericApp().getObject("Shell"):
+            aw = ericApp().getObject("Shell")
             if aw.hasSelectedText():
                 aw.removeSelectedText()
             aw.insert(txt)
@@ -6984,8 +6984,8 @@
         @return selected text of the active window (string)
         """
         txt = ""
-        if self.__lastFocusWidget == e5App().getObject("Shell"):
-            aw = e5App().getObject("Shell")
+        if self.__lastFocusWidget == ericApp().getObject("Shell"):
+            aw = ericApp().getObject("Shell")
             if aw.hasSelectedText():
                 txt = aw.selectedText()
         else:
--- a/eric7/VirtualEnv/VirtualenvAddEditDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VirtualEnv/VirtualenvAddEditDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import pyqtSlot, Qt
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_VirtualenvAddEditDialog import Ui_VirtualenvAddEditDialog
 
@@ -68,12 +68,12 @@
         if not self.__envBaseDir:
             self.__envBaseDir = Utilities.getHomeDir()
         
-        self.targetDirectoryPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.targetDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.targetDirectoryPicker.setWindowTitle(
             self.tr("Virtualenv Target Directory"))
         self.targetDirectoryPicker.setDefaultDirectory(self.__envBaseDir)
         
-        self.pythonExecPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.pythonExecPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.pythonExecPicker.setWindowTitle(
             self.tr("Python Interpreter"))
         self.pythonExecPicker.setDefaultDirectory(
--- a/eric7/VirtualEnv/VirtualenvAddEditDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VirtualEnv/VirtualenvAddEditDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -90,7 +90,7 @@
     </widget>
    </item>
    <item row="2" column="1">
-    <widget class="E5PathPicker" name="pythonExecPicker" native="true">
+    <widget class="EricPathPicker" name="pythonExecPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -106,7 +106,7 @@
     </widget>
    </item>
    <item row="1" column="1">
-    <widget class="E5PathPicker" name="targetDirectoryPicker" native="true">
+    <widget class="EricPathPicker" name="targetDirectoryPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -156,9 +156,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/VirtualEnv/VirtualenvConfigurationDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VirtualEnv/VirtualenvConfigurationDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -15,7 +15,7 @@
 from PyQt6.QtCore import pyqtSlot, QProcess, QTimer
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_VirtualenvConfigurationDialog import Ui_VirtualenvConfigurationDialog
 
@@ -46,39 +46,39 @@
             baseDir = Utilities.getHomeDir()
         self.__envBaseDir = baseDir
         
-        self.targetDirectoryPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.targetDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.targetDirectoryPicker.setWindowTitle(
             self.tr("Virtualenv Target Directory"))
         self.targetDirectoryPicker.setText(baseDir)
         self.targetDirectoryPicker.setDefaultDirectory(baseDir)
         
-        self.extraSearchPathPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.extraSearchPathPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.extraSearchPathPicker.setWindowTitle(
             self.tr("Extra Search Path for setuptools/pip"))
         self.extraSearchPathPicker.setDefaultDirectory(Utilities.getHomeDir())
         
-        self.pythonExecPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.pythonExecPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.pythonExecPicker.setWindowTitle(
             self.tr("Python Interpreter"))
         self.pythonExecPicker.setDefaultDirectory(
             sys.executable.replace("w.exe", ".exe"))
         
         self.condaTargetDirectoryPicker.setMode(
-            E5PathPickerModes.DIRECTORY_MODE)
+            EricPathPickerModes.DIRECTORY_MODE)
         self.condaTargetDirectoryPicker.setWindowTitle(
             self.tr("Conda Environment Location"))
         self.condaTargetDirectoryPicker.setDefaultDirectory(
             Utilities.getHomeDir())
         
         self.condaCloneDirectoryPicker.setMode(
-            E5PathPickerModes.DIRECTORY_MODE)
+            EricPathPickerModes.DIRECTORY_MODE)
         self.condaCloneDirectoryPicker.setWindowTitle(
             self.tr("Conda Environment Location"))
         self.condaCloneDirectoryPicker.setDefaultDirectory(
             Utilities.getHomeDir())
         
         self.condaRequirementsFilePicker.setMode(
-            E5PathPickerModes.OPEN_FILE_MODE)
+            EricPathPickerModes.OPEN_FILE_MODE)
         self.condaRequirementsFilePicker.setWindowTitle(
             self.tr("Conda Requirements File"))
         self.condaRequirementsFilePicker.setDefaultDirectory(
--- a/eric7/VirtualEnv/VirtualenvConfigurationDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VirtualEnv/VirtualenvConfigurationDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -144,7 +144,7 @@
            </widget>
           </item>
           <item row="0" column="1">
-           <widget class="E5PathPicker" name="targetDirectoryPicker" native="true">
+           <widget class="EricPathPicker" name="targetDirectoryPicker" native="true">
             <property name="sizePolicy">
              <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
               <horstretch>0</horstretch>
@@ -167,7 +167,7 @@
            </widget>
           </item>
           <item row="1" column="1">
-           <widget class="E5PathPicker" name="extraSearchPathPicker" native="true">
+           <widget class="EricPathPicker" name="extraSearchPathPicker" native="true">
             <property name="sizePolicy">
              <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
               <horstretch>0</horstretch>
@@ -210,7 +210,7 @@
            </widget>
           </item>
           <item row="3" column="1">
-           <widget class="E5PathPicker" name="pythonExecPicker" native="true">
+           <widget class="EricPathPicker" name="pythonExecPicker" native="true">
             <property name="sizePolicy">
              <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
               <horstretch>0</horstretch>
@@ -492,7 +492,7 @@
            </widget>
           </item>
           <item row="1" column="1">
-           <widget class="E5PathPicker" name="condaTargetDirectoryPicker" native="true">
+           <widget class="EricPathPicker" name="condaTargetDirectoryPicker" native="true">
             <property name="sizePolicy">
              <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
               <horstretch>0</horstretch>
@@ -586,7 +586,7 @@
               </widget>
              </item>
              <item row="1" column="1">
-              <widget class="E5PathPicker" name="condaCloneDirectoryPicker" native="true">
+              <widget class="EricPathPicker" name="condaCloneDirectoryPicker" native="true">
                <property name="sizePolicy">
                 <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
                  <horstretch>0</horstretch>
@@ -617,7 +617,7 @@
             </property>
             <layout class="QVBoxLayout" name="verticalLayout_4">
              <item>
-              <widget class="E5PathPicker" name="condaRequirementsFilePicker" native="true">
+              <widget class="EricPathPicker" name="condaRequirementsFilePicker" native="true">
                <property name="sizePolicy">
                 <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
                  <horstretch>0</horstretch>
@@ -743,9 +743,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/VirtualEnv/VirtualenvInterpreterSelectionDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VirtualEnv/VirtualenvInterpreterSelectionDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import pyqtSlot
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_VirtualenvInterpreterSelectionDialog import (
     Ui_VirtualenvInterpreterSelectionDialog
@@ -40,7 +40,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.pythonExecPicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.pythonExecPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         self.pythonExecPicker.setWindowTitle(
             self.tr("Python Interpreter"))
         
--- a/eric7/VirtualEnv/VirtualenvInterpreterSelectionDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VirtualEnv/VirtualenvInterpreterSelectionDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -43,7 +43,7 @@
     </widget>
    </item>
    <item>
-    <widget class="E5PathPicker" name="pythonExecPicker" native="true">
+    <widget class="EricPathPicker" name="pythonExecPicker" native="true">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
        <horstretch>0</horstretch>
@@ -72,9 +72,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/VirtualEnv/VirtualenvManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VirtualEnv/VirtualenvManager.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
 from PyQt6.QtCore import pyqtSlot, pyqtSignal, QObject
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 import Preferences
 
@@ -186,7 +186,7 @@
             
             if resultDict["envType"] == "conda":
                 # create the conda environment
-                conda = e5App().getObject("Conda")
+                conda = ericApp().getObject("Conda")
                 ok, prefix, interpreter = conda.createCondaEnvironment(
                     resultDict["arguments"])
                 if ok and "--dry-run" not in resultDict["arguments"]:
@@ -225,13 +225,13 @@
         @type str
         """
         if venvName in self.__virtualEnvironments:
-            ok = E5MessageBox.yesNo(
+            ok = EricMessageBox.yesNo(
                 None,
                 self.tr("Add Virtual Environment"),
                 self.tr("""A virtual environment named <b>{0}</b> exists"""
                         """ already. Shall it be replaced?""")
                 .format(venvName),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not ok:
                 from .VirtualenvNameDialog import VirtualenvNameDialog
                 dlg = VirtualenvNameDialog(
@@ -289,13 +289,13 @@
         @type str
         """
         if venvName not in self.__virtualEnvironments:
-            E5MessageBox.yesNo(
+            EricMessageBox.yesNo(
                 None,
                 self.tr("Change Virtual Environment"),
                 self.tr("""A virtual environment named <b>{0}</b> does not"""
                         """ exist. Aborting!""")
                 .format(venvName),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             return
         
         self.__virtualEnvironments[venvName] = {
@@ -340,13 +340,13 @@
         @type str
         """
         if oldVenvName not in self.__virtualEnvironments:
-            E5MessageBox.yesNo(
+            EricMessageBox.yesNo(
                 None,
                 self.tr("Rename Virtual Environment"),
                 self.tr("""A virtual environment named <b>{0}</b> does not"""
                         """ exist. Aborting!""")
                 .format(oldVenvName),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             return
         
         del self.__virtualEnvironments[oldVenvName]
@@ -383,7 +383,7 @@
                 for venvName in venvNames:
                     if self.__isEnvironmentDeleteable(venvName):
                         if self.isCondaEnvironment(venvName):
-                            conda = e5App().getObject("Conda")
+                            conda = ericApp().getObject("Conda")
                             path = self.__virtualEnvironments[venvName]["path"]
                             res = conda.removeCondaEnvironment(prefix=path)
                             if res:
--- a/eric7/VirtualEnv/VirtualenvManagerDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VirtualEnv/VirtualenvManagerDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 from PyQt6.QtCore import pyqtSlot, Qt
 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem, QHeaderView
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_VirtualenvManagerDialog import Ui_VirtualenvManagerDialog
 
@@ -46,7 +46,7 @@
         if not baseDir:
             baseDir = Utilities.getHomeDir()
         
-        self.envBaseDirectoryPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.envBaseDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.envBaseDirectoryPicker.setWindowTitle(
             self.tr("Virtualenv Base Directory"))
         self.envBaseDirectoryPicker.setText(baseDir)
--- a/eric7/VirtualEnv/VirtualenvManagerDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/VirtualEnv/VirtualenvManagerDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -190,7 +190,7 @@
       </widget>
      </item>
      <item>
-      <widget class="E5PathPicker" name="envBaseDirectoryPicker" native="true">
+      <widget class="EricPathPicker" name="envBaseDirectoryPicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -221,9 +221,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/WebBrowser/AdBlock/AdBlockDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/AdBlock/AdBlockDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot, Qt, QTimer, QCoreApplication
 from PyQt6.QtWidgets import QDialog, QMenu, QToolButton
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_AdBlockDialog import Ui_AdBlockDialog
 
@@ -241,7 +241,7 @@
                 "<p>Do you really want to remove subscription"
                 " <b>{0}</b>?</p>").format(self.__currentSubscription.title())
         )
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Remove Subscription"),
             message)
--- a/eric7/WebBrowser/AdBlock/AdBlockIcon.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/AdBlock/AdBlockIcon.py	Sat May 22 18:51:46 2021 +0200
@@ -10,12 +10,12 @@
 from PyQt6.QtCore import Qt
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5ClickableLabel import E5ClickableLabel
+from E5Gui.EricClickableLabel import EricClickableLabel
 
 import UI.PixmapCache
 
 
-class AdBlockIcon(E5ClickableLabel):
+class AdBlockIcon(EricClickableLabel):
     """
     Class implementing the AdBlock icon for the main window status bar.
     """
--- a/eric7/WebBrowser/AdBlock/AdBlockManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/AdBlock/AdBlockManager.py	Sat May 22 18:51:46 2021 +0200
@@ -15,7 +15,7 @@
 )
 from PyQt6.QtWebEngineCore import QWebEngineUrlRequestInfo
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from EricUtilities.EricMutexLocker import EricMutexLocker
 
@@ -331,7 +331,7 @@
         if not title:
             return False
         
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             None,
             self.tr("Subscribe?"),
             self.tr(
--- a/eric7/WebBrowser/AdBlock/AdBlockSubscription.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/AdBlock/AdBlockSubscription.py	Sat May 22 18:51:46 2021 +0200
@@ -18,7 +18,7 @@
 )
 from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 import Utilities
 import Preferences
@@ -281,7 +281,7 @@
         f = QFile(fileName)
         if f.exists():
             if not f.open(QIODevice.OpenModeFlag.ReadOnly):
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     None,
                     self.tr("Load subscription rules"),
                     self.tr(
@@ -291,7 +291,7 @@
                 textStream = QTextStream(f)
                 header = textStream.readLine(1024)
                 if not header.startswith("[Adblock"):
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         None,
                         self.tr("Load subscription rules"),
                         self.tr("""AdBlock file '{0}' does not start"""
@@ -396,7 +396,7 @@
         if reply.error() != QNetworkReply.NetworkError.NoError:
             if not self.__defaultSubscription:
                 # don't show error if we try to load the default
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     None,
                     self.tr("Downloading subscription rules"),
                     self.tr(
@@ -409,7 +409,7 @@
             return
         
         if response.isEmpty():
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Downloading subscription rules"),
                 self.tr("""Got empty subscription rules."""))
@@ -419,7 +419,7 @@
         QFile.remove(fileName)
         f = QFile(fileName)
         if not f.open(QIODevice.OpenModeFlag.ReadWrite):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Downloading subscription rules"),
                 self.tr(
@@ -499,7 +499,7 @@
         if calculatedChecksum == expectedChecksum:
             return True
         else:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 None,
                 self.tr("Downloading subscription rules"),
                 self.tr(
@@ -523,7 +523,7 @@
         f = QFile(fileName)
         if not f.open(QIODevice.OpenModeFlag.ReadWrite |
                       QIODevice.OpenModeFlag.Truncate):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Saving subscription rules"),
                 self.tr(
--- a/eric7/WebBrowser/AdBlock/AdBlockTreeWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/AdBlock/AdBlockTreeWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -14,11 +14,11 @@
     QApplication
 )
 
-from E5Gui.E5TreeWidget import E5TreeWidget, E5TreeWidgetItemsState
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricTreeWidget import EricTreeWidget, EricTreeWidgetItemsState
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 
-class AdBlockTreeWidget(E5TreeWidget):
+class AdBlockTreeWidget(EricTreeWidget):
     """
     Class implementing a tree widget for the AdBlock configuration dialog.
     """
@@ -39,7 +39,7 @@
         self.__itemChangingBlock = False
         
         self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
-        self.setDefaultItemShowMode(E5TreeWidgetItemsState.EXPANDED)
+        self.setDefaultItemShowMode(EricTreeWidgetItemsState.EXPANDED)
         self.setHeaderHidden(True)
         self.setAlternatingRowColors(True)
         
@@ -81,7 +81,7 @@
         """
         Public method to refresh the tree.
         """
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             self.__itemChangingBlock = True
             self.clear()
             
--- a/eric7/WebBrowser/Bookmarks/BookmarksDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Bookmarks/BookmarksDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
     QDialog, QMenu, QApplication, QInputDialog, QLineEdit
 )
 
-from E5Gui.E5TreeSortFilterProxyModel import E5TreeSortFilterProxyModel
+from E5Gui.EricTreeSortFilterProxyModel import EricTreeSortFilterProxyModel
 
 from .Ui_BookmarksDialog import Ui_BookmarksDialog
 
@@ -53,7 +53,7 @@
             )
         
         self.__bookmarksModel = self.__bookmarksManager.bookmarksModel()
-        self.__proxyModel = E5TreeSortFilterProxyModel(self)
+        self.__proxyModel = EricTreeSortFilterProxyModel(self)
         self.__proxyModel.setFilterKeyColumn(-1)
         self.__proxyModel.setSourceModel(self.__bookmarksModel)
         
--- a/eric7/WebBrowser/Bookmarks/BookmarksDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Bookmarks/BookmarksDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -52,7 +52,7 @@
     </layout>
    </item>
    <item>
-    <widget class="E5TreeView" name="bookmarksTree">
+    <widget class="EricTreeView" name="bookmarksTree">
      <property name="dragDropMode">
       <enum>QAbstractItemView::InternalMove</enum>
      </property>
@@ -124,9 +124,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TreeView</class>
+   <class>EricTreeView</class>
    <extends>QTreeView</extends>
-   <header>E5Gui/E5TreeView.h</header>
+   <header>E5Gui/EricTreeView.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/WebBrowser/Bookmarks/BookmarksImportDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Bookmarks/BookmarksImportDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
 from PyQt6.QtCore import pyqtSlot, Qt, QSize
 from PyQt6.QtWidgets import QDialog, QListWidgetItem
 
-from E5Gui import E5MessageBox
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui import EricMessageBox
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_BookmarksImportDialog import Ui_BookmarksImportDialog
 
@@ -37,7 +37,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.filePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+        self.filePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
         
         self.sourcesList.setIconSize(QSize(48, 48))
         for icon, displayText, idText in BookmarksImporters.getImporters():
@@ -109,9 +109,9 @@
             self.__enableNextButton()
             
             if self.__selectedSource == "ie":
-                self.filePicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+                self.filePicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
             else:
-                self.filePicker.setMode(E5PathPickerModes.OPEN_FILE_MODE)
+                self.filePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
                 if Globals.isMacPlatform():
                     fileFilter = "*{0}".format(
                         os.path.splitext(self.__sourceFile)[1])
@@ -129,7 +129,7 @@
             if importer.open():
                 self.__topLevelBookmarkNode = importer.importedBookmarks()
             if importer.error():
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Error importing bookmarks"),
                     importer.errorString())
--- a/eric7/WebBrowser/Bookmarks/BookmarksImportDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Bookmarks/BookmarksImportDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -127,7 +127,7 @@
         </spacer>
        </item>
        <item>
-        <widget class="E5PathPicker" name="filePicker" native="true">
+        <widget class="EricPathPicker" name="filePicker" native="true">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
            <horstretch>0</horstretch>
@@ -194,9 +194,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/WebBrowser/Bookmarks/BookmarksManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Bookmarks/BookmarksManager.py	Sat May 22 18:51:46 2021 +0200
@@ -16,7 +16,7 @@
 )
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui import EricMessageBox, EricFileDialog
 
 from .BookmarkNode import BookmarkNode
 
@@ -136,7 +136,7 @@
         reader = XbelReader()
         self.__bookmarkRootNode = reader.read(bookmarkFile)
         if reader.error() != QXmlStreamReader.Error.NoError:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Loading Bookmarks"),
                 self.tr(
@@ -205,7 +205,7 @@
         self.__menu.title = BOOKMARKMENU
         self.__toolbar.title = BOOKMARKBAR
         if not writer.write(bookmarkFile, self.__bookmarkRootNode):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Saving Bookmarks"),
                 self.tr("""Error saving bookmarks to <b>{0}</b>.""")
@@ -387,7 +387,7 @@
         """
         Public method to export the bookmarks.
         """
-        fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fileName, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             None,
             self.tr("Export Bookmarks"),
             "eric7_bookmarks.xbel",
@@ -411,7 +411,7 @@
             from .XbelWriter import XbelWriter
             writer = XbelWriter()
         if not writer.write(fileName, self.__bookmarkRootNode):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Exporting Bookmarks"),
                 self.tr("""Error exporting bookmarks to <b>{0}</b>.""")
--- a/eric7/WebBrowser/Bookmarks/BookmarksMenu.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Bookmarks/BookmarksMenu.py	Sat May 22 18:51:46 2021 +0200
@@ -11,13 +11,13 @@
 from PyQt6.QtGui import QCursor
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5ModelMenu import E5ModelMenu
+from E5Gui.EricModelMenu import EricModelMenu
 
 from .BookmarksModel import BookmarksModel
 from .BookmarkNode import BookmarkNode
 
 
-class BookmarksMenu(E5ModelMenu):
+class BookmarksMenu(EricModelMenu):
     """
     Class implementing the bookmarks menu base class.
     
@@ -38,7 +38,7 @@
         
         @param parent reference to the parent widget (QWidget)
         """
-        E5ModelMenu.__init__(self, parent)
+        EricModelMenu.__init__(self, parent)
         
         self.activated.connect(self.__activated)
         self.setStatusBarTextRole(BookmarksModel.UrlStringRole)
--- a/eric7/WebBrowser/Bookmarks/BookmarksToolBar.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Bookmarks/BookmarksToolBar.py	Sat May 22 18:51:46 2021 +0200
@@ -12,12 +12,12 @@
 from PyQt6.QtWidgets import QMenu
 from PyQt6.QtWebEngineWidgets import QWebEnginePage
 
-from E5Gui.E5ModelToolBar import E5ModelToolBar
+from E5Gui.EricModelToolBar import EricModelToolBar
 
 from .BookmarksModel import BookmarksModel
 
 
-class BookmarksToolBar(E5ModelToolBar):
+class BookmarksToolBar(EricModelToolBar):
     """
     Class implementing a tool bar showing bookmarks.
     
@@ -37,7 +37,7 @@
         @param model reference to the bookmarks model (BookmarksModel)
         @param parent reference to the parent widget (QWidget)
         """
-        E5ModelToolBar.__init__(
+        EricModelToolBar.__init__(
             self, QCoreApplication.translate("BookmarksToolBar", "Bookmarks"),
             parent)
         
@@ -253,7 +253,7 @@
         """
         Protected method to create the menu for a tool bar action.
         
-        @return menu for a tool bar action (E5ModelMenu)
+        @return menu for a tool bar action (EricModelMenu)
         """
         from .BookmarksMenu import BookmarksMenu
         menu = BookmarksMenu(self)
--- a/eric7/WebBrowser/CookieJar/CookiesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/CookieJar/CookiesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSlot, Qt, QByteArray
 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem, QHeaderView
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_CookiesDialog import Ui_CookiesDialog
 
@@ -141,7 +141,7 @@
         """
         Private slot to remove all cookies.
         """
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Remove All Cookies"),
             self.tr("""Do you really want to remove all stored cookies?"""))
--- a/eric7/WebBrowser/CookieJar/CookiesDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/CookieJar/CookiesDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -100,7 +100,7 @@
        </widget>
       </item>
       <item row="0" column="1">
-       <widget class="E5SqueezeLabel" name="domain">
+       <widget class="EricSqueezeLabel" name="domain">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -123,7 +123,7 @@
        </widget>
       </item>
       <item row="1" column="1">
-       <widget class="E5SqueezeLabel" name="name">
+       <widget class="EricSqueezeLabel" name="name">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -146,7 +146,7 @@
        </widget>
       </item>
       <item row="2" column="1">
-       <widget class="E5SqueezeLabel" name="path">
+       <widget class="EricSqueezeLabel" name="path">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -169,7 +169,7 @@
        </widget>
       </item>
       <item row="3" column="1">
-       <widget class="E5SqueezeLabel" name="secure">
+       <widget class="EricSqueezeLabel" name="secure">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -192,7 +192,7 @@
        </widget>
       </item>
       <item row="4" column="1">
-       <widget class="E5SqueezeLabel" name="expiration">
+       <widget class="EricSqueezeLabel" name="expiration">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -215,7 +215,7 @@
        </widget>
       </item>
       <item row="5" column="1">
-       <widget class="E5SqueezeLabel" name="value">
+       <widget class="EricSqueezeLabel" name="value">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -306,9 +306,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5SqueezeLabel</class>
+   <class>EricSqueezeLabel</class>
    <extends>QLabel</extends>
-   <header>E5Gui/E5SqueezeLabels.h</header>
+   <header>E5Gui/EricSqueezeLabels.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/WebBrowser/CookieJar/CookiesExceptionsDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/CookieJar/CookiesExceptionsDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -159,7 +159,7 @@
        </layout>
       </item>
       <item row="1" column="0" colspan="3">
-       <widget class="E5TableView" name="exceptionsTable">
+       <widget class="EricTableView" name="exceptionsTable">
         <property name="alternatingRowColors">
          <bool>true</bool>
         </property>
@@ -236,9 +236,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TableView</class>
+   <class>EricTableView</class>
    <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
+   <header>E5Gui/EricTableView.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/WebBrowser/Download/DownloadItem.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Download/DownloadItem.py	Sat May 22 18:51:46 2021 +0200
@@ -16,7 +16,7 @@
 from PyQt6.QtWidgets import QWidget, QStyle, QDialog
 from PyQt6.QtWebEngineWidgets import QWebEngineDownloadItem
 
-from E5Gui import E5FileDialog
+from E5Gui import EricFileDialog
 
 from .Ui_DownloadItem import Ui_DownloadItem
 
@@ -210,7 +210,7 @@
             
             if ask and not self.__autoOpen:
                 self.__gettingFileName = True
-                fileName = E5FileDialog.getSaveFileName(
+                fileName = EricFileDialog.getSaveFileName(
                     None,
                     self.tr("Save File"),
                     defaultFileName,
--- a/eric7/WebBrowser/Download/DownloadManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Download/DownloadManager.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
     QDialog, QStyle, QFileIconProvider, QMenu, QApplication
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 from .Ui_DownloadManager import Ui_DownloadManager
 
@@ -166,13 +166,13 @@
         @return flag indicating allowance to quit (boolean)
         """
         if self.activeDownloadsCount() > 0:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr(""),
                 self.tr("""There are %n downloads in progress.\n"""
                         """Do you want to quit anyway?""", "",
                         self.activeDownloadsCount()),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 self.show()
                 return False
@@ -255,15 +255,15 @@
                     WebBrowserWindow.safeBrowsingManager()
                     .getThreatMessages(threatLists)
                 )
-                res = E5MessageBox.warning(
+                res = EricMessageBox.warning(
                     WebBrowserWindow.getWindow(),
                     self.tr("Suspicuous URL detected"),
                     self.tr("<p>The URL <b>{0}</b> was found in the Safe"
                             " Browsing database.</p>{1}").format(
                         url.toString(), "".join(threatMessages)),
-                    E5MessageBox.Abort | E5MessageBox.Ignore,
-                    E5MessageBox.Abort)
-                if res == E5MessageBox.Abort:
+                    EricMessageBox.Abort | EricMessageBox.Ignore,
+                    EricMessageBox.Abort)
+                if res == EricMessageBox.Abort:
                     downloadItem.cancel()
                     return
         
@@ -489,7 +489,7 @@
         
         if self.activeDownloadsCount() == 0:
             # all active downloads are done
-            if success and e5App().activeWindow() is not self:
+            if success and ericApp().activeWindow() is not self:
                 WebBrowserWindow.showNotification(
                     UI.PixmapCache.getPixmap("downloads48"),
                     self.tr("Downloads finished"),
--- a/eric7/WebBrowser/Download/DownloadManager.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Download/DownloadManager.ui	Sat May 22 18:51:46 2021 +0200
@@ -18,7 +18,7 @@
   </property>
   <layout class="QGridLayout" name="gridLayout">
    <item row="0" column="0" colspan="3">
-    <widget class="E5TableView" name="downloadsView"/>
+    <widget class="EricTableView" name="downloadsView"/>
    </item>
    <item row="1" column="0">
     <layout class="QHBoxLayout" name="horizontalLayout_2">
@@ -91,9 +91,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TableView</class>
+   <class>EricTableView</class>
    <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
+   <header>E5Gui/EricTableView.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/WebBrowser/Download/DownloadManagerButton.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Download/DownloadManagerButton.py	Sat May 22 18:51:46 2021 +0200
@@ -9,14 +9,14 @@
 
 from PyQt6.QtCore import pyqtSlot, Qt
 
-from E5Gui.E5ToolButton import E5ToolButton
+from E5Gui.EricToolButton import EricToolButton
 
 import UI.PixmapCache
 
 from WebBrowser.WebBrowserWindow import WebBrowserWindow
 
 
-class DownloadManagerButton(E5ToolButton):
+class DownloadManagerButton(EricToolButton):
     """
     Class implementing a tool button for the download manager.
     """
--- a/eric7/WebBrowser/FeaturePermissions/FeaturePermissionBar.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/FeaturePermissions/FeaturePermissionBar.py	Sat May 22 18:51:46 2021 +0200
@@ -13,12 +13,12 @@
 from PyQt6.QtWidgets import QLabel, QHBoxLayout, QPushButton
 from PyQt6.QtWebEngineWidgets import QWebEnginePage
 
-from E5Gui.E5AnimatedWidget import E5AnimatedWidget
+from E5Gui.EricAnimatedWidget import EricAnimatedWidget
 
 import UI.PixmapCache
 
 
-class FeaturePermissionBar(E5AnimatedWidget):
+class FeaturePermissionBar(EricAnimatedWidget):
     """
     Class implementing the feature permission bar widget.
     """
--- a/eric7/WebBrowser/Feeds/FeedsManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Feeds/FeedsManager.py	Sat May 22 18:51:46 2021 +0200
@@ -12,7 +12,7 @@
 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem, QMenu, QApplication
 from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_FeedsManager import Ui_FeedsManager
 
@@ -179,7 +179,7 @@
                 urlString, title = dlg.getData()
                 for feed in self.__feeds:
                     if feed[0] == urlString:
-                        E5MessageBox.critical(
+                        EricMessageBox.critical(
                             self,
                             self.tr("Duplicate Feed URL"),
                             self.tr(
@@ -201,7 +201,7 @@
         """
         itm = self.feedsTree.selectedItems()[0]
         title = itm.text(0)
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Delete Feed"),
             self.tr(
@@ -481,7 +481,7 @@
         
         errorStr = itm.data(0, FeedsManager.ErrorDataRole)
         if errorStr:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Error loading feed"),
                 "{0}".format(errorStr))
--- a/eric7/WebBrowser/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 from PyQt6.QtGui import QDesktopServices
 from PyQt6.QtWidgets import QDialog, QListWidgetItem
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_GreaseMonkeyConfigurationDialog import (
     Ui_GreaseMonkeyConfigurationDialog
@@ -154,7 +154,7 @@
         if script is None:
             return
         
-        removeIt = E5MessageBox.yesNo(
+        removeIt = EricMessageBox.yesNo(
             self,
             self.tr("Remove Script"),
             self.tr(
--- a/eric7/WebBrowser/GreaseMonkey/GreaseMonkeyManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/GreaseMonkey/GreaseMonkeyManager.py	Sat May 22 18:51:46 2021 +0200
@@ -16,7 +16,7 @@
 )
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 import Utilities
 import Preferences
@@ -117,7 +117,7 @@
                     dlg = GreaseMonkeyAddScriptDialog(self, script)
                     deleteScript = dlg.exec() != QDialog.DialogCode.Accepted
                 else:
-                    E5MessageBox.information(
+                    EricMessageBox.information(
                         None,
                         QCoreApplication.translate(
                             "GreaseMonkeyManager",
--- a/eric7/WebBrowser/History/HistoryDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/History/HistoryDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 from PyQt6.QtGui import QFontMetrics, QCursor
 from PyQt6.QtWidgets import QDialog, QMenu, QApplication
 
-from E5Gui.E5TreeSortFilterProxyModel import E5TreeSortFilterProxyModel
+from E5Gui.EricTreeSortFilterProxyModel import EricTreeSortFilterProxyModel
 
 from .HistoryModel import HistoryModel
 
@@ -55,7 +55,7 @@
             )
         
         self.__model = self.__historyManager.historyTreeModel()
-        self.__proxyModel = E5TreeSortFilterProxyModel(self)
+        self.__proxyModel = EricTreeSortFilterProxyModel(self)
         self.__proxyModel.setSortRole(HistoryModel.DateTimeRole)
         self.__proxyModel.setFilterKeyColumn(-1)
         self.__proxyModel.setSourceModel(self.__model)
--- a/eric7/WebBrowser/History/HistoryDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/History/HistoryDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -52,7 +52,7 @@
     </layout>
    </item>
    <item>
-    <widget class="E5TreeView" name="historyTree">
+    <widget class="EricTreeView" name="historyTree">
      <property name="alternatingRowColors">
       <bool>true</bool>
      </property>
@@ -124,9 +124,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TreeView</class>
+   <class>EricTreeView</class>
    <extends>QTreeView</extends>
-   <header>E5Gui/E5TreeView.h</header>
+   <header>E5Gui/EricTreeView.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/WebBrowser/History/HistoryManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/History/HistoryManager.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
     QFile, QIODevice, QByteArray, QDataStream, QTemporaryFile, QObject
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from Utilities.AutoSaver import AutoSaver
 import Utilities
@@ -449,7 +449,7 @@
         if not historyFile.exists():
             return
         if not historyFile.open(QIODevice.OpenModeFlag.ReadOnly):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Loading History"),
                 self.tr(
@@ -540,7 +540,7 @@
             opened = f.open(QIODevice.OpenModeFlag.Append)
         
         if not opened:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Saving History"),
                 self.tr(
@@ -564,7 +564,7 @@
         f.close()
         if saveAll:
             if historyFile.exists() and not historyFile.remove():
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     None,
                     self.tr("Saving History"),
                     self.tr(
@@ -573,7 +573,7 @@
                     .format(historyFile.fileName(),
                             historyFile.errorString()))
             if not f.copy(historyFile.fileName()):
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     None,
                     self.tr("Saving History"),
                     self.tr(
--- a/eric7/WebBrowser/History/HistoryMenu.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/History/HistoryMenu.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
 )
 from PyQt6.QtWidgets import QMenu
 
-from E5Gui.E5ModelMenu import E5ModelMenu
-from E5Gui import E5MessageBox
+from E5Gui.EricModelMenu import EricModelMenu
+from E5Gui import EricMessageBox
 
 from .HistoryModel import HistoryModel
 
@@ -270,7 +270,7 @@
         return frequency_R < frequency_L
 
 
-class HistoryMenu(E5ModelMenu):
+class HistoryMenu(EricModelMenu):
     """
     Class implementing the history menu.
     
@@ -296,7 +296,7 @@
         @param tabWidget reference to the tab widget managing the browser
             tabs (HelpTabWidget
         """
-        E5ModelMenu.__init__(self, parent)
+        EricModelMenu.__init__(self, parent)
         
         self.__tabWidget = tabWidget
         self.__mw = parent
@@ -416,7 +416,7 @@
         """
         Private slot to clear the history.
         """
-        if self.__historyManager is not None and E5MessageBox.yesNo(
+        if self.__historyManager is not None and EricMessageBox.yesNo(
                 self,
                 self.tr("Clear History"),
                 self.tr("""Do you want to clear the history?""")):
@@ -463,7 +463,7 @@
         self.__closedTabsMenu.setEnabled(avail)
 
 
-class HistoryMostVisitedMenu(E5ModelMenu):
+class HistoryMostVisitedMenu(EricModelMenu):
     """
     Class implementing the most visited history menu.
     
@@ -488,7 +488,7 @@
         @param count maximum number of entries to be shown (integer)
         @param parent reference to the parent widget (QWidget)
         """
-        E5ModelMenu.__init__(self, parent)
+        EricModelMenu.__init__(self, parent)
         
         self.__historyMenuModel = None
         
--- a/eric7/WebBrowser/Navigation/NavigationBar.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Navigation/NavigationBar.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
     QWidget, QHBoxLayout, QStyle, QToolButton, QSplitter, QSizePolicy, QMenu
 )
 
-from E5Gui.E5ToolButton import E5ToolButton
+from E5Gui.EricToolButton import EricToolButton
 
 from WebBrowser.WebBrowserWindow import WebBrowserWindow
 from WebBrowser.Download.DownloadManagerButton import DownloadManagerButton
@@ -51,7 +51,7 @@
                 QStyle.PixelMetric.PM_ToolBarItemSpacing, None, self))
         self.setLayout(self.__layout)
         
-        self.__backButton = E5ToolButton(self)
+        self.__backButton = EricToolButton(self)
         self.__backButton.setObjectName("navigation_back_button")
         self.__backButton.setToolTip(self.tr("Move one screen backward"))
         self.__backButton.setToolButtonStyle(
@@ -62,7 +62,7 @@
             UI.PixmapCache.getIcon("back"))
         self.__backButton.setEnabled(False)
         
-        self.__forwardButton = E5ToolButton(self)
+        self.__forwardButton = EricToolButton(self)
         self.__forwardButton.setObjectName("navigation_forward_button")
         self.__forwardButton.setToolTip(self.tr("Move one screen forward"))
         self.__forwardButton.setToolButtonStyle(
@@ -81,7 +81,7 @@
         
         self.__reloadStopButton = ReloadStopButton(self)
         
-        self.__homeButton = E5ToolButton(self)
+        self.__homeButton = EricToolButton(self)
         self.__homeButton.setObjectName("navigation_home_button")
         self.__homeButton.setToolTip(self.tr("Move to the initial screen"))
         self.__homeButton.setToolButtonStyle(
@@ -91,7 +91,7 @@
         self.__homeButton.setIcon(
             UI.PixmapCache.getIcon("home"))
         
-        self.__exitFullScreenButton = E5ToolButton(self)
+        self.__exitFullScreenButton = EricToolButton(self)
         self.__exitFullScreenButton.setObjectName(
             "navigation_exitfullscreen_button")
         self.__exitFullScreenButton.setIcon(
@@ -106,7 +106,7 @@
         
         self.__downloadManagerButton = DownloadManagerButton(self)
         
-        self.__superMenuButton = E5ToolButton(self)
+        self.__superMenuButton = EricToolButton(self)
         self.__superMenuButton.setObjectName(
             "navigation_supermenu_button")
         self.__superMenuButton.setIcon(UI.PixmapCache.getIcon("superMenu"))
--- a/eric7/WebBrowser/Navigation/ReloadStopButton.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Navigation/ReloadStopButton.py	Sat May 22 18:51:46 2021 +0200
@@ -9,12 +9,12 @@
 
 from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt
 
-from E5Gui.E5ToolButton import E5ToolButton
+from E5Gui.EricToolButton import EricToolButton
 
 import UI.PixmapCache
 
 
-class ReloadStopButton(E5ToolButton):
+class ReloadStopButton(EricToolButton):
     """
     Class implementing a button alternating between reload and stop.
     
--- a/eric7/WebBrowser/Network/EricSchemeHandler.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Network/EricSchemeHandler.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtCore import pyqtSignal, QBuffer, QIODevice, QUrlQuery, QMutex
 from PyQt6.QtWebEngineCore import QWebEngineUrlSchemeHandler
 
-from E5Gui.E5Application import e5App
+from E5Gui.EricApplication import ericApp
 
 from EricUtilities.EricMutexLocker import EricMutexLocker
 
@@ -216,7 +216,7 @@
         page = page.replace("@ERIC_LINK@", self.tr("About eric"))
         page = page.replace("@HEADER_TITLE@", self.tr("eric Web Browser"))
         page = page.replace("@SUBMIT@", self.tr("Search!"))
-        ltr = "LTR" if e5App().isLeftToRight() else"RTL"
+        ltr = "LTR" if ericApp().isLeftToRight() else"RTL"
         page = page.replace("@QT_LAYOUT_DIRECTION@", ltr)
         
         return page
--- a/eric7/WebBrowser/Network/NetworkManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Network/NetworkManager.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
     QNetworkAccessManager, QNetworkProxy, QNetworkProxyFactory, QNetworkRequest
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
 
 from EricNetwork.EricNetworkProxyFactory import proxyAuthenticationRequired
 try:
@@ -197,8 +197,8 @@
             return True
         
         title = self.tr("SSL Certificate Error")
-        msgBox = E5MessageBox.E5MessageBox(
-            E5MessageBox.Warning,
+        msgBox = EricMessageBox.EricMessageBox(
+            EricMessageBox.Warning,
             title,
             self.tr("""<b>{0}</b>"""
                     """<p>The host <b>{1}</b> you are trying to access has"""
@@ -208,10 +208,10 @@
             .format(title, host, error.errorDescription()),
             modal=True, parent=view)
         permButton = msgBox.addButton(self.tr("&Permanent accept"),
-                                      E5MessageBox.AcceptRole)
+                                      EricMessageBox.AcceptRole)
         tempButton = msgBox.addButton(self.tr("&Temporary accept"),
-                                      E5MessageBox.AcceptRole)
-        msgBox.addButton(self.tr("&Reject"), E5MessageBox.RejectRole)
+                                      EricMessageBox.AcceptRole)
+        msgBox.addButton(self.tr("&Reject"), EricMessageBox.RejectRole)
         msgBox.exec()
         if msgBox.clickedButton() == permButton:
             if host not in self.__permanentlyIgnoredSslErrors:
@@ -324,11 +324,11 @@
         """
         html = getHtmlPage("authenticationErrorPage.html")
         html = html.replace("@IMAGE@", pixmapToDataUrl(
-            e5App().style().standardIcon(
+            ericApp().style().standardIcon(
                 QStyle.StandardPixmap.SP_MessageBoxCritical).pixmap(48, 48)
         ).toString())
         html = html.replace("@FAVICON@", pixmapToDataUrl(
-            e5App().style() .standardIcon(
+            ericApp().style() .standardIcon(
                 QStyle.StandardPixmap.SP_MessageBoxCritical).pixmap(16, 16)
         ).toString())
         html = html.replace("@TITLE@", self.tr("Authentication required"))
--- a/eric7/WebBrowser/Network/SendRefererWhitelistDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Network/SendRefererWhitelistDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -121,7 +121,7 @@
       </widget>
      </item>
      <item row="0" column="0" rowspan="5">
-      <widget class="E5ListView" name="whitelist">
+      <widget class="EricListView" name="whitelist">
        <property name="alternatingRowColors">
         <bool>true</bool>
        </property>
@@ -146,9 +146,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5ListView</class>
+   <class>EricListView</class>
    <extends>QListView</extends>
-   <header>E5Gui/E5ListView.h</header>
+   <header>E5Gui/EricListView.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/WebBrowser/OpenSearch/OpenSearchDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/OpenSearch/OpenSearchDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -10,7 +10,7 @@
 from PyQt6.QtWidgets import QDialog
 from PyQt6.QtCore import pyqtSlot
 
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui import EricMessageBox, EricFileDialog
 
 from .OpenSearchEngineModel import OpenSearchEngineModel
 
@@ -52,7 +52,7 @@
         """
         Private slot to add a new search engine.
         """
-        fileNames = E5FileDialog.getOpenFileNames(
+        fileNames = EricFileDialog.getOpenFileNames(
             self,
             self.tr("Add search engine"),
             "",
@@ -61,7 +61,7 @@
         osm = self.__mw.openSearchManager()
         for fileName in fileNames:
             if not osm.addEngine(fileName):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Add search engine"),
                     self.tr(
@@ -74,7 +74,7 @@
         Private slot to delete the selected search engines.
         """
         if self.enginesTable.model().rowCount() == 1:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Delete selected engines"),
                 self.tr("""You must have at least one search engine."""))
--- a/eric7/WebBrowser/OpenSearch/OpenSearchDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/OpenSearch/OpenSearchDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -20,7 +20,7 @@
    <item>
     <layout class="QGridLayout" name="gridLayout">
      <item row="0" column="0" rowspan="5">
-      <widget class="E5TableView" name="enginesTable">
+      <widget class="EricTableView" name="enginesTable">
        <property name="alternatingRowColors">
         <bool>true</bool>
        </property>
@@ -113,9 +113,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TableView</class>
+   <class>EricTableView</class>
    <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
+   <header>E5Gui/EricTableView.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/WebBrowser/OpenSearch/OpenSearchManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/OpenSearch/OpenSearchManager.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
 from PyQt6.QtWidgets import QLineEdit, QInputDialog
 from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply
 
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui import EricMessageBox
 
 from Utilities.AutoSaver import AutoSaver
 import Utilities
@@ -42,7 +42,7 @@
         @param parent reference to the parent object (QObject)
         """
         if parent is None:
-            parent = e5App()
+            parent = ericApp()
         super().__init__(parent)
         
         self.__replies = []
@@ -244,7 +244,7 @@
         inputName = res["inputName"]
         
         if method != "get":
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Method not supported"),
                 self.tr(
@@ -461,7 +461,7 @@
         
         host = QUrl(engine.searchUrlTemplate()).host()
         
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             None,
             "",
             self.tr(
--- a/eric7/WebBrowser/PageScreenDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/PageScreenDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 from PyQt6.QtGui import QImage, QPainter, QPixmap
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QAbstractButton
 
-from E5Gui import E5FileDialog, E5MessageBox
+from E5Gui import EricFileDialog, EricMessageBox
 
 from .Ui_PageScreenDialog import Ui_PageScreenDialog
 
@@ -66,28 +66,28 @@
         
         @return flag indicating success (boolean)
         """
-        fileName = E5FileDialog.getSaveFileName(
+        fileName = EricFileDialog.getSaveFileName(
             self,
             self.tr("Save Page Screen"),
             self.tr("screen.png"),
             self.tr("Portable Network Graphics File (*.png)"),
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         if not fileName:
             return False
         
         if QFileInfo(fileName).exists():
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Save Page Screen"),
                 self.tr("<p>The file <b>{0}</b> already exists."
                         " Overwrite it?</p>").format(fileName),
-                icon=E5MessageBox.Warning)
+                icon=EricMessageBox.Warning)
             if not res:
                 return False
         
         file = QFile(fileName)
         if not file.open(QFile.WriteOnly):
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Save Page Screen"),
                 self.tr("Cannot write file '{0}:\n{1}.")
@@ -98,7 +98,7 @@
         file.close()
         
         if not res:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Save Page Screen"),
                 self.tr("Cannot write file '{0}:\n{1}.")
--- a/eric7/WebBrowser/Passwords/PasswordManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Passwords/PasswordManager.py	Sat May 22 18:51:46 2021 +0200
@@ -15,8 +15,8 @@
 from PyQt6.QtWidgets import QApplication
 from PyQt6.QtWebEngineWidgets import QWebEngineScript
 
-from E5Gui import E5MessageBox
-from E5Gui.E5ProgressDialog import E5ProgressDialog
+from E5Gui import EricMessageBox
+from E5Gui.EricProgressDialog import EricProgressDialog
 
 from Utilities.AutoSaver import AutoSaver
 import Utilities
@@ -157,7 +157,7 @@
             writer = PasswordWriter()
             if not writer.write(
                     loginFile, self.__logins, self.__loginForms, self.__never):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     None,
                     self.tr("Saving login data"),
                     self.tr(
@@ -181,7 +181,7 @@
             self.__logins, self.__loginForms, self.__never = reader.read(
                 loginFile)
             if reader.error() != QXmlStreamReader.Error.NoError:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     None,
                     self.tr("Loading login data"),
                     self.tr("""Error when loading login data on"""
@@ -291,8 +291,8 @@
             url = self.__stripUrl(url)
             key = self.__createKey(url, "")
             if key not in self.__loginForms:
-                mb = E5MessageBox.E5MessageBox(
-                    E5MessageBox.Question,
+                mb = EricMessageBox.EricMessageBox(
+                    EricMessageBox.Question,
                     self.tr("Save password"),
                     self.tr(
                         """<b>Would you like to save this password?</b><br/>"""
@@ -302,10 +302,10 @@
                     modal=True, parent=page.view())
                 neverButton = mb.addButton(
                     self.tr("Never for this site"),
-                    E5MessageBox.DestructiveRole)
+                    EricMessageBox.DestructiveRole)
                 noButton = mb.addButton(
-                    self.tr("Not now"), E5MessageBox.RejectRole)
-                mb.addButton(E5MessageBox.Yes)
+                    self.tr("Not now"), EricMessageBox.RejectRole)
+                mb.addButton(EricMessageBox.Yes)
                 mb.exec()
                 if mb.clickedButton() == neverButton:
                     self.__never.append(url.toString())
@@ -385,7 +385,7 @@
         if not self.__loaded:
             self.__load()
         
-        progress = E5ProgressDialog(
+        progress = EricProgressDialog(
             self.tr("Re-encoding saved passwords..."),
             None, 0, len(self.__logins) + len(self.__loginForms),
             self.tr("%v/%m Passwords"),
--- a/eric7/WebBrowser/Passwords/PasswordsDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Passwords/PasswordsDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 from PyQt6.QtGui import QFont, QFontMetrics
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_PasswordsDialog import Ui_PasswordsDialog
 
@@ -98,7 +98,7 @@
             self.__passwordModel.setShowPasswords(False)
             self.passwordsButton.setText(self.__showPasswordsText)
         else:
-            res = E5MessageBox.yesNo(
+            res = EricMessageBox.yesNo(
                 self,
                 self.tr("Saved Passwords"),
                 self.tr("""Do you really want to show passwords?"""))
--- a/eric7/WebBrowser/Passwords/PasswordsDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Passwords/PasswordsDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -64,7 +64,7 @@
     </layout>
    </item>
    <item>
-    <widget class="E5TableView" name="passwordsTable">
+    <widget class="EricTableView" name="passwordsTable">
      <property name="alternatingRowColors">
       <bool>true</bool>
      </property>
@@ -149,9 +149,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TableView</class>
+   <class>EricTableView</class>
    <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
+   <header>E5Gui/EricTableView.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/WebBrowser/QtHelp/QtHelpDocumentationDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/QtHelp/QtHelpDocumentationDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
 )
 from PyQt6.QtHelp import QHelpEngineCore
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricApplication import ericApp
 
 from .Ui_QtHelpDocumentationDialog import Ui_QtHelpDocumentationDialog
 
@@ -56,7 +56,7 @@
             index != 1 and
             (self.__hasChangedFilters() or self.__removedAttributes)
         ):
-            yes = E5MessageBox.yesNo(
+            yes = EricMessageBox.yesNo(
                 self,
                 self.tr("Unsaved Filter Changes"),
                 self.tr("""The page contains unsaved changes. Shall they be"""
@@ -85,7 +85,7 @@
 
         try:
             self.__pluginHelpDocuments = (
-                e5App().getObject("PluginManager").getPluginQtHelpFiles()
+                ericApp().getObject("PluginManager").getPluginQtHelpFiles()
             )
         except KeyError:
             from PluginManager.PluginManager import PluginManager
@@ -108,7 +108,7 @@
         """
         Private slot to add QtHelp documents to the help database.
         """
-        fileNames = E5FileDialog.getOpenFileNames(
+        fileNames = EricFileDialog.getOpenFileNames(
             self,
             self.tr("Add Documentation"),
             "",
@@ -162,7 +162,7 @@
         for fileName in fileNames:
             ns = QHelpEngineCore.namespaceName(fileName)
             if not ns:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Add Documentation"),
                     self.tr(
@@ -174,7 +174,7 @@
             if len(self.documentsList.findItems(
                 ns, Qt.MatchFlag.MatchFixedString
             )):
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Add Documentation"),
                     self.tr(
@@ -196,7 +196,7 @@
         """
         Private slot to remove a document from the help database.
         """
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Remove Documentation"),
             self.tr(
@@ -211,7 +211,7 @@
         for item in items:
             ns = item.text()
             if ns in list(openedDocs.values()):
-                res = E5MessageBox.yesNo(
+                res = EricMessageBox.yesNo(
                     self,
                     self.tr("Remove Documentation"),
                     self.tr(
@@ -219,7 +219,7 @@
                         """documentation you are attempting to remove. """
                         """Removing the documentation will close those """
                         """documents. Remove anyway?"""),
-                    icon=E5MessageBox.Warning)
+                    icon=EricMessageBox.Warning)
                 if not res:
                     return
             self.__unregisteredDocs.append(ns)
@@ -407,7 +407,7 @@
         """
         Private slot to remove the selected filters.
         """
-        ok = E5MessageBox.yesNo(
+        ok = EricMessageBox.yesNo(
             self,
             self.tr("Remove Filters"),
             self.tr(
@@ -435,7 +435,7 @@
         """
         Private slot to remove the selected filter attributes.
         """
-        ok = E5MessageBox.yesNo(
+        ok = EricMessageBox.yesNo(
             self,
             self.tr("Remove Attributes"),
             self.tr(
--- a/eric7/WebBrowser/QtHelp/QtHelpDocumentationSelectionDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/QtHelp/QtHelpDocumentationSelectionDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 from PyQt6.QtCore import pyqtSlot, Qt
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_QtHelpDocumentationSelectionDialog import (
     Ui_QtHelpDocumentationSelectionDialog
@@ -86,7 +86,7 @@
         """
         Private slot to delete the selected documentation sets.
         """
-        yes = E5MessageBox.yesNo(
+        yes = EricMessageBox.yesNo(
             self,
             self.tr("Delete Documentation Sets"),
             self.tr("""Shall the selected documentation sets really be"""
@@ -102,7 +102,7 @@
                 try:
                     os.remove(fileName)
                 except OSError as err:
-                    E5MessageBox.warning(
+                    EricMessageBox.warning(
                         self,
                         self.tr("Delete Documentation Sets"),
                         self.tr("""<p>The documentation set <b>{0}</b> could"""
@@ -121,7 +121,7 @@
         """
         Private slot to delete the selected documentation set categories.
         """
-        yes = E5MessageBox.yesNo(
+        yes = EricMessageBox.yesNo(
             self,
             self.tr("Delete Documentation Sets"),
             self.tr("""Shall the selected documentation set categories"""
@@ -139,7 +139,7 @@
         """
         Private slot to delete all documentation sets.
         """
-        yes = E5MessageBox.yesNo(
+        yes = EricMessageBox.yesNo(
             self,
             self.tr("Delete Documentation Sets"),
             self.tr("""Shall all documentation sets really be deleted?"""))
--- a/eric7/WebBrowser/SafeBrowsing/SafeBrowsingDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/SafeBrowsing/SafeBrowsingDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -12,8 +12,8 @@
     QDialog, QDialogButtonBox, QAbstractButton
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .Ui_SafeBrowsingDialog import Ui_SafeBrowsingDialog
 
@@ -82,11 +82,11 @@
         browsing API key.".
         """
         if self.__gsbHelpDialog is None:
-            from E5Gui.E5SimpleHelpDialog import E5SimpleHelpDialog
+            from E5Gui.EricSimpleHelpDialog import EricSimpleHelpDialog
             from . import SafeBrowsingHelp
             
             helpStr = SafeBrowsingHelp()
-            self.__gsbHelpDialog = E5SimpleHelpDialog(
+            self.__gsbHelpDialog = EricSimpleHelpDialog(
                 title=self.tr("Google Safe Browsing API Help"),
                 helpStr=helpStr, parent=self)
         
@@ -170,7 +170,7 @@
         @rtype bool
         """
         if self.__isModified():
-            res = E5MessageBox.okToClearData(
+            res = EricMessageBox.okToClearData(
                 self,
                 self.tr("Safe Browsing Management"),
                 self.tr("""The dialog contains unsaved changes."""),
@@ -195,24 +195,24 @@
         """
         Private slot to update the local cache database.
         """
-        E5MessageBox.information(
+        EricMessageBox.information(
             self,
             self.tr("Update Safe Browsing Cache"),
             self.tr("""Updating the Safe Browsing cache might be a lengthy"""
                     """ operation. Please be patient!"""))
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             ok, error = self.__manager.updateHashPrefixCache()
             self.__resetProgress()
         if not ok:
             if error:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Update Safe Browsing Cache"),
                     self.tr("""<p>Updating the Safe Browsing cache failed."""
                             """</p><p>Reason: {0}</p>""").format(error))
             else:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("Update Safe Browsing Cache"),
                     self.tr("""<p>Updating the Safe Browsing cache failed."""
@@ -223,13 +223,13 @@
         """
         Private slot to clear the local cache database.
         """
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             self,
             self.tr("Clear Safe Browsing Cache"),
             self.tr("""Do you really want to clear the Safe Browsing cache?"""
                     """ Re-populating it might take some time."""))
         if res:
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 self.__manager.fullCacheCleanup()
     
     @pyqtSlot(str, int)
@@ -295,7 +295,7 @@
         threatLists, error = self.__manager.lookupUrl(url)
         
         if error:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Check URL"),
                 self.tr("<p>The Google Safe Browsing Server reported an"
@@ -303,7 +303,7 @@
             )
         elif threatLists:
             threatMessages = self.__manager.getThreatMessages(threatLists)
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Check URL"),
                 self.tr("<p>The URL <b>{0}</b> was found in the Safe"
@@ -311,7 +311,7 @@
                     urlStr, "".join(threatMessages))
             )
         else:
-            E5MessageBox.information(
+            EricMessageBox.information(
                 self,
                 self.tr("Check URL"),
                 self.tr("<p>The URL <b>{0}</b> was not found in the Safe"
@@ -343,7 +343,7 @@
                 nextUpdateDateTime.toString("yyyy-MM-dd, HH:mm:ss"))
         )
         
-        E5MessageBox.information(
+        EricMessageBox.information(
             self,
             self.tr("Update Time"),
             message)
--- a/eric7/WebBrowser/Session/SessionManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Session/SessionManager.py	Sat May 22 18:51:46 2021 +0200
@@ -22,8 +22,8 @@
     QComboBox, QVBoxLayout
 )
 
-from E5Gui import E5MessageBox
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui import EricMessageBox
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 import Utilities
 import Preferences
@@ -443,7 +443,7 @@
         if window is None:
             window = WebBrowserWindow.mainWindow()
         
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             # restore session for first window
             data = sessionData["Windows"].pop(0)
             window.tabWidget().loadFromSessionData(data)
@@ -507,7 +507,7 @@
         
         newSessionPath = os.path.join(self.getSessionsDirectory(), newName)
         if os.path.exists(newSessionPath):
-            E5MessageBox.information(
+            EricMessageBox.information(
                 WebBrowserWindow.getWindow(),
                 title,
                 self.tr("""The session file "{0}" exists already. Please"""
@@ -517,7 +517,7 @@
         
         if flags & SessionManager.CloneSession:
             if not QFile.copy(sessionFilePath, newSessionPath):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     WebBrowserWindow.getWindow(),
                     title,
                     self.tr("""An error occurred while cloning the session"""
@@ -525,7 +525,7 @@
                 return
         else:
             if not QFile.rename(sessionFilePath, newSessionPath):
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     WebBrowserWindow.getWindow(),
                     title,
                     self.tr("""An error occurred while renaming the session"""
@@ -556,7 +556,7 @@
         
         newSessionPath = os.path.join(self.getSessionsDirectory(), newName)
         if os.path.exists(newSessionPath):
-            E5MessageBox.information(
+            EricMessageBox.information(
                 WebBrowserWindow.getWindow(),
                 self.tr("Save Session"),
                 self.tr("""The session file "{0}" exists already. Please"""
@@ -576,7 +576,7 @@
         @rtype bool
         """
         from WebBrowser.WebBrowserWindow import WebBrowserWindow
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             WebBrowserWindow.getWindow(),
             self.tr("Restore Backup"),
             self.tr("""Are you sure you want to replace the current"""
@@ -616,7 +616,7 @@
         @type str
         """
         from WebBrowser.WebBrowserWindow import WebBrowserWindow
-        res = E5MessageBox.yesNo(
+        res = EricMessageBox.yesNo(
             WebBrowserWindow.getWindow(),
             self.tr("Delete Session"),
             self.tr("""Are you sure you want to delete session "{0}"?""")
@@ -645,7 +645,7 @@
         
         newSessionPath = os.path.join(self.getSessionsDirectory(), newName)
         if os.path.exists(newSessionPath):
-            E5MessageBox.information(
+            EricMessageBox.information(
                 WebBrowserWindow.getWindow(),
                 self.tr("New Session"),
                 self.tr("""The session file "{0}" exists already. Please"""
--- a/eric7/WebBrowser/SiteInfo/SiteInfoDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/SiteInfo/SiteInfoDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -20,7 +20,7 @@
 except ImportError:
     SSL = False
 
-from E5Gui import E5MessageBox, E5FileDialog
+from E5Gui import EricMessageBox, EricFileDialog
 
 from .Ui_SiteInfoDialog import Ui_SiteInfoDialog
 
@@ -331,7 +331,7 @@
             return
         
         if pixmapItem.pixmap().isNull():
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Save Image"),
                 self.tr(
@@ -343,18 +343,18 @@
         if index != -1:
             imageFileName = imageFileName[:index] + ".png"
         
-        filename = E5FileDialog.getSaveFileName(
+        filename = EricFileDialog.getSaveFileName(
             self,
             self.tr("Save Image"),
             imageFileName,
             self.tr("All Files (*)"),
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not filename:
             return
         
         if not pixmapItem.pixmap().save(filename, "PNG"):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Save Image"),
                 self.tr(
--- a/eric7/WebBrowser/SpeedDial/SpeedDial.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/SpeedDial/SpeedDial.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
     qWarning
 )
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from ..Tools.WebBrowserTools import pixmapFileToDataUrl
 
@@ -205,7 +205,7 @@
         writer = SpeedDialWriter()
         if not writer.write(speedDialFile, self.__webPages,
                             self.__pagesPerRow, self.__speedDialSize):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Saving Speed Dial data"),
                 self.tr(
@@ -218,7 +218,7 @@
         """
         Public method to reset the speed dials to the default values.
         """
-        ok = E5MessageBox.yesNo(
+        ok = EricMessageBox.yesNo(
             None,
             self.tr("Reset Speed Dials"),
             self.tr("""Are you sure you want to reset the speed dials to"""
--- a/eric7/WebBrowser/SpellCheck/ManageDictionariesDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/SpellCheck/ManageDictionariesDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -20,7 +20,7 @@
 )
 from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from .Ui_ManageDictionariesDialog import Ui_ManageDictionariesDialog
 
@@ -178,7 +178,7 @@
         
         if reply.error() != QNetworkReply.NetworkError.NoError:
             if not self.__downloadCancelled:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Error downloading dictionaries list"),
                     self.tr(
@@ -201,7 +201,7 @@
         url = Preferences.getWebBrowser("SpellCheckDictionariesUrl")
         if url != self.dictionariesUrlEdit.text():
             self.dictionariesUrlEdit.setText(url)
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Dictionaries URL Changed"),
                 self.tr(
@@ -213,7 +213,7 @@
         
         if self.locationComboBox.count() == 0:
             # no writable locations available
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self,
                 self.tr("Error installing dictionaries"),
                 self.tr(
@@ -359,7 +359,7 @@
         
         if reply.error() != QNetworkReply.NetworkError.NoError:
             if not self.__downloadCancelled:
-                E5MessageBox.warning(
+                EricMessageBox.warning(
                     self,
                     self.tr("Error downloading dictionary file"),
                     self.tr(
@@ -374,7 +374,7 @@
         archiveFile = io.BytesIO(bytes(archiveData))
         archive = zipfile.ZipFile(archiveFile, "r")
         if archive.testzip() is not None:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Error downloading dictionary"),
                 self.tr(
--- a/eric7/WebBrowser/StatusBar/StatusBarIcon.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/StatusBar/StatusBarIcon.py	Sat May 22 18:51:46 2021 +0200
@@ -12,10 +12,10 @@
 # Copyright (C) 2014  David Rosca <nowrep@gmail.com>
 #
 
-from E5Gui.E5ClickableLabel import E5ClickableLabel
+from E5Gui.EricClickableLabel import EricClickableLabel
 
 
-class StatusBarIcon(E5ClickableLabel):
+class StatusBarIcon(EricClickableLabel):
     """
     Class implementing common methods for all status bar icons.
     """
--- a/eric7/WebBrowser/Sync/SyncCheckPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Sync/SyncCheckPage.py	Sat May 22 18:51:46 2021 +0200
@@ -124,7 +124,7 @@
         @param fileName name of the file containing the animation
         @type str
         @param label reference to the label to be animated
-        @type E5AnimatedLabel
+        @type EricAnimatedLabel
         """
         label.setInterval(40)
         label.setAnimationFile(fileName)
--- a/eric7/WebBrowser/Sync/SyncCheckPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Sync/SyncCheckPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -80,7 +80,7 @@
        </widget>
       </item>
       <item row="0" column="1">
-       <widget class="E5AnimatedLabel" name="bookmarkLabel"/>
+       <widget class="EricAnimatedLabel" name="bookmarkLabel"/>
       </item>
       <item row="0" column="2" colspan="2">
        <widget class="QLabel" name="bookmarkMsgLabel">
@@ -103,7 +103,7 @@
        </widget>
       </item>
       <item row="1" column="1">
-       <widget class="E5AnimatedLabel" name="historyLabel"/>
+       <widget class="EricAnimatedLabel" name="historyLabel"/>
       </item>
       <item row="1" column="2" colspan="2">
        <widget class="QLabel" name="historyMsgLabel">
@@ -126,7 +126,7 @@
        </widget>
       </item>
       <item row="2" column="1">
-       <widget class="E5AnimatedLabel" name="passwordsLabel"/>
+       <widget class="EricAnimatedLabel" name="passwordsLabel"/>
       </item>
       <item row="2" column="2" colspan="2">
        <widget class="QLabel" name="passwordsMsgLabel">
@@ -149,7 +149,7 @@
        </widget>
       </item>
       <item row="3" column="1">
-       <widget class="E5AnimatedLabel" name="userAgentsLabel"/>
+       <widget class="EricAnimatedLabel" name="userAgentsLabel"/>
       </item>
       <item row="3" column="2" colspan="2">
        <widget class="QLabel" name="userAgentsMsgLabel">
@@ -172,7 +172,7 @@
        </widget>
       </item>
       <item row="4" column="1" colspan="2">
-       <widget class="E5AnimatedLabel" name="speedDialLabel"/>
+       <widget class="EricAnimatedLabel" name="speedDialLabel"/>
       </item>
       <item row="4" column="3">
        <widget class="QLabel" name="speedDialMsgLabel">
@@ -214,9 +214,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5AnimatedLabel</class>
+   <class>EricAnimatedLabel</class>
    <extends>QLabel</extends>
-   <header>E5Gui/E5AnimatedLabel.h</header>
+   <header>E5Gui/EricAnimatedLabel.h</header>
   </customwidget>
  </customwidgets>
  <resources/>
--- a/eric7/WebBrowser/Sync/SyncDirectorySettingsPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Sync/SyncDirectorySettingsPage.py	Sat May 22 18:51:46 2021 +0200
@@ -9,7 +9,7 @@
 
 from PyQt6.QtWidgets import QWizardPage
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_SyncDirectorySettingsPage import Ui_SyncDirectorySettingsPage
 
@@ -29,7 +29,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.directoryPicker.setMode(E5PathPickerModes.DIRECTORY_MODE)
+        self.directoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         self.directoryPicker.setText(
             Preferences.getWebBrowser("SyncDirectoryPath"))
         
--- a/eric7/WebBrowser/Sync/SyncDirectorySettingsPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Sync/SyncDirectorySettingsPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -34,7 +34,7 @@
        </widget>
       </item>
       <item>
-       <widget class="E5PathPicker" name="directoryPicker" native="true">
+       <widget class="EricPathPicker" name="directoryPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -69,9 +69,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/WebBrowser/Sync/SyncEncryptionPage.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Sync/SyncEncryptionPage.ui	Sat May 22 18:51:46 2021 +0200
@@ -84,7 +84,7 @@
        </widget>
       </item>
       <item row="4" column="0" colspan="2">
-       <widget class="E5PasswordMeter" name="passwordMeter">
+       <widget class="EricPasswordMeter" name="passwordMeter">
         <property name="toolTip">
          <string>Shows an indication for the encryption key strength</string>
         </property>
@@ -161,9 +161,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PasswordMeter</class>
+   <class>EricPasswordMeter</class>
    <extends>QProgressBar</extends>
-   <header>E5Gui/E5PasswordMeter</header>
+   <header>E5Gui/EricPasswordMeter</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/WebBrowser/TabManager/TabManagerWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/TabManager/TabManagerWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -24,8 +24,8 @@
 import EricNetwork
 from EricNetwork import EricTldExtractor
 
-from E5Gui.E5Application import e5App
-from E5Gui.E5ClickableLabel import E5ClickableLabel
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricClickableLabel import EricClickableLabel
 
 import Utilities
 import UI.PixmapCache
@@ -561,9 +561,9 @@
         Public method to create a status bar icon.
         
         @return generated icon
-        @rtype E5ClickableLabel
+        @rtype EricClickableLabel
         """
-        icon = E5ClickableLabel()
+        icon = EricClickableLabel()
         icon.setPixmap(
             UI.PixmapCache.getPixmap("tabManager").scaled(16, 16))
         icon.setToolTip(self.tr("Show Tab Manager"))
@@ -576,10 +576,10 @@
         Public slot to show the tab manager.
         
         @param icon reference to the clicked icon
-        @type E5ClickableLabel or QAction
+        @type EricClickableLabel or QAction
         """
         window = None
-        if isinstance(icon, E5ClickableLabel):
+        if isinstance(icon, EricClickableLabel):
             window = icon.window()
         elif isinstance(icon, QAction):
             window = icon.parentWidget()
@@ -590,7 +590,7 @@
             
             y = max(0, window.frameGeometry().top() + titleBarHeight + 1)
             
-            desktop = e5App().desktop()
+            desktop = ericApp().desktop()
             desktopGeometry = desktop.availableGeometry(self)
             windowFrameGeometry = window.frameGeometry()
             if (desktopGeometry.width() - windowFrameGeometry.right() - 1 >
--- a/eric7/WebBrowser/Tools/PrintToPdfDialog.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Tools/PrintToPdfDialog.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 from PyQt6.QtPrintSupport import QPrinter, QPageSetupDialog
 from PyQt6.QtWidgets import QDialog
 
-from E5Gui.E5PathPicker import E5PathPickerModes
+from E5Gui.EricPathPicker import EricPathPickerModes
 
 from .Ui_PrintToPdfDialog import Ui_PrintToPdfDialog
 
@@ -36,7 +36,7 @@
         super().__init__(parent)
         self.setupUi(self)
         
-        self.pdfFilePicker.setMode(E5PathPickerModes.SAVE_FILE_OVERWRITE_MODE)
+        self.pdfFilePicker.setMode(EricPathPickerModes.SAVE_FILE_OVERWRITE_MODE)
         self.pdfFilePicker.setFilters(self.tr(
             "PDF Files (*.pdf);;"
             "All Files (*)"))
--- a/eric7/WebBrowser/Tools/PrintToPdfDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/Tools/PrintToPdfDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -27,7 +27,7 @@
       </widget>
      </item>
      <item row="0" column="1">
-      <widget class="E5PathPicker" name="pdfFilePicker" native="true">
+      <widget class="EricPathPicker" name="pdfFilePicker" native="true">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
          <horstretch>0</horstretch>
@@ -86,9 +86,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5PathPicker</class>
+   <class>EricPathPicker</class>
    <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
+   <header>E5Gui/EricPathPicker.h</header>
    <container>1</container>
   </customwidget>
  </customwidgets>
--- a/eric7/WebBrowser/UrlBar/SslLabel.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/UrlBar/SslLabel.py	Sat May 22 18:51:46 2021 +0200
@@ -9,10 +9,10 @@
 
 from PyQt6.QtCore import Qt
 
-from E5Gui.E5ClickableLabel import E5ClickableLabel
+from E5Gui.EricClickableLabel import EricClickableLabel
 
 
-class SslLabel(E5ClickableLabel):
+class SslLabel(EricClickableLabel):
     """
     Class implementing the label to show some SSL info (if available).
     """
--- a/eric7/WebBrowser/UrlBar/UrlBar.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/UrlBar/UrlBar.py	Sat May 22 18:51:46 2021 +0200
@@ -16,8 +16,8 @@
 except ImportError:
     QSslCertificate = None      # __IGNORE_WARNING__
 
-from E5Gui.E5LineEdit import E5LineEdit, E5LineEditSide
-from E5Gui.E5LineEditButton import E5LineEditButton
+from E5Gui.EricLineEdit import EricLineEdit, EricLineEditSide
+from E5Gui.EricLineEditButton import EricLineEditButton
 
 from WebBrowser.WebBrowserWindow import WebBrowserWindow
 
@@ -31,7 +31,7 @@
 import Utilities
 
 
-class UrlBar(E5LineEdit):
+class UrlBar(EricLineEdit):
     """
     Class implementing a line edit for entering URLs.
     """
@@ -42,7 +42,7 @@
         @param mainWindow reference to the main window (WebBrowserWindow)
         @param parent reference to the parent widget (WebBrowserView)
         """
-        E5LineEdit.__init__(self, parent)
+        EricLineEdit.__init__(self, parent)
         self.setPlaceholderText(self.tr("Enter the URL here."))
         self.setWhatsThis(self.tr("Enter the URL here."))
         
@@ -55,28 +55,28 @@
             self.__bmActiveIcon.pixmap(16, 16, QIcon.Mode.Disabled))
         
         self.__safeBrowsingLabel = SafeBrowsingLabel(self)
-        self.addWidget(self.__safeBrowsingLabel, E5LineEditSide.LEFT)
+        self.addWidget(self.__safeBrowsingLabel, EricLineEditSide.LEFT)
         self.__safeBrowsingLabel.setVisible(False)
         
         self.__favicon = FavIconLabel(self)
-        self.addWidget(self.__favicon, E5LineEditSide.LEFT)
+        self.addWidget(self.__favicon, EricLineEditSide.LEFT)
         
         self.__sslLabel = SslLabel(self)
-        self.addWidget(self.__sslLabel, E5LineEditSide.LEFT)
+        self.addWidget(self.__sslLabel, EricLineEditSide.LEFT)
         self.__sslLabel.setVisible(False)
         
-        self.__rssButton = E5LineEditButton(self)
+        self.__rssButton = EricLineEditButton(self)
         self.__rssButton.setIcon(UI.PixmapCache.getIcon("rss16"))
-        self.addWidget(self.__rssButton, E5LineEditSide.RIGHT)
+        self.addWidget(self.__rssButton, EricLineEditSide.RIGHT)
         self.__rssButton.setVisible(False)
         
-        self.__bookmarkButton = E5LineEditButton(self)
-        self.addWidget(self.__bookmarkButton, E5LineEditSide.RIGHT)
+        self.__bookmarkButton = EricLineEditButton(self)
+        self.addWidget(self.__bookmarkButton, EricLineEditSide.RIGHT)
         self.__bookmarkButton.setVisible(False)
         
-        self.__clearButton = E5LineEditButton(self)
+        self.__clearButton = EricLineEditButton(self)
         self.__clearButton.setIcon(UI.PixmapCache.getIcon("clearLeft"))
-        self.addWidget(self.__clearButton, E5LineEditSide.RIGHT)
+        self.addWidget(self.__clearButton, EricLineEditSide.RIGHT)
         self.__clearButton.setVisible(False)
         
         self.__safeBrowsingLabel.clicked.connect(self.__showThreatInfo)
@@ -289,7 +289,7 @@
             
             self.setPalette(p)
         
-        E5LineEdit.paintEvent(self, evt)
+        EricLineEdit.paintEvent(self, evt)
     
     def focusOutEvent(self, evt):
         """
@@ -299,7 +299,7 @@
         """
         if self.text() == "" and self.__browser is not None:
             self.__browserUrlChanged(self.__browser.url())
-        E5LineEdit.focusOutEvent(self, evt)
+        EricLineEdit.focusOutEvent(self, evt)
     
     def mousePressEvent(self, evt):
         """
@@ -325,7 +325,7 @@
         if evt.button() == Qt.MouseButton.LeftButton:
             self.selectAll()
         else:
-            E5LineEdit.mouseDoubleClickEvent(self, evt)
+            EricLineEdit.mouseDoubleClickEvent(self, evt)
     
     def keyPressEvent(self, evt):
         """
@@ -369,7 +369,7 @@
                     url.setHost(host)
                     self.setText(url.toString())
         
-        E5LineEdit.keyPressEvent(self, evt)
+        EricLineEdit.keyPressEvent(self, evt)
     
     def dragEnterEvent(self, evt):
         """
@@ -381,7 +381,7 @@
         if mimeData.hasUrls() or mimeData.hasText():
             evt.acceptProposedAction()
         
-        E5LineEdit.dragEnterEvent(self, evt)
+        EricLineEdit.dragEnterEvent(self, evt)
     
     def dropEvent(self, evt):
         """
@@ -399,7 +399,7 @@
                                    QUrl.ParsingMode.TolerantMode)
         
         if url.isEmpty() or not url.isValid():
-            E5LineEdit.dropEvent(self, evt)
+            EricLineEdit.dropEvent(self, evt)
             return
         
         self.setText(str(url.toEncoded(), encoding="utf-8"))
--- a/eric7/WebBrowser/UserAgent/UserAgentManager.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/UserAgent/UserAgentManager.py	Sat May 22 18:51:46 2021 +0200
@@ -11,7 +11,7 @@
 
 from PyQt6.QtCore import pyqtSignal, QObject, QXmlStreamReader
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from Utilities.AutoSaver import AutoSaver
 import Utilities
@@ -63,7 +63,7 @@
         agentFile = self.getFileName()
         writer = UserAgentWriter()
         if not writer.write(agentFile, self.__agents):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 None,
                 self.tr("Saving user agent data"),
                 self.tr(
@@ -81,7 +81,7 @@
         reader = UserAgentReader()
         self.__agents = reader.read(agentFile)
         if reader.error() != QXmlStreamReader.Error.NoError:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 None,
                 self.tr("Loading user agent data"),
                 self.tr("""Error when loading user agent data on"""
--- a/eric7/WebBrowser/UserAgent/UserAgentMenu.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/UserAgent/UserAgentMenu.py	Sat May 22 18:51:46 2021 +0200
@@ -14,7 +14,7 @@
 from PyQt6.QtGui import QAction, QActionGroup
 from PyQt6.QtWidgets import QMenu, QInputDialog, QLineEdit
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 
 class UserAgentMenu(QMenu):
@@ -184,7 +184,7 @@
                 menuStack.pop()
         
         if xml.hasError():
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Parsing default user agents"),
                 self.tr(
--- a/eric7/WebBrowser/UserAgent/UserAgentsDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/UserAgent/UserAgentsDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -52,7 +52,7 @@
     </layout>
    </item>
    <item>
-    <widget class="E5TableView" name="userAgentsTable">
+    <widget class="EricTableView" name="userAgentsTable">
      <property name="alternatingRowColors">
       <bool>true</bool>
      </property>
@@ -127,9 +127,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TableView</class>
+   <class>EricTableView</class>
    <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
+   <header>E5Gui/EricTableView.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/WebBrowser/VirusTotal/VirusTotalApi.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/VirusTotal/VirusTotalApi.py	Sat May 22 18:51:46 2021 +0200
@@ -13,7 +13,7 @@
 from PyQt6.QtCore import pyqtSignal, QObject, QUrl, QUrlQuery, QByteArray
 from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 import Preferences
 
@@ -306,13 +306,13 @@
         if reply.error() == QNetworkReply.NetworkError.NoError:
             result = json.loads(str(reply.readAll(), "utf-8"))
             if result["response_code"] == 0:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     None,
                     self.tr("VirusTotal IP Address Report"),
                     self.tr("""VirusTotal does not have any information for"""
                             """ the given IP address."""))
             elif result["response_code"] == -1:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     None,
                     self.tr("VirusTotal IP Address Report"),
                     self.tr("""The submitted IP address is invalid."""))
@@ -368,13 +368,13 @@
         if reply.error() == QNetworkReply.NetworkError.NoError:
             result = json.loads(str(reply.readAll(), "utf-8"))
             if result["response_code"] == 0:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     None,
                     self.tr("VirusTotal Domain Report"),
                     self.tr("""VirusTotal does not have any information for"""
                             """ the given domain."""))
             elif result["response_code"] == -1:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     None,
                     self.tr("VirusTotal Domain Report"),
                     self.tr("""The submitted domain address is invalid."""))
--- a/eric7/WebBrowser/WebBrowserPage.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/WebBrowserPage.py	Sat May 22 18:51:46 2021 +0200
@@ -29,7 +29,7 @@
 except ImportError:
     SSL_AVAILABLE = False
 
-from E5Gui import E5MessageBox
+from E5Gui import EricMessageBox
 
 from WebBrowser.WebBrowserWindow import WebBrowserWindow
 
@@ -182,15 +182,15 @@
                     WebBrowserWindow.safeBrowsingManager()
                     .getThreatMessages(threatLists)
                 )
-                res = E5MessageBox.warning(
+                res = EricMessageBox.warning(
                     WebBrowserWindow.getWindow(),
                     self.tr("Suspicuous URL detected"),
                     self.tr("<p>The URL <b>{0}</b> was found in the Safe"
                             " Browsing database.</p>{1}").format(
                         url.toString(), "".join(threatMessages)),
-                    E5MessageBox.Abort | E5MessageBox.Ignore,
-                    E5MessageBox.Abort)
-                if res == E5MessageBox.Abort:
+                    EricMessageBox.Abort | EricMessageBox.Ignore,
+                    EricMessageBox.Abort)
+                if res == EricMessageBox.Abort:
                     self.safeBrowsingAbort.emit()
                     return False
                 
@@ -695,7 +695,7 @@
                                      self.view())
             widget.showAt(pos)
         else:
-            E5MessageBox.warning(
+            EricMessageBox.warning(
                 self.view(),
                 self.tr("SSL Info"),
                 self.tr("""This site does not contain SSL information."""))
--- a/eric7/WebBrowser/WebBrowserTabBar.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/WebBrowserTabBar.py	Sat May 22 18:51:46 2021 +0200
@@ -10,13 +10,13 @@
 from PyQt6.QtCore import Qt, QPoint, QTimer, QEvent
 from PyQt6.QtWidgets import QLabel
 
-from E5Gui.E5TabWidget import E5WheelTabBar
-from E5Gui.E5PassivePopup import E5PassivePopup, E5PassivePopupStyle
+from E5Gui.EricTabWidget import EricWheelTabBar
+from E5Gui.EricPassivePopup import EricPassivePopup, EricPassivePopupStyle
 
 import Preferences
 
 
-class WebBrowserTabBar(E5WheelTabBar):
+class WebBrowserTabBar(EricWheelTabBar):
     """
     Class implementing the tab bar of the web browser.
     """
@@ -56,8 +56,8 @@
             w = self.tabSizeHint(index).width()
             h = int(w * currentBrowser.height() / currentBrowser.width())
             
-            self.__previewPopup = E5PassivePopup(
-                style=E5PassivePopupStyle.STYLED, parent=self)
+            self.__previewPopup = EricPassivePopup(
+                style=EricPassivePopupStyle.STYLED, parent=self)
             self.__previewPopup.setFixedSize(w, h)
             self.__previewPopup.setCustomData("index", index)
             
--- a/eric7/WebBrowser/WebBrowserTabWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/WebBrowserTabWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -16,10 +16,10 @@
 )
 from PyQt6.QtPrintSupport import QPrinter, QPrintDialog, QAbstractPrintDialog
 
-from E5Gui.E5TabWidget import E5TabWidget
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricTabWidget import EricTabWidget
+from E5Gui import EricMessageBox
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 from .WebBrowserView import WebBrowserView
 from .WebBrowserPage import WebBrowserPage
@@ -50,7 +50,7 @@
         return False
 
 
-class WebBrowserTabWidget(E5TabWidget):
+class WebBrowserTabWidget(EricTabWidget):
     """
     Class implementing the central widget showing the web pages.
     
@@ -703,15 +703,15 @@
                 filePath, pageLayout = dlg.getData()
                 if filePath:
                     if os.path.exists(filePath):
-                        res = E5MessageBox.warning(
+                        res = EricMessageBox.warning(
                             self,
                             self.tr("Print to PDF"),
                             self.tr("""<p>The file <b>{0}</b> exists"""
                                     """ already. Shall it be"""
                                     """ overwritten?</p>""").format(filePath),
-                            E5MessageBox.No | E5MessageBox.Yes,
-                            E5MessageBox.No)
-                        if res == E5MessageBox.No:
+                            EricMessageBox.No | EricMessageBox.Yes,
+                            EricMessageBox.No)
+                        if res == EricMessageBox.No:
                             return
                     browser.page().printToPdf(
                         lambda pdf: self.__pdfGeneratedForSave(filePath, pdf),
@@ -751,13 +751,13 @@
             pdfFile.write(pdfData)
             pdfFile.close()
         if pdfFile.error() != QFileDevice.FileError.NoError:
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr("Print to PDF"),
                 self.tr("""<p>The PDF could not be written to file <b>{0}"""
                         """</b>.</p><p><b>Error:</b> {1}</p>""").format(
                     filePath, pdfFile.errorString()),
-                E5MessageBox.Ok)
+                EricMessageBox.Ok)
     
     @pyqtSlot()
     def printPreviewBrowser(self, browser=None):
@@ -807,7 +807,7 @@
         @param browser reference to the browser to be printed
         @type WebBrowserView
         """
-        with E5OverrideCursor():
+        with EricOverrideCursor():
             browser.page().execPrintPage(printer, 10 * 1000)
     
     def __sourceChanged(self, url, browser):
@@ -959,20 +959,20 @@
         """
         if self.count() > 1 and Preferences.getWebBrowser(
                 "WarnOnMultipleClose"):
-            mb = E5MessageBox.E5MessageBox(
-                E5MessageBox.Information,
+            mb = EricMessageBox.EricMessageBox(
+                EricMessageBox.Information,
                 self.tr("Are you sure you want to close the window?"),
                 self.tr("""Are you sure you want to close the window?\n"""
                         """You have %n tab(s) open.""", "", self.count()),
                 modal=True,
                 parent=self)
             quitButton = mb.addButton(
-                self.tr("&Quit"), E5MessageBox.AcceptRole)
+                self.tr("&Quit"), EricMessageBox.AcceptRole)
             quitButton.setIcon(UI.PixmapCache.getIcon("exit"))
             closeTabButton = mb.addButton(
-                self.tr("C&lose Current Tab"), E5MessageBox.AcceptRole)
+                self.tr("C&lose Current Tab"), EricMessageBox.AcceptRole)
             closeTabButton.setIcon(UI.PixmapCache.getIcon("tabClose"))
-            mb.addButton(E5MessageBox.Cancel)
+            mb.addButton(EricMessageBox.Cancel)
             mb.exec()
             if mb.clickedButton() == quitButton:
                 return True
@@ -1023,7 +1023,7 @@
         @type UrlBar
         """
         url = self.__guessUrlFromPath(edit.text())
-        if e5App().keyboardModifiers() == Qt.KeyboardModifier.AltModifier:
+        if ericApp().keyboardModifiers() == Qt.KeyboardModifier.AltModifier:
             self.newBrowser(url)
         else:
             self.currentBrowser().setSource(url)
--- a/eric7/WebBrowser/WebBrowserView.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/WebBrowserView.py	Sat May 22 18:51:46 2021 +0200
@@ -24,8 +24,8 @@
     QWebEngineView, QWebEnginePage, QWebEngineDownloadItem
 )
 
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5Application import e5App
+from E5Gui import EricMessageBox, EricFileDialog
+from E5Gui.EricApplication import ericApp
 
 from WebBrowser.WebBrowserWindow import WebBrowserWindow
 from .WebBrowserPage import WebBrowserPage
@@ -256,7 +256,7 @@
                 name = QUrl.fromLocalFile(name.toString())
             
             if not QFileInfo(name.toLocalFile()).exists():
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("eric Web Browser"),
                     self.tr(
@@ -267,7 +267,7 @@
             if name.toLocalFile().lower().endswith((".pdf", ".chm")):
                 started = QDesktopServices.openUrl(name)
                 if not started:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("eric Web Browser"),
                         self.tr(
@@ -278,7 +278,7 @@
         elif name.scheme() in ["mailto"]:
             started = QDesktopServices.openUrl(name)
             if not started:
-                E5MessageBox.critical(
+                EricMessageBox.critical(
                     self,
                     self.tr("eric Web Browser"),
                     self.tr(
@@ -290,7 +290,7 @@
             if name.toString().lower().endswith((".pdf", ".chm")):
                 started = QDesktopServices.openUrl(name)
                 if not started:
-                    E5MessageBox.critical(
+                    EricMessageBox.critical(
                         self,
                         self.tr("eric Web Browser"),
                         self.tr(
@@ -1771,11 +1771,11 @@
         
         html = getHtmlPage("tabCrashPage.html")
         html = html.replace("@IMAGE@", pixmapToDataUrl(
-            e5App().style().standardIcon(
+            ericApp().style().standardIcon(
                 QStyle.StandardPixmap.SP_MessageBoxWarning).pixmap(48, 48)
         ).toString())
         html = html.replace("@FAVICON@", pixmapToDataUrl(
-            e5App().style() .standardIcon(
+            ericApp().style() .standardIcon(
                 QStyle.StandardPixmap.SP_MessageBoxWarning).pixmap(16, 16)
         ).toString())
         html = html.replace(
@@ -1947,7 +1947,7 @@
         fileName = ""
         saveFormat = QWebEngineDownloadItem.SavePageFormat.MimeHtmlSaveFormat
         
-        fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fileName, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             None,
             self.tr("Save Web Page"),
             defaultFileName,
@@ -2297,7 +2297,7 @@
             from .Download.DownloadUtilities import dataString
             sizeStr = dataString(quotaRequest.requestedSize())
             
-            ok = E5MessageBox.yesNo(
+            ok = EricMessageBox.yesNo(
                 self,
                 self.tr("Quota Request"),
                 self.tr("""<p> Allow the website at <b>{0}</b> to use"""
--- a/eric7/WebBrowser/WebBrowserWebSearchWidget.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/WebBrowserWebSearchWidget.py	Sat May 22 18:51:46 2021 +0200
@@ -18,12 +18,12 @@
 
 import Preferences
 
-from E5Gui.E5LineEdit import E5ClearableLineEdit, E5LineEditSide
+from E5Gui.EricLineEdit import EricClearableLineEdit, EricLineEditSide
 
 from .WebBrowserPage import WebBrowserPage
 
 
-class WebBrowserWebSearchWidget(E5ClearableLineEdit):
+class WebBrowserWebSearchWidget(EricClearableLineEdit):
     """
     Class implementing a web search widget for the web browser.
     
@@ -42,7 +42,7 @@
         """
         super().__init__(parent)
         
-        from E5Gui.E5LineEditButton import E5LineEditButton
+        from E5Gui.EricLineEditButton import EricLineEditButton
         from .OpenSearch.OpenSearchManager import OpenSearchManager
 
         self.__mw = mainWindow
@@ -56,13 +56,13 @@
         self.__enginesMenu.triggered.connect(
             self.__handleEnginesMenuActionTriggered)
         
-        self.__engineButton = E5LineEditButton(self)
+        self.__engineButton = EricLineEditButton(self)
         self.__engineButton.setMenu(self.__enginesMenu)
-        self.addWidget(self.__engineButton, E5LineEditSide.LEFT)
+        self.addWidget(self.__engineButton, EricLineEditSide.LEFT)
         
-        self.__searchButton = E5LineEditButton(self)
+        self.__searchButton = EricLineEditButton(self)
         self.__searchButton.setIcon(UI.PixmapCache.getIcon("webSearch"))
-        self.addWidget(self.__searchButton, E5LineEditSide.LEFT)
+        self.addWidget(self.__searchButton, EricLineEditSide.LEFT)
         
         self.__model = QStandardItemModel(self)
         self.__completer = QCompleter()
--- a/eric7/WebBrowser/WebBrowserWindow.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/WebBrowserWindow.py	Sat May 22 18:51:46 2021 +0200
@@ -34,12 +34,12 @@
 except ImportError:
     QTHELP_AVAILABLE = False
 
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox, E5FileDialog, E5ErrorMessage
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5Application import e5App
-from E5Gui.E5ZoomWidget import E5ZoomWidget
-from E5Gui.E5OverrideCursor import E5OverrideCursor
+from E5Gui.EricAction import EricAction
+from E5Gui import EricMessageBox, EricFileDialog, EricErrorMessage
+from E5Gui.EricMainWindow import EricMainWindow
+from E5Gui.EricApplication import ericApp
+from E5Gui.EricZoomWidget import EricZoomWidget
+from E5Gui.EricOverrideCursor import EricOverrideCursor
 
 import Preferences
 from Preferences import Shortcuts
@@ -61,7 +61,7 @@
 from eric7config import getConfig
 
 
-class WebBrowserWindow(E5MainWindow):
+class WebBrowserWindow(EricMainWindow):
     """
     Class implementing the web browser main window.
     
@@ -74,8 +74,8 @@
     @signal webBrowserClosed(browser) emitted after a web browser tab was
         closed
     """
-    webBrowserWindowClosed = pyqtSignal(E5MainWindow)
-    webBrowserWindowOpened = pyqtSignal(E5MainWindow)
+    webBrowserWindowClosed = pyqtSignal(EricMainWindow)
+    webBrowserWindowOpened = pyqtSignal(EricMainWindow)
     webBrowserOpened = pyqtSignal(QWidget)
     webBrowserClosed = pyqtSignal(QWidget)
     
@@ -203,7 +203,7 @@
             self.__helpEngine = None
         self.__helpInstaller = None
         
-        self.__zoomWidget = E5ZoomWidget(
+        self.__zoomWidget = EricZoomWidget(
             UI.PixmapCache.getPixmap("zoomOut"),
             UI.PixmapCache.getPixmap("zoomIn"),
             UI.PixmapCache.getPixmap("zoomReset"), self)
@@ -446,7 +446,7 @@
         self.__virusTotal.fileScanReport.connect(
             self.__virusTotalFileScanReport)
         
-        e5App().focusChanged.connect(self.__appFocusChanged)
+        ericApp().focusChanged.connect(self.__appFocusChanged)
         
         self.__toolbarStates = self.saveState()
         
@@ -664,7 +664,7 @@
         # list of all actions
         self.__actions = []
         
-        self.newTabAct = E5Action(
+        self.newTabAct = EricAction(
             self.tr('New Tab'),
             UI.PixmapCache.getIcon("tabNew"),
             self.tr('&New Tab'),
@@ -678,7 +678,7 @@
         self.newTabAct.triggered.connect(self.newTab)
         self.__actions.append(self.newTabAct)
         
-        self.newAct = E5Action(
+        self.newAct = EricAction(
             self.tr('New Window'),
             UI.PixmapCache.getIcon("newWindow"),
             self.tr('New &Window'),
@@ -693,7 +693,7 @@
         self.newAct.triggered.connect(self.newWindow)
         self.__actions.append(self.newAct)
         
-        self.newPrivateAct = E5Action(
+        self.newPrivateAct = EricAction(
             self.tr('New Private Window'),
             UI.PixmapCache.getIcon("privateMode"),
             self.tr('New &Private Window'),
@@ -709,7 +709,7 @@
         self.newPrivateAct.triggered.connect(self.newPrivateWindow)
         self.__actions.append(self.newPrivateAct)
         
-        self.openAct = E5Action(
+        self.openAct = EricAction(
             self.tr('Open File'),
             UI.PixmapCache.getIcon("open"),
             self.tr('&Open File'),
@@ -724,7 +724,7 @@
         self.openAct.triggered.connect(self.__openFile)
         self.__actions.append(self.openAct)
         
-        self.openTabAct = E5Action(
+        self.openTabAct = EricAction(
             self.tr('Open File in New Tab'),
             UI.PixmapCache.getIcon("openNewTab"),
             self.tr('Open File in New &Tab'),
@@ -741,7 +741,7 @@
         self.__actions.append(self.openTabAct)
         
         if hasattr(QWebEnginePage, "SavePage"):
-            self.saveAsAct = E5Action(
+            self.saveAsAct = EricAction(
                 self.tr('Save As'),
                 UI.PixmapCache.getIcon("fileSaveAs"),
                 self.tr('&Save As...'),
@@ -758,7 +758,7 @@
         else:
             self.saveAsAct = None
         
-        self.saveVisiblePageScreenAct = E5Action(
+        self.saveVisiblePageScreenAct = EricAction(
             self.tr('Save Page Screen'),
             UI.PixmapCache.getIcon("fileSavePixmap"),
             self.tr('Save Page Screen...'),
@@ -776,7 +776,7 @@
         self.__actions.append(self.saveVisiblePageScreenAct)
         
         bookmarksManager = self.bookmarksManager()
-        self.importBookmarksAct = E5Action(
+        self.importBookmarksAct = EricAction(
             self.tr('Import Bookmarks'),
             self.tr('&Import Bookmarks...'),
             0, 0, self, 'webbrowser_file_import_bookmarks')
@@ -790,7 +790,7 @@
             bookmarksManager.importBookmarks)
         self.__actions.append(self.importBookmarksAct)
         
-        self.exportBookmarksAct = E5Action(
+        self.exportBookmarksAct = EricAction(
             self.tr('Export Bookmarks'),
             self.tr('&Export Bookmarks...'),
             0, 0, self, 'webbrowser_file_export_bookmarks')
@@ -804,7 +804,7 @@
             bookmarksManager.exportBookmarks)
         self.__actions.append(self.exportBookmarksAct)
         
-        self.printAct = E5Action(
+        self.printAct = EricAction(
             self.tr('Print'),
             UI.PixmapCache.getIcon("print"),
             self.tr('&Print'),
@@ -818,7 +818,7 @@
         self.printAct.triggered.connect(self.__tabWidget.printBrowser)
         self.__actions.append(self.printAct)
         
-        self.printPdfAct = E5Action(
+        self.printPdfAct = EricAction(
             self.tr('Print as PDF'),
             UI.PixmapCache.getIcon("printPdf"),
             self.tr('Print as PDF'),
@@ -833,7 +833,7 @@
             self.__tabWidget.printBrowserPdf)
         self.__actions.append(self.printPdfAct)
         
-        self.printPreviewAct = E5Action(
+        self.printPreviewAct = EricAction(
             self.tr('Print Preview'),
             UI.PixmapCache.getIcon("printPreview"),
             self.tr('Print Preview'),
@@ -848,7 +848,7 @@
             self.__tabWidget.printPreviewBrowser)
         self.__actions.append(self.printPreviewAct)
         
-        self.sendPageLinkAct = E5Action(
+        self.sendPageLinkAct = EricAction(
             self.tr('Send Page Link'),
             UI.PixmapCache.getIcon("mailSend"),
             self.tr('Send Page Link'),
@@ -862,7 +862,7 @@
         self.sendPageLinkAct.triggered.connect(self.__sendPageLink)
         self.__actions.append(self.sendPageLinkAct)
         
-        self.closeAct = E5Action(
+        self.closeAct = EricAction(
             self.tr('Close'),
             UI.PixmapCache.getIcon("close"),
             self.tr('&Close'),
@@ -877,7 +877,7 @@
         self.closeAct.triggered.connect(self.__tabWidget.closeBrowser)
         self.__actions.append(self.closeAct)
         
-        self.closeAllAct = E5Action(
+        self.closeAllAct = EricAction(
             self.tr('Close All'),
             self.tr('Close &All'),
             0, 0, self, 'webbrowser_file_close_all')
@@ -890,7 +890,7 @@
             self.__tabWidget.closeAllBrowsers)
         self.__actions.append(self.closeAllAct)
         
-        self.exitAct = E5Action(
+        self.exitAct = EricAction(
             self.tr('Quit'),
             UI.PixmapCache.getIcon("exit"),
             self.tr('&Quit'),
@@ -904,7 +904,7 @@
         self.exitAct.triggered.connect(self.shutdown)
         self.__actions.append(self.exitAct)
         
-        self.backAct = E5Action(
+        self.backAct = EricAction(
             self.tr('Backward'),
             UI.PixmapCache.getIcon("back"),
             self.tr('&Backward'),
@@ -919,7 +919,7 @@
         self.backAct.triggered.connect(self.__backward)
         self.__actions.append(self.backAct)
         
-        self.forwardAct = E5Action(
+        self.forwardAct = EricAction(
             self.tr('Forward'),
             UI.PixmapCache.getIcon("forward"),
             self.tr('&Forward'),
@@ -935,7 +935,7 @@
         self.forwardAct.triggered.connect(self.__forward)
         self.__actions.append(self.forwardAct)
         
-        self.homeAct = E5Action(
+        self.homeAct = EricAction(
             self.tr('Home'),
             UI.PixmapCache.getIcon("home"),
             self.tr('&Home'),
@@ -950,7 +950,7 @@
         self.homeAct.triggered.connect(self.__home)
         self.__actions.append(self.homeAct)
         
-        self.reloadAct = E5Action(
+        self.reloadAct = EricAction(
             self.tr('Reload'),
             UI.PixmapCache.getIcon("reload"),
             self.tr('&Reload'),
@@ -966,7 +966,7 @@
         self.reloadAct.triggered.connect(self.__reload)
         self.__actions.append(self.reloadAct)
         
-        self.stopAct = E5Action(
+        self.stopAct = EricAction(
             self.tr('Stop'),
             UI.PixmapCache.getIcon("stopLoading"),
             self.tr('&Stop'),
@@ -981,7 +981,7 @@
         self.stopAct.triggered.connect(self.__stopLoading)
         self.__actions.append(self.stopAct)
         
-        self.copyAct = E5Action(
+        self.copyAct = EricAction(
             self.tr('Copy'),
             UI.PixmapCache.getIcon("editCopy"),
             self.tr('&Copy'),
@@ -995,7 +995,7 @@
         self.copyAct.triggered.connect(self.__copy)
         self.__actions.append(self.copyAct)
         
-        self.cutAct = E5Action(
+        self.cutAct = EricAction(
             self.tr('Cut'),
             UI.PixmapCache.getIcon("editCut"),
             self.tr('Cu&t'),
@@ -1009,7 +1009,7 @@
         self.cutAct.triggered.connect(self.__cut)
         self.__actions.append(self.cutAct)
         
-        self.pasteAct = E5Action(
+        self.pasteAct = EricAction(
             self.tr('Paste'),
             UI.PixmapCache.getIcon("editPaste"),
             self.tr('&Paste'),
@@ -1023,7 +1023,7 @@
         self.pasteAct.triggered.connect(self.__paste)
         self.__actions.append(self.pasteAct)
         
-        self.undoAct = E5Action(
+        self.undoAct = EricAction(
             self.tr('Undo'),
             UI.PixmapCache.getIcon("editUndo"),
             self.tr('&Undo'),
@@ -1037,7 +1037,7 @@
         self.undoAct.triggered.connect(self.__undo)
         self.__actions.append(self.undoAct)
         
-        self.redoAct = E5Action(
+        self.redoAct = EricAction(
             self.tr('Redo'),
             UI.PixmapCache.getIcon("editRedo"),
             self.tr('&Redo'),
@@ -1051,7 +1051,7 @@
         self.redoAct.triggered.connect(self.__redo)
         self.__actions.append(self.redoAct)
         
-        self.selectAllAct = E5Action(
+        self.selectAllAct = EricAction(
             self.tr('Select All'),
             UI.PixmapCache.getIcon("editSelectAll"),
             self.tr('&Select All'),
@@ -1065,7 +1065,7 @@
         self.selectAllAct.triggered.connect(self.__selectAll)
         self.__actions.append(self.selectAllAct)
         
-        self.unselectAct = E5Action(
+        self.unselectAct = EricAction(
             self.tr('Unselect'),
             self.tr('Unselect'),
             QKeySequence(self.tr("Alt+Ctrl+A", "Edit|Unselect")),
@@ -1078,7 +1078,7 @@
         self.unselectAct.triggered.connect(self.__unselect)
         self.__actions.append(self.unselectAct)
         
-        self.findAct = E5Action(
+        self.findAct = EricAction(
             self.tr('Find...'),
             UI.PixmapCache.getIcon("find"),
             self.tr('&Find...'),
@@ -1092,7 +1092,7 @@
         self.findAct.triggered.connect(self.__find)
         self.__actions.append(self.findAct)
         
-        self.findNextAct = E5Action(
+        self.findNextAct = EricAction(
             self.tr('Find next'),
             UI.PixmapCache.getIcon("findNext"),
             self.tr('Find &next'),
@@ -1107,7 +1107,7 @@
         self.findNextAct.triggered.connect(self.__searchWidget.findNext)
         self.__actions.append(self.findNextAct)
         
-        self.findPrevAct = E5Action(
+        self.findPrevAct = EricAction(
             self.tr('Find previous'),
             UI.PixmapCache.getIcon("findPrev"),
             self.tr('Find &previous'),
@@ -1124,7 +1124,7 @@
             self.__searchWidget.findPrevious)
         self.__actions.append(self.findPrevAct)
         
-        self.bookmarksManageAct = E5Action(
+        self.bookmarksManageAct = EricAction(
             self.tr('Manage Bookmarks'),
             self.tr('&Manage Bookmarks...'),
             QKeySequence(self.tr("Ctrl+Shift+B", "Help|Manage bookmarks")),
@@ -1139,7 +1139,7 @@
             self.__showBookmarksDialog)
         self.__actions.append(self.bookmarksManageAct)
         
-        self.bookmarksAddAct = E5Action(
+        self.bookmarksAddAct = EricAction(
             self.tr('Add Bookmark'),
             UI.PixmapCache.getIcon("addBookmark"),
             self.tr('Add &Bookmark...'),
@@ -1155,7 +1155,7 @@
         self.bookmarksAddAct.triggered.connect(self.__addBookmark)
         self.__actions.append(self.bookmarksAddAct)
         
-        self.bookmarksAddFolderAct = E5Action(
+        self.bookmarksAddFolderAct = EricAction(
             self.tr('Add Folder'),
             self.tr('Add &Folder...'),
             0, 0, self, 'webbrowser_bookmark_show_all')
@@ -1169,7 +1169,7 @@
             self.__addBookmarkFolder)
         self.__actions.append(self.bookmarksAddFolderAct)
         
-        self.bookmarksAllTabsAct = E5Action(
+        self.bookmarksAllTabsAct = EricAction(
             self.tr('Bookmark All Tabs'),
             self.tr('Bookmark All Tabs...'),
             0, 0, self, 'webbrowser_bookmark_all_tabs')
@@ -1183,7 +1183,7 @@
         self.bookmarksAllTabsAct.triggered.connect(self.bookmarkAll)
         self.__actions.append(self.bookmarksAllTabsAct)
         
-        self.whatsThisAct = E5Action(
+        self.whatsThisAct = EricAction(
             self.tr('What\'s This?'),
             UI.PixmapCache.getIcon("whatsThis"),
             self.tr('&What\'s This?'),
@@ -1201,7 +1201,7 @@
         self.whatsThisAct.triggered.connect(self.__whatsThis)
         self.__actions.append(self.whatsThisAct)
         
-        self.aboutAct = E5Action(
+        self.aboutAct = EricAction(
             self.tr('About'),
             self.tr('&About'),
             0, 0, self, 'webbrowser_help_about')
@@ -1214,7 +1214,7 @@
         self.aboutAct.triggered.connect(self.__about)
         self.__actions.append(self.aboutAct)
         
-        self.aboutQtAct = E5Action(
+        self.aboutQtAct = EricAction(
             self.tr('About Qt'),
             self.tr('About &Qt'),
             0, 0, self, 'webbrowser_help_about_qt')
@@ -1227,7 +1227,7 @@
         self.aboutQtAct.triggered.connect(self.__aboutQt)
         self.__actions.append(self.aboutQtAct)
         
-        self.zoomInAct = E5Action(
+        self.zoomInAct = EricAction(
             self.tr('Zoom in'),
             UI.PixmapCache.getIcon("zoomIn"),
             self.tr('Zoom &in'),
@@ -1243,7 +1243,7 @@
         self.zoomInAct.triggered.connect(self.__zoomIn)
         self.__actions.append(self.zoomInAct)
         
-        self.zoomOutAct = E5Action(
+        self.zoomOutAct = EricAction(
             self.tr('Zoom out'),
             UI.PixmapCache.getIcon("zoomOut"),
             self.tr('Zoom &out'),
@@ -1259,7 +1259,7 @@
         self.zoomOutAct.triggered.connect(self.__zoomOut)
         self.__actions.append(self.zoomOutAct)
         
-        self.zoomResetAct = E5Action(
+        self.zoomResetAct = EricAction(
             self.tr('Zoom reset'),
             UI.PixmapCache.getIcon("zoomReset"),
             self.tr('Zoom &reset'),
@@ -1275,7 +1275,7 @@
         self.zoomResetAct.triggered.connect(self.__zoomReset)
         self.__actions.append(self.zoomResetAct)
         
-        self.pageSourceAct = E5Action(
+        self.pageSourceAct = EricAction(
             self.tr('Show page source'),
             self.tr('Show page source'),
             QKeySequence(self.tr('Ctrl+U')), 0,
@@ -1290,7 +1290,7 @@
         self.__actions.append(self.pageSourceAct)
         self.addAction(self.pageSourceAct)
         
-        self.fullScreenAct = E5Action(
+        self.fullScreenAct = EricAction(
             self.tr('Full Screen'),
             UI.PixmapCache.getIcon("windowFullscreen"),
             self.tr('&Full Screen'),
@@ -1305,7 +1305,7 @@
         self.__actions.append(self.fullScreenAct)
         self.addAction(self.fullScreenAct)
         
-        self.nextTabAct = E5Action(
+        self.nextTabAct = EricAction(
             self.tr('Show next tab'),
             self.tr('Show next tab'),
             QKeySequence(self.tr('Ctrl+Alt+Tab')), 0,
@@ -1314,7 +1314,7 @@
         self.__actions.append(self.nextTabAct)
         self.addAction(self.nextTabAct)
         
-        self.prevTabAct = E5Action(
+        self.prevTabAct = EricAction(
             self.tr('Show previous tab'),
             self.tr('Show previous tab'),
             QKeySequence(self.tr('Shift+Ctrl+Alt+Tab')), 0,
@@ -1323,7 +1323,7 @@
         self.__actions.append(self.prevTabAct)
         self.addAction(self.prevTabAct)
         
-        self.switchTabAct = E5Action(
+        self.switchTabAct = EricAction(
             self.tr('Switch between tabs'),
             self.tr('Switch between tabs'),
             QKeySequence(self.tr('Ctrl+1')), 0,
@@ -1332,7 +1332,7 @@
         self.__actions.append(self.switchTabAct)
         self.addAction(self.switchTabAct)
         
-        self.prefAct = E5Action(
+        self.prefAct = EricAction(
             self.tr('Preferences'),
             UI.PixmapCache.getIcon("configure"),
             self.tr('&Preferences...'), 0, 0, self, 'webbrowser_preferences')
@@ -1346,7 +1346,7 @@
         self.prefAct.triggered.connect(self.__showPreferences)
         self.__actions.append(self.prefAct)
         
-        self.acceptedLanguagesAct = E5Action(
+        self.acceptedLanguagesAct = EricAction(
             self.tr('Languages'),
             UI.PixmapCache.getIcon("flag"),
             self.tr('&Languages...'), 0, 0,
@@ -1361,7 +1361,7 @@
             self.__showAcceptedLanguages)
         self.__actions.append(self.acceptedLanguagesAct)
         
-        self.cookiesAct = E5Action(
+        self.cookiesAct = EricAction(
             self.tr('Cookies'),
             UI.PixmapCache.getIcon("cookie"),
             self.tr('C&ookies...'), 0, 0, self, 'webbrowser_cookies')
@@ -1375,7 +1375,7 @@
             self.__showCookiesConfiguration)
         self.__actions.append(self.cookiesAct)
         
-        self.personalDataAct = E5Action(
+        self.personalDataAct = EricAction(
             self.tr('Personal Information'),
             UI.PixmapCache.getIcon("pim"),
             self.tr('Personal Information...'),
@@ -1392,7 +1392,7 @@
             self.__showPersonalInformationDialog)
         self.__actions.append(self.personalDataAct)
         
-        self.greaseMonkeyAct = E5Action(
+        self.greaseMonkeyAct = EricAction(
             self.tr('GreaseMonkey Scripts'),
             UI.PixmapCache.getIcon("greaseMonkey"),
             self.tr('GreaseMonkey Scripts...'),
@@ -1409,7 +1409,7 @@
             self.__showGreaseMonkeyConfigDialog)
         self.__actions.append(self.greaseMonkeyAct)
         
-        self.editMessageFilterAct = E5Action(
+        self.editMessageFilterAct = EricAction(
             self.tr('Edit Message Filters'),
             UI.PixmapCache.getIcon("warning"),
             self.tr('Edit Message Filters...'), 0, 0, self,
@@ -1423,10 +1423,10 @@
             """ window.</p>"""
         ))
         self.editMessageFilterAct.triggered.connect(
-            E5ErrorMessage.editMessageFilters)
+            EricErrorMessage.editMessageFilters)
         self.__actions.append(self.editMessageFilterAct)
         
-        self.featurePermissionAct = E5Action(
+        self.featurePermissionAct = EricAction(
             self.tr('Edit HTML5 Feature Permissions'),
             UI.PixmapCache.getIcon("featurePermission"),
             self.tr('Edit HTML5 Feature Permissions...'), 0, 0, self,
@@ -1443,7 +1443,7 @@
         self.__actions.append(self.featurePermissionAct)
         
         if WebBrowserWindow._useQtHelp:
-            self.syncTocAct = E5Action(
+            self.syncTocAct = EricAction(
                 self.tr('Sync with Table of Contents'),
                 UI.PixmapCache.getIcon("syncToc"),
                 self.tr('Sync with Table of Contents'),
@@ -1458,7 +1458,7 @@
             self.syncTocAct.triggered.connect(self.__syncTOC)
             self.__actions.append(self.syncTocAct)
             
-            self.showTocAct = E5Action(
+            self.showTocAct = EricAction(
                 self.tr('Table of Contents'),
                 self.tr('Table of Contents'),
                 0, 0, self, 'webbrowser_show_toc')
@@ -1471,7 +1471,7 @@
             self.showTocAct.triggered.connect(self.__showTocWindow)
             self.__actions.append(self.showTocAct)
             
-            self.showIndexAct = E5Action(
+            self.showIndexAct = EricAction(
                 self.tr('Index'),
                 self.tr('Index'),
                 0, 0, self, 'webbrowser_show_index')
@@ -1484,7 +1484,7 @@
             self.showIndexAct.triggered.connect(self.__showIndexWindow)
             self.__actions.append(self.showIndexAct)
             
-            self.showSearchAct = E5Action(
+            self.showSearchAct = EricAction(
                 self.tr('Search'),
                 self.tr('Search'),
                 0, 0, self, 'webbrowser_show_search')
@@ -1498,7 +1498,7 @@
                 self.__showSearchWindow)
             self.__actions.append(self.showSearchAct)
             
-            self.manageQtHelpDocsAct = E5Action(
+            self.manageQtHelpDocsAct = EricAction(
                 self.tr('Manage QtHelp Documents'),
                 self.tr('Manage QtHelp &Documents'),
                 0, 0, self, 'webbrowser_qthelp_documents')
@@ -1513,7 +1513,7 @@
                 self.__manageQtHelpDocumentation)
             self.__actions.append(self.manageQtHelpDocsAct)
             
-            self.reindexDocumentationAct = E5Action(
+            self.reindexDocumentationAct = EricAction(
                 self.tr('Reindex Documentation'),
                 self.tr('&Reindex Documentation'),
                 0, 0, self, 'webbrowser_qthelp_reindex')
@@ -1527,7 +1527,7 @@
                 self.__searchEngine.reindexDocumentation)
             self.__actions.append(self.reindexDocumentationAct)
         
-        self.clearPrivateDataAct = E5Action(
+        self.clearPrivateDataAct = EricAction(
             self.tr('Clear private data'),
             UI.PixmapCache.getIcon("clearPrivateData"),
             self.tr('Clear private data'),
@@ -1544,7 +1544,7 @@
             self.__clearPrivateData)
         self.__actions.append(self.clearPrivateDataAct)
         
-        self.clearIconsAct = E5Action(
+        self.clearIconsAct = EricAction(
             self.tr('Clear icons database'),
             self.tr('Clear &icons database'),
             0, 0,
@@ -1559,7 +1559,7 @@
         self.clearIconsAct.triggered.connect(self.__clearIconsDatabase)
         self.__actions.append(self.clearIconsAct)
         
-        self.manageIconsAct = E5Action(
+        self.manageIconsAct = EricAction(
             self.tr('Manage saved Favicons'),
             UI.PixmapCache.getIcon("icons"),
             self.tr('Manage saved Favicons'),
@@ -1575,7 +1575,7 @@
         self.manageIconsAct.triggered.connect(self.__showWebIconsDialog)
         self.__actions.append(self.manageIconsAct)
         
-        self.searchEnginesAct = E5Action(
+        self.searchEnginesAct = EricAction(
             self.tr('Configure Search Engines'),
             self.tr('Configure Search &Engines...'),
             0, 0,
@@ -1591,7 +1591,7 @@
             self.__showEnginesConfigurationDialog)
         self.__actions.append(self.searchEnginesAct)
         
-        self.passwordsAct = E5Action(
+        self.passwordsAct = EricAction(
             self.tr('Manage Saved Passwords'),
             UI.PixmapCache.getIcon("passwords"),
             self.tr('Manage Saved Passwords...'),
@@ -1606,7 +1606,7 @@
         self.passwordsAct.triggered.connect(self.__showPasswordsDialog)
         self.__actions.append(self.passwordsAct)
         
-        self.adblockAct = E5Action(
+        self.adblockAct = EricAction(
             self.tr('Ad Block'),
             UI.PixmapCache.getIcon("adBlockPlus"),
             self.tr('&Ad Block...'),
@@ -1622,7 +1622,7 @@
         self.adblockAct.triggered.connect(self.__showAdBlockDialog)
         self.__actions.append(self.adblockAct)
         
-        self.certificateErrorsAct = E5Action(
+        self.certificateErrorsAct = EricAction(
             self.tr('Manage SSL Certificate Errors'),
             UI.PixmapCache.getIcon("certificates"),
             self.tr('Manage SSL Certificate Errors...'),
@@ -1639,7 +1639,7 @@
             self.__showCertificateErrorsDialog)
         self.__actions.append(self.certificateErrorsAct)
         
-        self.safeBrowsingAct = E5Action(
+        self.safeBrowsingAct = EricAction(
             self.tr('Manage Safe Browsing'),
             UI.PixmapCache.getIcon("safeBrowsing"),
             self.tr('Manage Safe Browsing...'), 0, 0, self,
@@ -1655,7 +1655,7 @@
             self.__showSafeBrowsingDialog)
         self.__actions.append(self.safeBrowsingAct)
         
-        self.showDownloadManagerAct = E5Action(
+        self.showDownloadManagerAct = EricAction(
             self.tr('Downloads'),
             self.tr('Downloads'),
             0, 0, self, 'webbrowser_show_downloads')
@@ -1669,7 +1669,7 @@
             self.__showDownloadsWindow)
         self.__actions.append(self.showDownloadManagerAct)
         
-        self.feedsManagerAct = E5Action(
+        self.feedsManagerAct = EricAction(
             self.tr('RSS Feeds Dialog'),
             UI.PixmapCache.getIcon("rss22"),
             self.tr('&RSS Feeds Dialog...'),
@@ -1686,7 +1686,7 @@
         self.feedsManagerAct.triggered.connect(self.__showFeedsManager)
         self.__actions.append(self.feedsManagerAct)
         
-        self.siteInfoAct = E5Action(
+        self.siteInfoAct = EricAction(
             self.tr('Siteinfo Dialog'),
             UI.PixmapCache.getIcon("helpAbout"),
             self.tr('&Siteinfo Dialog...'),
@@ -1702,7 +1702,7 @@
         self.siteInfoAct.triggered.connect(self.__showSiteinfoDialog)
         self.__actions.append(self.siteInfoAct)
         
-        self.userAgentManagerAct = E5Action(
+        self.userAgentManagerAct = EricAction(
             self.tr('Manage User Agent Settings'),
             self.tr('Manage &User Agent Settings'),
             0, 0, self, 'webbrowser_user_agent_settings')
@@ -1716,7 +1716,7 @@
             self.__showUserAgentsDialog)
         self.__actions.append(self.userAgentManagerAct)
         
-        self.synchronizationAct = E5Action(
+        self.synchronizationAct = EricAction(
             self.tr('Synchronize data'),
             UI.PixmapCache.getIcon("sync"),
             self.tr('&Synchronize Data...'),
@@ -1732,7 +1732,7 @@
             self.__showSyncDialog)
         self.__actions.append(self.synchronizationAct)
         
-        self.zoomValuesAct = E5Action(
+        self.zoomValuesAct = EricAction(
             self.tr('Manage Saved Zoom Values'),
             UI.PixmapCache.getIcon("zoomReset"),
             self.tr('Manage Saved Zoom Values...'),
@@ -1747,7 +1747,7 @@
         self.zoomValuesAct.triggered.connect(self.__showZoomValuesDialog)
         self.__actions.append(self.zoomValuesAct)
         
-        self.showJavaScriptConsoleAct = E5Action(
+        self.showJavaScriptConsoleAct = EricAction(
             self.tr('JavaScript Console'),
             self.tr('JavaScript Console'),
             0, 0, self, 'webbrowser_show_javascript_console')
@@ -1761,7 +1761,7 @@
             self.__toggleJavaScriptConsole)
         self.__actions.append(self.showJavaScriptConsoleAct)
         
-        self.showTabManagerAct = E5Action(
+        self.showTabManagerAct = EricAction(
             self.tr('Tab Manager'),
             self.tr('Tab Manager'),
             0, 0, self, 'webbrowser_show_tab_manager')
@@ -1775,7 +1775,7 @@
             lambda: self.__showTabManager(self.showTabManagerAct))
         self.__actions.append(self.showTabManagerAct)
         
-        self.showSessionsManagerAct = E5Action(
+        self.showSessionsManagerAct = EricAction(
             self.tr('Session Manager'),
             self.tr('Session Manager...'),
             0, 0, self, 'webbrowser_show_session_manager')
@@ -1789,7 +1789,7 @@
             self.__showSessionManagerDialog)
         self.__actions.append(self.showSessionsManagerAct)
         
-        self.virustotalScanCurrentAct = E5Action(
+        self.virustotalScanCurrentAct = EricAction(
             self.tr("Scan current site"),
             UI.PixmapCache.getIcon("virustotal"),
             self.tr("Scan current site"),
@@ -1799,7 +1799,7 @@
             self.__virusTotalScanCurrentSite)
         self.__actions.append(self.virustotalScanCurrentAct)
         
-        self.virustotalIpReportAct = E5Action(
+        self.virustotalIpReportAct = EricAction(
             self.tr("IP Address Report"),
             UI.PixmapCache.getIcon("virustotal"),
             self.tr("IP Address Report"),
@@ -1809,7 +1809,7 @@
             self.__virusTotalIpAddressReport)
         self.__actions.append(self.virustotalIpReportAct)
         
-        self.virustotalDomainReportAct = E5Action(
+        self.virustotalDomainReportAct = EricAction(
             self.tr("Domain Report"),
             UI.PixmapCache.getIcon("virustotal"),
             self.tr("Domain Report"),
@@ -1827,7 +1827,7 @@
             self.virustotalIpReportAct.setEnabled(False)
             self.virustotalDomainReportAct.setEnabled(False)
 
-        self.shortcutsAct = E5Action(
+        self.shortcutsAct = EricAction(
             self.tr('Keyboard Shortcuts'),
             UI.PixmapCache.getIcon("configureShortcuts"),
             self.tr('Keyboard &Shortcuts...'),
@@ -1843,7 +1843,7 @@
         self.shortcutsAct.triggered.connect(self.__configShortcuts)
         self.__actions.append(self.shortcutsAct)
 
-        self.exportShortcutsAct = E5Action(
+        self.exportShortcutsAct = EricAction(
             self.tr('Export Keyboard Shortcuts'),
             UI.PixmapCache.getIcon("exportShortcuts"),
             self.tr('&Export Keyboard Shortcuts...'),
@@ -1857,7 +1857,7 @@
         self.exportShortcutsAct.triggered.connect(self.__exportShortcuts)
         self.__actions.append(self.exportShortcutsAct)
 
-        self.importShortcutsAct = E5Action(
+        self.importShortcutsAct = EricAction(
             self.tr('Import Keyboard Shortcuts'),
             UI.PixmapCache.getIcon("importShortcuts"),
             self.tr('&Import Keyboard Shortcuts...'),
@@ -1871,7 +1871,7 @@
         self.importShortcutsAct.triggered.connect(self.__importShortcuts)
         self.__actions.append(self.importShortcutsAct)
         
-        self.showProtocolHandlerManagerAct = E5Action(
+        self.showProtocolHandlerManagerAct = EricAction(
             self.tr('Protocol Handler Manager'),
             self.tr('Protocol Handler Manager...'),
             0, 0, self, 'webbrowser_show_protocol_handler_manager')
@@ -1895,7 +1895,7 @@
         """
         Public method to get a list of all actions.
         
-        @return list of all actions (list of E5Action)
+        @return list of all actions (list of EricAction)
         """
         return self.__actions[:]
     
@@ -2474,7 +2474,7 @@
             not os.path.isfile(applPath) or
             not QProcess.startDetached(sys.executable, args)
         ):
-            E5MessageBox.critical(
+            EricMessageBox.critical(
                 self,
                 self.tr('New Private Window'),
                 self.tr(
@@ -2487,7 +2487,7 @@
         """
         Private slot called to open a file.
         """
-        fn = E5FileDialog.getOpenFileName(
+        fn = EricFileDialog.getOpenFileName(
             self,
             self.tr("Open File"),
             "",
@@ -2507,7 +2507,7 @@
         """
         Private slot called to open a file in a new tab.
         """
-        fn = E5FileDialog.getOpenFileName(
+        fn = EricFileDialog.getOpenFileName(
             self,
             self.tr("Open File"),
             "",
@@ -2548,7 +2548,7 @@
         chromeVersion, webengineVersion = (
             WebBrowserTools.getWebEngineVersions()
         )
-        E5MessageBox.about(
+        EricMessageBox.about(
             self,
             self.tr("eric Web Browser"),
             self.tr(
@@ -2563,7 +2563,7 @@
         """
         Private slot to show info about Qt.
         """
-        E5MessageBox.aboutQt(self, self.tr("eric Web Browser"))
+        EricMessageBox.aboutQt(self, self.tr("eric Web Browser"))
 
     def setBackwardAvailable(self, b):
         """
@@ -2849,8 +2849,8 @@
                 tabCount += browser.tabWidget().count()
             
             if windowCount > 1 or tabCount > 1:
-                mb = E5MessageBox.E5MessageBox(
-                    E5MessageBox.Information,
+                mb = EricMessageBox.EricMessageBox(
+                    EricMessageBox.Information,
                     self.tr("Are you sure you want to close the web browser?"),
                     self.tr("""Are you sure you want to close the web"""
                             """ browser?\n"""
@@ -2859,9 +2859,9 @@
                     modal=True,
                     parent=self)
                 quitButton = mb.addButton(
-                    self.tr("&Quit"), E5MessageBox.AcceptRole)
+                    self.tr("&Quit"), EricMessageBox.AcceptRole)
                 quitButton.setIcon(UI.PixmapCache.getIcon("exit"))
-                mb.addButton(E5MessageBox.Cancel)
+                mb.addButton(EricMessageBox.Cancel)
                 mb.exec()
                 return mb.clickedButton() == quitButton
         
@@ -3393,7 +3393,7 @@
         Private slot to synchronize the TOC with the currently shown page.
         """
         if WebBrowserWindow._useQtHelp:
-            with E5OverrideCursor():
+            with EricOverrideCursor():
                 url = self.currentBrowser().source()
                 self.__showTocWindow()
                 if not self.__tocWindow.syncToContent(url):
@@ -3575,7 +3575,7 @@
         
         @param message message to be shown (string)
         """
-        E5MessageBox.warning(
+        EricMessageBox.warning(
             self,
             self.tr("eric Web Browser"),
             message)
@@ -3612,7 +3612,7 @@
         
         @param msg message sent by the help  engine (string)
         """
-        E5MessageBox.warning(
+        EricMessageBox.warning(
             self,
             self.tr("Help Engine"), msg)
         
@@ -3621,7 +3621,7 @@
         Private slot to show the Settings menu.
         """
         self.editMessageFilterAct.setEnabled(
-            E5ErrorMessage.messageHandlerInstalled())
+            EricErrorMessage.messageHandlerInstalled())
         
     def __clearPrivateData(self):
         """
@@ -4042,7 +4042,7 @@
         """
         Private slot to handle a change of the focus.
         """
-        focusWindow = e5App().activeWindow()
+        focusWindow = ericApp().activeWindow()
         if isinstance(focusWindow, WebBrowserWindow):
             WebBrowserWindow._lastActiveWindow = focusWindow
     
@@ -4583,7 +4583,7 @@
         
         @param msg error message (str)
         """
-        E5MessageBox.critical(
+        EricMessageBox.critical(
             self,
             self.tr("VirusTotal Scan"),
             self.tr("""<p>The VirusTotal scan could not be"""
@@ -4618,7 +4618,7 @@
             if ip.count(".") == 3:
                 self.__virusTotal.getIpAddressReport(ip)
             else:
-                E5MessageBox.information(
+                EricMessageBox.information(
                     self,
                     self.tr("IP Address Report"),
                     self.tr("""The given IP address is not in dotted quad"""
@@ -4979,13 +4979,13 @@
         """
         Private slot to export the keyboard shortcuts.
         """
-        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+        fn, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             None,
             self.tr("Export Keyboard Shortcuts"),
             "",
             self.tr("Keyboard Shortcuts File (*.ekj)"),
             "",
-            E5FileDialog.DontConfirmOverwrite)
+            EricFileDialog.DontConfirmOverwrite)
         
         if not fn:
             return
@@ -4997,7 +4997,7 @@
                 fn += ex
         
         ok = (
-            E5MessageBox.yesNo(
+            EricMessageBox.yesNo(
                 self,
                 self.tr("Export Keyboard Shortcuts"),
                 self.tr("""<p>The keyboard shortcuts file <b>{0}</b> exists"""
@@ -5014,7 +5014,7 @@
         """
         Private slot to import the keyboard shortcuts.
         """
-        fn = E5FileDialog.getOpenFileName(
+        fn = EricFileDialog.getOpenFileName(
             None,
             self.tr("Import Keyboard Shortcuts"),
             "",
--- a/eric7/WebBrowser/ZoomManager/ZoomValuesDialog.ui	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/WebBrowser/ZoomManager/ZoomValuesDialog.ui	Sat May 22 18:51:46 2021 +0200
@@ -64,7 +64,7 @@
     </layout>
    </item>
    <item>
-    <widget class="E5TableView" name="zoomValuesTable">
+    <widget class="EricTableView" name="zoomValuesTable">
      <property name="alternatingRowColors">
       <bool>true</bool>
      </property>
@@ -139,9 +139,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>E5TableView</class>
+   <class>EricTableView</class>
    <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
+   <header>E5Gui/EricTableView.h</header>
   </customwidget>
  </customwidgets>
  <tabstops>
--- a/eric7/eric7.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/eric7.py	Sat May 22 18:51:46 2021 +0200
@@ -79,7 +79,7 @@
 sys.path.insert(2, os.path.join(os.path.dirname(__file__),
                                 "DebugClients", "Python"))
 
-from E5Gui.E5Application import E5Application
+from E5Gui.EricApplication import EricApplication
 
 
 def handleSingleApplication(ddindex):
@@ -88,9 +88,9 @@
     
     @param ddindex index of a '--' option in the options list
     """
-    from E5Gui.E5SingleApplication import E5SingleApplicationClient
+    from E5Gui.EricSingleApplication import EricSingleApplicationClient
     
-    client = E5SingleApplicationClient()
+    client = EricSingleApplicationClient()
     res = client.connect()
     if res > 0:
         if (
@@ -294,7 +294,7 @@
     # set the library paths for plugins
     Startup.setLibraryPaths()
 
-    app = E5Application(sys.argv)
+    app = EricApplication(sys.argv)
     ddindex = Startup.handleArgs(sys.argv, appinfo)
     
     logging.debug("Importing Preferences")
@@ -386,8 +386,8 @@
     initSSL()
     
     splash.showMessage(QCoreApplication.translate("eric7", "Starting..."))
-    # We can only import these after creating the E5Application because they
-    # make Qt calls that need the E5Application to exist.
+    # We can only import these after creating the EricApplication because they
+    # make Qt calls that need the EricApplication to exist.
     from UI.UserInterface import UserInterface
 
     splash.showMessage(
@@ -401,8 +401,8 @@
     QTimer.singleShot(0, uiStartUp)
     
     # generate a graphical error handler
-    from E5Gui import E5ErrorMessage
-    eMsg = E5ErrorMessage.qtHandler()
+    from E5Gui import EricErrorMessage
+    eMsg = EricErrorMessage.qtHandler()
     eMsg.setMinimumSize(600, 400)
     
     # start the event loop
--- a/eric7/eric7_browser.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/eric7_browser.py	Sat May 22 18:51:46 2021 +0200
@@ -41,9 +41,9 @@
     if "--quiet" not in sys.argv:
         from PyQt6.QtCore import QTimer
         from PyQt6.QtWidgets import QApplication
-        from E5Gui import E5MessageBox          # __IGNORE_WARNING__
+        from E5Gui import EricMessageBox          # __IGNORE_WARNING__
         app = QApplication([])
-        QTimer.singleShot(0, lambda: E5MessageBox.critical(
+        QTimer.singleShot(0, lambda: EricMessageBox.critical(
             None,
             "eric Web Browser",
             "QtWebEngineWidgets is not installed but needed to execute the"
@@ -56,7 +56,7 @@
 import Globals
 from Globals import AppInfo
 
-from E5Gui.E5Application import E5Application
+from E5Gui.EricApplication import EricApplication
 
 from Toolbox import Startup
 
@@ -157,7 +157,7 @@
         scheme.setFlags(QWebEngineUrlScheme.Flag.SecureScheme)
         QWebEngineUrlScheme.registerScheme(scheme)
     
-    app = E5Application(sys.argv)
+    app = EricApplication(sys.argv)
     if "--private" not in sys.argv:
         client = WebBrowserSingleApplicationClient()
         res = client.connect()
--- a/eric7/eric7_trpreviewer.py	Sat May 22 17:01:51 2021 +0200
+++ b/eric7/eric7_trpreviewer.py	Sat May 22 18:51:46 2021 +0200
@@ -32,7 +32,7 @@
             QSettings.Format.IniFormat, QSettings.Scope.UserScope, settingsDir)
         sys.argv.remove(arg)
 
-from E5Gui.E5Application import E5Application
+from E5Gui.EricApplication import EricApplication
 
 from Tools.TRSingleApplication import TRSingleApplicationClient
 from Globals import AppInfo
@@ -81,7 +81,7 @@
     # set the library paths for plugins
     Startup.setLibraryPaths()
     
-    app = E5Application(sys.argv)
+    app = EricApplication(sys.argv)
     client = TRSingleApplicationClient()
     res = client.connect()
     if res > 0:

eric ide

mercurial