Continued porting eric to PyQt6. eric7

Tue, 18 May 2021 18:19:47 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 18 May 2021 18:19:47 +0200
branch
eric7
changeset 8322
b422b4e77d19
parent 8319
ea11a3948f40
child 8323
3bb9b7d997db

Continued porting eric to PyQt6.

eric7/CondaInterface/CondaExportDialog.py file | annotate | diff | comparison | revisions
eric7/Cooperation/ChatWidget.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/DebugUI.py file | annotate | diff | comparison | revisions
eric7/Debugger/DebuggerInterfacePython.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5PassivePopup.py file | annotate | diff | comparison | revisions
eric7/E5Gui/E5PathPicker.py 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/E5ToolBarManager.py file | annotate | diff | comparison | revisions
eric7/E5Network/E5JsonServer.py file | annotate | diff | comparison | revisions
eric7/E5Network/E5SslCertificatesDialog.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/IconEditor/IconEditorWindow.py file | annotate | diff | comparison | revisions
eric7/MicroPython/MicroPythonWidget.py file | annotate | diff | comparison | revisions
eric7/MicroPython/PyBoardDevices.py file | annotate | diff | comparison | revisions
eric7/MultiProject/MultiProject.py file | annotate | diff | comparison | revisions
eric7/Network/IRC/IrcChannelWidget.py file | annotate | diff | comparison | revisions
eric7/Network/IRC/IrcNetworkWidget.py file | annotate | diff | comparison | revisions
eric7/PipInterface/PipFreezeDialog.py file | annotate | diff | comparison | revisions
eric7/PluginManager/PluginManager.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitCommitDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitCopyDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/GitDiffDialog.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/GitSubmoduleAddDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsGit/git.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgClient.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgCommitDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesDefineGuardsDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/hg.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnCommitDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnCommitDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.ui file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/E5MessageBoxWizard/E5MessageBoxWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/MessageBoxWizard/MessageBoxWizardDialog.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/ConfigurationPages/EditorHighlightingStylesPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EditorPropertiesPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EditorStylesPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ShortcutDialog.py file | annotate | diff | comparison | revisions
eric7/Preferences/__init__.py file | annotate | diff | comparison | revisions
eric7/Project/Project.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectFormsBrowser.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectResourcesBrowser.py file | annotate | diff | comparison | revisions
eric7/Project/TranslationPropertiesDialog.py file | annotate | diff | comparison | revisions
eric7/PyUnit/UnittestDialog.py file | annotate | diff | comparison | revisions
eric7/QScintilla/Editor.py file | annotate | diff | comparison | revisions
eric7/QScintilla/Exporters/ExporterBase.py file | annotate | diff | comparison | revisions
eric7/QScintilla/MiniEditor.py file | annotate | diff | comparison | revisions
eric7/Snapshot/SnapWidget.py file | annotate | diff | comparison | revisions
eric7/Templates/TemplateViewer.py file | annotate | diff | comparison | revisions
eric7/Toolbox/SingleApplication.py file | annotate | diff | comparison | revisions
eric7/UI/Browser.py file | annotate | diff | comparison | revisions
eric7/UI/DiffDialog.py file | annotate | diff | comparison | revisions
eric7/UI/UserInterface.py file | annotate | diff | comparison | revisions
eric7/VCS/VersionControl.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/Download/DownloadManager.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/PageScreenDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/SiteInfo/SiteInfoDialog.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/WebBrowserPage.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/WebBrowserTabWidget.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/WebBrowserWindow.py file | annotate | diff | comparison | revisions
--- a/eric7/CondaInterface/CondaExportDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/CondaInterface/CondaExportDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -215,7 +215,7 @@
             os.path.expanduser("~"),
             self.tr("Text Files (*.txt);;All Files (*)"),
             None,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)
+            E5FileDialog.DontConfirmOverwrite
         )
         if fileName:
             ext = os.path.splitext(fileName)[1]
--- a/eric7/Cooperation/ChatWidget.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Cooperation/ChatWidget.py	Tue May 18 18:19:47 2021 +0200
@@ -554,7 +554,7 @@
                 "",
                 self.tr("Text Files (*.txt);;All Files (*)"),
                 None,
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             if fname:
                 ext = QFileInfo(fname).suffix()
                 if not ext:
--- a/eric7/Debugger/CallStackViewer.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Debugger/CallStackViewer.py	Tue May 18 18:19:47 2021 +0200
@@ -194,7 +194,7 @@
                 "",
                 self.tr("Text Files (*.txt);;All Files (*)"),
                 None,
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             if fname:
                 ext = QFileInfo(fname).suffix()
                 if not ext:
--- a/eric7/Debugger/CallTraceViewer.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Debugger/CallTraceViewer.py	Tue May 18 18:19:47 2021 +0200
@@ -158,7 +158,7 @@
                 "",
                 self.tr("Text Files (*.txt);;All Files (*)"),
                 None,
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             if fname:
                 ext = QFileInfo(fname).suffix()
                 if not ext:
--- a/eric7/Debugger/DebugUI.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Debugger/DebugUI.py	Tue May 18 18:19:47 2021 +0200
@@ -1262,14 +1262,11 @@
                 else:
                     if stackTrace:
                         if exceptionType.startswith('unhandled'):
-                            buttons = E5MessageBox.StandardButtons(
-                                E5MessageBox.No |
-                                E5MessageBox.Yes)
+                            buttons = E5MessageBox.No | E5MessageBox.Yes
                         else:
-                            buttons = E5MessageBox.StandardButtons(
-                                E5MessageBox.No |
-                                E5MessageBox.Yes |
-                                E5MessageBox.Ignore)
+                            buttons = (E5MessageBox.No |
+                                       E5MessageBox.Yes |
+                                       E5MessageBox.Ignore)
                         res = E5MessageBox.critical(
                             self.ui, Program,
                             self.tr(
--- a/eric7/Debugger/DebuggerInterfacePython.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Debugger/DebuggerInterfacePython.py	Tue May 18 18:19:47 2021 +0200
@@ -1354,8 +1354,7 @@
                         """<p>Error: {0}</p>"""
                         """<p>Data:<br/>{1}</p>""").format(
                     str(err), Utilities.html_encode(jsonStr.strip())),
-                E5MessageBox.StandardButtons(
-                    E5MessageBox.Ok))
+                E5MessageBox.Ok)
             return
         
         method = commandDict["method"]
--- a/eric7/E5Gui/E5PassivePopup.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/E5Gui/E5PassivePopup.py	Tue May 18 18:19:47 2021 +0200
@@ -52,12 +52,12 @@
         self.__autoDelete = False
         self.__fixedPosition = QPoint()
         
-        self.setWindowFlags(Qt.WindowFlags(
+        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:
--- a/eric7/E5Gui/E5PathPicker.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/E5Gui/E5PathPicker.py	Tue May 18 18:19:47 2021 +0200
@@ -542,7 +542,7 @@
                 windowTitle,
                 directory,
                 self.__filters,
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             path = QDir.toNativeSeparators(path)
         elif self.__mode == E5PathPickerModes.SaveFileEnsureExtensionMode:
             path, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
@@ -551,7 +551,7 @@
                 directory,
                 self.__filters,
                 None,
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             path = QDir.toNativeSeparators(path)
             if path:
                 ext = QFileInfo(path).suffix()
@@ -571,7 +571,7 @@
                 self,
                 windowTitle,
                 directory,
-                E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
+                E5FileDialog.ShowDirsOnly)
             path = QDir.toNativeSeparators(path)
             while path.endswith(os.sep):
                 path = path[:-1]
@@ -580,7 +580,7 @@
                 self,
                 windowTitle,
                 directory,
-                E5FileDialog.Options(E5FileDialog.DontUseNativeDialog))
+                E5FileDialog.DontUseNativeDialog)
             path = QDir.toNativeSeparators(path)
             while path.endswith(os.sep):
                 path = path[:-1]
--- a/eric7/E5Gui/E5ProgressDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/E5Gui/E5ProgressDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -30,7 +30,7 @@
         @param flags window flags of the dialog (Qt.WindowFlags)
         """
         if flags is None:
-            flags = Qt.WindowFlags()
+            flags = Qt.WindowFlag(0)
         super().__init__(
             labelText, cancelButtonText, minimum, maximum, parent, flags)
         
--- a/eric7/E5Gui/E5SideBar.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/E5Gui/E5SideBar.py	Tue May 18 18:19:47 2021 +0200
@@ -8,10 +8,9 @@
 """
 
 import enum
+import json
 
-from PyQt6.QtCore import (
-    QEvent, QSize, Qt, QByteArray, QDataStream, QIODevice, QTimer
-)
+from PyQt6.QtCore import QEvent, QSize, Qt, QTimer
 from PyQt6.QtWidgets import (
     QTabBar, QWidget, QStackedWidget, QBoxLayout, QToolButton, QSizePolicy
 )
@@ -580,19 +579,16 @@
                 self.__minSize = self.minimumSizeHint().width()
                 self.__maxSize = self.maximumWidth()
         
-        data = QByteArray()
-        stream = QDataStream(data, QIODevice.OpenModeFlag.WriteOnly)
-        stream.setVersion(QDataStream.Version.Qt_6_1)
-        
-        stream.writeUInt16(self.Version)
-        stream.writeBool(self.__minimized)
-        stream << self.__bigSize
-        stream.writeUInt32(self.__minSize)
-        stream.writeUInt32(self.__maxSize)
-        stream.writeUInt32(len(self.splitterSizes))
-        for size in self.splitterSizes:
-            stream.writeUInt32(size)
-        stream.writeBool(self.__autoHide)
+        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
     
@@ -603,7 +599,15 @@
         @param state byte array containing the saved state (QByteArray)
         @return flag indicating success (boolean)
         """
-        if state.isEmpty():
+        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):
@@ -613,44 +617,24 @@
             minSize = self.layout.minimumSize().width()
             maxSize = self.maximumWidth()
         
-        data = QByteArray(state)
-        stream = QDataStream(data, QIODevice.OpenModeFlag.ReadOnly)
-        stream.setVersion(QDataStream.Version.Qt_6_1)
-        version = stream.readUInt16()  # version
-        minimized = stream.readBool()
-        
-        if minimized and not self.__minimized:
-            self.shrink()
+        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
         
-        stream >> self.__bigSize
-        if version == 1:
-            self.__minSize = max(stream.readUInt16(), minSize)
-            self.__maxSize = max(stream.readUInt16(), maxSize)
-            count = stream.readUInt16()
-            self.splitterSizes = []
-            for _ in range(count):
-                self.splitterSizes.append(stream.readUInt16())
-        elif version == 2:
-            self.__minSize = max(stream.readUInt32(), minSize)
-            self.__maxSize = max(stream.readUInt32(), maxSize)
-            count = stream.readUInt32()
-            self.splitterSizes = []
-            for _ in range(count):
-                self.splitterSizes.append(stream.readUInt32())
-        else:
-            # TODO: determine why version is always 0
-            # set some defaults for unknown versions
-            self.__minSize = minSize
-            self.__maxSize = maxSize
-            self.splitterSizes = []
-        
-        self.__autoHide = stream.readBool()
-        self.__autoHideButton.setChecked(not self.__autoHide)
-        
-        if not minimized:
-            self.expand()
-        
-        return True
+        return False
     
     #######################################################################
     ## methods below implement the autohide functionality
--- a/eric7/E5Gui/E5ToolBarManager.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/E5Gui/E5ToolBarManager.py	Tue May 18 18:19:47 2021 +0200
@@ -539,7 +539,9 @@
         if state.isEmpty():
             return False
         
-        data = QByteArray(state)
+        # FIXME: this copies only up to the first \0 character
+##        data = QByteArray(state)
+        data = state
         stream = QDataStream(data, QIODevice.OpenModeFlag.ReadOnly)
         stream.setVersion(QDataStream.Version.Qt_4_6)
         marker = stream.readUInt16()
--- a/eric7/E5Network/E5JsonServer.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/E5Network/E5JsonServer.py	Tue May 18 18:19:47 2021 +0200
@@ -162,8 +162,7 @@
                             """<p>Error: {0}</p>"""
                             """<p>Data:<br/>{1}</p>""").format(
                         str(err), Utilities.html_encode(jsonLine.strip())),
-                    E5MessageBox.StandardButtons(
-                        E5MessageBox.Ok))
+                    E5MessageBox.Ok)
                 return
             
             self.handleCall(clientDict["method"], clientDict["params"])
--- a/eric7/E5Network/E5SslCertificatesDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/E5Network/E5SslCertificatesDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -446,7 +446,7 @@
                 self.tr("Certificate File (PEM) (*.pem);;"
                         "Certificate File (DER) (*.der)"),
                 None,
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             
             if fname:
                 ext = QFileInfo(fname).suffix()
--- a/eric7/Graphics/UMLDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Graphics/UMLDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -246,7 +246,7 @@
                         "Eric Text Graphics File (*.e5g);;"
                         "All Files (*)"),
                 "",
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             if not fname:
                 return
             ext = QFileInfo(fname).suffix()
@@ -553,9 +553,7 @@
                         self,
                         self.tr("Load Diagram"),
                         msg,
-                        E5MessageBox.StandardButtons(
-                            E5MessageBox.Abort |
-                            E5MessageBox.Ignore),
+                        E5MessageBox.Abort | E5MessageBox.Ignore,
                         E5MessageBox.Abort)
                     if res == E5MessageBox.Abort:
                         return False
--- a/eric7/Graphics/UMLGraphicsView.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Graphics/UMLGraphicsView.py	Tue May 18 18:19:47 2021 +0200
@@ -365,7 +365,7 @@
             self.tr("Portable Network Graphics (*.png);;"
                     "Scalable Vector Graphics (*.svg)"),
             "",
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         if fname:
             ext = QFileInfo(fname).suffix()
             if not ext:
--- a/eric7/HexEdit/HexEditMainWindow.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/HexEdit/HexEditMainWindow.py	Tue May 18 18:19:47 2021 +0200
@@ -1077,7 +1077,7 @@
             self.tr("Save binary file"),
             self.__lastSavePath,
             self.tr("All Files (*)"),
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         if not fileName:
             return False
         
@@ -1160,7 +1160,7 @@
             savePath,
             self.tr("Text Files (*.txt);;All Files (*)"),
             self.tr("Text Files (*.txt)"),
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         if not fileName:
             return
         
--- a/eric7/IconEditor/IconEditorWindow.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/IconEditor/IconEditorWindow.py	Tue May 18 18:19:47 2021 +0200
@@ -1109,7 +1109,7 @@
             self.__lastSavePath,
             self.__outputFilter,
             self.__defaultFilter,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         if not fileName:
             return False
         
--- a/eric7/MicroPython/MicroPythonWidget.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/MicroPython/MicroPythonWidget.py	Tue May 18 18:19:47 2021 +0200
@@ -399,10 +399,7 @@
                             desc, vid, pid)
                         for vid, pid, desc in newUnknownDevices]),
                         BugAddress),
-                    E5MessageBox.StandardButtons(
-                        E5MessageBox.Ignore |
-                        E5MessageBox.Ok
-                    )
+                    E5MessageBox.Ignore | E5MessageBox.Ok
                 )
                 if button == E5MessageBox.Ignore:
                     ignoredUnknown = list(ignoredUnknown | newUnknownDevices)
--- a/eric7/MicroPython/PyBoardDevices.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/MicroPython/PyBoardDevices.py	Tue May 18 18:19:47 2021 +0200
@@ -320,9 +320,7 @@
             self.microPython,
             self.tr("Enable DFU mode"),
             msg,
-            E5MessageBox.StandardButtons(
-                E5MessageBox.Abort |
-                E5MessageBox.Ok))
+            E5MessageBox.Abort | E5MessageBox.Ok)
         
         return res == E5MessageBox.Ok
     
--- a/eric7/MultiProject/MultiProject.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/MultiProject/MultiProject.py	Tue May 18 18:19:47 2021 +0200
@@ -629,7 +629,7 @@
             self.tr("Multi Project Files (*.emj);;"
                     "XML Multi Project Files (*.e5m)"),
             defaultFilter,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if fn:
             ext = QFileInfo(fn).suffix()
--- a/eric7/Network/IRC/IrcChannelWidget.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Network/IRC/IrcChannelWidget.py	Tue May 18 18:19:47 2021 +0200
@@ -1372,7 +1372,7 @@
                     "HTML Files (*.{0});;Text Files (*.txt);;All Files (*)")
                 .format(htmlExtension),
                 None,
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             if fname:
                 ext = QFileInfo(fname).suffix()
                 if not ext:
--- a/eric7/Network/IRC/IrcNetworkWidget.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Network/IRC/IrcNetworkWidget.py	Tue May 18 18:19:47 2021 +0200
@@ -424,7 +424,7 @@
                     "HTML Files (*.{0});;Text Files (*.txt);;All Files (*)")
                 .format(htmlExtension),
                 None,
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             if fname:
                 ext = QFileInfo(fname).suffix()
                 if not ext:
--- a/eric7/PipInterface/PipFreezeDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/PipInterface/PipFreezeDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -231,7 +231,7 @@
             os.path.expanduser("~"),
             self.tr("Text Files (*.txt);;All Files (*)"),
             None,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)
+            E5FileDialog.DontConfirmOverwrite
         )
         if fileName:
             ext = os.path.splitext(fileName)[1]
--- a/eric7/PluginManager/PluginManager.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/PluginManager/PluginManager.py	Tue May 18 18:19:47 2021 +0200
@@ -1320,9 +1320,7 @@
                         self.tr("<p>There are new plug-ins or plug-in"
                                 " updates available. Use the plug-in"
                                 " repository dialog to get them.</p>"),
-                        E5MessageBox.StandardButtons(
-                            E5MessageBox.Ignore |
-                            E5MessageBox.Open),
+                        E5MessageBox.Ignore | E5MessageBox.Open,
                         E5MessageBox.Open)
                     if res == E5MessageBox.Open:
                         self.__ui.showPluginsAvailable()
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitCommitDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitCommitDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -33,8 +33,7 @@
         @param commitAll flag indicating to commit all local changes (boolean)
         @param parent parent widget (QWidget)
         """
-        super().__init__(
-            parent, Qt.WindowFlags(Qt.WindowType.Window))
+        super().__init__(parent, Qt.WindowType.Window)
         self.setupUi(self)
         
         self.__vcs = vcs
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitCopyDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitCopyDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -85,14 +85,14 @@
                 self,
                 self.tr("Select target"),
                 self.targetEdit.text(),
-                E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
+                E5FileDialog.ShowDirsOnly)
             if os.path.isdir(self.source) else
             E5FileDialog.getSaveFileName(
                 self,
                 self.tr("Select target"),
                 self.targetEdit.text(),
                 "",
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
         )
         
         if target:
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitDiffDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitDiffDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -324,7 +324,7 @@
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitLogBrowserDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitLogBrowserDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -2295,7 +2295,7 @@
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitNewProjectOptionsDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitNewProjectOptionsDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -89,7 +89,7 @@
             self,
             self.tr("Select Repository-Directory"),
             self.vcsUrlCombo.currentText(),
-            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
+            E5FileDialog.ShowDirsOnly)
         
         if directory:
             self.vcsUrlCombo.setEditText(
@@ -104,7 +104,7 @@
             self,
             self.tr("Select Project Directory"),
             self.vcsProjectDirEdit.text(),
-            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
+            E5FileDialog.ShowDirsOnly)
         
         if directory:
             self.vcsProjectDirEdit.setText(
--- a/eric7/Plugins/VcsPlugins/vcsGit/GitSubmoduleAddDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/GitSubmoduleAddDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -106,7 +106,7 @@
             self,
             self.tr("Select Submodule Repository Directory"),
             self.submoduleUrlCombo.currentText(),
-            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
+            E5FileDialog.ShowDirsOnly)
         
         if directory:
             self.submoduleUrlCombo.setEditText(
@@ -132,7 +132,7 @@
             self,
             self.tr("Select Submodule Directory"),
             self.submoduleDirEdit.text(),
-            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
+            E5FileDialog.ShowDirsOnly)
         
         if directory:
             self.submoduleDirEdit.setText(
--- a/eric7/Plugins/VcsPlugins/vcsGit/git.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsGit/git.py	Tue May 18 18:19:47 2021 +0200
@@ -2284,7 +2284,7 @@
                 self.__lastBundlePath or repodir,
                 self.tr("Git Bundle Files (*.bundle)"),
                 None,
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             
             if not fname:
                 return  # user aborted
@@ -2635,7 +2635,7 @@
                 self.__lastBundlePath or repodir,
                 self.tr("Git Bisect Replay Files (*.replay)"),
                 None,
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             
             if not fname:
                 return  # user aborted
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgClient.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgClient.py	Tue May 18 18:19:47 2021 +0200
@@ -224,9 +224,8 @@
         """
         if not isinstance(data, bytes):
             data = data.encode(self.__encoding)
-        self.__server.write(
-            QByteArray(struct.pack(HgClient.InputFormat, len(data))))
-        self.__server.write(QByteArray(data))
+        self.__server.write(struct.pack(HgClient.InputFormat, len(data)))
+        self.__server.write(data)
         self.__server.waitForBytesWritten()
     
     def __runcommand(self, args, inputChannels, outputChannels):
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgCommitDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgCommitDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -33,8 +33,7 @@
         @param merge flag indicating a merge commit (boolean)
         @param parent parent widget (QWidget)
         """
-        super().__init__(
-            parent, Qt.WindowFlags(Qt.WindowType.Window))
+        super().__init__(parent, Qt.WindowType.Window)
         self.setupUi(self)
         
         self.__vcs = vcs
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -225,7 +225,7 @@
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -2659,7 +2659,7 @@
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Tue May 18 18:19:47 2021 +0200
@@ -1427,6 +1427,7 @@
         self.__extensionsMenu = QMenu(self.tr("Extensions"), menu)
         self.__extensionsMenu.setTearOffEnabled(True)
         self.__extensionsMenu.aboutToShow.connect(self.__showExtensionMenu)
+        # TODO: change this to store the menu instead of the menu action to not use action.menu()
         self.extensionMenus = {}
         for extensionMenuTitle in sorted(self.__extensionMenuTitles):
             extensionName = self.__extensionMenuTitles[extensionMenuTitle]
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesDefineGuardsDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesDefineGuardsDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -67,9 +67,7 @@
                 self.tr("Unsaved Changes"),
                 self.tr("""The guards list has been changed."""
                         """ Shall the changes be applied?"""),
-                E5MessageBox.StandardButtons(
-                    E5MessageBox.Apply |
-                    E5MessageBox.Discard),
+                E5MessageBox.Apply | E5MessageBox.Discard,
                 E5MessageBox.Apply)
             if res == E5MessageBox.Apply:
                 self.__applyGuards()
@@ -100,9 +98,7 @@
                 self.tr("Unsaved Changes"),
                 self.tr("""The guards list has been changed."""
                         """ Shall the changes be applied?"""),
-                E5MessageBox.StandardButtons(
-                    E5MessageBox.Apply |
-                    E5MessageBox.Discard),
+                E5MessageBox.Apply | E5MessageBox.Discard,
                 E5MessageBox.Apply)
             if res == E5MessageBox.Apply:
                 self.__applyGuards()
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py	Tue May 18 18:19:47 2021 +0200
@@ -2080,7 +2080,7 @@
             self.__lastChangeGroupPath,
             self.tr("Mercurial Changegroup Files (*.hg)"),
             None,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnCommitDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnCommitDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -34,8 +34,7 @@
         @param changelists list of available change lists (list of strings)
         @param parent parent widget (QWidget)
         """
-        super().__init__(
-            parent, Qt.WindowFlags(Qt.WindowType.Window))
+        super().__init__(parent, Qt.WindowType.Window)
         self.setupUi(self)
         
         if pysvn.svn_version < (1, 5, 0) or pysvn.version < (1, 6, 0):
--- a/eric7/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -426,7 +426,7 @@
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnCommitDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnCommitDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -32,8 +32,7 @@
         @param vcs reference to the vcs object
         @param parent parent widget (QWidget)
         """
-        super().__init__(
-            parent, Qt.WindowFlags(Qt.WindowType.Window))
+        super().__init__(parent, Qt.WindowType.Window)
         self.setupUi(self)
         
         if vcs.version < (1, 5, 0):
--- a/eric7/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -380,7 +380,7 @@
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
--- a/eric7/Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -80,8 +80,7 @@
                 QColor(self.sRed.value(), self.sGreen.value(),
                        self.sBlue.value(), self.sAlpha.value()),
                 None, self.eTitle.text(),
-                QColorDialog.ColorDialogOptions(
-                    QColorDialog.ColorDialogOption.ShowAlphaChannel))
+                QColorDialog.ColorDialogOption.ShowAlphaChannel)
         
     def on_eRGB_textChanged(self, text):
         """
@@ -157,8 +156,7 @@
             code += '{0}self.tr("{1}"),{2}'.format(
                 istring, self.eTitle.text(), os.linesep)
             code += (
-                '{0}QColorDialog.ColorDialogOptions('
-                'QColorDialog.ColorDialogOption.ShowAlphaChannel)'
+                '{0}QColorDialog.ColorDialogOption.ShowAlphaChannel'
                 .format(istring)
             )
             code += '){0}'.format(estring)
@@ -175,8 +173,7 @@
             code += '{0}self.tr("{1}"),{2}'.format(
                 istring, self.eTitle.text(), os.linesep)
             code += (
-                '{0}QColorDialog.ColorDialogOptions('
-                'QColorDialog.ColorDialogOption.ShowAlphaChannel)'
+                '{0}QColorDialog.ColorDialogOption.ShowAlphaChannel'
                 .format(istring)
             )
             code += '){0}'.format(estring)
--- a/eric7/Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.ui	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/ColorDialogWizard/ColorDialogWizardDialog.ui	Tue May 18 18:19:47 2021 +0200
@@ -164,102 +164,102 @@
         </item>
         <item>
          <property name="text">
-          <string>Qt.red</string>
+          <string notr="true">Qt.GlobalColor.red</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.darkRed</string>
+          <string notr="true">Qt.GlobalColor.darkRed</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.green</string>
+          <string notr="true">Qt.GlobalColor.green</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.darkGreen</string>
+          <string notr="true">Qt.GlobalColor.darkGreen</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.blue</string>
+          <string notr="true">Qt.GlobalColor.blue</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.darkBlue</string>
+          <string notr="true">Qt.GlobalColor.darkBlue</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.cyan</string>
+          <string notr="true">Qt.GlobalColor.cyan</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.darkCyan</string>
+          <string notr="true">Qt.GlobalColor.darkCyan</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.magenta</string>
+          <string notr="true">Qt.GlobalColor.magenta</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.darkMagenta</string>
+          <string notr="true">Qt.GlobalColor.darkMagenta</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.yellow</string>
+          <string notr="true">Qt.GlobalColor.yellow</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.darkYellow</string>
+          <string notr="true">Qt.GlobalColor.darkYellow</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.white</string>
+          <string notr="true">Qt.GlobalColor.white</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.lightGray</string>
+          <string notr="true">Qt.GlobalColor.lightGray</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.gray</string>
+          <string notr="true">Qt.GlobalColor.gray</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.darkGray</string>
+          <string notr="true">Qt.GlobalColor.darkGray</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.black</string>
+          <string notr="true">Qt.GlobalColor.black</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.transparent</string>
+          <string notr="true">Qt.GlobalColor.transparent</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.color0</string>
+          <string notr="true">Qt.GlobalColor.color0</string>
          </property>
         </item>
         <item>
          <property name="text">
-          <string>Qt.color1</string>
+          <string notr="true">Qt.GlobalColor.color1</string>
          </property>
         </item>
        </widget>
--- a/eric7/Plugins/WizardPlugins/E5MessageBoxWizard/E5MessageBoxWizardDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/E5MessageBoxWizard/E5MessageBoxWizardDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -313,7 +313,7 @@
                     self,
                     self.eCaption.text(),
                     self.eMessage.toPlainText(),
-                    E5MessageBox.StandardButtons(buttons),
+                    buttons,
                     defaultButton
                 )
             elif self.rQuestion.isChecked():
@@ -321,7 +321,7 @@
                     self,
                     self.eCaption.text(),
                     self.eMessage.toPlainText(),
-                    E5MessageBox.StandardButtons(buttons),
+                    buttons,
                     defaultButton
                 )
             elif self.rWarning.isChecked():
@@ -329,7 +329,7 @@
                     self,
                     self.eCaption.text(),
                     self.eMessage.toPlainText(),
-                    E5MessageBox.StandardButtons(buttons),
+                    buttons,
                     defaultButton
                 )
             elif self.rCritical.isChecked():
@@ -337,7 +337,7 @@
                     self,
                     self.eCaption.text(),
                     self.eMessage.toPlainText(),
-                    E5MessageBox.StandardButtons(buttons),
+                    buttons,
                     defaultButton
                 )
         elif (
@@ -429,11 +429,11 @@
         istring2 = istring + indString
         joinstring = ' |{0}{1}'.format(os.linesep, istring2)
         btnCode = (
-            ',{0}{1}E5MessageBox.StandardButtons('.format(os.linesep, istring)
+            ',{0}{1}'.format(os.linesep, istring)
             if withIntro else
-            'E5MessageBox.StandardButtons('
+            ''
         )
-        btnCode += '{0}{1}{2})'.format(
+        btnCode += '{0}{1}{2}'.format(
             os.linesep, istring2, joinstring.join(buttons))
         
         return btnCode
--- a/eric7/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -44,6 +44,8 @@
         self.eStartWithCompleter = E5FileCompleter(self.eStartWith)
         self.eWorkDirCompleter = E5DirCompleter(self.eWorkDir)
         
+        self.__dialogVariant = dialogVariant
+        
         self.__typeButtonsGroup = QButtonGroup(self)
         self.__typeButtonsGroup.setExclusive(True)
         self.__typeButtonsGroup.addButton(self.rOpenFile, 1)
@@ -57,11 +59,10 @@
         self.__typeButtonsGroup.addButton(self.rSaveFileUrl, 23)
         self.__typeButtonsGroup.addButton(self.rDirectory, 30)
         self.__typeButtonsGroup.addButton(self.rDirectoryUrl, 31)
-        self.__typeButtonsGroup.buttonClicked[int].connect(
+        self.__typeButtonsGroup.idClicked.connect(
             self.__toggleInitialFilterAndResult)
         self.__toggleInitialFilterAndResult(1)
         
-        self.__dialogVariant = dialogVariant
         if self.__dialogVariant == -1:
             self.pyqtComboBox.addItems(["eric"])
             self.setWindowTitle(self.tr("E5FileDialog Wizard"))
@@ -96,8 +97,8 @@
         """
         Private method to adjust the file dialog options.
         
-        @param options file dialog options (QFileDialog.Options)
-        @return modified options (QFileDialog.Options)
+        @param options file dialog options (QFileDialog.Option)
+        @return modified options (QFileDialog.Option)
         """
         if Globals.isLinuxPlatform():
             options |= QFileDialog.Option.DontUseNativeDialog
@@ -167,10 +168,9 @@
         """
         if self.rOpenFile.isChecked() or self.rfOpenFile.isChecked():
             if not self.cSymlinks.isChecked():
-                options = QFileDialog.Options(
-                    QFileDialog.Option.DontResolveSymlinks)
+                options = QFileDialog.Option.DontResolveSymlinks
             else:
-                options = QFileDialog.Options()
+                options = QFileDialog.Option(0)
             options = self.__adjustOptions(options)
             QFileDialog.getOpenFileName(
                 None,
@@ -181,36 +181,23 @@
                 options)
         elif self.rOpenFileUrl.isChecked():
             if not self.cSymlinks.isChecked():
-                options = QFileDialog.Options(
-                    QFileDialog.Option.DontResolveSymlinks)
+                options = QFileDialog.Option.DontResolveSymlinks
             else:
-                options = QFileDialog.Options()
+                options = QFileDialog.Option(0)
             options = self.__adjustOptions(options)
-            try:
-                QFileDialog.getOpenFileUrl(
-                    None,
-                    self.eCaption.text(),
-                    QUrl(self.eStartWith.text()),
-                    self.eFilters.text(),
-                    self.eInitialFilter.text(),
-                    options,
-                    self.schemesEdit.text().split())
-            except TypeError:
-                # PyQt5 < 5.13.0 contains an error
-                QFileDialog.getOpenFileUrl(
-                    None,
-                    self.eCaption.text(),
-                    self.eStartWith.text(),
-                    self.eFilters.text(),
-                    self.eInitialFilter.text(),
-                    options,
-                    self.schemesEdit.text().split())
+            QFileDialog.getOpenFileUrl(
+                None,
+                self.eCaption.text(),
+                QUrl(self.eStartWith.text()),
+                self.eFilters.text(),
+                self.eInitialFilter.text(),
+                options,
+                self.schemesEdit.text().split())
         elif self.rOpenFiles.isChecked() or self.rfOpenFiles.isChecked():
             if not self.cSymlinks.isChecked():
-                options = QFileDialog.Options(
-                    QFileDialog.Option.DontResolveSymlinks)
+                options = QFileDialog.Option.DontResolveSymlinks
             else:
-                options = QFileDialog.Options()
+                options = QFileDialog.Option(0)
             options = self.__adjustOptions(options)
             QFileDialog.getOpenFileNames(
                 None,
@@ -221,36 +208,23 @@
                 options)
         elif self.rOpenFileUrls.isChecked():
             if not self.cSymlinks.isChecked():
-                options = QFileDialog.Options(
-                    QFileDialog.Option.DontResolveSymlinks)
+                options = QFileDialog.Option.DontResolveSymlinks
             else:
-                options = QFileDialog.Options()
+                options = QFileDialog.Option(0)
             options = self.__adjustOptions(options)
-            try:
-                QFileDialog.getOpenFileUrls(
-                    None,
-                    self.eCaption.text(),
-                    QUrl(self.eStartWith.text()),
-                    self.eFilters.text(),
-                    self.eInitialFilter.text(),
-                    options,
-                    self.schemesEdit.text().split())
-            except TypeError:
-                # PyQt5 < 5.13.0 contains an error
-                QFileDialog.getOpenFileUrls(
-                    None,
-                    self.eCaption.text(),
-                    self.eStartWith.text(),
-                    self.eFilters.text(),
-                    self.eInitialFilter.text(),
-                    options,
-                    self.schemesEdit.text().split())
+            QFileDialog.getOpenFileUrls(
+                None,
+                self.eCaption.text(),
+                QUrl(self.eStartWith.text()),
+                self.eFilters.text(),
+                self.eInitialFilter.text(),
+                options,
+                self.schemesEdit.text().split())
         elif self.rSaveFile.isChecked() or self.rfSaveFile.isChecked():
             if not self.cSymlinks.isChecked():
-                options = QFileDialog.Options(
-                    QFileDialog.Option.DontResolveSymlinks)
+                options = QFileDialog.Option.DontResolveSymlinks
             else:
-                options = QFileDialog.Options()
+                options = QFileDialog.Option(0)
             options = self.__adjustOptions(options)
             QFileDialog.getSaveFileName(
                 None,
@@ -261,39 +235,26 @@
                 options)
         elif self.rSaveFileUrl.isChecked():
             if not self.cSymlinks.isChecked():
-                options = QFileDialog.Options(
-                    QFileDialog.Option.DontResolveSymlinks)
+                options = QFileDialog.Option.DontResolveSymlinks
             else:
-                options = QFileDialog.Options()
+                options = QFileDialog.Option(0)
             options = self.__adjustOptions(options)
-            try:
-                QFileDialog.getSaveFileUrl(
-                    None,
-                    self.eCaption.text(),
-                    QUrl(self.eStartWith.text()),
-                    self.eFilters.text(),
-                    self.eInitialFilter.text(),
-                    options,
-                    self.schemesEdit.text().split())
-            except TypeError:
-                # PyQt5 < 5.13.0 contains an error
-                QFileDialog.getSaveFileUrl(
-                    None,
-                    self.eCaption.text(),
-                    self.eStartWith.text(),
-                    self.eFilters.text(),
-                    self.eInitialFilter.text(),
-                    options,
-                    self.schemesEdit.text().split())
+            QFileDialog.getSaveFileUrl(
+                None,
+                self.eCaption.text(),
+                QUrl(self.eStartWith.text()),
+                self.eFilters.text(),
+                self.eInitialFilter.text(),
+                options,
+                self.schemesEdit.text().split())
         elif self.rDirectory.isChecked():
-            options = QFileDialog.Options()
+            options = QFileDialog.Option(0)
             if not self.cSymlinks.isChecked():
-                options |= QFileDialog.Options(
-                    QFileDialog.Option.DontResolveSymlinks)
+                options |= QFileDialog.Option.DontResolveSymlinks
             if self.cDirOnly.isChecked():
-                options |= QFileDialog.Options(QFileDialog.Option.ShowDirsOnly)
+                options |= QFileDialog.Option.ShowDirsOnly
             else:
-                options |= QFileDialog.Options(QFileDialog.Option(0))
+                options |= QFileDialog.Option(0)
             options = self.__adjustOptions(options)
             QFileDialog.getExistingDirectory(
                 None,
@@ -301,14 +262,13 @@
                 self.eWorkDir.text(),
                 options)
         elif self.rDirectoryUrl.isChecked():
-            options = QFileDialog.Options()
+            options = QFileDialog.Option(0)
             if not self.cSymlinks.isChecked():
-                options |= QFileDialog.Options(
-                    QFileDialog.Option.DontResolveSymlinks)
+                options |= QFileDialog.Option.DontResolveSymlinks
             if self.cDirOnly.isChecked():
-                options |= QFileDialog.Options(QFileDialog.Option.ShowDirsOnly)
+                options |= QFileDialog.Option.ShowDirsOnly
             else:
-                options |= QFileDialog.Options(QFileDialog.Option(0))
+                options |= QFileDialog.Option(0)
             options = self.__adjustOptions(options)
             try:
                 QFileDialog.getExistingDirectoryUrl(
@@ -489,7 +449,7 @@
                 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter)
             if not self.cSymlinks.isChecked():
                 code += (
-                    ',{0}{1}{2}.Options({2}{3}.DontResolveSymlinks)'
+                    ',{0}{1}{2}{3}.DontResolveSymlinks'
                     .format(os.linesep, istring, dialogType, optionStr)
                 )
             if self.rOpenFileUrl.isChecked() and bool(self.schemesEdit.text()):
@@ -554,7 +514,7 @@
                 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter)
             if not self.cSymlinks.isChecked():
                 code += (
-                    ',{0}{1}{2}.Options({2}{3}.DontResolveSymlinks)'
+                    ',{0}{1}{2}{3}.DontResolveSymlinks'
                     .format(os.linesep, istring, dialogType, optionStr)
                 )
             if (
@@ -624,8 +584,7 @@
                 (not self.cSymlinks.isChecked()) or
                 (not self.cConfirmOverwrite.isChecked())
             ):
-                code += ',{0}{1}{2}.Options('.format(
-                    os.linesep, istring, dialogType)
+                code += ',{0}{1}'.format(os.linesep, istring)
                 if not self.cSymlinks.isChecked():
                     code += '{0}{1}.DontResolveSymlinks'.format(
                         dialogType, optionStr)
@@ -637,7 +596,6 @@
                 if not self.cConfirmOverwrite.isChecked():
                     code += '{0}{1}.DontConfirmOverwrite'.format(
                         dialogType, optionStr)
-                code += ')'
             if (
                 self.rSaveFileUrl.isChecked() and
                 bool(self.schemesEdit.text())
@@ -677,17 +635,24 @@
                     else:
                         fmt = '"{0}"'
                     code += fmt.format(self.eWorkDir.text())
-            code += ',{0}{1}{2}.Options('.format(os.linesep, istring,
-                                                 dialogType)
-            if not self.cSymlinks.isChecked():
-                code += '{0}{1}.DontResolveSymlinks | '.format(
-                    dialogType, optionStr)
-            if self.cDirOnly.isChecked():
-                code += '{0}{1}.ShowDirsOnly'.format(
-                    dialogType, optionStr)
+            code += ',{0}{1}'.format(os.linesep, istring)
+            if (
+                (not self.cSymlinks.isChecked()) or
+                self.cDirOnly.isChecked()
+            ):
+                if not self.cSymlinks.isChecked():
+                    code += '{0}{1}.DontResolveSymlinks'.format(
+                        dialogType, optionStr)
+                if (
+                    (not self.cSymlinks.isChecked()) and
+                    self.cDirOnly.isChecked()
+                ):
+                    code += ' | '
+                if self.cDirOnly.isChecked():
+                    code += '{0}{1}.ShowDirsOnly'.format(
+                        dialogType, optionStr)
             else:
                 code += '{0}.Option(0)'.format(dialogType)
-            code += ')'
             if self.rDirectoryUrl.isChecked():
                 code += ',{0}{1}{2}'.format(
                     os.linesep, istring, self.__prepareSchemesList())
--- a/eric7/Plugins/WizardPlugins/MessageBoxWizard/MessageBoxWizardDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/MessageBoxWizard/MessageBoxWizardDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -153,7 +153,7 @@
                 self,
                 self.eCaption.text(),
                 self.eMessage.toPlainText(),
-                QMessageBox.StandardButtons(buttons),
+                buttons,
                 defaultButton
             )
         elif self.rQuestion.isChecked():
@@ -161,7 +161,7 @@
                 self,
                 self.eCaption.text(),
                 self.eMessage.toPlainText(),
-                QMessageBox.StandardButtons(buttons),
+                buttons,
                 defaultButton
             )
         elif self.rWarning.isChecked():
@@ -169,7 +169,7 @@
                 self,
                 self.eCaption.text(),
                 self.eMessage.toPlainText(),
-                QMessageBox.StandardButtons(buttons),
+                buttons,
                 defaultButton
             )
         elif self.rCritical.isChecked():
@@ -177,7 +177,7 @@
                 self,
                 self.eCaption.text(),
                 self.eMessage.toPlainText(),
-                QMessageBox.StandardButtons(buttons),
+                buttons,
                 defaultButton
             )
     
@@ -286,7 +286,7 @@
         
         istring2 = istring + indString
         joinstring = ' |{0}{1}'.format(os.linesep, istring2)
-        btnCode = ',{0}{1}QMessageBox.StandardButtons('.format(
+        btnCode = ',{0}{1}('.format(
             os.linesep, istring)
         btnCode += '{0}{1}{2})'.format(
             os.linesep, istring2, joinstring.join(buttons))
--- a/eric7/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -325,7 +325,7 @@
             "",
             self.tr("RegExp Files (*.rx);;All Files (*)"),
             None,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         if fname:
             ext = QFileInfo(fname).suffix()
             if not ext:
--- a/eric7/Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -408,7 +408,7 @@
             "",
             self.tr("RegExp Files (*.rx);;All Files (*)"),
             None,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         if fname:
             ext = QFileInfo(fname).suffix()
             if not ext:
--- a/eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -582,7 +582,7 @@
             self,
             self.tr("Packages Root Directory"),
             Utilities.fromNativeSeparators(startDir),
-            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
+            E5FileDialog.ShowDirsOnly)
         if packagesRootDir:
             self.packageRootEdit.setText(
                 Utilities.toNativeSeparators(packagesRootDir))
@@ -623,9 +623,7 @@
                         self.tr("""<p>The directory <b>{0}</b> is not"""
                                 """ a Python package.</p>""")
                         .format(pkgDir),
-                        E5MessageBox.StandardButtons(
-                            E5MessageBox.Ignore |
-                            E5MessageBox.Ok))
+                        E5MessageBox.Ignore | E5MessageBox.Ok)
                     if res == E5MessageBox.Ok:
                         return
             
@@ -797,7 +795,7 @@
             self,
             self.tr("Source Directory"),
             Utilities.fromNativeSeparators(startDir),
-            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
+            E5FileDialog.ShowDirsOnly)
         if sourceDirectory:
             self.sourceDirectoryEdit.setText(
                 Utilities.toNativeSeparators(sourceDirectory))
--- a/eric7/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Tue May 18 18:19:47 2021 +0200
@@ -549,7 +549,7 @@
             self.tr("Highlighting Styles File (*.ehj);;"
                     "XML Highlighting Styles File (*.e6h)"),
             "",
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fn:
             return
--- a/eric7/Preferences/ConfigurationPages/EditorPropertiesPage.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorPropertiesPage.py	Tue May 18 18:19:47 2021 +0200
@@ -7,6 +7,8 @@
 Module implementing the Editor Properties configuration page.
 """
 
+from PyQt6.Qsci import QsciLexerPython
+
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorPropertiesPage import Ui_EditorPropertiesPage
 
@@ -179,7 +181,7 @@
             self.tr("Tabs"),
         ])
         self.pythonBadIndentationComboBox.setCurrentIndex(
-            Preferences.getEditor("PythonBadIndentation"))
+            Preferences.getEditor("PythonBadIndentation").value)
         self.foldPythonCommentCheckBox.setChecked(
             Preferences.getEditor("PythonFoldComment"))
         self.foldPythonStringCheckBox.setChecked(
@@ -448,7 +450,8 @@
             self.foldPythonStringCheckBox.isChecked())
         Preferences.setEditor(
             "PythonBadIndentation",
-            self.pythonBadIndentationComboBox.currentIndex())
+            QsciLexerPython.IndentationWarning(
+                self.pythonBadIndentationComboBox.currentIndex()))
         Preferences.setEditor(
             "PythonAutoIndent",
             self.pythonAutoindentCheckBox.isChecked())
--- a/eric7/Preferences/ConfigurationPages/EditorStylesPage.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorStylesPage.py	Tue May 18 18:19:47 2021 +0200
@@ -33,11 +33,12 @@
         from QScintilla.QsciScintillaCompat import QsciScintillaCompat
         
         self.foldStyles = [
-            QsciScintilla.FoldStyle.PlainFoldStyle,
-            QsciScintilla.FoldStyle.CircledFoldStyle,
-            QsciScintilla.FoldStyle.BoxedFoldStyle,
-            QsciScintilla.FoldStyle.CircledTreeFoldStyle,
-            QsciScintilla.FoldStyle.BoxedTreeFoldStyle,
+            QsciScintilla.FoldStyle.PlainFoldStyle.value,
+            QsciScintilla.FoldStyle.CircledFoldStyle.value,
+            QsciScintilla.FoldStyle.BoxedFoldStyle.value,
+            QsciScintilla.FoldStyle.CircledTreeFoldStyle.value,
+            QsciScintilla.FoldStyle.BoxedTreeFoldStyle.value,
+            # the below ones are not (yet) defined in QsciScintilla
             QsciScintillaCompat.ArrowFoldStyle,
             QsciScintillaCompat.ArrowTreeFoldStyle,
         ]
--- a/eric7/Preferences/ShortcutDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Preferences/ShortcutDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -138,6 +138,7 @@
         
         @param evt the key event (QKeyEvent)
         """
+        # TODO: change code to use QKeyCombination
         if evt.key() in [
             Qt.Key.Key_Control, Qt.Key.Key_Meta, Qt.Key.Key_Shift,
             Qt.Key.Key_Alt, Qt.Key.Key_Menu,
--- a/eric7/Preferences/__init__.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Preferences/__init__.py	Tue May 18 18:19:47 2021 +0200
@@ -146,7 +146,7 @@
         "ShowIrc": True,                        # right side
         "ShowMicroPython": True,                # right side
         "ShowNumbersViewer": True,              # bottom side
-        "ViewProfiles2": {
+        "ViewProfiles": {
             "edit": [
                 # saved state main window with toolbox windows (0)
                 QByteArray(),
@@ -155,10 +155,9 @@
                 [True, True, True],
                 # saved states of the splitters and sidebars of the
                 # sidebars layout (2)
-                # left splitter, vertical splitter, left sidebar,
-                # bottom sidebar, right splitter, right sidebar
-                [QByteArray(), QByteArray(), QByteArray(),
-                 QByteArray(), QByteArray(), QByteArray()],
+                # left splitter, vertical splitter, right splitter,
+                # left sidebar, bottom sidebar, right sidebar
+                [QByteArray(), QByteArray(), QByteArray(), "", "", ""],
             ],
             "debug": [
                 # saved state main window with toolbox windows (0)
@@ -168,10 +167,9 @@
                 [False, True, True],
                 # saved states of the splitters and sidebars of the
                 # sidebars layout (2)
-                # left splitter, vertical splitter, left sidebar,
-                # bottom sidebar, right splitter, right sidebar
-                [QByteArray(), QByteArray(), QByteArray(),
-                 QByteArray(), QByteArray(), QByteArray()],
+                # left splitter, vertical splitter, right splitter,
+                # left sidebar, bottom sidebar, right sidebar
+                [QByteArray(), QByteArray(), QByteArray(), "", "", ""],
             ],
         },
         "ToolbarManagerState": QByteArray(),
@@ -369,7 +367,7 @@
         "IndentationGuides": True,
         "LinenoMargin": True,
         "FoldingMargin": True,
-        "FoldingStyle": QsciScintilla.FoldStyle.PlainFoldStyle,
+        "FoldingStyle": QsciScintilla.FoldStyle.PlainFoldStyle.value,
         "TabForIndentation": False,
         "TabIndents": True,
         "ConvertTabsOnLoad": False,
@@ -1638,7 +1636,7 @@
             "Preferences",
             "Properties File (*.ini);;All Files (*)"),
         None,
-        E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+        E5FileDialog.DontConfirmOverwrite)
     if filename:
         ext = QFileInfo(filename).suffix()
         if not ext:
@@ -1945,11 +1943,11 @@
             return QColor(col)
         else:
             return prefClass.uiDefaults[key]
-    elif key in "ViewProfiles2":
-        profilesStr = prefClass.settings.value("UI/ViewProfiles2")
+    elif key in "ViewProfiles":
+        profilesStr = prefClass.settings.value("UI/ViewProfiles")
         if profilesStr is None:
             # use the defaults
-            viewProfiles = prefClass.uiDefaults["ViewProfiles2"]
+            viewProfiles = prefClass.uiDefaults["ViewProfiles"]
         else:
             viewProfiles = {}
             profiles = json.loads(profilesStr)
@@ -1959,9 +1957,11 @@
                     profiles[name][1][:],
                     []
                 ]
-                for bs in profiles[name][2]:
+                for bs in profiles[name][2][:3]:
+                    # splitters
                     viewProfiles[name][2].append(
                         QByteArray.fromBase64(bs.encode("utf-8")))
+                viewProfiles[name][2] += profiles[name][2][3:]  # side bars
         return viewProfiles
     elif key in ["ToolbarManagerState", "PreviewSplitterState"]:
         state = prefClass.settings.value("UI/" + key)
@@ -1992,7 +1992,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    if key == "ViewProfiles2":
+    if key == "ViewProfiles":
         profiles = {}
         for name in ["edit", "debug"]:
             profiles[name] = [
@@ -2000,8 +2000,10 @@
                 value[name][1][:],
                 []
             ]
-            for ba in value[name][2]:
+            for ba in value[name][2][:3]:
+                # Splitters
                 profiles[name][2].append(bytes(ba.toBase64()).decode())
+            profiles[name][2] += value[name][2][3:]     # side bars
         prefClass.settings.setValue("UI/" + key, json.dumps(profiles))
     elif key in ("LogStdErrColour",):
         prefClass.settings.setValue("UI/" + key, value.name())
@@ -2092,9 +2094,12 @@
     """
     if key in ["DefaultEncoding", "DefaultOpenFilter", "DefaultSaveFilter",
                "SpellCheckingDefaultLanguage", "SpellCheckingPersonalWordList",
-               "SpellCheckingPersonalExcludeList",
+               "SpellCheckingPersonalExcludeList", "DocstringType", 
                "PreviewMarkdownHTMLFormat", "PreviewRestDocutilsHTMLFormat",
-               "DocstringType"]:
+               "WrapLongLinesMode", "WrapVisualFlag", "WrapIndentMode",
+               "CallTipsStyle", "CallTipsPosition", "AutoCompletionSource",
+               "EdgeMode", "EOLMode", "PythonBadIndentation"]:
+        # no special treatment for str and PyQt6 Enum
         return prefClass.settings.value(
             "Editor/" + key, prefClass.editorDefaults[key])
     elif key in ["AutosaveInterval", "TabWidth", "IndentWidth",
@@ -2110,39 +2115,9 @@
                  "OnlineSyntaxCheckInterval", "OnlineChangeTraceInterval",
                  "WrapStartIndent", "VirtualSpaceOptions",
                  "PreviewRefreshWaitTimer", "SourceOutlineWidth",
-                 "SourceOutlineStepSize"]:
+                 "SourceOutlineStepSize", "FoldingStyle"]:
         return int(prefClass.settings.value(
             "Editor/" + key, prefClass.editorDefaults[key]))
-    elif key == "WrapLongLinesMode":
-        return prefClass.settings.value(
-            "Editor/" + key, prefClass.editorDefaults[key])
-    elif key == "WrapVisualFlag":
-        return prefClass.settings.value(
-            "Editor/" + key, prefClass.editorDefaults[key])
-    elif key == "WrapIndentMode":
-        return prefClass.settings.value(
-            "Editor/" + key, prefClass.editorDefaults[key])
-    elif key == "EdgeMode":
-        return prefClass.settings.value(
-            "Editor/" + key, prefClass.editorDefaults[key])
-    elif key == "CallTipsStyle":
-        return prefClass.settings.value(
-            "Editor/" + key, prefClass.editorDefaults[key])
-    elif key == "AutoCompletionSource":
-        return prefClass.settings.value(
-            "Editor/" + key, prefClass.editorDefaults[key])
-    elif key == "PythonBadIndentation":
-        return prefClass.settings.value(
-            "Editor/" + key, prefClass.editorDefaults[key])
-    elif key == "EOLMode":
-        return prefClass.settings.value(
-            "Editor/" + key, prefClass.editorDefaults[key])
-    elif key == "CallTipsPosition":
-        return prefClass.settings.value(
-            "Editor/" + key, prefClass.editorDefaults[key])
-    elif key == "FoldingStyle":
-        return prefClass.settings.value(
-            "Editor/" + key, prefClass.editorDefaults[key])
     elif key in ["AdditionalOpenFilters", "AdditionalSaveFilters",
                  "PreviewMarkdownFileNameExtensions",
                  "PreviewRestFileNameExtensions",
@@ -2173,13 +2148,7 @@
     """
     if key == "TabIndentOverride":
         prefClass.settings.setValue("Editor/" + key, json.dumps(value))
-##    elif key in ("WrapLongLinesMode", "WrapVisualFlag", "WrapIndentMode",
-##                 "EdgeMode", "CallTipsStyle", "AutoCompletionSource",
-##                 "PythonBadIndentation", "EOLMode", "CallTipsPosition",
-##                 "FoldingStyle"):
-##        # value is an enum.Enum derived item
-##        prefClass.settings.setValue("Editor/" + key, value.value)
-##    else:
+    else:
         prefClass.settings.setValue("Editor/" + key, value)
     
 
--- a/eric7/Project/Project.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Project/Project.py	Tue May 18 18:19:47 2021 +0200
@@ -1986,7 +1986,7 @@
                 self.tr("Rename file"),
                 oldfn,
                 "",
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             if not newfn:
                 return False
             newfn = Utilities.toNativeSeparators(newfn)
@@ -3144,7 +3144,7 @@
             self.tr("Project Files (*.epj);;"
                     "XML Project Files (*.e4p)"),
             defaultFilter,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if fn:
             ext = QFileInfo(fn).suffix()
--- a/eric7/Project/ProjectFormsBrowser.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Project/ProjectFormsBrowser.py	Tue May 18 18:19:47 2021 +0200
@@ -599,7 +599,7 @@
             path,
             self.tr("Qt User-Interface Files (*.ui);;All Files (*)"),
             "",
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fname:
             # user aborted or didn't enter a filename
--- a/eric7/Project/ProjectResourcesBrowser.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Project/ProjectResourcesBrowser.py	Tue May 18 18:19:47 2021 +0200
@@ -471,7 +471,7 @@
                 path,
                 self.tr("Qt Resource Files (*.qrc)"),
                 "",
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             
             if not fname:
                 # user aborted or didn't enter a filename
--- a/eric7/Project/TranslationPropertiesDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Project/TranslationPropertiesDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -164,7 +164,7 @@
             self,
             self.tr("Exempt directory from translation"),
             self.project.ppath,
-            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
+            E5FileDialog.ShowDirsOnly)
         if texcept:
             self.exceptionEdit.setText(Utilities.toNativeSeparators(texcept))
         
--- a/eric7/PyUnit/UnittestDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/PyUnit/UnittestDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -126,8 +126,9 @@
         self.__forProject = False
         
         self.setWindowFlags(
-            self.windowFlags() | Qt.WindowFlags(
-                Qt.WindowType.WindowContextHelpButtonHint))
+            self.windowFlags() |
+            Qt.WindowType.WindowContextHelpButtonHint
+        )
         self.setWindowIcon(UI.PixmapCache.getIcon("eric"))
         self.setWindowTitle(self.tr("Unittest"))
         if dbs:
--- a/eric7/QScintilla/Editor.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/QScintilla/Editor.py	Tue May 18 18:19:47 2021 +0200
@@ -3314,7 +3314,7 @@
             path,
             Lexers.getSaveFileFiltersList(True, True),
             defaultFilter,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if fn:
             if fn.endswith("."):
@@ -4525,8 +4525,6 @@
         if Preferences.getEditor("FoldingMargin"):
             self.setMarginWidth(self.__foldMargin, 16)
             folding = Preferences.getEditor("FoldingStyle")
-            with contextlib.suppress(AttributeError):
-                folding = QsciScintilla.FoldStyle(folding)
             self.setFolding(folding, self.__foldMargin)
             self.setFoldMarginColors(
                 Preferences.getEditorColour("FoldmarginBackground"),
@@ -4536,7 +4534,7 @@
                 Preferences.getEditorColour("FoldMarkersBackground"))
         else:
             self.setMarginWidth(self.__foldMargin, 0)
-            self.setFolding(QsciScintilla.FoldStyle.NoFoldStyle,
+            self.setFolding(QsciScintilla.FoldStyle.NoFoldStyle.value,
                             self.__foldMargin)
     
     def __resizeLinenoMargin(self):
@@ -6855,7 +6853,7 @@
             configDir,
             self.tr("Macro files (*.macro)"),
             "",
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fname:
             return  # user aborted
--- a/eric7/QScintilla/Exporters/ExporterBase.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/QScintilla/Exporters/ExporterBase.py	Tue May 18 18:19:47 2021 +0200
@@ -44,7 +44,7 @@
             "",
             fileFilter,
             "",
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if fn:
             ext = QFileInfo(fn).suffix()
--- a/eric7/QScintilla/MiniEditor.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/QScintilla/MiniEditor.py	Tue May 18 18:19:47 2021 +0200
@@ -2861,8 +2861,6 @@
         self.__textEdit.setMarginWidth(2, 16)
         if Preferences.getEditor("FoldingMargin"):
             folding = Preferences.getEditor("FoldingStyle")
-            with contextlib.suppress(AttributeError):
-                folding = QsciScintilla.FoldStyle(folding)
             self.__textEdit.setFolding(folding)
             self.__textEdit.setFoldMarginColors(
                 Preferences.getEditorColour("FoldmarginBackground"),
@@ -2871,7 +2869,8 @@
                 Preferences.getEditorColour("FoldMarkersForeground"),
                 Preferences.getEditorColour("FoldMarkersBackground"))
         else:
-            self.__textEdit.setFolding(QsciScintilla.FoldStyle.NoFoldStyle)
+            self.__textEdit.setFolding(
+                QsciScintilla.FoldStyle.NoFoldStyle.value)
     
     def __resizeLinenoMargin(self):
         """
--- a/eric7/Snapshot/SnapWidget.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Snapshot/SnapWidget.py	Tue May 18 18:19:47 2021 +0200
@@ -206,7 +206,7 @@
                 self.__filename,
                 self.__outputFilter,
                 self.__defaultFilter,
-                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+                E5FileDialog.DontConfirmOverwrite)
             if not fileName:
                 return
             
@@ -393,10 +393,8 @@
                 self.tr("eric Snapshot"),
                 self.tr(
                     """The application contains an unsaved snapshot."""),
-                E5MessageBox.StandardButtons(
-                    E5MessageBox.Abort |
-                    E5MessageBox.Discard |
-                    E5MessageBox.Save))
+                E5MessageBox.Abort | E5MessageBox.Discard | E5MessageBox.Save
+            )
             if res == E5MessageBox.Abort:
                 evt.ignore()
                 return
--- a/eric7/Templates/TemplateViewer.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Templates/TemplateViewer.py	Tue May 18 18:19:47 2021 +0200
@@ -586,7 +586,7 @@
                     "XML Templates Files (*.e4c);;"
                     "All Files (*)"),
             "",
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if fn:
             ext = QFileInfo(fn).suffix()
--- a/eric7/Toolbox/SingleApplication.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/Toolbox/SingleApplication.py	Tue May 18 18:19:47 2021 +0200
@@ -77,8 +77,7 @@
                             """<p>Error: {0}</p>"""
                             """<p>Data:<br/>{1}</p>""").format(
                         str(err), Utilities.html_encode(line.strip())),
-                    E5MessageBox.StandardButtons(
-                        E5MessageBox.Ok))
+                    E5MessageBox.Ok)
                 return
             
             command = commandDict["command"]
--- a/eric7/UI/Browser.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/UI/Browser.py	Tue May 18 18:19:47 2021 +0200
@@ -648,7 +648,7 @@
             None,
             QCoreApplication.translate('Browser', "New toplevel directory"),
             "",
-            E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
+            E5FileDialog.ShowDirsOnly)
         if dname:
             dname = os.path.abspath(Utilities.toNativeSeparators(dname))
             self.__model.addTopLevelDir(dname)
--- a/eric7/UI/DiffDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/UI/DiffDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -109,7 +109,7 @@
             fname,
             self.tr("Patch Files (*.diff)"),
             None,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fname:
             return
--- a/eric7/UI/UserInterface.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/UI/UserInterface.py	Tue May 18 18:19:47 2021 +0200
@@ -237,7 +237,7 @@
         self.__setWindowCaption()
         
         # load the view profiles
-        self.profiles = Preferences.getUI("ViewProfiles2")
+        self.profiles = Preferences.getUI("ViewProfiles")
         
         # Generate the conda interface
         from CondaInterface.Conda import Conda
@@ -4416,14 +4416,16 @@
                     self.profiles[self.currentProfile][2][0] = state
                     state = self.verticalSplitter.saveState()
                     self.profiles[self.currentProfile][2][1] = state
+                    state = self.rightSplitter.saveState()
+                    self.profiles[self.currentProfile][2][2] = state
+                    
                     state = self.leftSidebar.saveState()
-                    self.profiles[self.currentProfile][2][2] = state
+                    self.profiles[self.currentProfile][2][3] = state
                     state = self.bottomSidebar.saveState()
-                    self.profiles[self.currentProfile][2][3] = state
-                    state = self.rightSplitter.saveState()
                     self.profiles[self.currentProfile][2][4] = state
                     state = self.rightSidebar.saveState()
                     self.profiles[self.currentProfile][2][5] = state
+            
             # step 2: save the visibility of the windows of the active profile
             if self.__layoutType == "Toolboxes":
                 self.profiles[self.currentProfile][1][0] = (
@@ -4445,7 +4447,7 @@
                 self.profiles[self.currentProfile][1][2] = (
                     self.rightSidebar.isVisible()
                 )
-            Preferences.setUI("ViewProfiles2", self.profiles)
+            Preferences.setUI("ViewProfiles", self.profiles)
     
     def __activateViewProfile(self, name, save=True):
         """
@@ -4473,15 +4475,16 @@
                         self.verticalSplitter.restoreState(state)
                     state = self.profiles[name][2][2]
                     if not state.isEmpty():
-                        self.leftSidebar.restoreState(state)
+                        self.rightSplitter.restoreState(state)
+                    
                     state = self.profiles[name][2][3]
-                    if not state.isEmpty():
-                        self.bottomSidebar.restoreState(state)
+                    if state:
+                        self.leftSidebar.restoreState(state)
                     state = self.profiles[name][2][4]
-                    if not state.isEmpty():
-                        self.rightSplitter.restoreState(state)
+                    if state:
+                        self.bottomSidebar.restoreState(state)
                     state = self.profiles[name][2][5]
-                    if not state.isEmpty():
+                    if state:
                         self.rightSidebar.restoreState(state)
                 
                 if self.__layoutType == "Toolboxes":
@@ -6270,7 +6273,7 @@
             edit, debug = dlg.getVisibilities()
             self.profiles['edit'][1] = edit
             self.profiles['debug'][1] = debug
-            Preferences.setUI("ViewProfiles2", self.profiles)
+            Preferences.setUI("ViewProfiles", self.profiles)
             if self.currentProfile == "edit":
                 self.__setEditProfile(False)
             elif self.currentProfile == "debug":
@@ -6307,7 +6310,7 @@
             self.tr("Keyboard Shortcuts File (*.ekj);;"
                     "XML Keyboard Shortcuts File (*.e4k)"),
             "",
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fn:
             return
--- a/eric7/VCS/VersionControl.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/VCS/VersionControl.py	Tue May 18 18:19:47 2021 +0200
@@ -681,7 +681,7 @@
         @type str
         """
         self.vcsStatusMonitorStatus.emit(status, statusMsg)
-        QApplication.flush()
+        QCoreApplication.processEvents()
 
     def __statusMonitorData(self, statusList):
         """
@@ -693,7 +693,7 @@
         @type list of str
         """
         self.vcsStatusMonitorData.emit(statusList)
-        QApplication.flush()
+        QCoreApplication.processEvents()
     
     def __statusMonitorInfo(self, info):
         """
@@ -705,7 +705,7 @@
         @type str
         """
         self.vcsStatusMonitorInfo.emit(info)
-        QApplication.flush()
+        QCoreApplication.processEvents()
     
     def startStatusMonitor(self, project):
         """
--- a/eric7/WebBrowser/Download/DownloadManager.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/WebBrowser/Download/DownloadManager.py	Tue May 18 18:19:47 2021 +0200
@@ -261,9 +261,7 @@
                     self.tr("<p>The URL <b>{0}</b> was found in the Safe"
                             " Browsing database.</p>{1}").format(
                         url.toString(), "".join(threatMessages)),
-                    E5MessageBox.StandardButtons(
-                        E5MessageBox.Abort |
-                        E5MessageBox.Ignore),
+                    E5MessageBox.Abort | E5MessageBox.Ignore,
                     E5MessageBox.Abort)
                 if res == E5MessageBox.Abort:
                     downloadItem.cancel()
--- a/eric7/WebBrowser/PageScreenDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/WebBrowser/PageScreenDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -71,7 +71,7 @@
             self.tr("Save Page Screen"),
             self.tr("screen.png"),
             self.tr("Portable Network Graphics File (*.png)"),
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         if not fileName:
             return False
         
--- a/eric7/WebBrowser/SiteInfo/SiteInfoDialog.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/WebBrowser/SiteInfo/SiteInfoDialog.py	Tue May 18 18:19:47 2021 +0200
@@ -348,7 +348,7 @@
             self.tr("Save Image"),
             imageFileName,
             self.tr("All Files (*)"),
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not filename:
             return
--- a/eric7/WebBrowser/WebBrowserPage.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/WebBrowser/WebBrowserPage.py	Tue May 18 18:19:47 2021 +0200
@@ -188,9 +188,7 @@
                     self.tr("<p>The URL <b>{0}</b> was found in the Safe"
                             " Browsing database.</p>{1}").format(
                         url.toString(), "".join(threatMessages)),
-                    E5MessageBox.StandardButtons(
-                        E5MessageBox.Abort |
-                        E5MessageBox.Ignore),
+                    E5MessageBox.Abort | E5MessageBox.Ignore,
                     E5MessageBox.Abort)
                 if res == E5MessageBox.Abort:
                     self.safeBrowsingAbort.emit()
--- a/eric7/WebBrowser/WebBrowserTabWidget.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/WebBrowser/WebBrowserTabWidget.py	Tue May 18 18:19:47 2021 +0200
@@ -709,9 +709,7 @@
                             self.tr("""<p>The file <b>{0}</b> exists"""
                                     """ already. Shall it be"""
                                     """ overwritten?</p>""").format(filePath),
-                            E5MessageBox.StandardButtons(
-                                E5MessageBox.No |
-                                E5MessageBox.Yes),
+                            E5MessageBox.No | E5MessageBox.Yes,
                             E5MessageBox.No)
                         if res == E5MessageBox.No:
                             return
@@ -759,8 +757,7 @@
                 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.StandardButtons(
-                    E5MessageBox.Ok))
+                E5MessageBox.Ok)
     
     @pyqtSlot()
     def printPreviewBrowser(self, browser=None):
--- a/eric7/WebBrowser/WebBrowserWindow.py	Mon May 17 19:58:15 2021 +0200
+++ b/eric7/WebBrowser/WebBrowserWindow.py	Tue May 18 18:19:47 2021 +0200
@@ -4986,7 +4986,7 @@
             self.tr("Keyboard Shortcuts File (*.ekj);;"
                     "XML Keyboard Shortcuts File (*.e4k)"),
             "",
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            E5FileDialog.DontConfirmOverwrite)
         
         if not fn:
             return

eric ide

mercurial