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 """ |
2206 def __printPage(self): |
2213 def __printPage(self): |
2207 """ |
2214 """ |
2208 Private slot to support printing from the web page. |
2215 Private slot to support printing from the web page. |
2209 """ |
2216 """ |
2210 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 @pyqtSlot("QWebEngineQuotaRequest") |
|
2224 def __quotaRequested(self, quotaRequest): |
|
2225 """ |
|
2226 Private slot to handle quota requests of the web page. |
|
2227 |
|
2228 @param quotaRequest reference to the quota request object |
|
2229 @type QWebEngineQuotaRequest |
|
2230 """ |
|
2231 acceptRequest = Preferences.getWebBrowser("AcceptQuotaRequest") |
|
2232 # yes/no/ask (0, 1, 2) |
|
2233 if acceptRequest == 0: |
|
2234 # always yes |
|
2235 ok = True |
|
2236 elif acceptRequest == 1: |
|
2237 # always no |
|
2238 ok = False |
|
2239 else: |
|
2240 # ask user |
|
2241 from .Download.DownloadUtilities import dataString |
|
2242 sizeStr = dataString(quotaRequest.requestedSize()) |
|
2243 |
|
2244 ok = E5MessageBox.yesNo( |
|
2245 self, |
|
2246 self.tr("Quota Request"), |
|
2247 self.tr("""<p> Allow the website at <b>{0}</b> to use""" |
|
2248 """ <b>{1}</b> of persistent storage?</p>""") |
|
2249 .format(quotaRequest.origin().host(), sizeStr) |
|
2250 ) |
|
2251 |
|
2252 if ok: |
|
2253 quotaRequest.accept() |
|
2254 else: |
|
2255 quotaRequest.reject() |
|
2256 |
|
2257 @pyqtSlot("QWebEngineRegisterProtocolHandlerRequest") |
|
2258 def __registerProtocolHandlerRequested(self, request): |
|
2259 """ |
|
2260 Private slot to handle requests for registration of a protocol handler. |
|
2261 |
|
2262 @param request reference to the protocol handler request object |
|
2263 @type QWebEngineRegisterProtocolHandlerRequest |
|
2264 """ |
|
2265 acceptRequest = Preferences.getWebBrowser( |
|
2266 "AcceptProtocolHandlerRequest") |
|
2267 # yes/no/ask (0, 1, 2) |
|
2268 if acceptRequest == 0: |
|
2269 # always yes |
|
2270 ok = True |
|
2271 elif acceptRequest == 1: |
|
2272 # always no |
|
2273 ok = False |
|
2274 else: |
|
2275 # ask user |
|
2276 ok = E5MessageBox.yesNo( |
|
2277 self, |
|
2278 self.tr("Protocol Handler Request"), |
|
2279 self.tr("""<p> Allow the website at <b>{0}</b> to open all""" |
|
2280 """ <b>{1}</b> links?</p>""") |
|
2281 .format(request.origin().host(), request.scheme()) |
|
2282 ) |
|
2283 |
|
2284 if ok: |
|
2285 request.accept() |
|
2286 else: |
|
2287 request.reject() |