WebBrowserWindow: removed the use of QTextCodec to prepare the Qt6 migration.

Sun, 29 Nov 2020 14:10:18 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 29 Nov 2020 14:10:18 +0100
changeset 7844
cb108454eda7
parent 7843
0a569bf8ca45
child 7845
a626d0212c4d

WebBrowserWindow: removed the use of QTextCodec to prepare the Qt6 migration.

eric6/WebBrowser/WebBrowserWindow.py file | annotate | diff | comparison | revisions
--- a/eric6/WebBrowser/WebBrowserWindow.py	Sun Nov 29 14:06:23 2020 +0100
+++ b/eric6/WebBrowser/WebBrowserWindow.py	Sun Nov 29 14:10:18 2020 +0100
@@ -12,8 +12,8 @@
 import sys
 
 from PyQt5.QtCore import (
-    pyqtSlot, pyqtSignal, Qt, QByteArray, QSize, QTimer, QUrl, QTextCodec,
-    QProcess, QEvent, QFileInfo
+    pyqtSlot, pyqtSignal, Qt, QByteArray, QSize, QTimer, QUrl, QProcess,
+    QEvent, QFileInfo
 )
 from PyQt5.QtGui import QDesktopServices, QKeySequence, QFont, QFontMetrics
 from PyQt5.QtWidgets import (
@@ -4147,7 +4147,8 @@
         """
         return self.__navigationBar.searchEdit().openSearchManager()
     
-    def __createTextEncodingAction(self, codec, defaultCodec, parentMenu):
+    def __createTextEncodingAction(self, codec, defaultCodec, parentMenu,
+                                   name=None):
         """
         Private method to create an action for the text encoding menu.
         
@@ -4157,8 +4158,13 @@
         @type str
         @param parentMenu reference to the parent menu
         @type QMenu
-        """
-        act = QAction(codec, parentMenu)
+        @param name name for the action
+        @type str
+        """
+        if name:
+            act = QAction(name, parentMenu)
+        else:
+            act = QAction(codec, parentMenu)
         act.setData(codec)
         act.setCheckable(True)
         if defaultCodec == codec:
@@ -4192,55 +4198,45 @@
         """
         self.__textEncodingMenu.clear()
         
-        codecs = []
-        for mib in QTextCodec.availableMibs():
-            codec = str(QTextCodec.codecForMib(mib).name(),
-                        encoding="utf-8").lower()
-            if codec not in codecs:
-                codecs.append(codec)
-        codecs.sort()
-        
         defaultTextEncoding = self.webSettings().defaultTextEncoding().lower()
-        if defaultTextEncoding in codecs:
+        if defaultTextEncoding in Utilities.supportedCodecs:
             currentCodec = defaultTextEncoding
         else:
-            currentCodec = "system"
+            currentCodec = ""
         
         isoCodecs = []
         winCodecs = []
-        isciiCodecs = []
         uniCodecs = []
-        ibmCodecs = []
+        cpCodecs = []
+        macCodecs = []
         otherCodecs = []
         
-        for codec in codecs:
-            if codec.startswith(("iso", "latin")):
+        for codec in sorted(Utilities.supportedCodecs):
+            if codec.startswith(("iso-", "latin")):
                 isoCodecs.append(codec)
-            elif codec.startswith(("windows")):
+            elif codec.startswith(("windows-")):
                 winCodecs.append(codec)
-            elif codec.startswith("iscii"):
-                isciiCodecs.append(codec)
-            elif codec.startswith("utf"):
+            elif codec.startswith("utf-"):
                 uniCodecs.append(codec)
-            elif codec.startswith(("ibm")):
-                ibmCodecs.append(codec)
-            elif codec == "system":
-                self.__createTextEncodingAction(codec, currentCodec,
-                                                self.__textEncodingMenu)
+            elif codec.startswith("cp"):
+                cpCodecs.append(codec)
+            elif codec.startswith("mac-"):
+                macCodecs.append(codec)
             else:
                 otherCodecs.append(codec)
         
-        if not self.__textEncodingMenu.isEmpty():
-            self.__textEncodingMenu.addSeparator()
+        self.__createTextEncodingAction(
+            "", currentCodec, self.__textEncodingMenu, name=self.tr("System"))
+        self.__textEncodingMenu.addSeparator()
         self.__createTextEncodingSubmenu(self.tr("ISO"), isoCodecs,
                                          self.__textEncodingMenu)
         self.__createTextEncodingSubmenu(self.tr("Unicode"), uniCodecs,
                                          self.__textEncodingMenu)
         self.__createTextEncodingSubmenu(self.tr("Windows"), winCodecs,
                                          self.__textEncodingMenu)
-        self.__createTextEncodingSubmenu(self.tr("ISCII"), isciiCodecs,
+        self.__createTextEncodingSubmenu(self.tr("IBM"), cpCodecs,
                                          self.__textEncodingMenu)
-        self.__createTextEncodingSubmenu(self.tr("IBM"), ibmCodecs,
+        self.__createTextEncodingSubmenu(self.tr("Apple"), macCodecs,
                                          self.__textEncodingMenu)
         self.__createTextEncodingSubmenu(self.tr("Other"), otherCodecs,
                                          self.__textEncodingMenu)

eric ide

mercurial