eric6/Toolbox/PyQt4ImportHook.py

changeset 7220
5cf645f6daab
parent 7218
eaf2cf171f3a
parent 7211
1c97f3142fa8
child 7221
0485ccdf7877
--- a/eric6/Toolbox/PyQt4ImportHook.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2014 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an import hook converting PyQt5 imports to PyQt4 imports.
-"""
-
-from __future__ import unicode_literals
-
-import sys
-import importlib
-
-
-class PyQt4Importer(object):
-    """
-    Class implementing an importer converting PyQt5 imports to PyQt4
-    imports.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        self.__path = None
-    
-    def find_module(self, fullname, path=None):
-        """
-        Public method returning the module loader.
-        
-        @param fullname name of the module to be loaded (string)
-        @param path path to resolve the module name (string)
-        @return module loader object
-        """
-        if fullname.startswith("PyQt5"):
-            self.__path = path
-            return self
-        
-        return None
-    
-    @staticmethod
-    def QComboBox_currentData(other, role=None):
-        """
-        Static method to emulate the currentData method of Qt5.
-        
-        @param other reference to the combo box to get the user data of
-        @type QComboBox
-        @param role role of which data should be retrieved
-        @type int
-        @return stored data at current selection
-        @rtype any
-        """
-        import PyQt4.Qt
-        if role is None:
-            role = PyQt4.Qt.Qt.UserRole
-        
-        idx = other.currentIndex()
-        return other.itemData(idx, role)
-    
-    def load_module(self, fullname):
-        """
-        Public method to load a module.
-        
-        @param fullname name of the module to be loaded (string)
-        @return reference to the loaded module (module)
-        """
-        if fullname in ["PyQt5.QtWidgets", "PyQt5.QtPrintSupport"]:
-            newname = "PyQt4.QtGui"
-        elif fullname in ["PyQt5.QtWebKitWidgets"]:
-            newname = "PyQt4.QtWebKit"
-        else:
-            newname = fullname.replace("PyQt5", "PyQt4")
-        
-        module = importlib.import_module(newname)
-        sys.modules[fullname] = module
-        if fullname == "PyQt5.QtCore":
-            import PyQt4.QtGui
-            module.qInstallMessageHandler = module.qInstallMsgHandler
-            module.QItemSelectionModel = PyQt4.QtGui.QItemSelectionModel
-            module.QItemSelection = PyQt4.QtGui.QItemSelection
-            module.QSortFilterProxyModel = \
-                PyQt4.QtGui.QSortFilterProxyModel
-            module.QAbstractProxyModel = PyQt4.QtGui.QAbstractProxyModel
-            module.QStringListModel = PyQt4.QtGui.QStringListModel
-            
-            PyQt4.QtGui.QComboBox.currentData = self.QComboBox_currentData
-        return module
-
-try:
-    if "--pyqt4" in sys.argv:
-        sys.argv.remove("--pyqt4")
-        # fake a failed PyQt5 import
-        raise ImportError
-    import PyQt5    # __IGNORE_WARNING__
-except ImportError:
-    sys.meta_path.insert(0, PyQt4Importer())
-    
-    if sys.version_info[0] == 2:
-        try:
-            from PyQt5 import sip
-        except ImportError:
-            import sip
-        sip.setapi('QString', 2)
-        sip.setapi('QVariant', 2)
-        sip.setapi('QTextStream', 2)

eric ide

mercurial