Add QNetworkRequestFactory::(set)?Priority
To enable setting a default priority for all requests to a given site. Fixes: QTBUG-121669 Change-Id: Icd8a9c59e4afb0432c65f84cc8115ae0c7f85506 Reviewed-by: Juha Vuolle <juha.vuolle@qt.io> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
This commit is contained in:
parent
27383285a1
commit
3b3b2024f9
@ -475,6 +475,37 @@ void QNetworkRequestFactory::clearQueryParameters()
|
||||
d->queryParameters.clear();
|
||||
}
|
||||
|
||||
/*!
|
||||
\since 6.8
|
||||
|
||||
Sets the priority for any future requests created by this factory to
|
||||
\a priority.
|
||||
|
||||
The default priority is \l QNetworkRequest::NormalPriority.
|
||||
|
||||
\sa priority(), QNetworkRequest::setPriority()
|
||||
*/
|
||||
void QNetworkRequestFactory::setPriority(QNetworkRequest::Priority priority)
|
||||
{
|
||||
if (d->priority == priority)
|
||||
return;
|
||||
d.detach();
|
||||
d->priority = priority;
|
||||
}
|
||||
|
||||
/*!
|
||||
\since 6.8
|
||||
|
||||
Returns the priority assigned to any future requests created by this
|
||||
factory.
|
||||
|
||||
\sa setPriority(), QNetworkRequest::priority()
|
||||
*/
|
||||
QNetworkRequest::Priority QNetworkRequestFactory::priority() const
|
||||
{
|
||||
return d->priority;
|
||||
}
|
||||
|
||||
QNetworkRequestFactoryPrivate::QNetworkRequestFactoryPrivate()
|
||||
= default;
|
||||
|
||||
@ -507,6 +538,7 @@ QNetworkRequest QNetworkRequestFactoryPrivate::newRequest(const QUrl &url) const
|
||||
request.setRawHeader("Authorization"_ba, Bearer + bearerToken);
|
||||
|
||||
request.setTransferTimeout(transferTimeout);
|
||||
request.setPriority(priority);
|
||||
return request;
|
||||
}
|
||||
|
||||
|
@ -74,6 +74,9 @@ public:
|
||||
Q_NETWORK_EXPORT void setQueryParameters(const QUrlQuery &query);
|
||||
Q_NETWORK_EXPORT void clearQueryParameters();
|
||||
|
||||
Q_NETWORK_EXPORT void setPriority(QNetworkRequest::Priority priority);
|
||||
Q_NETWORK_EXPORT QNetworkRequest::Priority priority() const;
|
||||
|
||||
private:
|
||||
#ifndef QT_NO_DEBUG_STREAM
|
||||
friend Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QNetworkRequestFactory &reply);
|
||||
|
@ -44,6 +44,7 @@ public:
|
||||
QString userName;
|
||||
QString password;
|
||||
QUrlQuery queryParameters;
|
||||
QNetworkRequest::Priority priority = QNetworkRequest::NormalPriority;
|
||||
std::chrono::milliseconds transferTimeout{0};
|
||||
};
|
||||
|
||||
|
@ -26,6 +26,7 @@ private Q_SLOTS:
|
||||
void operators();
|
||||
void timeout();
|
||||
void userInfo();
|
||||
void priority();
|
||||
|
||||
private:
|
||||
const QUrl url1{u"http://foo.io"_s};
|
||||
@ -354,5 +355,18 @@ void tst_QNetworkRequestFactory::userInfo()
|
||||
QVERIFY(factory.password().isEmpty());
|
||||
}
|
||||
|
||||
void tst_QNetworkRequestFactory::priority()
|
||||
{
|
||||
QNetworkRequestFactory factory(u"http://example.com"_s);
|
||||
QCOMPARE(factory.priority(), QNetworkRequest::NormalPriority);
|
||||
auto request = factory.createRequest("/index.html");
|
||||
QCOMPARE(request.priority(), QNetworkRequest::NormalPriority);
|
||||
|
||||
factory.setPriority(QNetworkRequest::HighPriority);
|
||||
QCOMPARE(factory.priority(), QNetworkRequest::HighPriority);
|
||||
request = factory.createRequest("/index.html");
|
||||
QCOMPARE(request.priority(), QNetworkRequest::HighPriority);
|
||||
}
|
||||
|
||||
QTEST_MAIN(tst_QNetworkRequestFactory)
|
||||
#include "tst_qnetworkrequestfactory.moc"
|
||||
|
Loading…
x
Reference in New Issue
Block a user