diff -r e9e7eca7efee -r bf71ee032bb4 src/eric7/WebBrowser/JavaScript/ExternalJsObject.py --- a/src/eric7/WebBrowser/JavaScript/ExternalJsObject.py Wed Jul 13 11:16:20 2022 +0200 +++ b/src/eric7/WebBrowser/JavaScript/ExternalJsObject.py Wed Jul 13 14:55:47 2022 +0200 @@ -25,76 +25,77 @@ """ Class implementing the endpoint of our web channel. """ + extraObjects = {} - + def __init__(self, page): """ Constructor - + @param page reference to the web page object @type WebBrowserPage """ super().__init__(page) - + self.__page = page - + self.__startPage = None self.__passwordManager = None - + def page(self): """ Public method returning a reference to the web page object. - + @return reference to the web page object @rtype WebBrowserPage """ return self.__page - + @pyqtProperty(QObject, constant=True) def passwordManager(self): """ Public method to get a reference to the password manager JavaScript object. - + @return reference to the password manager JavaScript object @rtype StartPageJsObject """ if self.__passwordManager is None: self.__passwordManager = PasswordManagerJsObject(self) - + return self.__passwordManager - + @pyqtProperty(QObject, constant=True) def speedDial(self): """ Public method returning a reference to a speed dial object. - + @return reference to a speed dial object @rtype SpeedDial """ if self.__page.url().toString() != "eric:speeddial": return None - + return WebBrowserWindow.speedDial() - + @pyqtProperty(QObject, constant=True) def startPage(self): """ Public method to get a reference to the start page JavaScript object. - + @return reference to the start page JavaScript object @rtype StartPageJsObject """ if self.__startPage is None: self.__startPage = StartPageJsObject(self) - + return self.__startPage - + @classmethod def setupWebChannel(cls, channel, page): """ Class method to setup the web channel. - + @param channel reference to the channel @type QWebChannel @param page reference to the web page @@ -102,26 +103,27 @@ """ channel.registerObject("eric_object", ExternalJsObject(page)) for jsObject in cls.extraObjects: - channel.registerObject("eric_{0}".format(jsObject), - cls.extraObjects[jsObject]) - + channel.registerObject( + "eric_{0}".format(jsObject), cls.extraObjects[jsObject] + ) + @classmethod def registerExtraObject(cls, name, jsObject): """ Class method to register extra JavaScript objects. - + @param name name for the object @type str @param jsObject reference to the JavaScript object to be registered @type QObject """ cls.extraObjects[id] = jsObject - + @classmethod def unregisterExtraObject(cls, name): """ Class method to unregister extra JavaScript objects. - + @param name name of the object @type str """