Helpviewer: Reverted some of the sender() related changes.

Sun, 04 Mar 2018 13:04:58 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 04 Mar 2018 13:04:58 +0100
changeset 6173
cb1488b062a9
parent 6172
f6d76bf157b3
child 6174
bb2989d750ce

Helpviewer: Reverted some of the sender() related changes.

Helpviewer/GreaseMonkey/GreaseMonkeyManager.py file | annotate | diff | comparison | revisions
Helpviewer/HelpBrowserWV.py file | annotate | diff | comparison | revisions
Helpviewer/HelpTabWidget.py file | annotate | diff | comparison | revisions
--- a/Helpviewer/GreaseMonkey/GreaseMonkeyManager.py	Sun Mar 04 12:10:39 2018 +0100
+++ b/Helpviewer/GreaseMonkey/GreaseMonkeyManager.py	Sun Mar 04 13:04:58 2018 +0100
@@ -14,6 +14,7 @@
 from PyQt5.QtCore import pyqtSignal, QObject, QTimer, QFile, QDir, QSettings, \
     QUrl, QByteArray
 from PyQt5.QtNetwork import QNetworkAccessManager
+from PyQt5.QtWebKit import QWebFrame
 
 import Utilities
 import Preferences
@@ -232,13 +233,14 @@
         """
         return scheme in ["http", "https", "data", "ftp"]
     
-    def pageLoadStarted(self, frame):
+    def pageLoadStarted(self):
         """
         Public slot to handle the start of loading a page.
+        """
+        frame = self.sender()
+        if frame is None or not isinstance(frame, QWebFrame):
+            return
         
-        @param frame reference to the main frame of the loading page
-        @type QWebFrame
-        """
         urlScheme = frame.url().scheme()
         urlString = bytes(frame.url().toEncoded()).decode()
         
@@ -290,9 +292,8 @@
         
         @param page reference to the web page (HelpWebPage)
         """
-        mainFrame = page.mainFrame()
-        mainFrame.javaScriptWindowObjectCleared.connect(
-            lambda: self.pageLoadStarted(mainFrame))
+        page.mainFrame().javaScriptWindowObjectCleared.connect(
+            self.pageLoadStarted)
     
     def createRequest(self, op, request, outgoingData=None):
         """
--- a/Helpviewer/HelpBrowserWV.py	Sun Mar 04 12:10:39 2018 +0100
+++ b/Helpviewer/HelpBrowserWV.py	Sun Mar 04 13:04:58 2018 +0100
@@ -779,9 +779,8 @@
             self.__featurePermissionRequested)
         
         self.page().downloadRequested.connect(self.__downloadRequested)
-        self.page().frameCreated.connect(
-            lambda frame: self.__addExternalBinding(frame, False))
-        self.__addExternalBinding(self.page().mainFrame(), False)
+        self.page().frameCreated.connect(self.__addExternalBinding)
+        self.__addExternalBinding(self.page().mainFrame())
         
         self.page().databaseQuotaExceeded.connect(self.__databaseQuotaExceeded)
         
@@ -809,21 +808,20 @@
         
         self.grabGesture(Qt.PinchGesture)
     
-    def __addExternalBinding(self, frame, frameCleared):
+    def __addExternalBinding(self, frame=None):
         """
         Private slot to add javascript bindings for adding search providers.
         
         @param frame reference to the web frame
         @type QWebFrame
-        @param frameCleared flag indicate, that the frame was cleared
-        @type bool
         """
         self.page().settings().setAttribute(QWebSettings.JavascriptEnabled,
                                             True)
         if self.__javaScriptBinding is None:
             self.__javaScriptBinding = JavaScriptExternalObject(self.mw, self)
         
-        if frameCleared:
+        if frame is None:
+            frame = self.sender()
             # called from QWebFrame.javaScriptWindowObjectCleared
             if isinstance(frame, HelpWebPage):
                 frame = frame.mainFrame()
@@ -841,7 +839,7 @@
         else:
             # called from QWebPage.frameCreated
             frame.javaScriptWindowObjectCleared.connect(
-                lambda: self.__addExternalBinding(frame, True))
+                self.__addExternalBinding)
         frame.addToJavaScriptWindowObject("external", self.__javaScriptBinding)
     
     def linkedResources(self, relation=""):
--- a/Helpviewer/HelpTabWidget.py	Sun Mar 04 12:10:39 2018 +0100
+++ b/Helpviewer/HelpTabWidget.py	Sun Mar 04 13:04:58 2018 +0100
@@ -350,8 +350,7 @@
         browser.forwardAvailable.connect(self.__mainWindow.setForwardAvailable)
         browser.loadStarted.connect(
             lambda: self.__loadStarted(browser))
-        browser.loadFinished.connect(
-            lambda ok: self.__loadFinished(ok, browser))
+        browser.loadFinished.connect(self.__loadFinished)
         browser.iconChanged.connect(
             lambda: self.__iconChanged(browser))
         browser.search.connect(self.newBrowser)
@@ -776,15 +775,17 @@
         
         self.__mainWindow.setLoadingActions(True)
     
-    def __loadFinished(self, ok, browser):
+    def __loadFinished(self, ok):
         """
         Private method to handle the loadFinished signal.
         
         @param ok flag indicating the result
         @type bool
-        @param browser reference to the web browser
-        @type HelpBrowser
         """
+        browser = self.sender()
+        if browser is None or not isinstance(browser, HelpBrowser):
+            return
+        
         import Helpviewer.HelpWindow
         index = self.indexOf(browser)
         self.resetAnimation(index)

eric ide

mercurial