WebBrowser/WebBrowserPage.py

branch
QtWebEngine
changeset 4913
e16573640cb8
parent 4910
e97af1181efd
child 4917
682750cc7bd5
equal deleted inserted replaced
4910:e97af1181efd 4913:e16573640cb8
12 try: 12 try:
13 str = unicode # __IGNORE_EXCEPTION__ 13 str = unicode # __IGNORE_EXCEPTION__
14 except NameError: 14 except NameError:
15 pass 15 pass
16 16
17 from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject, QT_TRANSLATE_NOOP, \ 17 from PyQt5.QtCore import QUrl, QTimer, QEventLoop
18 QUrl, QBuffer, QIODevice, QFileInfo, Qt, QTimer, QEvent, \ 18 from PyQt5.QtGui import QDesktopServices
19 QRect, QFile, QPoint, QByteArray, QEventLoop, qVersion
20 from PyQt5.QtGui import QDesktopServices, QClipboard, QMouseEvent, QColor, \
21 QPalette
22 from PyQt5.QtWidgets import qApp, QStyle, QMenu, QApplication, QInputDialog, \
23 QLineEdit, QLabel, QToolTip, QFrame, QDialog
24 from PyQt5.QtPrintSupport import QPrinter, QPrintDialog
25 from PyQt5.QtWebEngineWidgets import QWebEnginePage 19 from PyQt5.QtWebEngineWidgets import QWebEnginePage
26 from PyQt5.QtWebChannel import QWebChannel 20 from PyQt5.QtWebChannel import QWebChannel
27 from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest 21
28 import sip
29
30 from E5Gui import E5MessageBox, E5FileDialog
31
32 import WebBrowser
33 from WebBrowser.WebBrowserWindow import WebBrowserWindow 22 from WebBrowser.WebBrowserWindow import WebBrowserWindow
34 23
35 from .JavaScript.ExternalJsObject import ExternalJsObject 24 from .JavaScript.ExternalJsObject import ExternalJsObject
36 25
37 from .Tools.WebHitTestResult import WebHitTestResult 26 from .Tools.WebHitTestResult import WebHitTestResult
38 from .Tools import Scripts
39 27
40 import Preferences 28 import Preferences
41 import UI.PixmapCache
42 import Globals
43 ##
44 ##try:
45 ## from PyQt5.QtNetwork import QSslCertificate
46 ## SSL_AVAILABLE = True
47 ##except ImportError:
48 ## SSL_AVAILABLE = False
49 29
50 30
51 class WebBrowserPage(QWebEnginePage): 31 class WebBrowserPage(QWebEnginePage):
52 """ 32 """
53 Class implementing an enhanced web page. 33 Class implementing an enhanced web page.
54 """ 34 """
55 ## _webPluginFactory = None
56 ##
57 def __init__(self, parent=None): 35 def __init__(self, parent=None):
58 """ 36 """
59 Constructor 37 Constructor
60 38
61 @param parent parent widget of this window (QWidget) 39 @param parent parent widget of this window (QWidget)
63 super(WebBrowserPage, self).__init__( 41 super(WebBrowserPage, self).__init__(
64 WebBrowserWindow.webProfile(), parent) 42 WebBrowserWindow.webProfile(), parent)
65 43
66 self.__setupWebChannel() 44 self.__setupWebChannel()
67 45
68 ## self.setPluginFactory(self.webPluginFactory())
69 ##
70 ## self.__lastRequest = None
71 ## self.__lastRequestType = QWebPage.NavigationTypeOther
72 ##
73 ## from .Network.NetworkAccessManagerProxy import \
74 ## NetworkAccessManagerProxy
75 ## self.__proxy = NetworkAccessManagerProxy(self)
76 ## self.__proxy.setWebPage(self)
77 ## self.__proxy.setPrimaryNetworkAccessManager(
78 ## WebBrowserWindow.networkManager())
79 ## self.setNetworkAccessManager(self.__proxy)
80 ##
81 ## self.__sslConfiguration = None
82 ## self.__proxy.finished.connect(self.__managerFinished)
83 ##
84 ## self.__adBlockedEntries = []
85 ## self.loadStarted.connect(self.__loadStarted)
86 self.featurePermissionRequested.connect( 46 self.featurePermissionRequested.connect(
87 self.__featurePermissionRequested) 47 self.__featurePermissionRequested)
88 48
89 self.authenticationRequired.connect( 49 self.authenticationRequired.connect(
90 WebBrowserWindow.networkManager().authentication) 50 WebBrowserWindow.networkManager().authentication)
159 if agent == "": 119 if agent == "":
160 # no global agent string specified -> use default one 120 # no global agent string specified -> use default one
161 agent = WebBrowserWindow.webProfile().httpUserAgent() 121 agent = WebBrowserWindow.webProfile().httpUserAgent()
162 return agent 122 return agent
163 123
164 ## @classmethod
165 ## def webPluginFactory(cls):
166 ## """
167 ## Class method to get a reference to the web plug-in factory
168 ## instance.
169 ##
170 ## @return reference to the web plug-in factory instance (WebPluginFactory
171 ## """
172 ## if cls._webPluginFactory is None:
173 ## from .WebPlugins.WebPluginFactory import WebPluginFactory
174 ## cls._webPluginFactory = WebPluginFactory()
175 ##
176 ## return cls._webPluginFactory
177 ##
178 ## def event(self, evt):
179 ## """
180 ## Public method implementing the event handler.
181 ##
182 ## @param evt reference to the event (QEvent)
183 ## @return flag indicating that the event was handled (boolean)
184 ## """
185 ## if evt.type() == QEvent.Leave:
186 ## # Fake a mouse move event just outside of the widget to trigger
187 ## # the WebKit event handler's mouseMoved function. This implements
188 ## # the interesting mouse-out behavior like invalidating scrollbars.
189 ## fakeEvent = QMouseEvent(QEvent.MouseMove, QPoint(0, -1),
190 ## Qt.NoButton, Qt.NoButton, Qt.NoModifier)
191 ## return super(HelpWebPage, self).event(fakeEvent)
192 ##
193 ## return super(HelpWebPage, self).event(evt)
194
195 def __featurePermissionRequested(self, url, feature): 124 def __featurePermissionRequested(self, url, feature):
196 """ 125 """
197 Private slot handling a feature permission request. 126 Private slot handling a feature permission request.
198 127
199 @param url url requesting the feature 128 @param url url requesting the feature

eric ide

mercurial