Use sip.assign for QAuthenticator if available

Fixes #2171
This commit is contained in:
Florian Bruhin 2017-02-05 12:39:28 +01:00
parent b40a1bfb83
commit 112e4a1dad

View File

@ -24,8 +24,10 @@
import functools
import sip
from PyQt5.QtCore import pyqtSlot, Qt, QEvent, QPoint, QUrl, QTimer
from PyQt5.QtGui import QKeyEvent, QIcon
from PyQt5.QtNetwork import QAuthenticator
# pylint: disable=no-name-in-module,import-error,useless-suppression
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import (QWebEnginePage, QWebEngineScript,
@ -619,14 +621,17 @@ class WebEngineTab(browsertab.AbstractTab):
url, authenticator, abort_on=[self.shutting_down,
self.load_started])
if answer is None:
# WORKAROUND for
# https://www.riverbankcomputing.com/pipermail/pyqt/2016-December/038400.html
url_string = url.toDisplayString()
error_page = jinja.render(
'error.html',
title="Error loading page: {}".format(url_string),
url=url_string, error="Authentication required", icon='')
self.set_html(error_page)
try:
sip.assign(authenticator, QAuthenticator())
except NameError:
# WORKAROUND for
# https://www.riverbankcomputing.com/pipermail/pyqt/2016-December/038400.html
url_string = url.toDisplayString()
error_page = jinja.render(
'error.html',
title="Error loading page: {}".format(url_string),
url=url_string, error="Authentication required", icon='')
self.set_html(error_page)
def _connect_signals(self):
view = self._widget