WebInspector: adjusted the code to support the enhanced web inspector interface of Qt 5.11.

Wed, 04 Jul 2018 19:38:44 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 04 Jul 2018 19:38:44 +0200
changeset 6402
bdc273bb66c5
parent 6401
f3b56f94a463
child 6403
9b708a019463

WebInspector: adjusted the code to support the enhanced web inspector interface of Qt 5.11.

Preferences/ConfigurationPages/WebBrowserPage.py file | annotate | diff | comparison | revisions
WebBrowser/WebBrowserView.py file | annotate | diff | comparison | revisions
WebBrowser/WebBrowserWindow.py file | annotate | diff | comparison | revisions
WebBrowser/WebInspector.py file | annotate | diff | comparison | revisions
--- a/Preferences/ConfigurationPages/WebBrowserPage.py	Wed Jul 04 19:36:49 2018 +0200
+++ b/Preferences/ConfigurationPages/WebBrowserPage.py	Wed Jul 04 19:38:44 2018 +0200
@@ -14,6 +14,8 @@
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_WebBrowserPage import Ui_WebBrowserPage
 
+from Globals import qVersionTuple
+
 import UI.PixmapCache
 import Preferences
 
@@ -220,10 +222,13 @@
         self.autoScrollDividerSpinBox.setValue(
             Preferences.getWebBrowser("AutoScrollDivider"))
         
-        self.webInspectorGroup.setChecked(
-            Preferences.getWebBrowser("WebInspectorEnabled"))
-        self.webInspectorPortSpinBox.setValue(
-            Preferences.getWebBrowser("WebInspectorPort"))
+        if qVersionTuple() < (5, 11, 0):
+            self.webInspectorGroup.setChecked(
+                Preferences.getWebBrowser("WebInspectorEnabled"))
+            self.webInspectorPortSpinBox.setValue(
+                Preferences.getWebBrowser("WebInspectorPort"))
+        else:
+            self.webInspectorGroup.setEnabled(False)
     
     def save(self):
         """
@@ -395,12 +400,13 @@
             "AutoScrollDivider",
             self.autoScrollDividerSpinBox.value())
         
-        Preferences.setWebBrowser(
-            "WebInspectorEnabled",
-            self.webInspectorGroup.isChecked())
-        Preferences.setWebBrowser(
-            "WebInspectorPort",
-            self.webInspectorPortSpinBox.value())
+        if qVersionTuple() < (5, 11, 0):
+            Preferences.setWebBrowser(
+                "WebInspectorEnabled",
+                self.webInspectorGroup.isChecked())
+            Preferences.setWebBrowser(
+                "WebInspectorPort",
+                self.webInspectorPortSpinBox.value())
     
     @pyqtSlot()
     def on_setCurrentPageButton_clicked(self):
--- a/WebBrowser/WebBrowserView.py	Wed Jul 04 19:36:49 2018 +0200
+++ b/WebBrowser/WebBrowserView.py	Wed Jul 04 19:38:44 2018 +0200
@@ -544,7 +544,8 @@
             self.__menu.addSeparator()
             self.__menu.addAction(self.__mw.adBlockIcon().menuAction())
         
-        if Preferences.getWebBrowser("WebInspectorEnabled"):
+        if qVersionTuple() >= (5, 11, 0) or \
+           Preferences.getWebBrowser("WebInspectorEnabled"):
             self.__menu.addSeparator()
             self.__menu.addAction(
                 UI.PixmapCache.getIcon("webInspector.png"),
--- a/WebBrowser/WebBrowserWindow.py	Wed Jul 04 19:36:49 2018 +0200
+++ b/WebBrowser/WebBrowserWindow.py	Wed Jul 04 19:38:44 2018 +0200
@@ -174,7 +174,8 @@
                 self.__fromEric or qthelp or bool(searchWord))
             self.__initActions()
         else:
-            if Preferences.getWebBrowser("WebInspectorEnabled"):
+            if qVersionTuple() < (5, 11, 0) and \
+               Preferences.getWebBrowser("WebInspectorEnabled"):
                 os.environ["QTWEBENGINE_REMOTE_DEBUGGING"] = \
                     str(Preferences.getWebBrowser("WebInspectorPort"))
             
--- 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