forked from len0rd/rockbox
rbutil: Modernize HttpGet implementation.
- Change signal-slot connections to new style, and fix renamed signal for Qt6. - Make more use of RAII. Change-Id: I14e52eb6bfdbb89bccafb33e4988af25b5d82713
This commit is contained in:
parent
4815a64f93
commit
ba34b0fac3
2 changed files with 25 additions and 21 deletions
|
@ -29,18 +29,18 @@ QDir HttpGet::m_globalCache; //< global cach path value for new objects
|
||||||
QNetworkProxy HttpGet::m_globalProxy;
|
QNetworkProxy HttpGet::m_globalProxy;
|
||||||
|
|
||||||
HttpGet::HttpGet(QObject *parent)
|
HttpGet::HttpGet(QObject *parent)
|
||||||
: QObject(parent)
|
: QObject(parent),
|
||||||
|
m_mgr(this),
|
||||||
|
m_reply(nullptr),
|
||||||
|
m_cache(nullptr),
|
||||||
|
m_cachedir(m_globalCache),
|
||||||
|
m_outputFile(nullptr),
|
||||||
|
m_proxy(QNetworkProxy::NoProxy)
|
||||||
{
|
{
|
||||||
m_mgr = new QNetworkAccessManager(this);
|
|
||||||
m_cache = NULL;
|
|
||||||
m_cachedir = m_globalCache;
|
|
||||||
setCache(true);
|
setCache(true);
|
||||||
connect(m_mgr, SIGNAL(finished(QNetworkReply*)),
|
connect(&m_mgr, &QNetworkAccessManager::finished, this,
|
||||||
this, SLOT(requestFinished(QNetworkReply*)));
|
static_cast<void (HttpGet::*)(QNetworkReply*)>(&HttpGet::requestFinished));
|
||||||
m_outputFile = NULL;
|
|
||||||
m_lastServerTimestamp = QDateTime();
|
m_lastServerTimestamp = QDateTime();
|
||||||
m_proxy = QNetworkProxy::NoProxy;
|
|
||||||
m_reply = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ void HttpGet::setCache(bool c)
|
||||||
// don't delete the old cache directly, it might still be in use. Just
|
// don't delete the old cache directly, it might still be in use. Just
|
||||||
// instruct it to delete itself later.
|
// instruct it to delete itself later.
|
||||||
if(m_cache) m_cache->deleteLater();
|
if(m_cache) m_cache->deleteLater();
|
||||||
m_cache = NULL;
|
m_cache = nullptr;
|
||||||
|
|
||||||
QString path = m_cachedir.absolutePath();
|
QString path = m_cachedir.absolutePath();
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ void HttpGet::setCache(bool c)
|
||||||
m_cache = new QNetworkDiskCache(this);
|
m_cache = new QNetworkDiskCache(this);
|
||||||
m_cache->setCacheDirectory(path);
|
m_cache->setCacheDirectory(path);
|
||||||
}
|
}
|
||||||
m_mgr->setCache(m_cache);
|
m_mgr.setCache(m_cache);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ void HttpGet::setProxy(const QUrl &proxy)
|
||||||
m_proxy.setPort(proxy.port());
|
m_proxy.setPort(proxy.port());
|
||||||
m_proxy.setUser(proxy.userName());
|
m_proxy.setUser(proxy.userName());
|
||||||
m_proxy.setPassword(proxy.password());
|
m_proxy.setPassword(proxy.password());
|
||||||
m_mgr->setProxy(m_proxy);
|
m_mgr.setProxy(m_proxy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,8 +116,8 @@ void HttpGet::setProxy(const QUrl &proxy)
|
||||||
*/
|
*/
|
||||||
void HttpGet::setProxy(bool enable)
|
void HttpGet::setProxy(bool enable)
|
||||||
{
|
{
|
||||||
if(enable) m_mgr->setProxy(m_proxy);
|
if(enable) m_mgr.setProxy(m_proxy);
|
||||||
else m_mgr->setProxy(QNetworkProxy::NoProxy);
|
else m_mgr.setProxy(QNetworkProxy::NoProxy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -185,7 +185,7 @@ void HttpGet::requestFinished(QNetworkReply* reply)
|
||||||
emit done(true);
|
emit done(true);
|
||||||
}
|
}
|
||||||
reply->deleteLater();
|
reply->deleteLater();
|
||||||
m_reply = NULL;
|
m_reply = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -202,11 +202,15 @@ void HttpGet::startRequest(QUrl url)
|
||||||
if(!m_globalUserAgent.isEmpty())
|
if(!m_globalUserAgent.isEmpty())
|
||||||
req.setRawHeader("User-Agent", m_globalUserAgent.toLatin1());
|
req.setRawHeader("User-Agent", m_globalUserAgent.toLatin1());
|
||||||
|
|
||||||
m_reply = m_mgr->get(req);
|
m_reply = m_mgr.get(req);
|
||||||
connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)),
|
#if QT_VERSION < 0x050f00
|
||||||
this, SLOT(networkError(QNetworkReply::NetworkError)));
|
connect(m_reply,
|
||||||
connect(m_reply, SIGNAL(downloadProgress(qint64, qint64)),
|
static_cast<void (QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error),
|
||||||
this, SLOT(downloadProgress(qint64, qint64)));
|
this, &HttpGet::networkError);
|
||||||
|
#else
|
||||||
|
connect(m_reply, &QNetworkReply::errorOccurred, this, &HttpGet::networkError);
|
||||||
|
#endif
|
||||||
|
connect(m_reply, &QNetworkReply::downloadProgress, this, &HttpGet::downloadProgress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ class HttpGet : public QObject
|
||||||
private:
|
private:
|
||||||
static QString m_globalUserAgent;
|
static QString m_globalUserAgent;
|
||||||
static QNetworkProxy m_globalProxy;
|
static QNetworkProxy m_globalProxy;
|
||||||
QNetworkAccessManager *m_mgr;
|
QNetworkAccessManager m_mgr;
|
||||||
QNetworkReply *m_reply;
|
QNetworkReply *m_reply;
|
||||||
QNetworkDiskCache *m_cache;
|
QNetworkDiskCache *m_cache;
|
||||||
QDir m_cachedir;
|
QDir m_cachedir;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue