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;
HttpRequest *httprequest=new HttpRequest;
request.setUrl(url);
request.setUrl(QUrl(url.toString().replace("+","%2B")));
connect(httprequest,&HttpRequest::finished,[=](QString data){
QByteArray arr = data.toUtf8();
//解析Json
@ -40,7 +40,7 @@ void SparkAPI::getSearchList(QString keyword)
}
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()
{

View File

@ -5,6 +5,11 @@
#include <DGuiApplicationHelper>
#include <QSizePolicy>
#define AppPageApplist 0
#define AppPageSearchlist 1
#define AppPageAppdetail 2
#define AppPageSettings 3
MainWindow::MainWindow(QWidget *parent)
: DBlurEffectWidget(parent)
, ui(new Ui::MainWindow)
@ -42,7 +47,7 @@ MainWindow::MainWindow(QWidget *parent)
menu->addAction(setting);
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) {
if (themeType == DGuiApplicationHelper::DarkType) {
@ -155,7 +160,7 @@ MainWindow::MainWindow(QWidget *parent)
searchEdit->clearEdit();
} else {
ui->applistpage_1->getSearchList(searchtext);
switchPage(1);
switchPage(AppPageSearchlist);
searchEdit->clearEdit();
}
}
@ -183,10 +188,10 @@ MainWindow::~MainWindow()
void MainWindow::openUrl(QUrl url)
{
if (url.toString().startsWith("spk://")) {
ui->appintopage->openUrl(url);
switchPage(2);
ui->appintopage->openUrl(QUrl(url.toString().replace("+","%2B")));
switchPage(AppPageAppdetail);
} else {
QDesktopServices::openUrl(url);
QDesktopServices::openUrl(QUrl(url.toString().replace("+","%2B")));
}
}
@ -229,5 +234,5 @@ void MainWindow::updateUi(int now)
<< "others";
ui->applistpage->getAppList(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){
info = appinfo;
qDebug()<<url;
// qDebug()<<url;
//获取图标
QNetworkAccessManager *naManager;
QNetworkRequest request;
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("Content-Type", "charset='utf-8'");
naManager->get(request);
@ -84,8 +85,9 @@ void AppIntoPage::openUrl(QUrl url)
bool isInstalled;
bool isUpdated;
QString packagename = info["Pkgname"].toString();
isInstall.start("dpkg -s " + info["Pkgname"].toString());
isInstall.waitForFinished();
isInstall.start("dpkg -s " + info["Pkgname"].toString()); //todo
isInstall.waitForStarted();
isInstall.waitForFinished(-1);
int error = QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
if(error == 0)
{
@ -93,12 +95,12 @@ void AppIntoPage::openUrl(QUrl url)
QProcess isUpdate;
isUpdate.start("dpkg-query --showformat='${Version}' --show " + info["Pkgname"].toString());
isUpdate.waitForFinished();
isUpdate.waitForFinished(10);
QString localVersion = isUpdate.readAllStandardOutput();
localVersion.replace("'", "");
isUpdate.start("dpkg --compare-versions " + localVersion + " ge " + info["Version"].toString());
isUpdate.waitForFinished();
isUpdate.waitForFinished(10);
if(!isUpdate.exitCode())
{
isUpdated = true;
@ -153,7 +155,7 @@ void AppIntoPage::openUrl(QUrl url)
QNetworkAccessManager *naManager;
QNetworkRequest request;
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("Content-Type", "charset='utf-8'");
naManager->get(request);
@ -294,11 +296,11 @@ void AppIntoPage::on_pushButton_3_clicked()
QProcess uninstall;
uninstall.start("pkexec", QStringList() << "apt" << "purge" << "-y" << info["Pkgname"].toString().toLower());
uninstall.waitForFinished();
uninstall.waitForFinished(-1);
QProcess check;
check.start("dpkg", QStringList() << "-s" << info["Pkgname"].toString().toLower());
check.waitForFinished();
check.waitForFinished(10);
if (check.readAllStandardOutput().isEmpty())
{

View File

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