src/eric7/WebBrowser/WebBrowserView.py

branch
eric7
changeset 9350
8d2b507f8588
parent 9221
bf71ee032bb4
child 9351
b5f360405f12
equal deleted inserted replaced
9349:df34d520c63b 9350:8d2b507f8588
183 183
184 self.__page.safeBrowsingAbort.connect(self.safeBrowsingAbort) 184 self.__page.safeBrowsingAbort.connect(self.safeBrowsingAbort)
185 self.__page.safeBrowsingBad.connect(self.safeBrowsingBad) 185 self.__page.safeBrowsingBad.connect(self.safeBrowsingBad)
186 self.__page.printPageRequested.connect(self.__printPage) 186 self.__page.printPageRequested.connect(self.__printPage)
187 self.__page.quotaRequested.connect(self.__quotaRequested) 187 self.__page.quotaRequested.connect(self.__quotaRequested)
188 with contextlib.suppress(AttributeError):
189 # Qt 6.4+
190 self.__page.fileSystemAccessRequested.connect(
191 self.__fileSystemAccessRequested
192 )
188 # The registerProtocolHandlerRequested signal is handled in 193 # The registerProtocolHandlerRequested signal is handled in
189 # WebBrowserPage. 194 # WebBrowserPage.
190 self.__page.selectClientCertificate.connect(self.__selectClientCertificate) 195 self.__page.selectClientCertificate.connect(self.__selectClientCertificate)
191 self.__page.findTextFinished.connect(self.__findTextFinished) 196 self.__page.findTextFinished.connect(self.__findTextFinished)
192 197
2370 2375
2371 if certificate is None: 2376 if certificate is None:
2372 clientCertificateSelection.selectNone() 2377 clientCertificateSelection.selectNone()
2373 else: 2378 else:
2374 clientCertificateSelection.select(certificate) 2379 clientCertificateSelection.select(certificate)
2380
2381 ###########################################################################
2382 ## Methods below implement slots for Qt 6.4+
2383 ###########################################################################
2384
2385 @pyqtSlot("QWebEngineFileSystemAccessRequest")
2386 def __fileSystemAccessRequested(self, accessRequest):
2387 """
2388 Private slot to handle file system access requests of the web page.
2389
2390 @param accessRequest reference to the file system access request object
2391 @type QWebEngineFileSystemAccessRequest
2392 """
2393 from PyQt6.QtWebEngineCore import QWebEngineFileSystemAccessRequest
2394
2395 acceptRequest = Preferences.getWebBrowser("AcceptFileSystemAccessRequest")
2396 # map yes/no/ask from (0, 1, 2)
2397 if acceptRequest == 0:
2398 # always yes
2399 ok = True
2400 elif acceptRequest == 1:
2401 # always no
2402 ok = False
2403 else:
2404 # ask user
2405 if (
2406 accessRequest.accessFlags()
2407 == QWebEngineFileSystemAccessRequest.AccessFlag.Read
2408 ):
2409 msgTemplate = self.tr(
2410 "<p>Grant the web site at <b>{0}</b> <b>Read</b> access"
2411 " to '{0}'?</p>"
2412 )
2413 elif (
2414 accessRequest.accessFlags()
2415 == QWebEngineFileSystemAccessRequest.AccessFlag.Write
2416 ):
2417 msgTemplate = self.tr(
2418 "<p>Grant the web site at <b>{0}</b> <b>Write</b> access"
2419 " to '{0}'?</p>"
2420 )
2421 else:
2422 msgTemplate = self.tr(
2423 "<p>Grant the web site at <b>{0}</b> <b>Read and Write</b> access"
2424 " to '{0}'?</p>"
2425 )
2426
2427 ok = EricMessageBox.yesNo(
2428 self,
2429 self.tr("File System Access Request"),
2430 msgTemplate.format(
2431 accessRequest.origin().host(),
2432 accessRequest.filePath().toLocalFile(),
2433 ),
2434 )
2435
2436 if ok:
2437 accessRequest.accept()
2438 else:
2439 accessRequest.reject()

eric ide

mercurial