From 6c606806a18f10fb6f41304a81fbefb59cae329d Mon Sep 17 00:00:00 2001
From: zty199 <46324746+zty199@users.noreply.github.com>
Date: Fri, 29 Mar 2024 22:13:35 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=BD=AF=E4=BB=B6?=
 =?UTF-8?q?=E5=8C=85=E5=AE=89=E8=A3=85=E7=8A=B6=E6=80=81=E5=88=A4=E6=96=AD?=
 =?UTF-8?q?=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

check-is-installed 脚本判断软件包是否安装,仅根据执行结果返回;原始逻辑根据返回错误输出进行判断,错误输出为空会造成误判

Log: 修改 QProcess 执行结果判断逻辑,根据 QProcess::exitCode 和 QProcess::exitStatus 判断
---
 src/pages/appintopage.cpp | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp
index 1173913..1452d8f 100644
--- a/src/pages/appintopage.cpp
+++ b/src/pages/appintopage.cpp
@@ -133,11 +133,15 @@ void AppIntoPage::openUrl(const QUrl &url)
             bool isInstalled;
             bool isUpdated;
             QString packagename = info["Pkgname"].toString();
-            isInstall.start("/opt/durapps/spark-store/bin/store-helper/check-is-installed", QStringList() <<  info["Pkgname"].toString());
+            isInstall.start("/opt/durapps/spark-store/bin/store-helper/check-is-installed", QStringList() << info["Pkgname"].toString());
             qDebug() << info["Pkgname"].toString();
             isInstall.waitForFinished(180 * 1000); // 默认超时 3 分钟
-            int error = QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
-            if (error == 0)
+
+            int exitCode = isInstall.exitCode();
+            QProcess::ExitStatus exitStatus = isInstall.exitStatus();
+            isInstall.close();
+
+            if (exitCode == 0 && exitStatus == QProcess::NormalExit)
             {
                 isInstalled = true;
 
@@ -158,6 +162,7 @@ void AppIntoPage::openUrl(const QUrl &url)
                 {
                     isUpdated = false;
                 }
+                isUpdate.close();
             }
             else
             {