WebBrowser/JavaScript/ExternalJsObject.py

branch
QtWebEngine
changeset 4863
9d86824898e1
parent 4861
d419f153925d
child 4868
985d275502c8
diff -r 210f6ea6b9c3 -r 9d86824898e1 WebBrowser/JavaScript/ExternalJsObject.py
--- a/WebBrowser/JavaScript/ExternalJsObject.py	Wed Mar 16 19:08:48 2016 +0100
+++ b/WebBrowser/JavaScript/ExternalJsObject.py	Wed Mar 16 19:51:00 2016 +0100
@@ -15,10 +15,13 @@
 
 from __future__ import unicode_literals
 
-from PyQt5.QtCore import pyqtSlot, QObject, QUrl, QByteArray
+from PyQt5.QtCore import pyqtSlot, pyqtProperty, QObject, QUrl
 
 import WebBrowser.WebBrowserWindow
 
+from .StartPageJsObject import StartPageJsObject
+from .PasswordManagerJsObject import PasswordManagerJsObject
+
 
 class ExternalJsObject(QObject):
     """
@@ -34,6 +37,9 @@
         super(ExternalJsObject, self).__init__(page)
         
         self.__page = page
+        
+        self.__startPage = None
+        self.__passwordManager = None
     
     def page(self):
         """
@@ -44,7 +50,21 @@
         """
         return self.__page
     
-    @pyqtSlot(result=QObject)
+    @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.
@@ -59,55 +79,15 @@
 ##        return WebBrowser.WebBrowserWindow.WebBrowserWindow.speedDial()
         return None
     
-    @pyqtSlot(str)
-    def AddSearchProvider(self, engineUrl):
-        """
-        Public slot to add a search provider.
-        
-        @param engineUrl engineUrl of the XML file defining the search provider
-        @type str
-        """
-        WebBrowser.WebBrowserWindow.WebBrowserWindow.openSearchManager()\
-        .addEngine(QUrl(engineUrl))
-    
-    @pyqtSlot(str, str, str, QByteArray)
-    def formSubmitted(self, urlStr, userName, password, data):
-        """
-        Public slot passing form data to the password manager.
-        
-        @param urlStr form submission URL
-        @type str
-        @param userName name of the user
-        @type str
-        @param password user password
-        @type str
-        @param data data to be submitted
-        @type QByteArray
+    @pyqtProperty(QObject, constant=True)
+    def startPage(self):
         """
-        import WebBrowser.WebBrowserWindow
-        WebBrowser.WebBrowserWindow.WebBrowserWindow.passwordManager()\
-        .formSubmitted(urlStr, userName, password, data,
-                       self.page())
-    
-    @pyqtSlot(result=str)
-    def providerString(self):
-        """
-        Public method to get a string for the search provider.
+        Public method to get a reference to the start page JavaScript object.
         
-        @return string for the search provider (string)
+        @return reference to the start page JavaScript object
+        @rtype StartPageJsObject
         """
-        return (self.tr("Search results provided by {0}")
-            .format(self.__page.view().mainWindow().openSearchManager()
-            .currentEngineName()))
-    
-    @pyqtSlot(str, result=str)
-    def searchUrl(self, searchStr):
-        """
-        Public method to get the search URL for the given search term.
+        if self.__startPage is None:
+            self.__startPage = StartPageJsObject(self)
         
-        @param searchStr search term (string)
-        @return search URL (string)
-        """
-        return bytes(
-            self.__page.view().mainWindow().openSearchManager().currentEngine()
-            .searchUrl(searchStr).toEncoded()).decode()
+        return self.__startPage

eric ide

mercurial