153 self.setPage(self.__page) |
153 self.setPage(self.__page) |
154 |
154 |
155 self.__page.safeBrowsingAbort.connect(self.safeBrowsingAbort) |
155 self.__page.safeBrowsingAbort.connect(self.safeBrowsingAbort) |
156 self.__page.safeBrowsingBad.connect(self.safeBrowsingBad) |
156 self.__page.safeBrowsingBad.connect(self.safeBrowsingBad) |
157 self.__page.printRequested.connect(self.__printPage) |
157 self.__page.printRequested.connect(self.__printPage) |
|
158 try: |
|
159 self.__page.quotaRequested.connect(self.__quotaRequested) |
|
160 self.__page.registerProtocolHandlerRequested.connect( |
|
161 self.__registerProtocolHandlerRequested) |
|
162 except AttributeError: |
|
163 # pre Qt 5.11 |
|
164 pass |
158 |
165 |
159 def __setRwhvqt(self): |
166 def __setRwhvqt(self): |
160 """ |
167 """ |
161 Private slot to set widget that receives input events. |
168 Private slot to set widget that receives input events. |
162 """ |
169 """ |
542 |
549 |
543 if not hitTest.isContentEditable() and not hitTest.isContentSelected(): |
550 if not hitTest.isContentEditable() and not hitTest.isContentSelected(): |
544 self.__menu.addSeparator() |
551 self.__menu.addSeparator() |
545 self.__menu.addAction(self.__mw.adBlockIcon().menuAction()) |
552 self.__menu.addAction(self.__mw.adBlockIcon().menuAction()) |
546 |
553 |
547 if Preferences.getWebBrowser("WebInspectorEnabled"): |
554 if qVersionTuple() >= (5, 11, 0) or \ |
|
555 Preferences.getWebBrowser("WebInspectorEnabled"): |
548 self.__menu.addSeparator() |
556 self.__menu.addSeparator() |
549 self.__menu.addAction( |
557 self.__menu.addAction( |
550 UI.PixmapCache.getIcon("webInspector.png"), |
558 UI.PixmapCache.getIcon("webInspector.png"), |
551 self.tr("Inspect Element..."), self.__webInspector) |
559 self.tr("Inspect Element..."), self.__webInspector) |
552 |
560 |
2205 def __printPage(self): |
2213 def __printPage(self): |
2206 """ |
2214 """ |
2207 Private slot to support printing from the web page. |
2215 Private slot to support printing from the web page. |
2208 """ |
2216 """ |
2209 self.__mw.tabWidget.printBrowser(browser=self) |
2217 self.__mw.tabWidget.printBrowser(browser=self) |
|
2218 |
|
2219 ########################################################################### |
|
2220 ## Methods below implement slots for Qt 5.11+ |
|
2221 ########################################################################### |
|
2222 |
|
2223 if qVersionTuple() >= (5, 11, 0): |
|
2224 @pyqtSlot("QWebEngineQuotaRequest") |
|
2225 def __quotaRequested(self, quotaRequest): |
|
2226 """ |
|
2227 Private slot to handle quota requests of the web page. |
|
2228 |
|
2229 @param quotaRequest reference to the quota request object |
|
2230 @type QWebEngineQuotaRequest |
|
2231 """ |
|
2232 acceptRequest = Preferences.getWebBrowser("AcceptQuotaRequest") |
|
2233 # yes/no/ask (0, 1, 2) |
|
2234 if acceptRequest == 0: |
|
2235 # always yes |
|
2236 ok = True |
|
2237 elif acceptRequest == 1: |
|
2238 # always no |
|
2239 ok = False |
|
2240 else: |
|
2241 # ask user |
|
2242 from .Download.DownloadUtilities import dataString |
|
2243 sizeStr = dataString(quotaRequest.requestedSize()) |
|
2244 |
|
2245 ok = E5MessageBox.yesNo( |
|
2246 self, |
|
2247 self.tr("Quota Request"), |
|
2248 self.tr("""<p> Allow the website at <b>{0}</b> to use""" |
|
2249 """ <b>{1}</b> of persistent storage?</p>""") |
|
2250 .format(quotaRequest.origin().host(), sizeStr) |
|
2251 ) |
|
2252 |
|
2253 if ok: |
|
2254 quotaRequest.accept() |
|
2255 else: |
|
2256 quotaRequest.reject() |
|
2257 |
|
2258 @pyqtSlot("QWebEngineRegisterProtocolHandlerRequest") |
|
2259 def __registerProtocolHandlerRequested(self, request): |
|
2260 """ |
|
2261 Private slot to handle requests for registration of a protocol handler. |
|
2262 |
|
2263 @param request reference to the protocol handler request object |
|
2264 @type QWebEngineRegisterProtocolHandlerRequest |
|
2265 """ |
|
2266 acceptRequest = Preferences.getWebBrowser( |
|
2267 "AcceptProtocolHandlerRequest") |
|
2268 # yes/no/ask (0, 1, 2) |
|
2269 if acceptRequest == 0: |
|
2270 # always yes |
|
2271 ok = True |
|
2272 elif acceptRequest == 1: |
|
2273 # always no |
|
2274 ok = False |
|
2275 else: |
|
2276 # ask user |
|
2277 ok = E5MessageBox.yesNo( |
|
2278 self, |
|
2279 self.tr("Protocol Handler Request"), |
|
2280 self.tr("""<p> Allow the website at <b>{0}</b> to open all""" |
|
2281 """ <b>{1}</b> links?</p>""") |
|
2282 .format(request.origin().host(), request.scheme()) |
|
2283 ) |
|
2284 |
|
2285 if ok: |
|
2286 request.accept() |
|
2287 else: |
|
2288 request.reject() |