777 |
777 |
778 self.page().featurePermissionRequested.connect( |
778 self.page().featurePermissionRequested.connect( |
779 self.__featurePermissionRequested) |
779 self.__featurePermissionRequested) |
780 |
780 |
781 self.page().downloadRequested.connect(self.__downloadRequested) |
781 self.page().downloadRequested.connect(self.__downloadRequested) |
782 self.page().frameCreated.connect( |
782 self.page().frameCreated.connect(self.__addExternalBinding) |
783 lambda frame: self.__addExternalBinding(frame, False)) |
783 self.__addExternalBinding(self.page().mainFrame()) |
784 self.__addExternalBinding(self.page().mainFrame(), False) |
|
785 |
784 |
786 self.page().databaseQuotaExceeded.connect(self.__databaseQuotaExceeded) |
785 self.page().databaseQuotaExceeded.connect(self.__databaseQuotaExceeded) |
787 |
786 |
788 self.mw.openSearchManager().currentEngineChanged.connect( |
787 self.mw.openSearchManager().currentEngineChanged.connect( |
789 self.__currentEngineChanged) |
788 self.__currentEngineChanged) |
807 |
806 |
808 self.__inspector = None |
807 self.__inspector = None |
809 |
808 |
810 self.grabGesture(Qt.PinchGesture) |
809 self.grabGesture(Qt.PinchGesture) |
811 |
810 |
812 def __addExternalBinding(self, frame, frameCleared): |
811 def __addExternalBinding(self, frame=None): |
813 """ |
812 """ |
814 Private slot to add javascript bindings for adding search providers. |
813 Private slot to add javascript bindings for adding search providers. |
815 |
814 |
816 @param frame reference to the web frame |
815 @param frame reference to the web frame |
817 @type QWebFrame |
816 @type QWebFrame |
818 @param frameCleared flag indicate, that the frame was cleared |
|
819 @type bool |
|
820 """ |
817 """ |
821 self.page().settings().setAttribute(QWebSettings.JavascriptEnabled, |
818 self.page().settings().setAttribute(QWebSettings.JavascriptEnabled, |
822 True) |
819 True) |
823 if self.__javaScriptBinding is None: |
820 if self.__javaScriptBinding is None: |
824 self.__javaScriptBinding = JavaScriptExternalObject(self.mw, self) |
821 self.__javaScriptBinding = JavaScriptExternalObject(self.mw, self) |
825 |
822 |
826 if frameCleared: |
823 if frame is None: |
|
824 frame = self.sender() |
827 # called from QWebFrame.javaScriptWindowObjectCleared |
825 # called from QWebFrame.javaScriptWindowObjectCleared |
828 if isinstance(frame, HelpWebPage): |
826 if isinstance(frame, HelpWebPage): |
829 frame = frame.mainFrame() |
827 frame = frame.mainFrame() |
830 if frame.url().scheme() == "eric" and frame.url().path() == "home": |
828 if frame.url().scheme() == "eric" and frame.url().path() == "home": |
831 if self.__javaScriptEricObject is None: |
829 if self.__javaScriptEricObject is None: |
839 "speeddial", self.__speedDial) |
837 "speeddial", self.__speedDial) |
840 self.__speedDial.addWebFrame(frame) |
838 self.__speedDial.addWebFrame(frame) |
841 else: |
839 else: |
842 # called from QWebPage.frameCreated |
840 # called from QWebPage.frameCreated |
843 frame.javaScriptWindowObjectCleared.connect( |
841 frame.javaScriptWindowObjectCleared.connect( |
844 lambda: self.__addExternalBinding(frame, True)) |
842 self.__addExternalBinding) |
845 frame.addToJavaScriptWindowObject("external", self.__javaScriptBinding) |
843 frame.addToJavaScriptWindowObject("external", self.__javaScriptBinding) |
846 |
844 |
847 def linkedResources(self, relation=""): |
845 def linkedResources(self, relation=""): |
848 """ |
846 """ |
849 Public method to extract linked resources. |
847 Public method to extract linked resources. |