mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-09-23 03:22:20 +08:00
fix: rarely crash after install finished
in DownloadItem::slotAsyncInstall, QProcess should not be deleteLater since it is not pointer Log: fix rarely crash; move installExtraArg set before download started
This commit is contained in:
parent
8cb92d9972
commit
f08366a3d5
@ -536,7 +536,27 @@ void AppIntoPage::on_downloadButton_clicked()
|
|||||||
|
|
||||||
emit clickedDownloadBtn();
|
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)
|
if (item == nullptr)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -552,21 +572,6 @@ void AppIntoPage::on_downloadButton_clicked()
|
|||||||
Qt::QueuedConnection);
|
Qt::QueuedConnection);
|
||||||
|
|
||||||
isDownloading(downloadUrl);
|
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()
|
void AppIntoPage::on_pushButton_3_clicked()
|
||||||
|
@ -252,8 +252,5 @@ void DownloadItem::slotAsyncInstall(int t)
|
|||||||
ui->widget_spinner->hide();
|
ui->widget_spinner->hide();
|
||||||
DownloadItem::isInstall = false;
|
DownloadItem::isInstall = false;
|
||||||
|
|
||||||
installer.deleteLater();
|
|
||||||
isInstall.deleteLater();
|
|
||||||
|
|
||||||
emit finished(error == 0 && !haveError && !notRoot);
|
emit finished(error == 0 && !haveError && !notRoot);
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,9 @@ void DownloadListWidget::clearItem()
|
|||||||
ui->listWidget->clear();
|
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())
|
if (fileName.isEmpty())
|
||||||
{
|
{
|
||||||
@ -104,6 +106,7 @@ DownloadItem* DownloadListWidget::addItem(QString name, QString fileName, QStrin
|
|||||||
di->setName(name);
|
di->setName(name);
|
||||||
di->setFileName(fileName);
|
di->setFileName(fileName);
|
||||||
di->pkgName = pkgName;
|
di->pkgName = pkgName;
|
||||||
|
di->installExtraArg = installExtraArg;
|
||||||
di->seticon(icon);
|
di->seticon(icon);
|
||||||
QListWidgetItem *pItem = new QListWidgetItem();
|
QListWidgetItem *pItem = new QListWidgetItem();
|
||||||
pItem->setSizeHint(QSize(240, 56)); // ui 中单个 downloaditem 高度固定 56px(上下 margin 8px,图片固定 48x48)
|
pItem->setSizeHint(QSize(240, 56)); // ui 中单个 downloaditem 高度固定 56px(上下 margin 8px,图片固定 48x48)
|
||||||
|
@ -19,7 +19,9 @@ class DownloadListWidget : public DBlurEffectWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
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 nowDownload = 0;
|
||||||
int allDownload = 0;
|
int allDownload = 0;
|
||||||
int toDownload = 0;
|
int toDownload = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user