deep-wine-runner/wine-source/downloadthread.h

41 lines
1.0 KiB
C++

/*
* 重写 QThread 以实现多线程下载功能
*/
#ifndef DOWNLOADTHREAD_H
#define DOWNLOADTHREAD_H
#include <QObject>
#include <QThread>
#include <QProgressDialog>
#include <QListView>
#include <QJsonArray>
class DownloadThread : public QThread // 继承 QThread
{
Q_OBJECT
public:
DownloadThread(QProgressDialog *dialog, QString url, QString save, QString fileName, QListView *view, bool deleteZip, bool unzip, QJsonArray *localList);
void SettingVirtualMachine(QString savePath);
QProgressDialog *dialog;
QString fileUrl;
QString fileSaveName;
QString fileSavePath;
QListView *localView;
QJsonArray *localJsonList;
bool downloadDeleteZip;
bool downloadUnzip;
protected:
void run(); // 核心
void ReadLocalInformation();
signals:
// 防止非主线程刷新控件导致程序退出
void MessageBoxInfo(QString info);
void MessageBoxError(QString info);
void ChangeDialog(QProgressDialog *dialog, int value, int downloadBytes, int totalBytes);
void Finish();
};
#endif // DOWNLOADTHREAD_H