chore: 修复投递链接;新增应用升级判断

fix: 修复投递链接;
chore: 应用详情页支持判断是否需要升级。
This commit is contained in:
忘记、过去 2021-06-29 13:46:26 +08:00
parent 9def55a2c2
commit adf8b478a8
4 changed files with 37 additions and 8 deletions

View File

@ -198,7 +198,7 @@ void Widget::initUI()
menu->addAction(actionSubmission);
titlebar->setMenu(menu);
connect(actionSubmission, &QAction::triggered, this, [=]{QDesktopServices::openUrl(QUrl("https://upload.spark-app.store/"));});
connect(actionSubmission, &QAction::triggered, this, [=]{QDesktopServices::openUrl(QUrl("https://upload.deepinos.org/"));});
connect(setting, &QAction::triggered, this, &Widget::opensetting);
// 载入自定义字体
@ -863,7 +863,7 @@ void Widget::sltAppinfoTags(QStringList *tagList)
void Widget::sltAppinfoDetails(QString *name, QString *details, QString *info,
QString *website, QString *packageName, QUrl *fileUrl,
bool isInstalled)
bool isInstalled, bool isUpdated)
{
ui->label_appname->setText(appName = *name);
ui->label_appname->show();
@ -878,8 +878,16 @@ void Widget::sltAppinfoDetails(QString *name, QString *details, QString *info,
if(isInstalled)
{
ui->pushButton_download->setText(tr("Reinstall"));
ui->pushButton_uninstall->show();
if(isUpdated)
{
ui->pushButton_download->setText(tr("Reinstall"));
ui->pushButton_uninstall->show();
}
else
{
ui->pushButton_download->setText(tr("Upgrade"));
ui->pushButton_uninstall->show();
}
}
else
{

View File

@ -75,8 +75,9 @@ private slots:
void sltAppinfoResetUi();
void sltAppinfoTags(QStringList *tagList);
void sltAppinfoDetails(QString *name, QString *details, QString *info,
QString *website, QString *packageName,
QUrl *fileUrl, bool isInstalled);
QString *website, QString *packageName,
QUrl *fileUrl, bool isInstalled,
bool isUpdated);
void sltAppinfoIcon(QPixmap *icon);
void sltAppinfoScreenshot(QPixmap *picture, int index);
void sltAppinfoFinish();

View File

@ -21,6 +21,7 @@ void SpkAppInfoLoaderThread::run()
qDebug() << "请求应用信息 " << json_array;
QString urladdress, deatils, more, packagename, appweb;
bool isInstalled;
bool isUpdated;
// 将路径转化为相应源的下载路径
urladdress = targetUrl.toString().left(targetUrl.toString().length() - 8);
@ -70,13 +71,31 @@ void SpkAppInfoLoaderThread::run()
if(error == 0)
{
isInstalled = true;
QProcess isUpdate;
isUpdate.start("dpkg-query --showformat='${Version}' --show " + json["Pkgname"].toString());
isUpdate.waitForFinished();
QString localVersion = isUpdate.readAllStandardOutput();
localVersion.replace("'", "");
isUpdate.start("dpkg --compare-versions " + localVersion + " ge " + json["Version"].toString());
isUpdate.waitForFinished();
if(!isUpdate.exitCode())
{
isUpdated = true;
}
else
{
isUpdated = false;
}
}
else
{
isInstalled = false;
isUpdated = false;
}
emit requestSetAppInformation(&appName, &details, &more, &appweb, &packagename, &fileUrl, isInstalled);
emit requestSetAppInformation(&appName, &details, &more, &appweb, &packagename, &fileUrl, isInstalled, isUpdated);
// tag 加载
QString tags = json["Tags"].toString();

View File

@ -40,7 +40,8 @@ signals:
void requestSetTags(QStringList *tagList);
void requestSetAppInformation(QString *name, QString *details, QString *info,
QString *website, QString *packageName,
QUrl *fileUrl, bool isInstalled);
QUrl *fileUrl, bool isInstalled,
bool isUpdated);
void finishedIconLoad(QPixmap *icon);
void finishedScreenshotLoad(QPixmap *icon, int index); // 该信号必须以 BlockingQueued 方式连接
void finishAllLoading(); // 该信号必须以 BlockingQueued 方式连接