Sun, 04 Mar 2018 13:04:58 +0100
Helpviewer: Reverted some of the sender() related changes.
--- 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)