1
0
Fork 0
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:
Dominik Riebeling 2020-11-07 12:47:48 +01:00
parent 4815a64f93
commit ba34b0fac3
2 changed files with 25 additions and 21 deletions

View file

@ -29,18 +29,18 @@ QDir HttpGet::m_globalCache; //< global cach path value for new objects
QNetworkProxy HttpGet::m_globalProxy;
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);
connect(m_mgr, SIGNAL(finished(QNetworkReply*)),
this, SLOT(requestFinished(QNetworkReply*)));
m_outputFile = NULL;
connect(&m_mgr, &QNetworkAccessManager::finished, this,
static_cast<void (HttpGet::*)(QNetworkReply*)>(&HttpGet::requestFinished));
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
// instruct it to delete itself later.
if(m_cache) m_cache->deleteLater();
m_cache = NULL;
m_cache = nullptr;
QString path = m_cachedir.absolutePath();
@ -83,7 +83,7 @@ void HttpGet::setCache(bool c)
m_cache = new QNetworkDiskCache(this);
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.setUser(proxy.userName());
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)
{
if(enable) m_mgr->setProxy(m_proxy);
else m_mgr->setProxy(QNetworkProxy::NoProxy);
if(enable) m_mgr.setProxy(m_proxy);
else m_mgr.setProxy(QNetworkProxy::NoProxy);
}
@ -185,7 +185,7 @@ void HttpGet::requestFinished(QNetworkReply* reply)
emit done(true);
}
reply->deleteLater();
m_reply = NULL;
m_reply = nullptr;
}
@ -202,11 +202,15 @@ void HttpGet::startRequest(QUrl url)
if(!m_globalUserAgent.isEmpty())
req.setRawHeader("User-Agent", m_globalUserAgent.toLatin1());
m_reply = m_mgr->get(req);
connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)),
this, SLOT(networkError(QNetworkReply::NetworkError)));
connect(m_reply, SIGNAL(downloadProgress(qint64, qint64)),
this, SLOT(downloadProgress(qint64, qint64)));
m_reply = m_mgr.get(req);
#if QT_VERSION < 0x050f00
connect(m_reply,
static_cast<void (QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error),
this, &HttpGet::networkError);
#else
connect(m_reply, &QNetworkReply::errorOccurred, this, &HttpGet::networkError);
#endif
connect(m_reply, &QNetworkReply::downloadProgress, this, &HttpGet::downloadProgress);
}

View file

@ -92,7 +92,7 @@ class HttpGet : public QObject
private:
static QString m_globalUserAgent;
static QNetworkProxy m_globalProxy;
QNetworkAccessManager *m_mgr;
QNetworkAccessManager m_mgr;
QNetworkReply *m_reply;
QNetworkDiskCache *m_cache;
QDir m_cachedir;