mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-09-06 03:12:21 +08:00
* update debian/control. * fix: readme * change: 切换到 aria2 * Download: 初步完成对 axel 的适配工作 * README: 英文修正 ubuntu22 的依赖问题 * Merge remote-tracking branch 'upstream/master' * widget: 检查cdn状况在下载开始前检测,不堵塞ui线程 * Merge remote-tracking branch 'upstream/master' * readme: 修正 ubuntu 的编译说明 * download: 检查软件源的有效性
42 lines
856 B
C++
42 lines
856 B
C++
#ifndef DOWNLOADWORKER_H
|
|
#define DOWNLOADWORKER_H
|
|
|
|
#include <QObject>
|
|
#include <QList>
|
|
#include <QFile>
|
|
#include <QNetworkReply>
|
|
|
|
class DownloadController : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit DownloadController(QObject *parent = nullptr);
|
|
|
|
void setFilename(QString filename);
|
|
void startDownload(const QString &url);
|
|
void stopDownload();
|
|
qint64 getFileSize(const QString& url);
|
|
QString replaceDomain(const QString& url, const QString domain);
|
|
|
|
private:
|
|
int threadNum;
|
|
int pidNumber;
|
|
QString filename;
|
|
qint64 fileSize;
|
|
QVector<QPair<qint64, qint64>> ranges;
|
|
QFile *file;
|
|
bool finished = false;
|
|
QVector<QString> domains;
|
|
|
|
|
|
|
|
signals:
|
|
void errorOccur(const QString& msg);
|
|
void downloadProcess(QString, qint64, qint64);
|
|
void downloadFinished();
|
|
|
|
};
|
|
|
|
#endif // FILEDOWNLOADWORKER_H
|