WebBrowser/WebInspector.py

changeset 6402
bdc273bb66c5
parent 6398
caf724f53840
child 6645
ad476851d7e0
diff -r f3b56f94a463 -r bdc273bb66c5 WebBrowser/WebInspector.py
--- a/WebBrowser/WebInspector.py	Wed Jul 04 19:36:49 2018 +0200
+++ b/WebBrowser/WebInspector.py	Wed Jul 04 19:38:44 2018 +0200
@@ -21,12 +21,13 @@
 from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage, \
     QWebEngineSettings
 
+from Globals import qVersionTuple
+
 import Preferences
 
 _VIEWS = []
 
 
-# TODO: add support for web inspector variant of Qt 5.11
 class WebInspector(QWebEngineView):
     """
     Class implementing a QWebEngineView to load the web inspector in.
@@ -94,18 +95,23 @@
         
         self.__inspectElement = inspectElement
         
-        port = Preferences.getWebBrowser("WebInspectorPort")
-        inspectorUrl = QUrl("http://localhost:{0}".format(port))
-        
-        from WebBrowser.WebBrowserWindow import WebBrowserWindow
-        self.__reply = WebBrowserWindow.networkManager().get(
-            QNetworkRequest(inspectorUrl.resolved(QUrl("json/list"))))
-        self.__reply.finished.connect(self.__inspectorReplyFinished)
+        try:
+            self.page().setInspectedPage(self.__view.page())
+        except AttributeError:
+            # pre Qt 5.11
+            port = Preferences.getWebBrowser("WebInspectorPort")
+            inspectorUrl = QUrl("http://localhost:{0}".format(port))
+            
+            from WebBrowser.WebBrowserWindow import WebBrowserWindow
+            self.__reply = WebBrowserWindow.networkManager().get(
+                QNetworkRequest(inspectorUrl.resolved(QUrl("json/list"))))
+            self.__reply.finished.connect(self.__inspectorReplyFinished)
     
     def __inspectorReplyFinished(self):
         """
         Private slot handling the reply.
         """
+        # used for pre Qt 5.11
         result = str(self.__reply.readAll(), encoding="utf8")
         
         self.__reply.deleteLater()
@@ -146,15 +152,19 @@
         @return flag indicating the enabled state
         @rtype bool
         """
-        if not os.getenv("QTWEBENGINE_REMOTE_DEBUGGING"):
-            return False
+        if qVersionTuple() < (5, 11, 0):
+            if not os.getenv("QTWEBENGINE_REMOTE_DEBUGGING"):
+                return False
         
         from WebBrowser.WebBrowserWindow import WebBrowserWindow
         if not WebBrowserWindow.webSettings().testAttribute(
                 QWebEngineSettings.JavascriptEnabled):
             return False
         
-        return Preferences.getWebBrowser("WebInspectorEnabled")
+        if qVersionTuple() < (5, 11, 0):
+            return Preferences.getWebBrowser("WebInspectorEnabled")
+        else:
+            return True
     
     def __loadFinished(self):
         """

eric ide

mercurial