mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-10-12 13:22:21 +08:00
109 lines
2.9 KiB
C++
109 lines
2.9 KiB
C++
#include "applistpage.h"
|
|
#include "ui_applistpage.h"
|
|
|
|
|
|
|
|
AppListPage::AppListPage(QWidget *parent) : QWidget(parent),
|
|
ui(new Ui::AppListPage)
|
|
{
|
|
ui->setupUi(this);
|
|
ui->webEngineView->page()->setBackgroundColor(Qt::transparent);
|
|
}
|
|
void AppListPage::setTheme(bool dark)
|
|
{
|
|
isDark = dark;
|
|
if (dark)
|
|
{
|
|
this->setStyleSheet("#frame{background-color: #252525;border-radius:14px;border:1px solid rgb(64, 64, 64);}");
|
|
}
|
|
else
|
|
{
|
|
// 亮色模式
|
|
this->setStyleSheet("#frame{background-color: #ffffff;border-radius:14px;border:1px solid rgb(229,229,229);}");
|
|
}
|
|
if (isSearch)
|
|
{
|
|
getSearchList(nowType);
|
|
}
|
|
else
|
|
{
|
|
getAppList(nowType);
|
|
}
|
|
}
|
|
void AppListPage::getAppList(QString type)
|
|
{
|
|
isSearch = false;
|
|
nowType = type;
|
|
SparkAPI *api = new SparkAPI(this);
|
|
QString url;
|
|
QString theme;
|
|
if (isDark)
|
|
{
|
|
theme = "theme=dark";
|
|
}
|
|
else
|
|
{
|
|
theme = "theme=light";
|
|
}
|
|
if (type == "")
|
|
{
|
|
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/?" + theme + "&" + "arch=x86";
|
|
#ifdef __aarch64__
|
|
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/?" + theme + "&" + "arch=aarch64";
|
|
#endif
|
|
}
|
|
else
|
|
{
|
|
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/applist?type=" + type + "&" + theme + "&" + "arch=x86";
|
|
#ifdef __aarch64__
|
|
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/applist?type=" + type + "&" + theme + "&" + "arch=aarch64";
|
|
#endif
|
|
}
|
|
|
|
ui->webEngineView->setUrl(url);
|
|
delete api;
|
|
}
|
|
|
|
void AppListPage::getSearchList(const QString &keyword)
|
|
{
|
|
isSearch = true;
|
|
nowType = keyword;
|
|
SparkAPI *api = new SparkAPI(this);
|
|
QString url;
|
|
QString theme;
|
|
if (isDark)
|
|
{
|
|
theme = "theme=dark";
|
|
}
|
|
else
|
|
{
|
|
theme = "theme=light";
|
|
}
|
|
|
|
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/search?keywords=" + QUrl::toPercentEncoding(keyword) + "&" + theme + "&" + "arch=x86";
|
|
#ifdef __aarch64__
|
|
url = api->getServerUrl() + SparkAPI::getArchDir() + "/#/flamescion/search?keywords=" + QUrl::toPercentEncoding(keyword) + "&" + theme + "&" + "arch=aarch64";
|
|
#endif
|
|
ui->webEngineView->setUrl(url);
|
|
delete api;
|
|
}
|
|
|
|
AppListPage::~AppListPage()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void AppListPage::on_webEngineView_urlChanged(const QUrl &arg1)
|
|
{
|
|
if (arg1.path().right(8) == "app.json")
|
|
{
|
|
QString url = arg1.toString();
|
|
url = url.mid(url.indexOf("/" + SparkAPI::getArchDir() + "/"));
|
|
url = "spk:/" + url;
|
|
url = url.mid(0, url.indexOf("/app.json"));
|
|
qDebug() << "程序跳转链接地址:" << url;
|
|
ui->webEngineView->back();
|
|
emit clicked(url);
|
|
}
|
|
}
|