Compare commits

..

11 Commits

Author SHA1 Message Date
张天怿
f5121a0405 Delete .pro.user files
Delete useless .pro.user files.
2020-09-01 11:03:20 +08:00
Maicss
e568ddafba 更新 文档
Merge pull request !2 from Jerry/master
2020-08-29 07:42:02 +08:00
jerry
111174a46f update 2020-08-29 00:43:36 +08:00
jerry
6de25a299f update readme 2020-08-29 00:41:23 +08:00
jerry
cbd57a3e25 增加线路说明, 如何编译的说明 2020-08-29 00:27:02 +08:00
maicss
6e083f295b 新增 深度安装器安装选项 2020-08-28 15:03:10 +08:00
maicss
b82a821d01 修复UI细节问题 2020-08-28 14:45:39 +08:00
Maicss
6578af935e 优化UI 2020-08-26 19:58:42 +08:00
Maicss
fe4143a3f7 修改 web控件 2020-08-26 09:39:55 +08:00
Maicss
8952be33c4 修改 web控件 2020-08-26 09:27:34 +08:00
Maicss
4e4f55995e 修改 web控件 2020-08-26 09:26:59 +08:00
9 changed files with 250 additions and 370 deletions

View File

@@ -50,6 +50,25 @@ http://dcstore.shenmo.tech/
线路文件:新版的线路文件被放置于源服务器中,可随时刷新更新源列表 线路文件:新版的线路文件被放置于源服务器中,可随时刷新更新源列表
#### 如何编译
Deepin/UOS 系统下, 安装依赖
```shell
sudo apt install qt5-default libdtkcore-dev libdtkwidget-dev qtwebengine5-dev
```
```shell
git clone https://gitee.com/deepin-community-store/spark-store.git
cd spark-store
mkdir build
cd build
qmake ..
make -j
```
./build文件下的spark-store即为可执行文件
#### 参与贡献 #### 参与贡献
1. Fork 本仓库 1. Fork 本仓库

View File

@@ -22,8 +22,10 @@ downloadlist::downloadlist(QWidget *parent) :
ui->widget_spinner->hide(); ui->widget_spinner->hide();
action_dpkg->setText("dpkg"); action_dpkg->setText("dpkg");
action_gdebi->setText("gdebi"); action_gdebi->setText("gdebi");
action_deepin->setText("深度安装器");
connect(action_dpkg,&QAction::triggered,[=](){downloadlist::install(1);}); connect(action_dpkg,&QAction::triggered,[=](){downloadlist::install(1);});
connect(action_gdebi,&QAction::triggered,[=](){downloadlist::install(0);}); connect(action_gdebi,&QAction::triggered,[=](){downloadlist::install(0);});
connect(action_deepin,&QAction::triggered,[=](){downloadlist::install(2);});
menu_install->addAction(action_gdebi); menu_install->addAction(action_gdebi);
//ssinstall命令存在时再加入该选项 //ssinstall命令存在时再加入该选项
QFile ssinstall("/bin/ssinstall"); QFile ssinstall("/bin/ssinstall");
@@ -31,6 +33,11 @@ downloadlist::downloadlist(QWidget *parent) :
if(ssinstall.isOpen()){ if(ssinstall.isOpen()){
menu_install->addAction(action_dpkg); menu_install->addAction(action_dpkg);
} }
QFile deepin("/bin/deepin-deb-installer");
deepin.open(QIODevice::ReadOnly);
if(deepin.isOpen()){
menu_install->addAction(action_deepin);
}
} }
@@ -115,28 +122,37 @@ void downloadlist::install(int t)
ui->label_2->setText("正在安装,请稍候"); ui->label_2->setText("正在安装,请稍候");
QtConcurrent::run([=](){ QtConcurrent::run([=](){
QProcess installer; QProcess installer;
if(reinstall){ if(!reinstall){
if(t==0){ switch (t) {
case 0:
installer.start("pkexec gdebi -n /tmp/spark-store/"+ui->label_filename->text().toUtf8()); installer.start("pkexec gdebi -n /tmp/spark-store/"+ui->label_filename->text().toUtf8());
}else { break;
case 1:
installer.start("pkexec ssinstall /tmp/spark-store/"+ui->label_filename->text().toUtf8()); installer.start("pkexec ssinstall /tmp/spark-store/"+ui->label_filename->text().toUtf8());
break;
case 2:
installer.start("deepin-deb-installer /tmp/spark-store/"+ui->label_filename->text().toUtf8());
break;
} }
}else { }else {
if(t==0){ switch (t) {
case 0:
installer.start("pkexec gdebi -n /tmp/spark-store/"+ui->label_filename->text().toUtf8()); installer.start("pkexec gdebi -n /tmp/spark-store/"+ui->label_filename->text().toUtf8());
}else { break;
case 1:
installer.start("pkexec ssinstall /tmp/spark-store/"+ui->label_filename->text().toUtf8()); installer.start("pkexec ssinstall /tmp/spark-store/"+ui->label_filename->text().toUtf8());
break;
case 2:
installer.start("deepin-deb-installer /tmp/spark-store/"+ui->label_filename->text().toUtf8());
break;
} }
} }
bool haveError=false;
bool notRoot=false;
installer.waitForFinished(); installer.waitForFinished();
out=installer.readAllStandardOutput(); out=installer.readAllStandardOutput();
QStringList everyOut=out.split("\n"); QStringList everyOut=out.split("\n");
bool haveError=false;
bool notRoot=false;
for (int i=0;i<everyOut.size();i++) { for (int i=0;i<everyOut.size();i++) {
qDebug()<<everyOut[i].left(2);
if(everyOut[i].left(2)=="E:"){ if(everyOut[i].left(2)=="E:"){
haveError=true; haveError=true;
} }

View File

@@ -38,6 +38,7 @@ public:
QMenu *menu_install=new QMenu; QMenu *menu_install=new QMenu;
QAction *action_gdebi=new QAction; QAction *action_gdebi=new QAction;
QAction *action_dpkg=new QAction; QAction *action_dpkg=new QAction;
QAction *action_deepin=new QAction;
void install(int); void install(int);
private slots: private slots:
void on_pushButton_install_clicked(); void on_pushButton_install_clicked();

37
progressload.cpp Normal file
View File

@@ -0,0 +1,37 @@
#include "progressload.h"
ProgressLoad::ProgressLoad(QWidget *parent) : QWidget(parent)
{
m_progess=new QWidget(this);
m_progess->move(0,0);
m_progess->show();
timer=new QTimer;
value=0;
timer->setInterval(10);
timer->start();
connect(timer,&QTimer::timeout,[=](){
m_progess->setFixedWidth(width()/100*value);
m_progess->setFixedHeight(height());
});
}
void ProgressLoad::setValue(int v)
{
value=v;
m_progess->setFixedWidth(width()/100*value);
}
void ProgressLoad::setTheme(bool dark, QColor color)
{
if(dark){
plt.setColor(QPalette::Background,QColor(28,28,28));
setAutoFillBackground(true);
setPalette(plt);
}else {
plt.setColor(QPalette::Background,QColor(255,255,255));
setAutoFillBackground(true);
setPalette(plt);
}
m_progess->setStyleSheet("background-color:"+color.name());
}

24
progressload.h Normal file
View File

@@ -0,0 +1,24 @@
#ifndef PROGRESSLOAD_H
#define PROGRESSLOAD_H
#include <QWidget>
#include <QTimer>
#include <QPalette>
class ProgressLoad : public QWidget
{
Q_OBJECT
public:
explicit ProgressLoad(QWidget *parent = nullptr);
void setValue(int v);
void setTheme(bool dark,QColor color);
signals:
public slots:
private:
QWidget *m_progess;
int value;
QTimer *timer;
QPalette plt;
};
#endif // PROGRESSLOAD_H

View File

@@ -4,10 +4,13 @@
# #
#------------------------------------------------- #-------------------------------------------------
QT += core gui webkitwidgets network concurrent QT += core gui network concurrent webenginewidgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += link_pkgconfig
PKGCONFIG += dtkwidget
TARGET = spark-store TARGET = spark-store
TEMPLATE = app TEMPLATE = app
@@ -27,16 +30,17 @@ SOURCES += main.cpp\
widget.cpp \ widget.cpp \
downloadlist.cpp \ downloadlist.cpp \
image_show.cpp \ image_show.cpp \
big_image.cpp big_image.cpp \
progressload.cpp
HEADERS += \ HEADERS += \
widget.h \ widget.h \
downloadlist.h \ downloadlist.h \
image_show.h \ image_show.h \
big_image.h big_image.h \
progressload.h
CONFIG += link_pkgconfig
PKGCONFIG += dtkwidget
CONFIG += c++11 CONFIG += c++11

View File

@@ -16,7 +16,6 @@
#include <QtConcurrent> // 并发 #include <QtConcurrent> // 并发
#include <QSettings> #include <QSettings>
#include <QIcon> #include <QIcon>
#include <QWebFrame>
#include <QGraphicsOpacityEffect> #include <QGraphicsOpacityEffect>
#include <QDesktopServices> #include <QDesktopServices>
#include <DSettings> #include <DSettings>
@@ -36,7 +35,9 @@ Widget::Widget(DBlurEffectWidget *parent) :
ui->setupUi(this); ui->setupUi(this);
initUI(); initUI();
initConfig(); initConfig();
manager = new QNetworkAccessManager(this); // 下载管理 manager = new QNetworkAccessManager(this);//下载管理
m_loadweb=ui->progressload;
m_loadweb->show();
connect(ui->menu_main,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(0);}); connect(ui->menu_main,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(0);});
connect(ui->menu_network,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(1);}); connect(ui->menu_network,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(1);});
@@ -99,6 +100,8 @@ Widget::Widget(DBlurEffectWidget *parent) :
size2=download_size; size2=download_size;
} }
}); });
} }
Widget::~Widget() Widget::~Widget()
@@ -167,21 +170,7 @@ void Widget::initUI()
left_list[12]=ui->menu_other; left_list[12]=ui->menu_other;
left_list[13]=ui->menu_download; left_list[13]=ui->menu_download;
// 初始化web加载动画
QHBoxLayout *m_weblayout=new QHBoxLayout;
m_weblayout->addWidget(m_loadweb);
m_weblayout->addWidget(m_loaderror);
m_loadweb->hide();
m_loaderror->hide();
m_loadweb->start();
m_loadweb->setMaximumSize(50,50);
m_loadweb->setMinimumSize(50,50);
m_loadweb->setTextVisible(false);
m_loaderror->setPixmap(QIcon::fromTheme("dialog-error").pixmap(50,50));
m_loaderror->setAlignment(Qt::AlignCenter);
ui->webView->setLayout(m_weblayout);
// ui->stackedWidget->setLayout(m_weblayout);
ui->label_show->hide(); ui->label_show->hide();
} }
@@ -225,14 +214,15 @@ void Widget::initConfig()
menuUrl[11]=serverUrl + "store/#/themes"; menuUrl[11]=serverUrl + "store/#/themes";
menuUrl[12]=serverUrl + "store/#/others"; menuUrl[12]=serverUrl + "store/#/others";
// web控件初始化
ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); //用来激活接受linkClicked信号 //web控件初始化
ui->webView->page()->settings()->setAttribute(QWebSettings::JavascriptEnabled,true); // ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); //用来激活接受linkClicked信号
// ui->webView->page()->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);
ui->webfoot->hide(); ui->webfoot->hide();
// 初始化首页 //初始化首页
ui->webView->setUrl(menuUrl[0]); ui->webEngineView->setUrl(menuUrl[0]);
chooseLeftMenu(0); // ui->webEngineView->setUrl(menuUrl[1]);
//给下载列表赋值到数组,方便调用 //给下载列表赋值到数组,方便调用
for (int i =0; i<LIST_MAX;i++){ for (int i =0; i<LIST_MAX;i++){
@@ -260,7 +250,7 @@ void Widget::setTheme(bool isDark,QColor color)
if(isDark){ if(isDark){
// 黑色模式 // 黑色模式
themeIsDark=true; themeIsDark=true;
ui->webView->setStyleSheet("background-color:#282828"); ui->webEngineView->setStyleSheet("background-color:#282828");
ui->btn_openDir->setStyleSheet("color:#8B91A1;background-color:#2E2F30;border:0px"); ui->btn_openDir->setStyleSheet("color:#8B91A1;background-color:#2E2F30;border:0px");
ui->webfoot->setStyleSheet("background-color:#252525"); ui->webfoot->setStyleSheet("background-color:#252525");
ui->label->setStyleSheet("background-color:#252525"); ui->label->setStyleSheet("background-color:#252525");
@@ -270,7 +260,7 @@ void Widget::setTheme(bool isDark,QColor color)
}else { }else {
// 亮色模式 // 亮色模式
themeIsDark=false; themeIsDark=false;
ui->webView->setStyleSheet("background-color:#FFFFFF"); ui->webEngineView->setStyleSheet("background-color:#FFFFFF");
ui->webfoot->setStyleSheet("background-color:#FFFFFF"); ui->webfoot->setStyleSheet("background-color:#FFFFFF");
ui->btn_openDir->setStyleSheet("color:#505050;background-color:#FBFBFB;border:0px"); ui->btn_openDir->setStyleSheet("color:#505050;background-color:#FBFBFB;border:0px");
ui->label->setStyleSheet("background-color:#FFFFFF"); ui->label->setStyleSheet("background-color:#FFFFFF");
@@ -279,7 +269,7 @@ void Widget::setTheme(bool isDark,QColor color)
ui->pushButton_return->setIcon(QIcon(":/icons/icons/category_active.svg")); ui->pushButton_return->setIcon(QIcon(":/icons/icons/category_active.svg"));
} }
main_color=color; main_color=color;
m_loadweb->setTheme(themeIsDark,color);
updateUI(); updateUI();
if(ui->stackedWidget->currentIndex()==0){ if(ui->stackedWidget->currentIndex()==0){
chooseLeftMenu(nowMenu); chooseLeftMenu(nowMenu);
@@ -292,35 +282,6 @@ DTitlebar* Widget::getTitlebar()
return ui->titlebar; return ui->titlebar;
} }
void Widget::on_webView_loadStarted()
{
m_loadweb->setValue(0);
m_loadweb->show();
m_loaderror->hide();
ui->label_show->hide();
// 分析出服务器中的分类名称
QUrl arg1=ui->webView->page()->mainFrame()->requestedUrl().toString();
QStringList url_=arg1.path().split("/");
if(url_.size()>3){
type_name=url_[2];
}
// 如果是app.json就打开详情页
if(arg1.path().right(8)=="app.json"){
load.cancel(); // 打开并发加载线程前关闭正在执行的线程
ui->label_more->setText(""); // 清空详情介绍
ui->label_info->setText("");
ui->label_appname->setText("");
ui->pushButton_download->setEnabled(false);
ui->stackedWidget->setCurrentIndex(2);
load.cancel(); // 打开并发加载线程前关闭正在执行的线程
load = QtConcurrent::run([=](){
loadappinfo(arg1);
});
}
}
void Widget::updateUI() void Widget::updateUI()
{ {
if(themeIsDark){ if(themeIsDark){
@@ -363,6 +324,7 @@ void Widget::updateUI()
left_list[i]->setStyleSheet("color:#252525;border:0px"); left_list[i]->setStyleSheet("color:#252525;border:0px");
} }
} }
left_list[nowMenu]->setStyleSheet("color:#FFFFFF;background-color:"+main_color.name()+";border-radius:8;border:0px"); left_list[nowMenu]->setStyleSheet("color:#FFFFFF;background-color:"+main_color.name()+";border-radius:8;border:0px");
switch (nowMenu) { switch (nowMenu) {
case 0: case 0:
@@ -414,8 +376,6 @@ void Widget::updateUI()
void Widget::chooseLeftMenu(int index) void Widget::chooseLeftMenu(int index)
{ {
nowMenu=index; nowMenu=index;
// setfoot();
// updatefoot();
updateUI(); updateUI();
left_list[index]->setStyleSheet("color:#FFFFFF;background-color:"+main_color.name()+";border-radius:8;border:0px"); left_list[index]->setStyleSheet("color:#FFFFFF;background-color:"+main_color.name()+";border-radius:8;border:0px");
@@ -428,10 +388,12 @@ void Widget::chooseLeftMenu(int index)
darkurl+=tmp[i]+"/"; darkurl+=tmp[i]+"/";
} }
darkurl+="dark"+tmp[tmp.size()-1]; darkurl+="dark"+tmp[tmp.size()-1];
ui->webView->setUrl(darkurl); ui->webEngineView->setUrl(darkurl);
qDebug()<<darkurl; qDebug()<<darkurl;
}else { }else {
ui->webView->setUrl(menuUrl[index]); ui->webEngineView->setUrl(menuUrl[index]);
} }
ui->stackedWidget->setCurrentIndex(0); ui->stackedWidget->setCurrentIndex(0);
@@ -463,6 +425,7 @@ void Widget::loadappinfo(QUrl arg1)
ui->screen_2->hide(); ui->screen_2->hide();
ui->screen_3->hide(); ui->screen_3->hide();
ui->screen_4->hide(); ui->screen_4->hide();
ui->label_appicon->clear();
// 重置UI状态 // 重置UI状态
ui->pushButton_uninstall->hide(); ui->pushButton_uninstall->hide();
@@ -859,7 +822,7 @@ void Widget::opensetting()
void Widget::openUrl(QUrl u) void Widget::openUrl(QUrl u)
{ {
QString app=serverUrl + "store"+u.path()+"/app.json"; QString app=serverUrl + "store"+u.path()+"/app.json";
ui->webView->setUrl(app); ui->webEngineView->setUrl(app);
} }
void Widget::on_pushButton_website_clicked() void Widget::on_pushButton_website_clicked()
@@ -867,25 +830,6 @@ void Widget::on_pushButton_website_clicked()
QDesktopServices::openUrl(QUrl(appweb)); QDesktopServices::openUrl(QUrl(appweb));
} }
void Widget::on_webView_loadFinished(bool arg1)
{
if(arg1){
m_loadweb->hide();
}else {
m_loadweb->hide();
m_loaderror->show();
}
}
void Widget::on_webView_loadProgress(int progress)
{
m_loadweb->setValue(progress);
if(progress>=90){
m_loadweb->hide();
}
}
void Widget::on_pushButton_clicked() void Widget::on_pushButton_clicked()
{ {
QString share_url; QString share_url;
@@ -910,3 +854,57 @@ void Widget::on_stackedWidget_currentChanged(int arg1)
ui->pushButton_return->setEnabled(true); ui->pushButton_return->setEnabled(true);
} }
} }
void Widget::on_webEngineView_urlChanged(const QUrl &arg1)
{
//分析出服务器中的分类名称
QStringList url_=arg1.path().split("/");
QString pname;
if(url_.size()>3){
type_name=url_[2];
pname=url_[3];
}
//如果是app.json就打开详情页
if(arg1.path().right(8)=="app.json"){
load.cancel();//打开并发加载线程前关闭正在执行的线程
m_loadweb->setValue(0);
ui->label_more->setText("");//清空详情介绍
ui->label_info->setText("");
ui->label_appname->setText("");
ui->pushButton_download->setEnabled(false);
ui->stackedWidget->setCurrentIndex(2);
qDebug()<<"https://demo-one-vert.vercel.app/"+type_name+"/"+pname;
load.cancel();//打开并发加载线程前关闭正在执行的线程
load = QtConcurrent::run([=](){
loadappinfo(arg1);
});
}
}
void Widget::on_webEngineView_loadStarted()
{
m_loadweb->setValue(0);
m_loadweb->show();
m_loaderror->hide();
ui->label_show->hide();
}
void Widget::on_webEngineView_loadProgress(int progress)
{
m_loadweb->setValue(progress);
if(progress>=90){
m_loadweb->setValue(0);
}
}
void Widget::on_webEngineView_loadFinished(bool arg1)
{
if(arg1){
m_loadweb->setValue(0);
}else {
m_loadweb->setValue(0);
m_loaderror->show();
}
}

View File

@@ -19,6 +19,7 @@
#include <QLabel> #include <QLabel>
#include <DTitlebar> #include <DTitlebar>
#include <DSearchEdit> #include <DSearchEdit>
#include <progressload.h>
#define LIST_MAX 99 //一次最多下载数量 #define LIST_MAX 99 //一次最多下载数量
#define TMP_PATH "/tmp/spark-store" #define TMP_PATH "/tmp/spark-store"
@@ -53,15 +54,12 @@ private slots:
void updateDataReadProgress(qint64,qint64); void updateDataReadProgress(qint64,qint64);
void on_pushButton_download_clicked(); void on_pushButton_download_clicked();
void on_pushButton_return_clicked(); void on_pushButton_return_clicked();
void on_webView_loadStarted();
void on_comboBox_server_currentIndexChanged(const QString &arg1); void on_comboBox_server_currentIndexChanged(const QString &arg1);
void on_pushButton_updateServer_clicked(); void on_pushButton_updateServer_clicked();
void on_pushButton_updateApt_clicked(); void on_pushButton_updateApt_clicked();
void on_pushButton_uninstall_clicked(); void on_pushButton_uninstall_clicked();
void on_pushButton_clear_clicked(); void on_pushButton_clear_clicked();
void on_pushButton_website_clicked(); void on_pushButton_website_clicked();
void on_webView_loadFinished(bool arg1);
void on_webView_loadProgress(int progress);
void on_pushButton_clicked(); void on_pushButton_clicked();
@@ -69,6 +67,14 @@ private slots:
void on_stackedWidget_currentChanged(int arg1); void on_stackedWidget_currentChanged(int arg1);
void on_webEngineView_urlChanged(const QUrl &arg1);
void on_webEngineView_loadStarted();
void on_webEngineView_loadProgress(int progress);
void on_webEngineView_loadFinished(bool arg1);
public: public:
QUrl url; QUrl url;
@@ -101,7 +107,7 @@ private:
private: private:
QPushButton * left_list[15]; QPushButton * left_list[15];
QUrl menuUrl[13]; QUrl menuUrl[13];
DWaterProgress *m_loadweb=new DWaterProgress; ProgressLoad *m_loadweb;
QLabel *m_loaderror=new QLabel; QLabel *m_loaderror=new QLabel;
QString serverUrl; QString serverUrl;
bool configCanSave=false; bool configCanSave=false;

321
widget.ui
View File

@@ -29,7 +29,7 @@
<property name="spacing"> <property name="spacing">
<number>0</number> <number>0</number>
</property> </property>
<item row="0" column="0" rowspan="3"> <item row="0" column="0" rowspan="4">
<widget class="QWidget" name="widget_menuList" native="true"> <widget class="QWidget" name="widget_menuList" native="true">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
@@ -147,6 +147,13 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="11" column="0" colspan="5">
<widget class="QPushButton" name="menu_dev">
<property name="text">
<string>编程开发</string>
</property>
</widget>
</item>
<item row="0" column="3"> <item row="0" column="3">
<widget class="QPushButton" name="pushButton_return"> <widget class="QPushButton" name="pushButton_return">
<property name="maximumSize"> <property name="maximumSize">
@@ -164,13 +171,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="11" column="0" colspan="5">
<widget class="QPushButton" name="menu_dev">
<property name="text">
<string>编程开发</string>
</property>
</widget>
</item>
<item row="9" column="0" colspan="5"> <item row="9" column="0" colspan="5">
<widget class="QPushButton" name="menu_office"> <widget class="QPushButton" name="menu_office">
<property name="text"> <property name="text">
@@ -278,7 +278,7 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="2" column="1">
<widget class="QStackedWidget" name="stackedWidget"> <widget class="QStackedWidget" name="stackedWidget">
<property name="styleSheet"> <property name="styleSheet">
<string notr="true"/> <string notr="true"/>
@@ -287,7 +287,7 @@
<number>0</number> <number>0</number>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>3</number> <number>2</number>
</property> </property>
<widget class="QWidget" name="page"> <widget class="QWidget" name="page">
<layout class="QVBoxLayout" name="verticalLayout_4"> <layout class="QVBoxLayout" name="verticalLayout_4">
@@ -307,263 +307,10 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<widget class="QWebView" name="webView"> <widget class="QWebEngineView" name="webEngineView">
<property name="palette">
<palette>
<active>
<colorrole role="WindowText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>65</red>
<green>77</green>
<blue>104</blue>
</color>
</brush>
</colorrole>
<colorrole role="Light">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>3</red>
<green>3</green>
<blue>3</blue>
</color>
</brush>
</colorrole>
<colorrole role="Dark">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>46</red>
<green>46</green>
<blue>46</blue>
</color>
</brush>
</colorrole>
<colorrole role="Text">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>65</red>
<green>77</green>
<blue>104</blue>
</color>
</brush>
</colorrole>
<colorrole role="ButtonText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>65</red>
<green>77</green>
<blue>104</blue>
</color>
</brush>
</colorrole>
<colorrole role="Base">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="Window">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="HighlightedText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>28</red>
<green>28</green>
<blue>28</blue>
</color>
</brush>
</colorrole>
<colorrole role="NoRole">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
</active>
<inactive>
<colorrole role="WindowText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>138</red>
<green>145</green>
<blue>161</blue>
</color>
</brush>
</colorrole>
<colorrole role="Light">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>3</red>
<green>3</green>
<blue>3</blue>
</color>
</brush>
</colorrole>
<colorrole role="Dark">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>46</red>
<green>46</green>
<blue>46</blue>
</color>
</brush>
</colorrole>
<colorrole role="Text">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>138</red>
<green>145</green>
<blue>161</blue>
</color>
</brush>
</colorrole>
<colorrole role="ButtonText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>138</red>
<green>145</green>
<blue>161</blue>
</color>
</brush>
</colorrole>
<colorrole role="Base">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="Window">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="HighlightedText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>28</red>
<green>28</green>
<blue>28</blue>
</color>
</brush>
</colorrole>
<colorrole role="NoRole">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
</inactive>
<disabled>
<colorrole role="WindowText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>46</red>
<green>46</green>
<blue>46</blue>
</color>
</brush>
</colorrole>
<colorrole role="Light">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>3</red>
<green>3</green>
<blue>3</blue>
</color>
</brush>
</colorrole>
<colorrole role="Dark">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>46</red>
<green>46</green>
<blue>46</blue>
</color>
</brush>
</colorrole>
<colorrole role="Text">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>46</red>
<green>46</green>
<blue>46</blue>
</color>
</brush>
</colorrole>
<colorrole role="ButtonText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>46</red>
<green>46</green>
<blue>46</blue>
</color>
</brush>
</colorrole>
<colorrole role="Base">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="Window">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
<colorrole role="HighlightedText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>28</red>
<green>28</green>
<blue>28</blue>
</color>
</brush>
</colorrole>
<colorrole role="NoRole">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>0</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
</disabled>
</palette>
</property>
<property name="url"> <property name="url">
<url> <url>
<string>http://0.0.0.1/</string> <string>about:blank</string>
</url> </url>
</property> </property>
</widget> </widget>
@@ -657,7 +404,7 @@
<number>0</number> <number>0</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>10</number>
</property> </property>
<item> <item>
<widget class="QScrollArea" name="scrollArea"> <widget class="QScrollArea" name="scrollArea">
@@ -675,7 +422,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>404</width> <width>901</width>
<height>849</height> <height>849</height>
</rect> </rect>
</property> </property>
@@ -971,7 +718,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>370</width> <width>867</width>
<height>325</height> <height>325</height>
</rect> </rect>
</property> </property>
@@ -1101,8 +848,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>903</width> <width>687</width>
<height>786</height> <height>830</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_23"> <layout class="QVBoxLayout" name="verticalLayout_23">
@@ -1198,7 +945,7 @@
<string notr="true">color:#808080</string> <string notr="true">color:#808080</string>
</property> </property>
<property name="text"> <property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;源服务器的作用是保证软件更新并且支持使用apt工具获取软件。通常我们更建议你使用第一个线路作为更新源一般是最稳定的&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;源服务器的作用是保证软件更新并且支持使用apt工具获取软件。通常我们更建议你使用第一个线路作为更新源一般是最稳定的。&lt;/p&gt;&lt;p&gt;线路说明: &lt;/p&gt;&lt;p&gt;1. 国内推荐使用sucdn.jerrywang.top, cfcdn.jerrry.wang。前二者无法使用时请切换到store.jerrywang.top&lt;/p&gt;&lt;p&gt;2. 国外推荐使用cfcdn.jerrry.wang, dcstore.spark-app.store&lt;/p&gt;&lt;p&gt;3. cdn.jerrywang.top尚在测试中&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="wordWrap"> <property name="wordWrap">
<bool>true</bool> <bool>true</bool>
@@ -1385,13 +1132,35 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1">
<widget class="ProgressLoad" name="progressload" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>3</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>3</height>
</size>
</property>
<property name="toolTipDuration">
<number>-1</number>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget> <customwidget>
<class>QWebView</class> <class>QWebEngineView</class>
<extends>QWidget</extends> <extends>QWidget</extends>
<header>QtWebKitWidgets/QWebView</header> <header location="global">QtWebEngineWidgets/QWebEngineView</header>
</customwidget> </customwidget>
<customwidget> <customwidget>
<class>image_show</class> <class>image_show</class>
@@ -1405,6 +1174,12 @@
<header location="global">dtitlebar.h</header> <header location="global">dtitlebar.h</header>
<container>1</container> <container>1</container>
</customwidget> </customwidget>
<customwidget>
<class>ProgressLoad</class>
<extends>QWidget</extends>
<header location="global">progressload.h</header>
<container>1</container>
</customwidget>
</customwidgets> </customwidgets>
<resources> <resources>
<include location="icons.qrc"/> <include location="icons.qrc"/>