Clean up QWebPage::extension handling.

This commit is contained in:
Florian Bruhin 2014-10-25 23:59:09 +02:00
parent c79c1f950a
commit 4c78b611eb

View File

@ -21,7 +21,6 @@
import functools import functools
import sip
from PyQt5.QtCore import pyqtSignal, pyqtSlot, PYQT_VERSION, Qt, QUrl from PyQt5.QtCore import pyqtSignal, pyqtSlot, PYQT_VERSION, Qt, QUrl
from PyQt5.QtGui import QDesktopServices from PyQt5.QtGui import QDesktopServices
from PyQt5.QtNetwork import QNetworkReply from PyQt5.QtNetwork import QNetworkReply
@ -79,16 +78,16 @@ class BrowserPage(QWebPage):
else: else:
return (True, answer) return (True, answer)
def _handle_errorpage(self, opt, out): def _handle_errorpage(self, info, errpage):
"""Display an error page if needed. """Display an error page if needed.
Loosly based on Helpviewer/HelpBrowserWV.py from eric5 Loosly based on Helpviewer/HelpBrowserWV.py from eric5
(line 260 @ 5d937eb378dd) (line 260 @ 5d937eb378dd)
Args: Args:
opt: The QWebPage.ErrorPageExtensionOption instance. info: The QWebPage.ErrorPageExtensionOption instance.
out: The QWebPage.ErrorPageExtensionReturn instance to write return errpage: The QWebPage.ErrorPageExtensionReturn instance, where the
values to. error page will get written to.
Return: Return:
False if no error page should be displayed, True otherwise. False if no error page should be displayed, True otherwise.
@ -97,8 +96,6 @@ class BrowserPage(QWebPage):
(QWebPage.QtNetwork, QNetworkReply.OperationCanceledError), (QWebPage.QtNetwork, QNetworkReply.OperationCanceledError),
(QWebPage.WebKit, 203), # "Loading is handled by the media engine" (QWebPage.WebKit, 203), # "Loading is handled by the media engine"
] ]
info = sip.cast(opt, QWebPage.ErrorPageExtensionOption)
errpage = sip.cast(out, QWebPage.ErrorPageExtensionReturn)
errpage.baseUrl = info.url errpage.baseUrl = info.url
urlstr = info.url.toDisplayString() urlstr = info.url.toDisplayString()
if (info.domain, info.error) == (QWebPage.QtNetwork, if (info.domain, info.error) == (QWebPage.QtNetwork,
@ -119,6 +116,7 @@ class BrowserPage(QWebPage):
urlstr, info.errorString, info.domain, urlstr, info.errorString, info.domain,
info.error)) info.error))
return False return False
else:
log.webview.error("Error while loading {}: {}".format( log.webview.error("Error while loading {}: {}".format(
urlstr, info.errorString)) urlstr, info.errorString))
log.webview.debug("Error domain: {}, error code: {}".format( log.webview.debug("Error domain: {}, error code: {}".format(
@ -131,24 +129,19 @@ class BrowserPage(QWebPage):
errpage.encoding = 'utf-8' errpage.encoding = 'utf-8'
return True return True
def _handle_multiple_files(self, opt, files): def _handle_multiple_files(self, info, files):
"""Handle uploading of multiple files. """Handle uploading of multiple files.
Loosly based on Helpviewer/HelpBrowserWV.py from eric5. Loosly based on Helpviewer/HelpBrowserWV.py from eric5.
Args: Args:
opt: The ChooseMultipleFilesExtensionOption instance. info: The ChooseMultipleFilesExtensionOption instance.
files: The ChooseMultipleFilesExtensionReturn instance to write files: The ChooseMultipleFilesExtensionReturn instance to write
return values to. return values to.
Return: Return:
True on success, the superclass return value on failure. True on success, the superclass return value on failure.
""" """
info = sip.cast(opt, QWebPage.ChooseMultipleFilesExtensionOption)
files = sip.cast(files, QWebPage.ChooseMultipleFilesExtensionReturn)
if info is None or files is None:
return super().extension(QWebPage.ChooseMultipleFilesExtension,
opt, files)
suggested_file = "" suggested_file = ""
if opt.suggestedFileNames: if opt.suggestedFileNames:
suggested_file = opt.suggestedFileNames[0] suggested_file = opt.suggestedFileNames[0]