fix: 修复一些bug

This commit is contained in:
uniartisan 2022-12-10 13:22:54 +08:00
parent 5cc34e7e3d
commit 67c0cbf27b
4 changed files with 25 additions and 18 deletions

View File

@ -12,7 +12,7 @@ void SparkAPI::get(QUrl url)
{ {
QNetworkRequest request; QNetworkRequest request;
HttpRequest *httprequest=new HttpRequest; HttpRequest *httprequest=new HttpRequest;
request.setUrl(url); request.setUrl(QUrl(url.toString().replace("+","%2B")));
connect(httprequest,&HttpRequest::finished,[=](QString data){ connect(httprequest,&HttpRequest::finished,[=](QString data){
QByteArray arr = data.toUtf8(); QByteArray arr = data.toUtf8();
//解析Json //解析Json
@ -40,7 +40,7 @@ void SparkAPI::getSearchList(QString keyword)
} }
void SparkAPI::getAppInfo(QUrl spk) void SparkAPI::getAppInfo(QUrl spk)
{ {
get(QUrl(getServerUrl()+"store"+spk.path() + "/app.json")); get(QUrl(getServerUrl()+"store"+spk.path().replace("+","%2B") + "/app.json"));
} }
QString SparkAPI::getServerUrl() QString SparkAPI::getServerUrl()
{ {

View File

@ -5,6 +5,11 @@
#include <DGuiApplicationHelper> #include <DGuiApplicationHelper>
#include <QSizePolicy> #include <QSizePolicy>
#define AppPageApplist 0
#define AppPageSearchlist 1
#define AppPageAppdetail 2
#define AppPageSettings 3
MainWindow::MainWindow(QWidget *parent) MainWindow::MainWindow(QWidget *parent)
: DBlurEffectWidget(parent) : DBlurEffectWidget(parent)
, ui(new Ui::MainWindow) , ui(new Ui::MainWindow)
@ -42,7 +47,7 @@ MainWindow::MainWindow(QWidget *parent)
menu->addAction(setting); menu->addAction(setting);
ui->titlebar->setMenu(menu); ui->titlebar->setMenu(menu);
connect(setting, &QAction::triggered, this, [=]{switchPage(3);}); connect(setting, &QAction::triggered, this, [=]{switchPage(AppPageSettings);});
//主题切换 //主题切换
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [=](DGuiApplicationHelper::ColorType themeType) { connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [=](DGuiApplicationHelper::ColorType themeType) {
if (themeType == DGuiApplicationHelper::DarkType) { if (themeType == DGuiApplicationHelper::DarkType) {
@ -155,7 +160,7 @@ MainWindow::MainWindow(QWidget *parent)
searchEdit->clearEdit(); searchEdit->clearEdit();
} else { } else {
ui->applistpage_1->getSearchList(searchtext); ui->applistpage_1->getSearchList(searchtext);
switchPage(1); switchPage(AppPageSearchlist);
searchEdit->clearEdit(); searchEdit->clearEdit();
} }
} }
@ -183,10 +188,10 @@ MainWindow::~MainWindow()
void MainWindow::openUrl(QUrl url) void MainWindow::openUrl(QUrl url)
{ {
if (url.toString().startsWith("spk://")) { if (url.toString().startsWith("spk://")) {
ui->appintopage->openUrl(url); ui->appintopage->openUrl(QUrl(url.toString().replace("+","%2B")));
switchPage(2); switchPage(AppPageAppdetail);
} else { } else {
QDesktopServices::openUrl(url); QDesktopServices::openUrl(QUrl(url.toString().replace("+","%2B")));
} }
} }
@ -229,5 +234,5 @@ void MainWindow::updateUi(int now)
<< "others"; << "others";
ui->applistpage->getAppList(itemlist[now]); ui->applistpage->getAppList(itemlist[now]);
qDebug() << itemlist[now]; qDebug() << itemlist[now];
switchPage(0); switchPage(AppPageApplist);
} }

View File

@ -54,12 +54,13 @@ void AppIntoPage::openUrl(QUrl url)
connect(api,&SparkAPI::finishedObject,[=](QJsonObject appinfo){ connect(api,&SparkAPI::finishedObject,[=](QJsonObject appinfo){
info = appinfo; info = appinfo;
qDebug()<<url; // qDebug()<<url;
//获取图标 //获取图标
QNetworkAccessManager *naManager; QNetworkAccessManager *naManager;
QNetworkRequest request; QNetworkRequest request;
naManager=new QNetworkAccessManager(this); naManager=new QNetworkAccessManager(this);
request.setUrl(QUrl(api->getImgServerUrl()+"store"+url.path() + "/icon.png")); qDebug()<<api->getImgServerUrl()+"store"+url.path().replace("+","%2B") + "/icon.png";
request.setUrl(QUrl(api->getImgServerUrl()+"store"+url.path().replace("+","%2B") + "/icon.png"));
request.setRawHeader("User-Agent", "Mozilla/5.0"); request.setRawHeader("User-Agent", "Mozilla/5.0");
request.setRawHeader("Content-Type", "charset='utf-8'"); request.setRawHeader("Content-Type", "charset='utf-8'");
naManager->get(request); naManager->get(request);
@ -84,8 +85,9 @@ void AppIntoPage::openUrl(QUrl url)
bool isInstalled; bool isInstalled;
bool isUpdated; bool isUpdated;
QString packagename = info["Pkgname"].toString(); QString packagename = info["Pkgname"].toString();
isInstall.start("dpkg -s " + info["Pkgname"].toString()); isInstall.start("dpkg -s " + info["Pkgname"].toString()); //todo
isInstall.waitForFinished(); isInstall.waitForStarted();
isInstall.waitForFinished(-1);
int error = QString::fromStdString(isInstall.readAllStandardError().toStdString()).length(); int error = QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
if(error == 0) if(error == 0)
{ {
@ -93,12 +95,12 @@ void AppIntoPage::openUrl(QUrl url)
QProcess isUpdate; QProcess isUpdate;
isUpdate.start("dpkg-query --showformat='${Version}' --show " + info["Pkgname"].toString()); isUpdate.start("dpkg-query --showformat='${Version}' --show " + info["Pkgname"].toString());
isUpdate.waitForFinished(); isUpdate.waitForFinished(10);
QString localVersion = isUpdate.readAllStandardOutput(); QString localVersion = isUpdate.readAllStandardOutput();
localVersion.replace("'", ""); localVersion.replace("'", "");
isUpdate.start("dpkg --compare-versions " + localVersion + " ge " + info["Version"].toString()); isUpdate.start("dpkg --compare-versions " + localVersion + " ge " + info["Version"].toString());
isUpdate.waitForFinished(); isUpdate.waitForFinished(10);
if(!isUpdate.exitCode()) if(!isUpdate.exitCode())
{ {
isUpdated = true; isUpdated = true;
@ -153,7 +155,7 @@ void AppIntoPage::openUrl(QUrl url)
QNetworkAccessManager *naManager; QNetworkAccessManager *naManager;
QNetworkRequest request; QNetworkRequest request;
naManager=new QNetworkAccessManager(this); naManager=new QNetworkAccessManager(this);
request.setUrl(QUrl(imglist[i])); request.setUrl(QUrl(imglist[i].replace("+","%2B")));
request.setRawHeader("User-Agent", "Mozilla/5.0"); request.setRawHeader("User-Agent", "Mozilla/5.0");
request.setRawHeader("Content-Type", "charset='utf-8'"); request.setRawHeader("Content-Type", "charset='utf-8'");
naManager->get(request); naManager->get(request);
@ -294,11 +296,11 @@ void AppIntoPage::on_pushButton_3_clicked()
QProcess uninstall; QProcess uninstall;
uninstall.start("pkexec", QStringList() << "apt" << "purge" << "-y" << info["Pkgname"].toString().toLower()); uninstall.start("pkexec", QStringList() << "apt" << "purge" << "-y" << info["Pkgname"].toString().toLower());
uninstall.waitForFinished(); uninstall.waitForFinished(-1);
QProcess check; QProcess check;
check.start("dpkg", QStringList() << "-s" << info["Pkgname"].toString().toLower()); check.start("dpkg", QStringList() << "-s" << info["Pkgname"].toString().toLower());
check.waitForFinished(); check.waitForFinished(10);
if (check.readAllStandardOutput().isEmpty()) if (check.readAllStandardOutput().isEmpty())
{ {

View File

@ -27,7 +27,7 @@ QString HttpRequest::postRequest(QString url, QString jsondata)
QByteArray array= jsondata.toLatin1(); QByteArray array= jsondata.toLatin1();
QNetworkRequest request; QNetworkRequest request;
QNetworkAccessManager *naManager=new QNetworkAccessManager(this); QNetworkAccessManager *naManager=new QNetworkAccessManager(this);
QUrl strUrl = url; QUrl strUrl = url.replace("+","%2B");
request.setUrl(strUrl); request.setUrl(strUrl);
request.setRawHeader("Content-Type", "charset='utf-8'"); request.setRawHeader("Content-Type", "charset='utf-8'");
request.setRawHeader("Content-Type", "application/json"); request.setRawHeader("Content-Type", "application/json");