Continued porting eric to PyQt6. eric7

Wed, 19 May 2021 17:36:34 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 19 May 2021 17:36:34 +0200
branch
eric7
changeset 8324
83084f088655
parent 8323
3bb9b7d997db
child 8325
547319e56c60

Continued porting eric to PyQt6.

eric7/E5Gui/E5TextEditSearchWidget.py file | annotate | diff | comparison | revisions
eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/hg.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/FontDialogWizard/FontDialogWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Preferences/ConfigurationPages/EditorHighlightersPage.py file | annotate | diff | comparison | revisions
eric7/Preferences/ToolConfigurationDialog.py file | annotate | diff | comparison | revisions
eric7/Preferences/ToolGroupConfigurationDialog.py file | annotate | diff | comparison | revisions
eric7/Project/CreateDialogCodeDialog.py file | annotate | diff | comparison | revisions
eric7/Project/FiletypeAssociationDialog.py file | annotate | diff | comparison | revisions
eric7/Project/LexerAssociationDialog.py file | annotate | diff | comparison | revisions
eric7/Project/ProjectBaseBrowser.py file | annotate | diff | comparison | revisions
eric7/PyUnit/UnittestDialog.py file | annotate | diff | comparison | revisions
eric7/QScintilla/QsciScintillaCompat.py file | annotate | diff | comparison | revisions
eric7/UI/FindFileDialog.py file | annotate | diff | comparison | revisions
eric7/UI/LogView.py file | annotate | diff | comparison | revisions
eric7/WebBrowser/WebBrowserView.py file | annotate | diff | comparison | revisions
--- a/eric7/E5Gui/E5TextEditSearchWidget.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/E5Gui/E5TextEditSearchWidget.py	Wed May 19 17:36:34 2021 +0200
@@ -302,9 +302,9 @@
         @rtype bool
         """
         flags = (
-            QTextDocument.FindFlags(QTextDocument.FindFlag.FindBackward)
+            QTextDocument.FindFlag.FindBackward
             if backwards else
-            QTextDocument.FindFlags()
+            QTextDocument.FindFlag(0)
         )
         if self.caseCheckBox.isChecked():
             flags |= QTextDocument.FindFlag.FindCaseSensitively
@@ -337,7 +337,7 @@
         """
         from PyQt6.QtWebEngineWidgets import QWebEnginePage
         
-        findFlags = QWebEnginePage.FindFlags()
+        findFlags = QWebEnginePage.FindFlag(0)
         if self.caseCheckBox.isChecked():
             findFlags |= QWebEnginePage.FindFlag.FindCaseSensitively
         if backwards:
--- a/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Wed May 19 17:36:34 2021 +0200
@@ -83,7 +83,7 @@
                 # convert Python to the more specific Python3
                 language = "Python3"
             items = self.languagesList.findItems(
-                language, Qt.MatchFlags(Qt.MatchFlag.MatchExactly))
+                language, Qt.MatchFlag.MatchExactly)
             items and items[0].setSelected(True)
     
     def __initializeDefaults(self):
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Wed May 19 17:36:34 2021 +0200
@@ -1427,13 +1427,13 @@
         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 = {}
+        self.__extensionMenus = {}
         for extensionMenuTitle in sorted(self.__extensionMenuTitles):
             extensionName = self.__extensionMenuTitles[extensionMenuTitle]
-            self.extensionMenus[extensionName] = self.__extensionsMenu.addMenu(
-                self.__extensions[extensionName].initMenu(
-                    self.__extensionsMenu))
+            extensionMenu = self.__extensions[extensionName].initMenu(
+                    self.__extensionsMenu)
+            self.__extensionMenus[extensionName] = extensionMenu
+            self.__extensionsMenu.addMenu(extensionMenu)
         self.vcs.activeExtensionsChanged.connect(self.__showExtensionMenu)
         
         graftMenu = QMenu(self.tr("Copy Changesets"), menu)
@@ -1630,9 +1630,9 @@
                 menu.hideTearOffMenu()
         
         # close torn off extension menus
-        for extensionName in self.extensionMenus:
+        for extensionName in self.__extensionMenus:
             self.__extensions[extensionName].shutdown()
-            menu = self.extensionMenus[extensionName].menu()
+            menu = self.__extensionMenus[extensionName]
             if menu.isTearOffMenuVisible():
                 menu.hideTearOffMenu()
         
@@ -1643,17 +1643,15 @@
         """
         Private slot showing the extensions menu.
         """
-        for extensionName in self.extensionMenus:
-            self.extensionMenus[extensionName].setEnabled(
+        for extensionName in self.__extensionMenus:
+            extensionMenu = self.__extensionMenus[extensionName]
+            extensionMenu.menuAction().setEnabled(
                 self.vcs.isExtensionActive(extensionName))
             if (
-                not self.extensionMenus[extensionName].isEnabled() and
-                self.extensionMenus[extensionName].menu()
-                .isTearOffMenuVisible()
+                not extensionMenu.menuAction().isEnabled() and
+                extensionMenu.isTearOffMenuVisible()
             ):
-                self.extensionMenus[extensionName].menu().hideTearOffMenu()
-        if self.vcs.version < (4, 8, 0):
-            self.extensionMenus["closehead"].setEnabled(False)
+                extensionMenu.hideTearOffMenu()
     
     def __hgExtendedDiff(self):
         """
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py	Wed May 19 17:36:34 2021 +0200
@@ -2839,7 +2839,6 @@
         args = self.initCommand("showconfig")
         args.append('extensions')
         
-        return
         output, error = self.__client.runcommand(args)
         
         if output:
--- a/eric7/Plugins/WizardPlugins/FontDialogWizard/FontDialogWizardDialog.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/Plugins/WizardPlugins/FontDialogWizard/FontDialogWizardDialog.py	Wed May 19 17:36:34 2021 +0200
@@ -22,6 +22,18 @@
     It displays a dialog for entering the parameters
     for the QFontDialog code generator.
     """
+    FontWeight2Code = {
+        100: "Thin",
+        200: "ExtraLight",
+        300: "Light",
+        400: "Normal",
+        500: "Medium",
+        600: "DemiBold",
+        700: "Bold",
+        800: "ExtraBold",
+        900: "Black",
+    }
+    
     def __init__(self, parent=None):
         """
         Constructor
@@ -117,9 +129,15 @@
                 code += '{0}{1}'.format(os.linesep, istring)
             if not self.eVariable.text():
                 if self.font is not None:
-                    code += 'QFont(["{0}"], {1:d}, {2:d}, {3:d})'.format(
-                        self.font.family(), self.font.pointSize(),
-                        self.font.weight(), self.font.italic())
+                    code += (
+                        'QFont(["{0}"], {1:d}, QFont.Weight.{2}, {3})'
+                        .format(
+                            self.font.family(),
+                            self.font.pointSize(),
+                            FontDialogWizardDialog.FontWeight2Code[
+                                self.font.weight()],
+                            "True" if self.font.italic() else "False")
+                    )
             else:
                 code += self.eVariable.text()
             if title:
@@ -130,6 +148,7 @@
             elif parent != "None":
                 code += ',{0}{1}{2}'.format(
                     os.linesep, istring, parent)
+            # NOTE: add support for font dialog options (enhancement)
         code += '){0}'.format(estring)
         
         return code
--- a/eric7/Preferences/ConfigurationPages/EditorHighlightersPage.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorHighlightersPage.py	Wed May 19 17:36:34 2021 +0200
@@ -90,7 +90,7 @@
                 lexer = "Pygments|{0}".format(pygmentsLexer)
         if ext and lexer:
             itmList = self.editorLexerList.findItems(
-                ext, Qt.MatchFlags(Qt.MatchFlag.MatchExactly), 0)
+                ext, Qt.MatchFlag.MatchExactly, 0)
             if itmList:
                 index = self.editorLexerList.indexOfTopLevelItem(itmList[0])
                 itm = self.editorLexerList.takeTopLevelItem(index)
--- a/eric7/Preferences/ToolConfigurationDialog.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/Preferences/ToolConfigurationDialog.py	Wed May 19 17:36:34 2021 +0200
@@ -125,7 +125,7 @@
             return
         
         if len(self.toolsList.findItems(
-                menutext, Qt.MatchFlags(Qt.MatchFlag.MatchExactly))):
+                menutext, Qt.MatchFlag.MatchExactly)):
             E5MessageBox.critical(
                 self,
                 self.tr("Add tool entry"),
--- a/eric7/Preferences/ToolGroupConfigurationDialog.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/Preferences/ToolGroupConfigurationDialog.py	Wed May 19 17:36:34 2021 +0200
@@ -63,7 +63,7 @@
             return
         
         if len(self.groupsList.findItems(
-                groupName, Qt.MatchFlags(Qt.MatchFlag.MatchExactly))):
+                groupName, Qt.MatchFlag.MatchExactly)):
             E5MessageBox.critical(
                 self,
                 self.tr("Add tool group entry"),
@@ -93,7 +93,7 @@
             return
         
         if len(self.groupsList.findItems(
-                groupName, Qt.MatchFlags(Qt.MatchFlag.MatchExactly))):
+                groupName, Qt.MatchFlag.MatchExactly)):
             E5MessageBox.critical(
                 self,
                 self.tr("Add tool group entry"),
--- a/eric7/Project/CreateDialogCodeDialog.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/Project/CreateDialogCodeDialog.py	Wed May 19 17:36:34 2021 +0200
@@ -340,8 +340,7 @@
                         (methodDict["methods"][0] in signatureList or
                          methodDict["methods"][1] in signatureList)
                     ):
-                        itm2.setFlags(
-                            Qt.ItemFlags(Qt.ItemFlag.ItemIsEnabled))
+                        itm2.setFlags(Qt.ItemFlag.ItemIsEnabled)
                         itm2.setCheckState(Qt.CheckState.Checked)
                         if e5App().usesDarkPalette():
                             itm2.setForeground(QBrush(QColor("#75bfff")))
@@ -360,10 +359,10 @@
                     itm2.setData(methodDict["parameter_names"],
                                  parameterNamesListRole)
                     
-                    itm2.setFlags(Qt.ItemFlags(
+                    itm2.setFlags(
                         Qt.ItemFlag.ItemIsUserCheckable |
                         Qt.ItemFlag.ItemIsEnabled |
-                        Qt.ItemFlag.ItemIsSelectable)
+                        Qt.ItemFlag.ItemIsSelectable
                     )
                     itm2.setCheckState(Qt.CheckState.Unchecked)
             
@@ -511,8 +510,7 @@
                 child = topItem.child(childRow)
                 if (
                     child.checkState() and
-                    child.flags() & Qt.ItemFlags(
-                        Qt.ItemFlag.ItemIsUserCheckable)
+                    child.flags() & Qt.ItemFlag.ItemIsUserCheckable
                 ):
                     slotsCode.append('{0}\n'.format(indentStr))
                     slotsCode.append('{0}{1}\n'.format(
--- a/eric7/Project/FiletypeAssociationDialog.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/Project/FiletypeAssociationDialog.py	Wed May 19 17:36:34 2021 +0200
@@ -110,7 +110,7 @@
         filetype = self.filetypeCombo.currentText()
         if pattern:
             items = self.filetypeAssociationList.findItems(
-                pattern, Qt.MatchFlags(Qt.MatchFlag.MatchExactly), 0)
+                pattern, Qt.MatchFlag.MatchExactly, 0)
             for itm in items:
                 itm = self.filetypeAssociationList.takeTopLevelItem(
                     self.filetypeAssociationList.indexOfTopLevelItem(itm))
--- a/eric7/Project/LexerAssociationDialog.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/Project/LexerAssociationDialog.py	Wed May 19 17:36:34 2021 +0200
@@ -80,7 +80,7 @@
                 lexer = "Pygments|{0}".format(pygmentsLexer)
         if ext and lexer:
             itmList = self.editorLexerList.findItems(
-                ext, Qt.MatchFlags(Qt.MatchFlag.MatchExactly), 0)
+                ext, Qt.MatchFlag.MatchExactly, 0)
             if itmList:
                 index = self.editorLexerList.indexOfTopLevelItem(itmList[0])
                 itm = self.editorLexerList.takeTopLevelItem(index)
--- a/eric7/Project/ProjectBaseBrowser.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/Project/ProjectBaseBrowser.py	Wed May 19 17:36:34 2021 +0200
@@ -178,11 +178,11 @@
         """
         if index.isValid():
             self.setCurrentIndex(index)
-            flags = QItemSelectionModel.SelectionFlags(
+            self.selectionModel().select(
+                index,
                 QItemSelectionModel.SelectionFlag.ClearAndSelect |
                 QItemSelectionModel.SelectionFlag.Rows
             )
-            self.selectionModel().select(index, flags)
         
     def _setItemSelected(self, index, selected):
         """
--- a/eric7/PyUnit/UnittestDialog.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/PyUnit/UnittestDialog.py	Wed May 19 17:36:34 2021 +0200
@@ -942,7 +942,7 @@
                 text = re.sub(pattern, "", text)
             
             foundItems = self.testsListWidget.findItems(
-                text, Qt.MatchFlags(Qt.MatchFlag.MatchExactly))
+                text, Qt.MatchFlag.MatchExactly)
             if len(foundItems) > 0:
                 itm = foundItems[0]
                 self.testsListWidget.setCurrentItem(itm)
--- a/eric7/QScintilla/QsciScintillaCompat.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/QScintilla/QsciScintillaCompat.py	Wed May 19 17:36:34 2021 +0200
@@ -50,6 +50,19 @@
     
     IndicatorStyleMax = QsciScintilla.INDIC_GRADIENTCENTRE
     
+    # Maps PyQt6.QFont.Weight to the weights used by QScintilla
+    QFontWeightMapping = {
+        100: 0,
+        200: 12,
+        300: 25,
+        400: 50,
+        500: 57,
+        600: 63,
+        700: 75,
+        800: 81,
+        900: 87,
+    }
+    
     def __init__(self, parent=None):
         """
         Constructor
@@ -145,7 +158,7 @@
         
         f = font.family().encode("utf-8")
         ps = font.pointSize()
-        weight = -font.weight()
+        weight = -QsciScintillaCompat.QFontWeightMapping[font.weight()]
         italic = font.italic()
         underline = font.underline()
         bold = font.bold()
--- a/eric7/UI/FindFileDialog.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/UI/FindFileDialog.py	Wed May 19 17:36:34 2021 +0200
@@ -159,8 +159,8 @@
             if self.__replaceMode:
                 self.__lastFileItem.setFlags(
                     self.__lastFileItem.flags() |
-                    Qt.ItemFlags(Qt.ItemFlag.ItemIsUserCheckable |
-                                 Qt.ItemFlag.ItemIsTristate))
+                    Qt.ItemFlag.ItemIsUserCheckable |
+                    Qt.ItemFlag.ItemIsTristate)
             self.__lastFileItem.setData(0, self.md5Role, md5)
         
         itm = QTreeWidgetItem(self.__lastFileItem)
@@ -173,7 +173,7 @@
         itm.setData(0, self.replaceRole, replTxt)
         if self.__replaceMode:
             itm.setFlags(itm.flags() |
-                         Qt.ItemFlags(Qt.ItemFlag.ItemIsUserCheckable))
+                         Qt.ItemFlag.ItemIsUserCheckable)
             itm.setCheckState(0, Qt.CheckState.Checked)
             self.replaceButton.setEnabled(True)
         
--- a/eric7/UI/LogView.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/UI/LogView.py	Wed May 19 17:36:34 2021 +0200
@@ -249,7 +249,7 @@
         @type bool
         """
         self.__lastSearch = (txt, caseSensitive, wholeWord, regexp)
-        flags = QTextDocument.FindFlags()
+        flags = QTextDocument.FindFlag(0)
         if caseSensitive:
             flags |= QTextDocument.FindFlag.FindCaseSensitively
         if wholeWord:
@@ -283,7 +283,7 @@
         @type bool
         """
         self.__lastSearch = (txt, caseSensitive, wholeWord, regexp)
-        flags = QTextDocument.FindFlags(QTextDocument.FindFlag.FindBackward)
+        flags = QTextDocument.FindFlag.FindBackward
         if caseSensitive:
             flags |= QTextDocument.FindFlag.FindCaseSensitively
         if wholeWord:
--- a/eric7/WebBrowser/WebBrowserView.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/WebBrowser/WebBrowserView.py	Wed May 19 17:36:34 2021 +0200
@@ -508,7 +508,7 @@
         @param callback reference to a function with a bool parameter
         @type function(bool) or None
         """
-        findFlags = QWebEnginePage.FindFlags()
+        findFlags = QWebEnginePage.FindFlag(0)
         if case:
             findFlags |= QWebEnginePage.FindFlag.FindCaseSensitively
         if backwards:

eric ide

mercurial