Disable messagehandler workaround on recent enough PyQt versions

This commit is contained in:
Florian Bruhin 2014-06-27 16:57:39 +02:00
parent c6ad5622b4
commit 07e799acff

View File

@ -19,7 +19,7 @@
"""Our own QNetworkAccessManager.""" """Our own QNetworkAccessManager."""
from PyQt5.QtCore import pyqtSlot from PyQt5.QtCore import pyqtSlot, PYQT_VERSION
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkReply from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkReply
try: try:
@ -142,17 +142,17 @@ class NetworkManager(QNetworkAccessManager):
if accept_language is not None: if accept_language is not None:
req.setRawHeader('Accept-Language'.encode('ascii'), req.setRawHeader('Accept-Language'.encode('ascii'),
accept_language.encode('ascii')) accept_language.encode('ascii'))
with log.disable_qt_msghandler(): if PYQT_VERSION < 0x050301:
# If we don't disable our message handler, we get a freeze on # If we don't disable our message handler, we get a freeze if a
# http://ch.mouser.com/localsites/ when clicking on a currency. # warning is printed due to a PyQt bug, e.g. when clicking a
# currency on http://ch.mouser.com/localsites/
# #
# FIXME: Open questions: # See http://www.riverbankcomputing.com/pipermail/pyqt/2014-June/034420.html
# #
# - Shouldn't QtWebPage set the content-type correctly by # FIXME: Check if this is really fixed in 5.3.1.
# itself? with log.disable_qt_msghandler():
# reply = super().createRequest(op, req, outgoing_data)
# - Why does Qt freeze if we don't disable our message else:
# handler?
reply = super().createRequest(op, req, outgoing_data) reply = super().createRequest(op, req, outgoing_data)
self._requests.append(reply) self._requests.append(reply)
reply.destroyed.connect(lambda obj: self._requests.remove(obj)) reply.destroyed.connect(lambda obj: self._requests.remove(obj))