26 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
26 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
27 |
27 |
28 from .JavaScript.ExternalJsObject import ExternalJsObject |
28 from .JavaScript.ExternalJsObject import ExternalJsObject |
29 |
29 |
30 from .Tools.WebHitTestResult import WebHitTestResult |
30 from .Tools.WebHitTestResult import WebHitTestResult |
|
31 from .Tools import Scripts |
31 |
32 |
32 import Preferences |
33 import Preferences |
33 from Globals import qVersionTuple |
34 from Globals import qVersionTuple |
34 |
35 |
35 |
36 |
80 WebBrowserWindow.networkManager().proxyAuthentication) |
81 WebBrowserWindow.networkManager().proxyAuthentication) |
81 |
82 |
82 self.fullScreenRequested.connect(self.__fullScreenRequested) |
83 self.fullScreenRequested.connect(self.__fullScreenRequested) |
83 |
84 |
84 self.urlChanged.connect(self.__urlChanged) |
85 self.urlChanged.connect(self.__urlChanged) |
|
86 |
|
87 try: |
|
88 self.contentsSizeChanged.connect(self.__contentsSizeChanged) |
|
89 except AttributeError: |
|
90 # defined for Qt >= 5.7 |
|
91 pass |
85 |
92 |
86 self.__printer = None |
93 self.__printer = None |
87 self.__badSite = False |
94 self.__badSite = False |
88 |
95 |
89 if qVersionTuple() >= (5, 10, 0): |
96 if qVersionTuple() >= (5, 10, 0): |
464 self.print(printer, printCallback) |
471 self.print(printer, printCallback) |
465 |
472 |
466 loop.exec_() |
473 loop.exec_() |
467 return resultDict["res"] |
474 return resultDict["res"] |
468 |
475 |
|
476 def __contentsSizeChanged(self, size): |
|
477 """ |
|
478 Private slot to work around QWebEnginePage not scrolling to anchors |
|
479 when opened in a background tab. |
|
480 |
|
481 @param size changed contents size (unused) |
|
482 @type QSize |
|
483 """ |
|
484 fragment = self.url().fragment() |
|
485 self.runJavaScript(Scripts.scrollToAnchor(fragment)) |
|
486 |
469 ############################################## |
487 ############################################## |
470 ## Methods below deal with JavaScript messages |
488 ## Methods below deal with JavaScript messages |
471 ############################################## |
489 ############################################## |
472 |
490 |
473 def javaScriptConsoleMessage(self, level, message, lineNumber, sourceId): |
491 def javaScriptConsoleMessage(self, level, message, lineNumber, sourceId): |