mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-12-14 21:02:04 +08:00
fix:修复安装成功后显示为下载完成的bug
This commit is contained in:
@@ -14,15 +14,16 @@ AppDelegate::AppDelegate(QObject *parent)
|
|||||||
[this](const QString &packageName, bool success) {
|
[this](const QString &packageName, bool success) {
|
||||||
if (m_downloads.contains(packageName)) {
|
if (m_downloads.contains(packageName)) {
|
||||||
m_downloads[packageName].isDownloading = false;
|
m_downloads[packageName].isDownloading = false;
|
||||||
m_downloads[packageName].isInstalled = true;
|
// 不要提前设置 isInstalled
|
||||||
emit updateDisplay(packageName);
|
emit updateDisplay(packageName);
|
||||||
qDebug() << (success ? "下载完成:" : "下载失败:") << packageName;
|
qDebug() << (success ? "下载完成:" : "下载失败:") << packageName;
|
||||||
if (success) {
|
if (success) {
|
||||||
enqueueInstall(packageName);
|
enqueueInstall(packageName); // 安装完成后再设置 isInstalled
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
connect(m_downloadManager, &DownloadManager::downloadProgress, this,
|
connect(m_downloadManager, &DownloadManager::downloadProgress, this,
|
||||||
[this](const QString &packageName, int progress) {
|
[this](const QString &packageName, int progress) {
|
||||||
if (m_downloads.contains(packageName)) {
|
if (m_downloads.contains(packageName)) {
|
||||||
@@ -277,11 +278,11 @@ void AppDelegate::startNextInstall() {
|
|||||||
qDebug().noquote() << QString::fromLocal8Bit(err);
|
qDebug().noquote() << QString::fromLocal8Bit(err);
|
||||||
});
|
});
|
||||||
connect(m_installProcess, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
|
connect(m_installProcess, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
|
||||||
this, [this, packageName, logFile](int /*exitCode*/, QProcess::ExitStatus /*status*/) {
|
this, [this, packageName, logFile](int exitCode, QProcess::ExitStatus status) {
|
||||||
if (logFile) logFile->close();
|
if (logFile) logFile->close();
|
||||||
// 若未检测到“软件包已安装”,此处兜底
|
|
||||||
if (!m_downloads[packageName].isInstalled) {
|
|
||||||
m_downloads[packageName].isInstalling = false;
|
m_downloads[packageName].isInstalling = false;
|
||||||
|
if (exitCode == 0) {
|
||||||
|
m_downloads[packageName].isInstalled = true; // 安装成功
|
||||||
}
|
}
|
||||||
emit updateDisplay(packageName);
|
emit updateDisplay(packageName);
|
||||||
m_installProcess->deleteLater();
|
m_installProcess->deleteLater();
|
||||||
@@ -289,6 +290,7 @@ void AppDelegate::startNextInstall() {
|
|||||||
m_installingPackage.clear();
|
m_installingPackage.clear();
|
||||||
startNextInstall();
|
startNextInstall();
|
||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// 日志文件无法打开时,仍然要连接原有信号
|
// 日志文件无法打开时,仍然要连接原有信号
|
||||||
connect(m_installProcess, &QProcess::readyReadStandardOutput, this, [this, packageName]() {
|
connect(m_installProcess, &QProcess::readyReadStandardOutput, this, [this, packageName]() {
|
||||||
|
|||||||
Reference in New Issue
Block a user