[Qt] Connect to finished() and error() signals from QNetworkReply
Qt macOS network manage implementation differs from linux in a sense that some requests do not generate a finished() signal, but a error() instead - that is not caught up by the network access manager. This made QMapboxGL.styleURL utest hang for macOS.
This commit is contained in:
committed by
Thiago Marcos P. Santos
parent
4ef66f36d4
commit
55c4bb98d7
@@ -34,8 +34,6 @@ HTTPFileSource::Impl::Impl() : m_manager(new QNetworkAccessManager(this))
|
||||
if (m_ssl.caCertificates().isEmpty()) {
|
||||
mbgl::Log::Warning(mbgl::Event::HttpRequest, "Could not load list of certificate authorities");
|
||||
}
|
||||
|
||||
connect(m_manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinish(QNetworkReply*)));
|
||||
}
|
||||
|
||||
void HTTPFileSource::Impl::request(HTTPRequest* req)
|
||||
@@ -54,6 +52,8 @@ void HTTPFileSource::Impl::request(HTTPRequest* req)
|
||||
networkRequest.setSslConfiguration(m_ssl);
|
||||
|
||||
data.first = m_manager->get(networkRequest);
|
||||
connect(data.first, SIGNAL(finished()), this, SLOT(onReplyFinished()));
|
||||
connect(data.first, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onReplyFinished()));
|
||||
}
|
||||
|
||||
void HTTPFileSource::Impl::cancel(HTTPRequest* req)
|
||||
@@ -90,9 +90,10 @@ void HTTPFileSource::Impl::cancel(HTTPRequest* req)
|
||||
}
|
||||
}
|
||||
|
||||
void HTTPFileSource::Impl::replyFinish(QNetworkReply* reply)
|
||||
void HTTPFileSource::Impl::onReplyFinished()
|
||||
{
|
||||
const QUrl& url = reply->request().url();
|
||||
QNetworkReply* reply = qobject_cast<QNetworkReply *>(sender());
|
||||
const QUrl& url = reply->url();
|
||||
|
||||
auto it = m_pending.find(url);
|
||||
if (it == m_pending.end()) {
|
||||
|
||||
@@ -28,7 +28,7 @@ public:
|
||||
void cancel(HTTPRequest *);
|
||||
|
||||
public slots:
|
||||
void replyFinish(QNetworkReply *);
|
||||
void onReplyFinished();
|
||||
|
||||
private:
|
||||
QMap<QUrl, QPair<QNetworkReply *, QVector<HTTPRequest *>>> m_pending;
|
||||
|
||||
Reference in New Issue
Block a user