push for now
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
#include "DownloadManager.hpp"
|
||||
|
||||
#include <QDesktopServices>
|
||||
|
||||
namespace chatterino {
|
||||
|
||||
DownloadManager::DownloadManager(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
manager = new QNetworkAccessManager;
|
||||
}
|
||||
|
||||
DownloadManager::~DownloadManager()
|
||||
{
|
||||
manager->deleteLater();
|
||||
}
|
||||
|
||||
void DownloadManager::setFile(QString fileURL, const QString &channelName)
|
||||
{
|
||||
QString filePath = fileURL;
|
||||
QString saveFilePath;
|
||||
QStringList filePathList = filePath.split('/');
|
||||
// QString fileName = filePathList.at(filePathList.count() - 1);
|
||||
saveFilePath = QString(
|
||||
QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) +
|
||||
"2/cache/profileAvatars/twitch/" + channelName + ".png");
|
||||
|
||||
QNetworkRequest request;
|
||||
request.setUrl(QUrl(fileURL));
|
||||
reply = manager->get(request);
|
||||
|
||||
file = new QFile;
|
||||
file->setFileName(saveFilePath);
|
||||
file->open(QIODevice::WriteOnly);
|
||||
|
||||
connect(reply, SIGNAL(downloadProgress(qint64, qint64)), this,
|
||||
SLOT(onDownloadProgress(qint64, qint64)));
|
||||
connect(manager, SIGNAL(finished(QNetworkReply *)), this,
|
||||
SLOT(onFinished(QNetworkReply *)));
|
||||
connect(reply, SIGNAL(readyRead()), this, SLOT(onReadyRead()));
|
||||
connect(reply, SIGNAL(finished()), this, SLOT(onReplyFinished()));
|
||||
}
|
||||
|
||||
void DownloadManager::onDownloadProgress(qint64 bytesRead, qint64 bytesTotal)
|
||||
{
|
||||
qDebug(QString::number(bytesRead).toLatin1() + " - " +
|
||||
QString::number(bytesTotal).toLatin1());
|
||||
}
|
||||
|
||||
void DownloadManager::onFinished(QNetworkReply *reply)
|
||||
{
|
||||
switch (reply->error()) {
|
||||
case QNetworkReply::NoError: {
|
||||
qDebug("file is downloaded successfully.");
|
||||
} break;
|
||||
default: {
|
||||
qDebug(reply->errorString().toLatin1());
|
||||
};
|
||||
}
|
||||
|
||||
if (file->isOpen()) {
|
||||
file->close();
|
||||
file->deleteLater();
|
||||
}
|
||||
emit downloadComplete();
|
||||
}
|
||||
|
||||
void DownloadManager::onReadyRead()
|
||||
{
|
||||
file->write(reply->readAll());
|
||||
}
|
||||
|
||||
void DownloadManager::onReplyFinished()
|
||||
{
|
||||
if (file->isOpen()) {
|
||||
file->close();
|
||||
file->deleteLater();
|
||||
}
|
||||
}
|
||||
} // namespace chatterino
|
||||
Reference in New Issue
Block a user