WebBrowser/JavaScript/ExternalJsObject.py

changeset 6127
128d9567a533
parent 6048
82ad8ec9548c
child 6133
eba07240fac1
equal deleted inserted replaced
6126:6c4509eceea2 6127:128d9567a533
25 25
26 class ExternalJsObject(QObject): 26 class ExternalJsObject(QObject):
27 """ 27 """
28 Class implementing the endpoint of our web channel. 28 Class implementing the endpoint of our web channel.
29 """ 29 """
30 extraObjects = {}
31
30 def __init__(self, page): 32 def __init__(self, page):
31 """ 33 """
32 Constructor 34 Constructor
33 35
34 @param page reference to the web page object 36 @param page reference to the web page object
87 """ 89 """
88 if self.__startPage is None: 90 if self.__startPage is None:
89 self.__startPage = StartPageJsObject(self) 91 self.__startPage = StartPageJsObject(self)
90 92
91 return self.__startPage 93 return self.__startPage
94
95 @classmethod
96 def setupWebChannel(cls, channel, page):
97 """
98 Class method to setup the web channel.
99
100 @param channel reference to the channel
101 @type QWebChannel
102 @param page reference to the web page
103 @type QWebEnginePage
104 """
105 channel.registerObject("eric_object", ExternalJsObject(page))
106 for jsObject in cls.extraObjects:
107 channel.registerObject("eric_{0}".forma(jsObject),
108 cls.extraObjects[jsObject])
109
110 @classmethod
111 def registerExtraObject(cls, name, jsObject):
112 """
113 Class method to register extra JavaScript objects.
114
115 @param name name for the object
116 @type str
117 @param jsObject reference to the JavaScript object to be registered
118 @type QObject
119 """
120 cls.extraObjects[id] = jsObject
121
122 @classmethod
123 def unregisterExtraObject(cls, name):
124 """
125 Class method to unregister extra JavaScript objects.
126
127 @param name name of the object
128 @type str
129 """
130 if name in cls.extraObjects:
131 del cls.extraObjects[name]

eric ide

mercurial