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 本仓库

View File

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

View File

@@ -38,6 +38,7 @@ public:
QMenu *menu_install=new QMenu;
QAction *action_gdebi=new QAction;
QAction *action_dpkg=new QAction;
QAction *action_deepin=new QAction;
void install(int);
private slots:
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
CONFIG += link_pkgconfig
PKGCONFIG += dtkwidget
TARGET = spark-store
TEMPLATE = app
@@ -27,16 +30,17 @@ SOURCES += main.cpp\
widget.cpp \
downloadlist.cpp \
image_show.cpp \
big_image.cpp
big_image.cpp \
progressload.cpp
HEADERS += \
widget.h \
downloadlist.h \
image_show.h \
big_image.h
big_image.h \
progressload.h
CONFIG += link_pkgconfig
PKGCONFIG += dtkwidget
CONFIG += c++11

View File

@@ -16,7 +16,6 @@
#include <QtConcurrent> // 并发
#include <QSettings>
#include <QIcon>
#include <QWebFrame>
#include <QGraphicsOpacityEffect>
#include <QDesktopServices>
#include <DSettings>
@@ -36,7 +35,9 @@ Widget::Widget(DBlurEffectWidget *parent) :
ui->setupUi(this);
initUI();
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_network,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(1);});
@@ -99,6 +100,8 @@ Widget::Widget(DBlurEffectWidget *parent) :
size2=download_size;
}
});
}
Widget::~Widget()
@@ -167,21 +170,7 @@ void Widget::initUI()
left_list[12]=ui->menu_other;
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();
}
@@ -225,14 +214,15 @@ void Widget::initConfig()
menuUrl[11]=serverUrl + "store/#/themes";
menuUrl[12]=serverUrl + "store/#/others";
// web控件初始化
ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); //用来激活接受linkClicked信号
ui->webView->page()->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);
//web控件初始化
// ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); //用来激活接受linkClicked信号
// ui->webView->page()->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);
ui->webfoot->hide();
// 初始化首页
ui->webView->setUrl(menuUrl[0]);
chooseLeftMenu(0);
//初始化首页
ui->webEngineView->setUrl(menuUrl[0]);
// ui->webEngineView->setUrl(menuUrl[1]);
//给下载列表赋值到数组,方便调用
for (int i =0; i<LIST_MAX;i++){
@@ -260,7 +250,7 @@ void Widget::setTheme(bool isDark,QColor color)
if(isDark){
// 黑色模式
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->webfoot->setStyleSheet("background-color:#252525");
ui->label->setStyleSheet("background-color:#252525");
@@ -270,7 +260,7 @@ void Widget::setTheme(bool isDark,QColor color)
}else {
// 亮色模式
themeIsDark=false;
ui->webView->setStyleSheet("background-color:#FFFFFF");
ui->webEngineView->setStyleSheet("background-color:#FFFFFF");
ui->webfoot->setStyleSheet("background-color:#FFFFFF");
ui->btn_openDir->setStyleSheet("color:#505050;background-color:#FBFBFB;border:0px");
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"));
}
main_color=color;
m_loadweb->setTheme(themeIsDark,color);
updateUI();
if(ui->stackedWidget->currentIndex()==0){
chooseLeftMenu(nowMenu);
@@ -292,35 +282,6 @@ DTitlebar* Widget::getTitlebar()
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()
{
if(themeIsDark){
@@ -363,6 +324,7 @@ void Widget::updateUI()
left_list[i]->setStyleSheet("color:#252525;border:0px");
}
}
left_list[nowMenu]->setStyleSheet("color:#FFFFFF;background-color:"+main_color.name()+";border-radius:8;border:0px");
switch (nowMenu) {
case 0:
@@ -414,8 +376,6 @@ void Widget::updateUI()
void Widget::chooseLeftMenu(int index)
{
nowMenu=index;
// setfoot();
// updatefoot();
updateUI();
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+="dark"+tmp[tmp.size()-1];
ui->webView->setUrl(darkurl);
ui->webEngineView->setUrl(darkurl);
qDebug()<<darkurl;
}else {
ui->webView->setUrl(menuUrl[index]);
ui->webEngineView->setUrl(menuUrl[index]);
}
ui->stackedWidget->setCurrentIndex(0);
@@ -463,6 +425,7 @@ void Widget::loadappinfo(QUrl arg1)
ui->screen_2->hide();
ui->screen_3->hide();
ui->screen_4->hide();
ui->label_appicon->clear();
// 重置UI状态
ui->pushButton_uninstall->hide();
@@ -859,7 +822,7 @@ void Widget::opensetting()
void Widget::openUrl(QUrl u)
{
QString app=serverUrl + "store"+u.path()+"/app.json";
ui->webView->setUrl(app);
ui->webEngineView->setUrl(app);
}
void Widget::on_pushButton_website_clicked()
@@ -867,25 +830,6 @@ void Widget::on_pushButton_website_clicked()
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()
{
QString share_url;
@@ -910,3 +854,57 @@ void Widget::on_stackedWidget_currentChanged(int arg1)
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 <DTitlebar>
#include <DSearchEdit>
#include <progressload.h>
#define LIST_MAX 99 //一次最多下载数量
#define TMP_PATH "/tmp/spark-store"
@@ -53,15 +54,12 @@ private slots:
void updateDataReadProgress(qint64,qint64);
void on_pushButton_download_clicked();
void on_pushButton_return_clicked();
void on_webView_loadStarted();
void on_comboBox_server_currentIndexChanged(const QString &arg1);
void on_pushButton_updateServer_clicked();
void on_pushButton_updateApt_clicked();
void on_pushButton_uninstall_clicked();
void on_pushButton_clear_clicked();
void on_pushButton_website_clicked();
void on_webView_loadFinished(bool arg1);
void on_webView_loadProgress(int progress);
void on_pushButton_clicked();
@@ -69,6 +67,14 @@ private slots:
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:
QUrl url;
@@ -101,7 +107,7 @@ private:
private:
QPushButton * left_list[15];
QUrl menuUrl[13];
DWaterProgress *m_loadweb=new DWaterProgress;
ProgressLoad *m_loadweb;
QLabel *m_loaderror=new QLabel;
QString serverUrl;
bool configCanSave=false;

321
widget.ui
View File

@@ -29,7 +29,7 @@
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0" rowspan="3">
<item row="0" column="0" rowspan="4">
<widget class="QWidget" name="widget_menuList" native="true">
<property name="minimumSize">
<size>
@@ -147,6 +147,13 @@
</property>
</spacer>
</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">
<widget class="QPushButton" name="pushButton_return">
<property name="maximumSize">
@@ -164,13 +171,6 @@
</property>
</widget>
</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">
<widget class="QPushButton" name="menu_office">
<property name="text">
@@ -278,7 +278,7 @@
</layout>
</widget>
</item>
<item row="1" column="1">
<item row="2" column="1">
<widget class="QStackedWidget" name="stackedWidget">
<property name="styleSheet">
<string notr="true"/>
@@ -287,7 +287,7 @@
<number>0</number>
</property>
<property name="currentIndex">
<number>3</number>
<number>2</number>
</property>
<widget class="QWidget" name="page">
<layout class="QVBoxLayout" name="verticalLayout_4">
@@ -307,263 +307,10 @@
<number>0</number>
</property>
<item>
<widget class="QWebView" name="webView">
<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>
<widget class="QWebEngineView" name="webEngineView">
<property name="url">
<url>
<string>http://0.0.0.1/</string>
<string>about:blank</string>
</url>
</property>
</widget>
@@ -657,7 +404,7 @@
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
<number>10</number>
</property>
<item>
<widget class="QScrollArea" name="scrollArea">
@@ -675,7 +422,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>404</width>
<width>901</width>
<height>849</height>
</rect>
</property>
@@ -971,7 +718,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>370</width>
<width>867</width>
<height>325</height>
</rect>
</property>
@@ -1101,8 +848,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>903</width>
<height>786</height>
<width>687</width>
<height>830</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_23">
@@ -1198,7 +945,7 @@
<string notr="true">color:#808080</string>
</property>
<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 name="wordWrap">
<bool>true</bool>
@@ -1385,13 +1132,35 @@
</property>
</widget>
</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>
</widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<class>QWebEngineView</class>
<extends>QWidget</extends>
<header>QtWebKitWidgets/QWebView</header>
<header location="global">QtWebEngineWidgets/QWebEngineView</header>
</customwidget>
<customwidget>
<class>image_show</class>
@@ -1405,6 +1174,12 @@
<header location="global">dtitlebar.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>ProgressLoad</class>
<extends>QWidget</extends>
<header location="global">progressload.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources>
<include location="icons.qrc"/>