sync: Support launch app

Signed-off-by: shenmo <jifengshenmo@outlook.com>
This commit is contained in:
shenmo 2025-01-26 04:53:46 +00:00 committed by Gitee
parent 9c5b6549ff
commit 99db2c4ab9
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -73,6 +73,7 @@ void AppIntoPage::openUrl(const QUrl &url)
iconRequest.setUrl(QUrl(pkgUrlBase + "/icon.png"));
iconRequest.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent);
iconRequest.setHeader(QNetworkRequest::ContentTypeHeader, "charset='utf-8'");
iconRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
iconManager->get(iconRequest);
QObject::connect(iconManager, &QNetworkAccessManager::finished, [=](QNetworkReply *reply)
@ -96,6 +97,7 @@ void AppIntoPage::openUrl(const QUrl &url)
request.setUrl(QUrl(imgUrl));
request.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent);
request.setHeader(QNetworkRequest::ContentTypeHeader, "charset='utf-8'");
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
manager->get(request);
QObject::connect(manager, &QNetworkAccessManager::finished, [=](QNetworkReply *reply)
{
@ -178,7 +180,19 @@ void AppIntoPage::openUrl(const QUrl &url)
{
if (isUpdated)
{
ui->downloadButton->setText(tr("Reinstall"));
QProcess process;
QStringList arguments;
arguments << "check" << info["Pkgname"].toString();
process.start("/opt/durapps/spark-store/bin/store-helper/ss-launcher", arguments);
if (process.waitForFinished()) {
exitCode = process.exitCode();
exitStatus = process.exitStatus();
if (exitCode != 0){
ui->downloadButton->setText(tr("Reinstall"));
}else{
ui->downloadButton->setText(tr("Launch"));
}
}
ui->downloadButton->setEnabled(true);
ui->downloadButton->show();
ui->pushButton_3->show();
@ -355,14 +369,25 @@ void AppIntoPage::isDownloading(const QUrl &url)
int exitCode = process.exitCode();
QProcess::ExitStatus exitStatus = process.exitStatus();
process.close();
if (exitCode == 0 && exitStatus == QProcess::NormalExit)
{
QStringList arguments;
arguments << "check" << info["Pkgname"].toString();
process.start("/opt/durapps/spark-store/bin/store-helper/ss-launcher", arguments);
if (process.waitForFinished()) {
exitCode = process.exitCode();
exitStatus = process.exitStatus();
if (exitCode != 0){
ui->downloadButton->setText(tr("Reinstall"));
}else{
ui->downloadButton->setText(tr("Launch"));
}
}
ui->downloadButton->setEnabled(true);
ui->downloadButton->setText(tr("Reinstall"));
ui->downloadButton->show();
ui->pushButton_3->show();
process.close();
}
else
{
@ -496,6 +521,15 @@ void AppIntoPage::on_downloadButton_clicked()
return;
}
else if (ui->downloadButton->text() == tr("Launch"))
{
QString scriptPath = "/opt/durapps/spark-store/bin/store-helper/ss-launcher";
QStringList arguments;
arguments << "launch" << info["Pkgname"].toString();
QProcess process;
process.startDetached(scriptPath, arguments);
return;
}
emit clickedDownloadBtn();
@ -504,7 +538,6 @@ void AppIntoPage::on_downloadButton_clicked()
{
return;
}
if (ui->downloadButton->text() == tr("Reinstall"))
{
item->reinstall = true;