From 3fecd41c4fd7c0fb5bc903ddc2e70b0aa25df53c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9F=9A=E5=AD=90?= Date: Fri, 9 Dec 2022 11:33:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=AE=8C=E6=88=90=E5=90=8E?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=9B=B4=E6=94=B9=E6=8C=89=E9=92=AE=E6=96=87?= =?UTF-8?q?=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/appintopage.cpp | 11 +++++++++-- src/widgets/downloadlistwidget.cpp | 6 ++++++ src/widgets/downloadlistwidget.h | 7 +++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp index 69846dd..2d962b6 100644 --- a/src/pages/appintopage.cpp +++ b/src/pages/appintopage.cpp @@ -43,6 +43,9 @@ void AppIntoPage::clear() void AppIntoPage::setDownloadWidget(DownloadListWidget *w) { dw=w; + connect(w, &DownloadListWidget::downloadFinished, [=]() { + isDownloading(); + }); } void AppIntoPage::openUrl(QUrl url) { @@ -126,7 +129,7 @@ void AppIntoPage::openUrl(QUrl url) } else { - ui->downloadButton->setText(tr("Install")); + ui->downloadButton->setText(tr("Download")); ui->downloadButton->setEnabled(true); ui->downloadButton->show(); } @@ -180,7 +183,7 @@ void AppIntoPage::isDownloading() switch (dw->isDownloading(SparkAPI::getServerUrl()+"store"+spk.path()+"/"+info["Filename"].toString())) { case 3:{ ui->downloadButton->setEnabled(true); - ui->downloadButton->setText(tr("Install")); + ui->downloadButton->setText(tr("Download")); break; } case 1:{ @@ -262,6 +265,10 @@ AppIntoPage::~AppIntoPage() void AppIntoPage::on_downloadButton_clicked() { dw->addItem(info["Name"].toString(),info["Filename"].toString(),info["Pkgname"].toString(),iconpixmap,SparkAPI::getServerUrl()+"store"+spk.path()+"/"+info["Filename"].toString()); + if(ui->downloadButton->text() == tr("Reinstall")) + { + dw->getDIList()[dw->allDownload - 1]->reinstall = true; + } isDownloading(); } diff --git a/src/widgets/downloadlistwidget.cpp b/src/widgets/downloadlistwidget.cpp index 7149e25..079f6e4 100644 --- a/src/widgets/downloadlistwidget.cpp +++ b/src/widgets/downloadlistwidget.cpp @@ -96,6 +96,11 @@ void DownloadListWidget::addItem(QString name,QString fileName,QString pkgName,c } } +QList DownloadListWidget::getDIList() +{ + return downloaditemlist; +} + void DownloadListWidget::startRequest(QUrl url, QString fileName) { ui->listWidget->show(); @@ -117,6 +122,7 @@ void DownloadListWidget::httpFinished() // 完成下载 isBusy = false; downloaditemlist[nowDownload - 1]->readyInstall(); downloaditemlist[nowDownload - 1]->free = true; + emit downloadFinished(); if(nowDownload < allDownload) { diff --git a/src/widgets/downloadlistwidget.h b/src/widgets/downloadlistwidget.h index 0f4766b..6c4b34c 100644 --- a/src/widgets/downloadlistwidget.h +++ b/src/widgets/downloadlistwidget.h @@ -22,13 +22,14 @@ class DownloadListWidget : public DBlurEffectWidget public: void addItem(QString name, QString fileName, QString pkgName, const QPixmap icon, QString downloadurl); int isDownloading(QString url); + int nowDownload = 0; + int allDownload = 0; + QList getDIList(); void m_move(int x, int y); explicit DownloadListWidget(QWidget *parent = nullptr); ~DownloadListWidget(); private: - int nowDownload = 0; - int allDownload = 0; int isdownload = false; bool isBusy = false; QStringList dlist; @@ -51,6 +52,8 @@ private slots: bool eventFilter(QObject *, QEvent *); void mouseMoveEvent(QMouseEvent *event); void on_pushButton_clicked(); +signals: + void downloadFinished(); }; #endif // DOWNLOADLISTWIDGET_H