fix: ISSUE #I6B4CS 重复安装应用的bug

应用安装过程中,重新进入应用详情页,仅通过 `dpkg-query -s $pkgName` 判断本地是否已安装,未判断当前安装任务执行状态

Log: 判断本地安装状态后,执行 isDownloading 函数判断安装任务状态,更新按钮显示状态;整理应用详情页代码
This commit is contained in:
zty199
2023-02-01 11:59:16 +08:00
parent 05cb318737
commit 1074e941a6
5 changed files with 279 additions and 230 deletions

View File

@@ -1,52 +1,55 @@
#ifndef APPINTOPAGE_H
#define APPINTOPAGE_H
#include <QWidget>
#include <QUrl>
#include <QString>
#include <QtConcurrent>
#include <QClipboard>
#include "backend/sparkapi.h"
#include "backend/image_show.h"
#include "widgets/downloadlistwidget.h"
#include "utils/utils.h"
#include <QWidget>
#include <QJsonObject>
#include <QUrl>
namespace Ui {
class AppIntoPage;
}
class SparkAPI;
class DownloadListWidget;
class AppIntoPage : public QWidget
{
Q_OBJECT
public:
void clear();
void setDownloadWidget(DownloadListWidget *w);
void setTheme(bool dark);
void openUrl(QUrl url);
explicit AppIntoPage(QWidget *parent = nullptr);
~AppIntoPage();
~AppIntoPage() override;
private slots:
void on_downloadButton_clicked();
void on_pushButton_3_clicked();
void on_shareButton_clicked();
void on_updateButton_clicked();
void openUrl(const QUrl &url);
void clear();
void setTheme(bool dark);
void setDownloadWidget(DownloadListWidget *w);
private:
SparkAPI *api1;
QJsonObject info;
QPixmap iconpixmap;
QUrl spk;
void isDownloading(QUrl url);
void sltAppinfoTags(QStringList *tagList);
DownloadListWidget *dw;
Ui::AppIntoPage *ui;
void initUI();
void initConnections();
void isDownloading(const QUrl &url);
void setAppinfoTags(const QStringList &tagList);
signals:
void clickedDownloadBtn();
private slots:
void on_downloadButton_clicked();
void on_pushButton_3_clicked();
void on_shareButton_clicked();
void on_updateButton_clicked();
private:
Ui::AppIntoPage *ui;
SparkAPI *api;
DownloadListWidget *dw = nullptr;
QJsonObject info;
QPixmap iconpixmap;
QUrl spk;
};
#endif // APPINTOPAGE_H