diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp index b32f04d..180a955 100644 --- a/src/pages/appintopage.cpp +++ b/src/pages/appintopage.cpp @@ -535,7 +535,27 @@ void AppIntoPage::on_downloadButton_clicked() emit clickedDownloadBtn(); - DownloadItem *item = dw->addItem(info["Name"].toString(), info["Filename"].toString(), info["Pkgname"].toString(), iconpixmap, downloadUrl); + // 处理 tags,设置 installExtraArg + QString installExtraArg; +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + QStringList taglist = info["Tags"].toString().split(";", Qt::SkipEmptyParts); +#else + QStringList taglist = info["Tags"].toString().split(";", QString::SkipEmptyParts); +#endif + if (taglist.contains("native")) { + installExtraArg = "--native"; + } else if (taglist.contains("amber-ce-bookworm")) { + installExtraArg = "--amber-ce-bookworm"; + } else if (taglist.contains("amber-ce-trixie")) { + installExtraArg = "--amber-ce-trixie"; + } else if (taglist.contains("amber-ce-sid")) { + installExtraArg = "--amber-ce-sid"; + } else if (taglist.contains("amber-ce-deepin23")) { + installExtraArg = "--amber-ce-deepin23"; + } + + DownloadItem *item = dw->addItem(info["Name"].toString(), info["Filename"].toString(), info["Pkgname"].toString(), + iconpixmap, downloadUrl, installExtraArg); if (item == nullptr) { return; @@ -551,21 +571,6 @@ void AppIntoPage::on_downloadButton_clicked() Qt::QueuedConnection); isDownloading(downloadUrl); - - // 处理 tags,设置 installExtraArg - QString tags = info["Tags"].toString(); - QStringList taglist = tags.split(";", Qt::SkipEmptyParts); - if (taglist.contains("native")) { - item->installExtraArg = "--native"; - } else if (taglist.contains("amber-ce-bookworm")) { - item->installExtraArg = "--amber-ce-bookworm"; - } else if (taglist.contains("amber-ce-trixie")) { - item->installExtraArg = "--amber-ce-trixie"; - } else if (taglist.contains("amber-ce-sid")) { - item->installExtraArg = "--amber-ce-sid"; - } else if (taglist.contains("amber-ce-deepin23")) { - item->installExtraArg = "--amber-ce-deepin23"; - } } void AppIntoPage::on_pushButton_3_clicked() diff --git a/src/widgets/common/downloaditem.cpp b/src/widgets/common/downloaditem.cpp index d6fd434..03d5451 100644 --- a/src/widgets/common/downloaditem.cpp +++ b/src/widgets/common/downloaditem.cpp @@ -252,8 +252,5 @@ void DownloadItem::slotAsyncInstall(int t) ui->widget_spinner->hide(); DownloadItem::isInstall = false; - installer.deleteLater(); - isInstall.deleteLater(); - emit finished(error == 0 && !haveError && !notRoot); } diff --git a/src/widgets/downloadlistwidget.cpp b/src/widgets/downloadlistwidget.cpp index f253fb6..413477a 100644 --- a/src/widgets/downloadlistwidget.cpp +++ b/src/widgets/downloadlistwidget.cpp @@ -85,7 +85,9 @@ void DownloadListWidget::clearItem() ui->listWidget->clear(); } -DownloadItem* DownloadListWidget::addItem(QString name, QString fileName, QString pkgName, const QPixmap icon, QString downloadurl) +DownloadItem* DownloadListWidget::addItem(QString name, QString fileName, QString pkgName, + const QPixmap icon, QString downloadurl, + const QString &installExtraArg) { if (fileName.isEmpty()) { @@ -104,6 +106,7 @@ DownloadItem* DownloadListWidget::addItem(QString name, QString fileName, QStrin di->setName(name); di->setFileName(fileName); di->pkgName = pkgName; + di->installExtraArg = installExtraArg; di->seticon(icon); QListWidgetItem *pItem = new QListWidgetItem(); pItem->setSizeHint(QSize(240, 56)); // ui 中单个 downloaditem 高度固定 56px(上下 margin 8px,图片固定 48x48) diff --git a/src/widgets/downloadlistwidget.h b/src/widgets/downloadlistwidget.h index 6faebc0..263c160 100644 --- a/src/widgets/downloadlistwidget.h +++ b/src/widgets/downloadlistwidget.h @@ -19,7 +19,9 @@ class DownloadListWidget : public DBlurEffectWidget Q_OBJECT public: - DownloadItem *addItem(QString name, QString fileName, QString pkgName, const QPixmap icon, QString downloadurl); + DownloadItem *addItem(QString name, QString fileName, QString pkgName, + const QPixmap icon, QString downloadurl, + const QString &installExtraArg); int nowDownload = 0; int allDownload = 0; int toDownload = 0;