Files
spark-store/src/widgets/downloadlistwidget.h
zty199 b99225bd3c fix: 修复安装不成功时,关闭主窗口会直接退出,且重启后没有记录的问题
由于安装操作在线程中异步执行,原始逻辑中仅判断下载完成后就检测是否还有后续任务,存在安装未结束就退出的情况

Log: 调整判断后续下载任务位置到槽函数中,每个任务安装完成结果信号触发后优先判断安装是否成功,再判断是否需要退出
2023-03-04 22:42:08 +08:00

67 lines
1.6 KiB
C++

#ifndef DOWNLOADLISTWIDGET_H
#define DOWNLOADLISTWIDGET_H
#include <DBlurEffectWidget>
#include <QWidget>
#include <QTimer>
namespace Ui {
class DownloadListWidget;
}
DWIDGET_USE_NAMESPACE
class DownloadItem;
class DownloadController;
class DownloadListWidget : public DBlurEffectWidget
{
Q_OBJECT
public:
DownloadItem *addItem(QString name, QString fileName, QString pkgName, const QPixmap icon, QString downloadurl);
int nowDownload = 0;
int allDownload = 0;
int toDownload = 0;
QList<DownloadItem *> getDIList();
QList<QUrl> getUrlList();
void m_move(int x, int y);
explicit DownloadListWidget(QWidget *parent = nullptr);
~DownloadListWidget() override;
bool isDownloadInProcess();
protected:
void mouseMoveEvent(QMouseEvent *event) override;
private:
int isdownload = false;
bool isBusy = false;
QStringList dlist;
QList<QUrl> urList;
QList<DownloadItem *> downloaditemlist;
DownloadController *downloadController = nullptr;
int nowdownload = 0;
QString theSpeed;
QTimer download_speed;
long download_size = 0;
long size1 = 0;
long size2 = 0;
void startRequest(QUrl url, QString fileName);
void httpFinished();
void updateDataReadProgress(QString speedInfo, qint64 bytesRead, qint64 totalBytes);
void clearItem();
QRect m_rect;
Ui::DownloadListWidget *ui;
signals:
void downloadFinished();
void downloadProgress(int i);
private slots:
void on_pushButton_clicked();
void slotInstallFinished(bool success);
};
#endif // DOWNLOADLISTWIDGET_H