Compare commits
56 Commits
1.0beta7.2
...
2.0.2.1
| Author | SHA1 | Date | |
|---|---|---|---|
| cfbbd34695 | |||
|
|
b7afc5ec8a | ||
| b911158274 | |||
| 67c28d0224 | |||
| 1d65bfc66d | |||
| 0e595db328 | |||
| 7a16028e38 | |||
|
|
1b56d3ad52 | ||
| 431e7b555f | |||
|
|
1cbabe7cc5 | ||
| d027d513a3 | |||
|
|
eff8878e8b | ||
| f0bf0e5aec | |||
|
|
678a4229f7 | ||
| e89c14b5ca | |||
|
|
d4c734627a | ||
| 8830b14e10 | |||
| 8c9f5b8ba6 | |||
| badc3aa089 | |||
| 9c9317dea0 | |||
| 594f71f98a | |||
| c45bf8ffaf | |||
|
|
c9c0357646 | ||
|
|
bd8f660fe9 | ||
| 538c742303 | |||
|
|
c23e816017 | ||
| 2be0e1b523 | |||
| eacc56eaf3 | |||
| 9458bbf2c9 | |||
|
|
e472ba76f1 | ||
|
|
74bd3ae018 | ||
|
|
ccc2bb8898 | ||
| a59e2e0527 | |||
| 2c205bf5db | |||
| efc6c50f88 | |||
| ce263c3cb4 | |||
| 78ac339629 | |||
| 58359aa63a | |||
|
|
e839f7836f | ||
|
|
b34c50d2e0 | ||
|
|
4d4e3e3e3a | ||
|
|
10741a1d92 | ||
|
|
b78ca0e103 | ||
|
|
3a0ed16a21 | ||
|
|
0a3d583d76 | ||
|
|
f5121a0405 | ||
|
|
e568ddafba | ||
|
|
111174a46f | ||
|
|
6de25a299f | ||
|
|
cbd57a3e25 | ||
|
|
6e083f295b | ||
|
|
b82a821d01 | ||
|
|
6578af935e | ||
|
|
fe4143a3f7 | ||
|
|
8952be33c4 | ||
|
|
4e4f55995e |
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
spark-store.pro.user*
|
||||
BIN
Logo-Spark.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
Logo-Spark.png.bak
Normal file
|
After Width: | Height: | Size: 43 KiB |
22
README.md
@@ -9,10 +9,9 @@ web页面部分正在开发当中,详情请见[web仓库](https://gitee.com/de
|
||||
当前服务器线路列表(项目中包含):
|
||||
|
||||
```
|
||||
http://cdn.jerrywang.top/
|
||||
http://sucdn.jerrywang.top/
|
||||
http://store.jerrywang.top/
|
||||
http://dcstore.shenmo.tech/
|
||||
http://dcstore.spark-app.store/
|
||||
```
|
||||
|
||||
#### 参数
|
||||
@@ -50,6 +49,25 @@ http://dcstore.shenmo.tech/
|
||||
|
||||
线路文件:新版的线路文件被放置于源服务器中,可随时刷新更新源列表
|
||||
|
||||
#### 如何编译
|
||||
|
||||
Deepin V20/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,5 +1,6 @@
|
||||
#include "downloadlist.h"
|
||||
#include "ui_downloadlist.h"
|
||||
#include "widget.h"
|
||||
#include <QDebug>
|
||||
#include <QIcon>
|
||||
#include <QPixmap>
|
||||
@@ -20,10 +21,12 @@ downloadlist::downloadlist(QWidget *parent) :
|
||||
ui->pushButton_3->hide();
|
||||
ui->widget_spinner->start();
|
||||
ui->widget_spinner->hide();
|
||||
action_dpkg->setText("dpkg");
|
||||
action_gdebi->setText("gdebi");
|
||||
action_dpkg->setText(tr("dpkg"));
|
||||
action_gdebi->setText(tr("gdebi"));
|
||||
action_deepin->setText(tr("deepin deb installer"));
|
||||
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 +34,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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -44,7 +52,7 @@ void downloadlist::setValue(long long value)
|
||||
ui->progressBar->setValue(int(value));
|
||||
ui->label_2->setText(QString::number(double(value)/100)+"% ("+speed+")");
|
||||
if(ui->label_2->text().left(4)=="100%"){
|
||||
ui->label_2->setText("已完成,等待安装");
|
||||
ui->label_2->setText(tr("Downloaded, waiting to install"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,8 +77,9 @@ void downloadlist::readyInstall()
|
||||
ui->progressBar->hide();
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_2->hide();
|
||||
system("notify-send \""+ui->label->text().toUtf8()+"下载失败\"" +" --icon=/tmp/spark-store/icon_"+QString::number(num).toUtf8()+".png");
|
||||
ui->label_2->setText("下载失败,可能是网络错误");
|
||||
Widget::sendNotification(tr("Failed to download %1").arg(ui->label->text()), 5000,
|
||||
"/tmp/spark-store/icon_"+QString::number(num).toUtf8()+".png");
|
||||
ui->label_2->setText(tr("Download Failed,Check Your Connection"));
|
||||
ui->pushButton_install->setEnabled(false);
|
||||
return;
|
||||
|
||||
@@ -80,7 +89,8 @@ void downloadlist::readyInstall()
|
||||
ui->pushButton_install->setEnabled(true);
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_2->hide();
|
||||
system("notify-send \""+ui->label->text().toUtf8()+"下载完成,等待安装\"" +" --icon=/tmp/spark-store/icon_"+QString::number(num).toUtf8()+".png");
|
||||
Widget::sendNotification(tr("Finished downloading %1, awaiting to install").arg(ui->label->text()), 5000,
|
||||
"/tmp/spark-store/icon_"+QString::number(num).toUtf8()+".png");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -112,31 +122,40 @@ void downloadlist::install(int t)
|
||||
ui->pushButton_install->hide();
|
||||
ui->widget_spinner->show();
|
||||
qDebug()<<"/tmp/spark-store/"+ui->label_filename->text().toUtf8();
|
||||
ui->label_2->setText("正在安装,请稍候");
|
||||
ui->label_2->setText(tr("Installing..."));
|
||||
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;
|
||||
}
|
||||
@@ -150,16 +169,16 @@ void downloadlist::install(int t)
|
||||
int error=QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
|
||||
if(error==0){
|
||||
ui->pushButton_install->hide();
|
||||
ui->label_2->setText("安装完成");
|
||||
ui->label_2->setText(tr("Finish"));
|
||||
ui->pushButton_3->show();
|
||||
}else {
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_install->setText("重装");
|
||||
ui->label_2->setText("安装出现错误,可重新安装");
|
||||
ui->pushButton_install->setText(tr("Retry"));
|
||||
ui->label_2->setText(tr("Error happened in dpkg progress , you can try it again"));
|
||||
ui->pushButton_3->show();
|
||||
}
|
||||
if(notRoot){
|
||||
ui->label_2->setText("安装被终止,可重新安装");
|
||||
ui->label_2->setText(tr("dpkg progress had been aborted,you can retry installation"));
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_3->hide();
|
||||
}
|
||||
@@ -181,7 +200,7 @@ void downloadlist::on_pushButton_install_clicked()
|
||||
|
||||
void downloadlist::on_pushButton_2_clicked()
|
||||
{
|
||||
ui->label_2->setText("已取消下载");
|
||||
ui->label_2->setText(tr("Download canceled"));
|
||||
ui->pushButton_2->setEnabled(false);
|
||||
ui->progressBar->hide();
|
||||
close=true;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>名称</string>
|
||||
<string>Name</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -186,7 +186,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>等待开始下载</string>
|
||||
<string>Waiting to download</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
@@ -237,7 +237,7 @@
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>安装</string>
|
||||
<string>Install</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -256,7 +256,7 @@
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>取消</string>
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -275,7 +275,7 @@
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>详情</string>
|
||||
<string>Info</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
32
icons.qrc
@@ -30,5 +30,37 @@
|
||||
<file>icons/homepage_dark.svg</file>
|
||||
<file>icons/category_active_dark.svg</file>
|
||||
<file>icons/category_active.svg</file>
|
||||
<file>icons/refresh-page-dark.svg</file>
|
||||
<file>icons/refresh-page.svg</file>
|
||||
</qresource>
|
||||
<qresource prefix="/">
|
||||
<file>Logo-Spark.png</file>
|
||||
<file>big_image.cpp</file>
|
||||
<file>big_image.h</file>
|
||||
<file>downloadlist.cpp</file>
|
||||
<file>downloadlist.h</file>
|
||||
<file>image_show.cpp</file>
|
||||
<file>image_show.h</file>
|
||||
<file>main.cpp</file>
|
||||
<file>progressload.cpp</file>
|
||||
<file>progressload.h</file>
|
||||
<file>widget.cpp</file>
|
||||
<file>widget.h</file>
|
||||
<file>tags/a2d.png</file>
|
||||
<file>tags/community.svg</file>
|
||||
<file>tags/deepin.svg</file>
|
||||
<file>tags/logo_icon.svg</file>
|
||||
<file>tags/uos.svg</file>
|
||||
<file>tags/a2d-small.png</file>
|
||||
<file>tags/community-small.png</file>
|
||||
<file>tags/deepin-small.png</file>
|
||||
<file>tags/dtk-small.png</file>
|
||||
<file>tags/uos-small.png</file>
|
||||
<file>tags/community.png</file>
|
||||
<file>tags/ubuntu-small.png</file>
|
||||
<file>tags/ubuntu.png</file>
|
||||
<file>tags/dwine5-small.png</file>
|
||||
<file>tags/dwine5.svg</file>
|
||||
<file>tags/dwine2-small.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
54
icons/refresh-page-dark.svg
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
height="16"
|
||||
width="16"
|
||||
sodipodi:docname="refresh-page-dark.svg"
|
||||
xml:space="preserve"
|
||||
viewBox="0 0 16 16"
|
||||
y="0px"
|
||||
x="0px"
|
||||
id="Layer_1"
|
||||
version="1.1"><metadata
|
||||
id="metadata9"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs7" /><sodipodi:namedview
|
||||
inkscape:current-layer="Layer_1"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-x="0"
|
||||
inkscape:cy="8.8351119"
|
||||
inkscape:cx="12.452215"
|
||||
inkscape:zoom="34.711876"
|
||||
showgrid="true"
|
||||
id="namedview5"
|
||||
inkscape:window-height="958"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"><inkscape:grid
|
||||
id="grid834"
|
||||
type="xygrid" /></sodipodi:namedview>
|
||||
<g
|
||||
style="fill:#ffffff;fill-opacity:0.60000002"
|
||||
transform="scale(0.03125,0.0312082)"
|
||||
id="XMLID_2_">
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:0.60000002"
|
||||
d="M 436.6,75.4 C 390.1,28.9 326.7,0 256,0 114.5,0 0,114.5 0,256 0,397.5 114.5,512 256,512 375.2,512 474.8,430.1 503.6,320.2 h -67 C 410.5,394.7 339.8,447.7 256,447.7 149.9,447.7 64.2,362.1 64.2,255.9 64.2,149.7 149.9,64.2 256,64.2 c 53.1,0 100.5,22.3 135,56.8 L 287.7,224.3 H 512 V 0 Z"
|
||||
id="XMLID_4_" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
52
icons/refresh-page.svg
Normal file
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
height="16"
|
||||
width="16"
|
||||
sodipodi:docname="refresh-page.svg"
|
||||
xml:space="preserve"
|
||||
viewBox="0 0 16 16"
|
||||
y="0px"
|
||||
x="0px"
|
||||
id="Layer_1"
|
||||
version="1.1"><metadata
|
||||
id="metadata9"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs7" /><sodipodi:namedview
|
||||
inkscape:current-layer="Layer_1"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-x="0"
|
||||
inkscape:cy="8.8351119"
|
||||
inkscape:cx="12.452215"
|
||||
inkscape:zoom="34.711876"
|
||||
showgrid="true"
|
||||
id="namedview5"
|
||||
inkscape:window-height="958"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"><inkscape:grid
|
||||
id="grid834"
|
||||
type="xygrid" /></sodipodi:namedview>
|
||||
<g
|
||||
transform="scale(0.03125,0.0312082)"
|
||||
id="XMLID_2_">
|
||||
<path
|
||||
d="M 436.6,75.4 C 390.1,28.9 326.7,0 256,0 114.5,0 0,114.5 0,256 0,397.5 114.5,512 256,512 375.2,512 474.8,430.1 503.6,320.2 h -67 C 410.5,394.7 339.8,447.7 256,447.7 149.9,447.7 64.2,362.1 64.2,255.9 64.2,149.7 149.9,64.2 256,64.2 c 53.1,0 100.5,22.3 135,56.8 L 287.7,224.3 H 512 V 0 Z"
|
||||
id="XMLID_4_" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
32
main.cpp
@@ -2,22 +2,36 @@
|
||||
#include <DWidgetUtil> //Dtk::Widget::moveToCenter(&w); 要调用它,就得引用DWidgetUtil
|
||||
#include <QDesktopWidget>
|
||||
#include <widget.h>
|
||||
#include <QTranslator>
|
||||
#include <DAboutDialog>
|
||||
DWIDGET_USE_NAMESPACE
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
DApplication::loadDXcbPlugin(); //让bar处在标题栏中
|
||||
DApplication a(argc, argv);
|
||||
DAboutDialog dialog;
|
||||
a.setAttribute(Qt::AA_UseHighDpiPixmaps);
|
||||
a.loadTranslator();
|
||||
a.loadTranslator();//载入翻译
|
||||
a.setAboutDialog(&dialog);
|
||||
dialog.setLicense(QObject::tr("We publish this program under GPL V3"));
|
||||
dialog.setVersion(DApplication::buildVersion("Version 2.0+2"));
|
||||
dialog.setAcknowledgementVisible(true);
|
||||
dialog.setAcknowledgementLink(QObject::tr("https://gitee.com/deepin-community-store/spark-store"));
|
||||
a.setApplicationAcknowledgementPage(QObject::tr("https://gitee.com/deepin-community-store/spark-store"));
|
||||
dialog.setProductIcon(QIcon::fromTheme("spark-store")); //设置Logo
|
||||
dialog.setProductName(QLabel::tr("Spark Store"));
|
||||
//dialog.setDescription(QLabel::tr("An appstore powered by deepin community\n We born for change"));
|
||||
dialog.setDescription(QObject::tr(
|
||||
"<span style=' font-size:10pt;font-weight:60;'>An appstore powered by deepin community</span><br/>"
|
||||
"<a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/>"
|
||||
"<span style=' font-size:12pt;'>Spark developers</span>"
|
||||
)
|
||||
);
|
||||
dialog.setProductName(QLabel::tr("Spark Store"));
|
||||
dialog.setCompanyLogo(QPixmap(":/Logo-Spark.png"));
|
||||
dialog.setWebsiteName(QObject::tr("The Spark Project"));
|
||||
dialog.setWebsiteLink("https://gitee.com/deepin-community-store");
|
||||
|
||||
a.setOrganizationName("spark-union");
|
||||
a.setApplicationVersion(DApplication::buildVersion("1.0-beta7"));
|
||||
a.setApplicationAcknowledgementPage("https://gitee.com/deepin-community-store/spark-store");
|
||||
a.setProductIcon(QIcon::fromTheme("spark-store")); //设置Logo
|
||||
|
||||
a.setProductName("Spark应用商店");
|
||||
a.setApplicationDescription("社区驱动的一款为第三方应用商店,为改变而生");
|
||||
a.setApplicationName("Spark应用商店"); //只有在这儿修改窗口标题才有效
|
||||
Widget w;
|
||||
QDesktopWidget *s=DApplication::desktop();
|
||||
int d_w=s->width();
|
||||
|
||||
37
progressload.cpp
Normal 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
@@ -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
|
||||
@@ -4,9 +4,14 @@
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += core gui webkitwidgets network concurrent
|
||||
QT += core gui network concurrent webenginewidgets
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
TRANSLATIONS = ./trans/spark-store_en.ts \
|
||||
./trans/spark-store_zh_CN.ts
|
||||
|
||||
CONFIG += link_pkgconfig
|
||||
PKGCONFIG += dtkwidget
|
||||
|
||||
TARGET = spark-store
|
||||
TEMPLATE = app
|
||||
@@ -27,16 +32,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
|
||||
|
||||
@@ -46,3 +52,18 @@ FORMS += \
|
||||
|
||||
RESOURCES += \
|
||||
icons.qrc
|
||||
|
||||
DISTFILES += \
|
||||
tags/a2d-small.png \
|
||||
tags/a2d.png \
|
||||
tags/community-small.png \
|
||||
tags/community.png \
|
||||
tags/deepin-small.png \
|
||||
tags/dtk-small.png \
|
||||
tags/ubuntu-small.png \
|
||||
tags/ubuntu.png \
|
||||
tags/uos-small.png \
|
||||
tags/community.svg \
|
||||
tags/deepin.svg \
|
||||
tags/logo_icon.svg \
|
||||
tags/uos.svg
|
||||
|
||||
BIN
tags/a2d-small.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
tags/a2d.png
Normal file
|
After Width: | Height: | Size: 248 KiB |
BIN
tags/community-small.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
tags/community.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
240
tags/community.svg
Normal file
@@ -0,0 +1,240 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="deepin-community-store.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 200 200"
|
||||
height="200mm"
|
||||
width="200mm">
|
||||
<defs
|
||||
id="defs2">
|
||||
<linearGradient
|
||||
id="linearGradient1200"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop1196"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:0.1299435" />
|
||||
<stop
|
||||
id="stop1198"
|
||||
offset="1"
|
||||
style="stop-color:#dadada;stop-opacity:0.81960785" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient1138">
|
||||
<stop
|
||||
style="stop-color:#99e7ea;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop1134" />
|
||||
<stop
|
||||
style="stop-color:#007ffc;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop1136" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1128"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop1124"
|
||||
offset="0"
|
||||
style="stop-color:#99e7ea;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop1126"
|
||||
offset="1"
|
||||
style="stop-color:#007ffc;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<inkscape:path-effect
|
||||
only_selected="false"
|
||||
apply_with_weight="true"
|
||||
apply_no_weight="true"
|
||||
helper_size="0"
|
||||
steps="2"
|
||||
weight="33.333333"
|
||||
is_visible="true"
|
||||
id="path-effect960"
|
||||
effect="bspline" />
|
||||
<radialGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.98112945,0,3.7714702)"
|
||||
r="90.135414"
|
||||
fy="199.86011"
|
||||
fx="100.35268"
|
||||
cy="199.86011"
|
||||
cx="100.35268"
|
||||
id="radialGradient1130"
|
||||
xlink:href="#linearGradient1128"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
r="90.135414"
|
||||
fy="199.86011"
|
||||
fx="100.35268"
|
||||
cy="199.86011"
|
||||
cx="100.35268"
|
||||
gradientTransform="matrix(1,0,0,0.98112945,0,3.7714702)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient1132"
|
||||
xlink:href="#linearGradient1138"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.98112945,0,3.7714702)"
|
||||
r="90.135414"
|
||||
fy="199.86011"
|
||||
fx="100.35268"
|
||||
cy="199.86011"
|
||||
cx="100.35268"
|
||||
id="radialGradient1202"
|
||||
xlink:href="#linearGradient1200"
|
||||
inkscape:collect="always" />
|
||||
<filter
|
||||
id="filter1448"
|
||||
inkscape:label="Drop Shadow"
|
||||
style="color-interpolation-filters:sRGB;">
|
||||
<feFlood
|
||||
id="feFlood1438"
|
||||
result="flood"
|
||||
flood-color="rgb(145,145,145)"
|
||||
flood-opacity="0.372549" />
|
||||
<feComposite
|
||||
id="feComposite1440"
|
||||
result="composite1"
|
||||
operator="in"
|
||||
in2="SourceGraphic"
|
||||
in="flood" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur1442"
|
||||
result="blur"
|
||||
stdDeviation="5.2918"
|
||||
in="composite1" />
|
||||
<feOffset
|
||||
id="feOffset1444"
|
||||
result="offset"
|
||||
dy="0"
|
||||
dx="0" />
|
||||
<feComposite
|
||||
id="feComposite1446"
|
||||
result="composite2"
|
||||
operator="over"
|
||||
in2="offset"
|
||||
in="SourceGraphic" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter2201"
|
||||
inkscape:label="Drop Shadow"
|
||||
style="color-interpolation-filters:sRGB;">
|
||||
<feFlood
|
||||
id="feFlood2191"
|
||||
result="flood"
|
||||
flood-color="rgb(145,145,145)"
|
||||
flood-opacity="0.372549" />
|
||||
<feComposite
|
||||
id="feComposite2193"
|
||||
result="composite1"
|
||||
operator="in"
|
||||
in2="SourceGraphic"
|
||||
in="flood" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur2195"
|
||||
result="blur"
|
||||
stdDeviation="3.76995"
|
||||
in="composite1" />
|
||||
<feOffset
|
||||
id="feOffset2197"
|
||||
result="offset"
|
||||
dy="0"
|
||||
dx="0" />
|
||||
<feComposite
|
||||
id="feComposite2199"
|
||||
result="composite2"
|
||||
operator="over"
|
||||
in2="offset"
|
||||
in="SourceGraphic" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-height="705"
|
||||
inkscape:window-width="1366"
|
||||
showgrid="false"
|
||||
inkscape:current-layer="layer2"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:cy="507.94585"
|
||||
inkscape:cx="120.33119"
|
||||
inkscape:zoom="0.35"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(0,-97)"
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1" />
|
||||
<g
|
||||
inkscape:label="Layer 2"
|
||||
id="layer2"
|
||||
inkscape:groupmode="layer">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1002"
|
||||
d="m 91.937746,32.561862 c 0,0 11.145084,-0.157476 22.599704,6.928753 11.45465,7.086223 18.11074,13.857508 20.27783,18.266716 2.16708,4.409213 9.28755,12.125333 9.13277,26.297793 -0.15488,14.17244 -3.40543,23.620766 -8.97797,31.494326 -5.57254,7.87359 -15.63405,13.85751 -27.70786,14.17247 -12.073834,0.31494 -19.813464,-7.55863 -22.444934,-11.96786 -2.63147,-4.4092 -3.71502,-13.85751 -0.46438,-20.628766 3.25065,-6.77132 8.3588,-6.77132 10.06152,-6.14141 1.70272,0.6299 2.16709,1.5747 3.09585,3.30689 0.92875,1.73219 1.54793,1.41726 2.941094,0.47243 1.39311,-0.94484 1.85748,-2.04715 1.54792,-3.46439 -0.30958,-1.41726 -2.167114,-3.14944 -3.715054,-3.62186 -1.54791,-0.47241 -3.71502,-1.88966 -6.81087,-1.41721 -3.09585,0.47238 -9.13276,2.04711 -14.24091,8.97585 -5.10815,6.928746 -4.48899,17.636836 -1.39313,22.675926 3.09585,5.0391 8.97796,14.48739 21.98054,17.79431 13.002594,3.30693 34.054354,-6.45633 41.329594,-21.57361 7.27524,-15.117296 7.43004,-22.203516 7.12048,-34.643766 C 145.96036,67.048164 134.97008,48.466503 122.74148,41.69522 110.51288,34.923934 101.38012,30.987141 91.937746,32.561862 Z"
|
||||
style="fill:#ffc344;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1012"
|
||||
d="m 98.407556,95.469094 c 0,0 -3.06474,-2.8951 -5.80111,2.22698 -2.73637,5.122046 -4.04983,9.687366 -1.31346,15.254856 2.73637,5.56745 8.42801,8.90792 17.184454,8.79659 8.75636,-0.11148 15.21419,-2.22699 19.0451,-8.5739 3.83094,-6.34692 6.7862,-11.02357 7.11457,-13.361906 0.32839,-2.33835 2.07965,0.334036 1.53239,2.338336 -0.54728,2.00426 -0.43783,5.9015 1.09454,5.12204 1.53237,-0.77942 2.73637,-2.00427 2.95526,-1.44753 0.21893,0.55673 -1.75127,4.00859 -2.68162,5.73449 -0.93039,1.7259 -3.83094,5.90153 -5.5275,7.51607 -1.69652,1.61458 -4.04981,3.89724 -6.84092,5.56747 -2.79109,1.67024 -7.11454,3.61887 -9.52255,4.06427 -2.40801,0.44539 -7.22403,1.39184 -9.96042,1.2805 -2.73635,-0.11137 -6.238924,-0.61243 -10.124564,-2.56104 -3.88565,-1.94859 -8.09966,-4.95505 -9.74148,-7.96148 -1.64182,-3.00643 -4.15928,-5.73449 -3.61201,-13.30623 0.54728,-7.571746 3.01001,-11.468986 4.87074,-13.250556 1.86073,-1.7816 4.5971,-2.56105 6.40311,-2.17131 1.806,0.38971 2.95528,1.44755 3.3931,2.22697 0.43781,0.77944 1.14928,2.22699 1.53237,2.50538 z"
|
||||
style="fill:#f06767;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1014"
|
||||
d="m 126.2091,135.55481 c 0,0 13.13457,-7.6831 19.26404,-19.82016 6.12948,-12.13707 8.7564,-19.931516 7.99021,-31.845916 -0.76619,-11.91436 -2.62692,-6.01286 -0.54728,-11.13493 2.07964,-5.12208 -1.31345,-15.25486 0.10943,-15.922952 1.42292,-0.668097 4.48765,4.453972 5.3633,8.573902 0.87562,4.11992 4.70654,16.81372 1.64181,32.9594 -3.06472,16.145636 -10.28872,22.603906 -15.10475,26.946546 -4.81603,4.34261 -15.7615,11.91437 -17.40332,11.80302 -1.64183,-0.11148 -1.86073,-0.11148 -1.31348,-1.55891 z"
|
||||
style="fill:#3f62eb;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1016"
|
||||
d="m 102.56686,112.17145 c 0,0 7.00512,1.5589 12.36838,-1.78156 5.3633,-3.3405 9.5226,-8.79661 10.17931,-10.912246 0.65672,-2.11564 0.76619,1.892936 1.53236,-0.11125 0.76618,-2.00432 3.83093,-6.01288 2.29855,-15.36624 -1.53237,-9.35333 -1.64182,-9.79875 -4.48762,-14.80947 -2.84586,-5.01072 -9.63207,-11.914367 -13.79134,-14.141356 -4.15927,-2.226986 -9.96037,-5.567464 -17.950604,-5.344766 -7.9902,0.222699 -5.36328,-0.334048 -13.02512,1.002146 -7.66184,1.336187 -14.55749,5.010717 -16.85604,7.015006 -2.29855,2.004286 -8.42802,7.46041 -10.61712,10.46684 -2.1891,3.00643 -8.20911,9.79874 -11.3833,19.26344 -3.17419,9.46469 -4.48765,10.46683 -4.70656,16.702396 -0.21891,6.23557 0.54727,7.90578 -0.76618,8.46256 -1.31346,0.55673 -1.09455,-4.67668 -0.9851,-8.35123 0.10946,-3.6745 0.10946,-13.250556 4.92547,-23.940086 4.81601,-10.68954 13.35349,-19.59749 18.1695,-22.826621 4.81601,-3.229128 10.39821,-7.571752 19.04514,-9.687392 8.64693,-2.115635 17.29386,-1.781586 22.65716,-0.779443 5.363304,1.002145 13.681874,4.453974 18.169504,7.905802 4.48766,3.45183 9.41314,7.683104 13.13459,14.586764 3.72146,6.90365 4.70654,15.70025 4.59709,19.37477 -0.10943,3.67455 -1.97019,12.137106 -4.81601,16.257016 -2.84583,4.11993 -6.67674,9.0193 -10.61711,10.80089 -3.94039,1.78157 -8.75642,2.33833 -12.69675,0.55674 -3.94039,-1.78161 -3.72147,-2.44969 -4.3782,-4.34263 z"
|
||||
style="fill:#fce102;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1018"
|
||||
d="m 102.56686,112.17145 c 0,0 5.54674,1.56707 10.22918,-0.55878 4.68248,-2.12587 6.4239,-4.17301 7.54615,-5.3934 1.12223,-1.22042 3.25064,-3.50376 3.83112,-4.56669 0.58046,-1.06292 1.19962,-1.692816 1.19962,-2.086486 0,-0.39369 -1.08353,-1.33853 -0.0386,-3.62186 1.04482,-2.28333 1.97361,-7.51928 1.50922,-9.88134 -0.46438,-2.36207 -1.54792,-15.47161 -10.83547,-24.2113 -9.28753,-8.739679 -18.497714,-9.763243 -18.497714,-9.763243 0,0 14.705314,4.645415 21.593574,18.739133 6.88828,14.09374 4.64376,23.14835 0.23218,28.65986 -4.41158,5.511506 -10.68068,6.141406 -12.38342,4.724146 -1.70268,-1.41725 -5.2113,6.47164 -4.38574,7.95996 z"
|
||||
style="fill:#5ed938;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1020"
|
||||
d="m 84.662496,61.615394 c 0,0 -9.90672,-0.0787 -17.41416,4.88161 -7.50743,4.96037 -11.14506,8.9759 -13.23476,12.12533 -2.08969,3.14945 -4.48898,7.47991 -4.17939,7.40118 0.30958,-0.0788 9.05536,-12.2828 15.86623,-15.43223 6.81087,-3.14944 13.62174,-7.55865 22.98669,-4.33049 9.36495,3.22819 13.776544,7.71612 15.788844,6.61383 2.0123,-1.1023 2.3993,-2.44082 1.23835,-3.9368 -1.16094,-1.49598 -9.364964,-8.81842 -21.051804,-7.32243 z"
|
||||
style="fill:#8fdbe9;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1022"
|
||||
d="m 69.839846,124.53124 c 0.65673,0.33404 5.58219,8.90795 9.52257,10.35548 3.94037,1.44755 6.56728,1.55888 7.0051,2.227 0.43782,0.66809 0.32837,4.00858 3.83092,5.45614 3.50256,1.44753 19.920794,6.01284 24.627334,6.45824 4.70658,0.4454 0.76621,3.22911 3.61202,4.23125 2.84584,1.00217 14.99532,1.5589 17.95061,0.33405 2.95527,-1.22483 2.95527,1.1135 -2.1891,3.1178 -5.14437,2.00427 -18.71677,6.79231 -27.58261,5.67882 -8.865864,-1.1135 -19.373534,-3.00644 -25.284094,-7.23772 -5.91056,-4.23126 -8.42802,-6.1242 -6.23892,-6.45824 2.18909,-0.33407 7.9902,5.9015 10.50766,6.56959 2.51746,0.66809 4.5971,0.66809 3.06473,-0.8908 -1.53236,-1.55888 -11.49275,-8.46253 -12.47784,-8.1285 -0.9851,0.33405 -3.06474,0.55674 -4.81602,-1.78159 -1.75127,-2.33832 -10.94548,-15.25485 -10.39821,-22.1585 0.54728,-6.90365 2.29856,-5.12208 4.3782,-2.56103 2.07964,2.56103 4.48765,4.78801 4.48765,4.78801 z"
|
||||
style="fill:#fd7aff;fill-opacity:1;stroke:none;stroke-width:0.309114px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
BIN
tags/deepin-small.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
35
tags/deepin.svg
Normal file
@@ -0,0 +1,35 @@
|
||||
<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<path d="m17,129c0,-61.30371 49.69629,-111 111,-111c61.30371,0 111,49.69629 111,111c0,61.30371 -49.69629,111 -111,111c-61.30371,0 -111,-49.69629 -111,-111z" id="deepin-launcher-b"/>
|
||||
<filter filterUnits="objectBoundingBox" y="-6.3%" x="-8.1%" height="116.2%" width="116.2%" id="deepin-launcher-a">
|
||||
<feGaussianBlur stdDeviation="5"/>
|
||||
</filter>
|
||||
<path d="m172.29023,47.20405c-13.1683,-7.14564 -28.25541,-11.20405 -44.29023,-11.20405c-3.85759,0 -7.66034,0.23489 -11.39471,0.69114c-13.8375,19.06416 -21.01047,50.16415 -20.43985,69.1948c0,0 -0.90954,28.19993 18.37748,38.20231c0,0 17.33291,7.61701 29.14502,-17.01295c0,0 8.11834,-13.89983 4.81381,-45.31395c0,0 3.16155,0.55793 3.51901,1.05927c0.35746,0.49728 6.98241,24.18523 2.32747,44.13339c0,0 -4.28556,23.44132 -25.35592,28.80234c-21.06242,5.36102 -37.47784,-7.60893 -48.62269,-19.82688c-8.29983,-9.09853 -20.62176,-33.53254 -26.69028,-62.84231c-11.72709,15.56323 -18.67934,34.92741 -18.67934,55.91495c0,14.49236 3.31502,28.21045 9.22816,40.43737c20.53097,6.06549 72.70224,17.88328 105.89216,-6.44123c21.96964,-16.10443 19.13893,-41.89451 19.13893,-41.89451c-0.36372,-19.61754 -12.30727,-39.10374 -12.30727,-39.10374c46.44186,42.01354 18.99265,88.68931 18.99265,88.68931c-12.77926,26.10154 -39.04908,42.79526 -62.02961,50.25104c4.59324,0.69782 9.29685,1.05965 14.08498,1.05965c51.36266,0 93,-41.63639 93,-92.99789c0,-21.72407 -7.44877,-41.70884 -19.93152,-57.53933c-4.54487,0.31322 -9.825,0.49664 -15.30337,0.31684c0,0 -24.70889,1.15387 -38.56418,8.0646c0,0 -10.33212,4.60716 -20.65999,12.41858c0,0 -2.19192,1.09575 -2.08593,5.12183c0.09327,4.01362 -2.10288,14.71385 -9.42058,20.98539c0,0 -5.22329,2.68544 -2.61165,6.52889c0,0 3.52742,5.12183 8.49633,-0.25734c0,0 12.81233,-13.18228 13.59668,-34.42501c0,0 4.05314,-3.4616 10.45506,-4.48264c0,0 1.17863,31.86824 -14.63539,47.86878c0,0 -15.04241,16.38239 -19.87565,-7.93593c0,0 -5.88469,-23.16861 24.45027,-50.68289c0,0 20.448,-20.42091 32.46751,-29.98388c1.66104,0.69233 3.29908,1.42749 4.91265,2.20406l-0.00001,-0.00001zm-44.29023,183.79595c-56.33322,0 -102,-45.66583 -102,-101.99789c0,-56.33281 45.66752,-102.00211 102,-102.00211c56.33248,0 102,45.6693 102,102.00211c0,56.33206 -45.66678,101.99789 -102,101.99789z" id="deepin-launcher-f"/>
|
||||
<filter filterUnits="objectBoundingBox" y="-.5%" x="-.5%" height="102%" width="101%" id="deepin-launcher-e"/>
|
||||
<filter filterUnits="objectBoundingBox" y="-.5%" x="-.5%" height="102%" width="101%" id="deepin-launcher-g"/>
|
||||
<linearGradient y2="97.178%" y1="4.64%" x2="50%" x1="50%" id="deepin-launcher-c">
|
||||
<stop stop-color="#00ABFF" offset="0%"/>
|
||||
<stop stop-color="#0163FA" offset="100%"/>
|
||||
</linearGradient>
|
||||
<linearGradient y2="100%" y1="0%" x2="50%" x1="50%" id="deepin-launcher-d">
|
||||
<stop stop-color="#32BBFF" offset="0%"/>
|
||||
<stop stop-color="#004FC5" offset="100%"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g>
|
||||
<title>background</title>
|
||||
<rect fill="none" id="canvas_background" height="514" width="514" y="-1" x="-1"/>
|
||||
</g>
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<g stroke="null" id="svg_1" fill-rule="evenodd" fill="none">
|
||||
<use x="0" y="0" transform="matrix(2.15315318107605,0,0,2.15315318107605,-19.603604078292847,-20.756757259368896) " stroke="null" id="svg_2" xlink:href="#deepin-launcher-b" filter="url(#deepin-launcher-a)" fill="#000"/>
|
||||
<use x="0" y="0" transform="matrix(2.15315318107605,0,0,2.15315318107605,-19.603604078292847,-20.756757259368896) " stroke="url(#deepin-launcher-d)" id="svg_3" xlink:href="#deepin-launcher-b" stroke-width="2" fill="url(#deepin-launcher-c)"/>
|
||||
<g stroke="null" id="svg_4" fill-rule="nonzero">
|
||||
<use x="0" y="0" transform="matrix(2.15315318107605,0,0,2.15315318107605,-19.603604078292847,-20.756757259368896) " stroke="null" id="svg_5" xlink:href="#deepin-launcher-f" filter="url(#deepin-launcher-e)" fill="#000"/>
|
||||
<use x="0" y="0" transform="matrix(2.15315318107605,0,0,2.15315318107605,-19.603604078292847,-20.756757259368896) " stroke="null" id="svg_6" xlink:href="#deepin-launcher-f" fill="#F0F9FF"/>
|
||||
<use x="0" y="0" transform="matrix(2.15315318107605,0,0,2.15315318107605,-19.603604078292847,-20.756757259368896) " stroke="null" id="svg_7" xlink:href="#deepin-launcher-f" filter="url(#deepin-launcher-g)" fill="#000"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
BIN
tags/dtk-small.png
Normal file
|
After Width: | Height: | Size: 954 B |
BIN
tags/dwine2-small.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
tags/dwine5-small.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
1
tags/dwine5.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="305" height="304" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="hidden"><defs><clipPath id="clip0"><path d="M688 378 993 378 993 682 688 682Z" fill-rule="evenodd" clip-rule="evenodd"/></clipPath><clipPath id="clip1"><path d="M751.382 385.273 984.326 440.078 929.522 673.022 696.578 618.218Z" fill-rule="evenodd" clip-rule="evenodd"/></clipPath><clipPath id="clip2"><path d="M751.382 385.273 984.326 440.078 929.522 673.022 696.578 618.218Z" fill-rule="evenodd" clip-rule="evenodd"/></clipPath><clipPath id="clip3"><path d="M751.382 385.273 984.326 440.078 929.522 673.022 696.578 618.218Z" fill-rule="evenodd" clip-rule="evenodd"/></clipPath></defs><g clip-path="url(#clip0)" transform="translate(-688 -378)"><path d="M689 529.5C689 445.829 756.829 378 840.5 378 924.171 378 992 445.829 992 529.5 992 613.171 924.171 681 840.5 681 756.829 681 689 613.171 689 529.5Z" fill="#A20000" fill-rule="evenodd"/><g clip-path="url(#clip1)"><g clip-path="url(#clip2)"><g clip-path="url(#clip3)"><path d="M812.478 604.512 826.339 545.597C790.456 531.483 772.809 490.952 786.924 455.069 792.525 440.83 802.648 428.825 815.737 420.901L910.837 443.275C931.459 475.856 921.763 518.985 889.182 539.607 876.253 547.79 860.994 551.499 845.751 550.164L831.89 609.079 851.302 613.646C856.662 614.908 859.986 620.276 858.724 625.636 857.463 630.996 852.095 634.32 846.735 633.058L788.499 619.357C783.138 618.096 779.815 612.728 781.076 607.368 782.338 602.007 787.705 598.684 793.066 599.945L812.478 604.512ZM803.34 469.2 900.4 492.035C901.355 477.612 900.407 467.146 897.544 460.634L819.896 442.366C814.431 446.918 808.915 455.864 803.34 469.2Z" fill="#FFFFFF"/></g></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
23
tags/logo_icon.svg
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>logo icon</title>
|
||||
<defs>
|
||||
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1">
|
||||
<stop stop-color="#00F1FF" offset="0%"></stop>
|
||||
<stop stop-color="#008AFF" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g id="light" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="1" transform="translate(-460.000000, -159.000000)">
|
||||
<g id="tittlebar" transform="translate(450.000000, 150.000000)">
|
||||
<g id="logo-icon" transform="translate(10.000000, 9.000000)">
|
||||
<g>
|
||||
<rect id="矩形" fill="url(#linearGradient-1)" x="0" y="0" width="32" height="32" rx="8"></rect>
|
||||
<path d="M23,25 L23,24.0002278 C21.6666667,24.0002278 21,24.0002278 21,24.0002278 L21,20 L22,20 L22,19 L21,19 L21,17 L20,17.5 L20,19 L19,19 L19,20 L20,20 L20,24.0002278 C20,24.0002278 20,24.0002278 20,24.0002278 C20,24.5523868 20.4476132,25 20.9997722,25 C20.9998481,25 20.9999241,25 21,25 L23,25 Z M24.0210414,23.9789586 L24.0210414,22.2215556 L24.0210414,22.2215556 L24.6565969,21.6226667 L27.2207674,25 L29.0052118,25 L25.6099302,20.7304444 L28.4678057,18.0074755 L26.6711391,18.0074755 L24.0210414,20.6204444 L24,15.5 L23,15 L23,25 C23.5639056,25 24.0210414,24.5428642 24.0210414,23.9789586 Z" id="tk" fill="#FFFFFF" fill-rule="nonzero"></path>
|
||||
<path d="M10.275,24 C13.175,24 15.35,23.2 16.85,21.6 C18.275,20.075 19,17.825 19,15 C19,12.15 18.275,10.05 16.85,8.55 C15.35,6.95 13.175,6 10.275,6 L4,6 L4,24 L10.275,24 Z M9.725,21 L7,21 L7,9 L9.725,9 C11.95,9 13.575,9.15 14.6,10.175 C15.6,11.175 16,12.75 16,15 C16,17.2 15.6,18.9 14.6,19.95 C13.575,20.975 11.95,21 9.725,21 Z" id="D" fill="#FFFFFF" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
BIN
tags/ubuntu-small.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
tags/ubuntu.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
tags/uos-small.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
13
tags/uos.svg
Normal file
@@ -0,0 +1,13 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
||||
<defs>
|
||||
<linearGradient id="uos-托盘1-a" x1="15.968%" x2="100%" y1="14.224%" y2="60.554%">
|
||||
<stop offset="0%" stop-color="#0071FF"/>
|
||||
<stop offset="48.72%" stop-color="#00E8FC"/>
|
||||
<stop offset="100%" stop-color="#00A2FF"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g fill="none" transform="translate(1 1)">
|
||||
<circle cx="9" cy="9" r="9" fill="url(#uos-托盘1-a)"/>
|
||||
<path fill="#FFF" d="M13,4.5 C13.5128358,4.5 13.9355072,4.88604019 13.9932723,5.38337887 L14,5.5 L14,9.5 C14,12.5 12,14.5 9,14.5 C6,14.5 4,12.5 4.0043492,9.70016408 L4,9.5 L4,5.5 C4,4.94771525 4.44771525,4.5 5,4.5 C5.51283584,4.5 5.93550716,4.88604019 5.99327227,5.38337887 L6,5.5 L6,9.5 C6,11.5 7.5,12.5 9,12.5 C10.5,12.5 12,11.5 12,9.5 L12,5.5 C12,4.94771525 12.4477153,4.5 13,4.5 Z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 873 B |
312
trans/lang_French.ts
Normal file
@@ -0,0 +1,312 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="fr">
|
||||
<context>
|
||||
<name>QLabel</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="19"/>
|
||||
<location filename="../main.cpp" line="21"/>
|
||||
<source>Spark应用商店</source>
|
||||
<translation>Spark Store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="20"/>
|
||||
<source>社区驱动的一款为第三方应用商店,为改变而生
|
||||
本程序按GPL第三版开源</source>
|
||||
<translation>Un app store tier alimenté par la communauté Deepin
|
||||
Spark Store est publié sous licence GPL V3
|
||||
Nous sommes nés pour le changement.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Widget</name>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="52"/>
|
||||
<source>background-color:#FFFFFF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="67"/>
|
||||
<source>视频播放</source>
|
||||
<translatorcomment>Lecteurs vidéo et créateurs vidéo</translatorcomment>
|
||||
<translation>Vidéo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="74"/>
|
||||
<source>下载列表</source>
|
||||
<translation>Liste de téléchargement</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="81"/>
|
||||
<source>系统工具</source>
|
||||
<translation>Outils</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="88"/>
|
||||
<source>主题美化</source>
|
||||
<translatorcomment>Thème des icônes et autres </translatorcomment>
|
||||
<translation>Thèmes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="95"/>
|
||||
<source>音乐欣赏</source>
|
||||
<translation>Musique</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="114"/>
|
||||
<source>icon</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="153"/>
|
||||
<source>编程开发</source>
|
||||
<translation>Développement</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="177"/>
|
||||
<source>办公学习</source>
|
||||
<translation>Bureau</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="197"/>
|
||||
<source>阅读翻译</source>
|
||||
<translation>Traduire</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="204"/>
|
||||
<source>其他应用</source>
|
||||
<translation>Autres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="214"/>
|
||||
<source>商店首页</source>
|
||||
<translation>Accueil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="221"/>
|
||||
<source>图形图像</source>
|
||||
<translation>Images</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="228"/>
|
||||
<source>游戏娱乐</source>
|
||||
<translation>Jeux</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="235"/>
|
||||
<source>社交沟通</source>
|
||||
<translation>Chat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="242"/>
|
||||
<source>网络应用</source>
|
||||
<translation type="unfinished">Réseau</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="313"/>
|
||||
<source>about:blank</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="354"/>
|
||||
<source>当前下载列表为空</source>
|
||||
<translation>La liste de téléchargement est vide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="386"/>
|
||||
<source>打开文件夹</source>
|
||||
<translation>Ouvrir dans le gestionnaire de fichiers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="486"/>
|
||||
<source>安装</source>
|
||||
<translation>Installer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="522"/>
|
||||
<source>卸载</source>
|
||||
<translation>Supprimer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="551"/>
|
||||
<source>官网</source>
|
||||
<translation>Site</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="580"/>
|
||||
<source>软件名</source>
|
||||
<translation>Nom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="592"/>
|
||||
<source><html><head/><body><p><br/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="636"/>
|
||||
<source>图标</source>
|
||||
<translation>Icon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="649"/>
|
||||
<source>分享</source>
|
||||
<translation>Partager</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="683"/>
|
||||
<location filename="../widget.ui" line="696"/>
|
||||
<location filename="../widget.ui" line="709"/>
|
||||
<location filename="../widget.ui" line="722"/>
|
||||
<location filename="../widget.ui" line="735"/>
|
||||
<location filename="../widget.ui" line="748"/>
|
||||
<location filename="../widget.ui" line="761"/>
|
||||
<location filename="../widget.ui" line="774"/>
|
||||
<source>TextLabel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="808"/>
|
||||
<source>详细介绍</source>
|
||||
<translation type="unfinished">Détails</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="815"/>
|
||||
<source><html><head/><body><p>由社区爱好者开发的软件商店</p></body></html></source>
|
||||
<translation type="unfinished"><html><head/><body><p>magasin de logiciels développé par des passionnés de la communauté</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="854"/>
|
||||
<source>软件截图</source>
|
||||
<translation>Captures d'écran</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1017"/>
|
||||
<source>线路设置</source>
|
||||
<translation>Line Settings</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1033"/>
|
||||
<source>线路选择:</source>
|
||||
<translation type="unfinished">Choisissez</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1056"/>
|
||||
<source>刷新</source>
|
||||
<translation>Mise à jour</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1069"/>
|
||||
<source> 重启商店后生效</source>
|
||||
<translation>Redémarrez pour prendre effet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1098"/>
|
||||
<source><html><head/><body><p>源服务器的作用是保证软件更新,并且支持使用apt工具获取软件。通常我们更建议你使用第一个线路作为更新源,一般是最稳定的。</p></body></html></source>
|
||||
<translation type="unfinished"><html><head/><body><p>Le rôle du serveur source est de s'assurer que le logiciel est mis à jour et prend en charge l'utilisation de l'outil apt pour obtenir le logiciel. Nous préférons généralement que vous utilisiez la première ligne comme source de mise à jour, qui est généralement la plus stable. </p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1108"/>
|
||||
<source>更新源</source>
|
||||
<translation>Mettre à jour la source APT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1115"/>
|
||||
<source>更新源服务器:</source>
|
||||
<translation type="unfinished">Source APT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1135"/>
|
||||
<source>服务器</source>
|
||||
<translation type="unfinished">serveur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1156"/>
|
||||
<source>缓存目录</source>
|
||||
<translation>Temp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1179"/>
|
||||
<source>清空</source>
|
||||
<translation>Nettoyer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1189"/>
|
||||
<source>因为这个目录位于/tmp下,所以即使你不手动清空的话,其也将在系统重启时自动清空。</source>
|
||||
<translation>Étant donné que ce répertoire se trouve sous /tmp, même si vous ne l'effacez pas manuellement, il sera effacé automatiquement au redémarrage du système.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1202"/>
|
||||
<source>目录大小:</source>
|
||||
<translation type="unfinished">Taille: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1209"/>
|
||||
<source>0B</source>
|
||||
<translation type="unfinished">0B</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1216"/>
|
||||
<source>目录位置:/tmp/spark-store</source>
|
||||
<translation type="unfinished">Emplacement:/tmp/spark-store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1237"/>
|
||||
<source>关于我们</source>
|
||||
<translation type="unfinished">À propos de nous</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1244"/>
|
||||
<source><html><head/><body><p>我们并不是官方团队,和你一样,我们也只是众多Linux/deepin系统爱好者和用户之中的一员,我们开发并且运营这个“Spark应用商店”,是为了让社区的朋友们一起分享好用的软件,或者一起参与开发,让大家都用到最新的,最优秀的软件。</p><p>我们并没有因此盈利,所有开发和维护人员都不会获得报酬,我们的主要支出大部分依赖于社区对我们的捐助,很感谢大家,这部分捐助让我们并不需要耗费太多精力去担心资金问题。</p><p>我们的服务和开发的软件都是免费供给大家使用,交流,学习的,但是在您的使用过程中一定要遵守当地的法律法规,否则出现任何问题和我们无关。</p><p>如果商店中任何一部分有侵犯您权益的行为,请告知我们&lt;jifengshenmo@outlook.com&gt;,我们会第一时间删除侵权内容。</p><p>如果你也想参与我们,不管是参与开发,设计,投递还是投稿作品,我们都欢迎你的加入。</p><p>QQ群:872690351<br/></p></body></html></source>
|
||||
<translation type="unfinished"><html><head/><body><p>Nous ne sommes pas l'équipe officielle, tout comme vous, nous ne sommes qu'un des nombreux passionnés et utilisateurs de systèmes Linux / deepin, nous développons et gérons le "Spark Store"! ", est de rassembler la communauté pour partager des logiciels utiles, ou pour participer au développement ensemble, afin que nous utilisions tous les derniers et meilleurs logiciels. </p><p> Nous n'en tirons aucun profit, tous les développeurs et mainteneurs ne sont pas payés, et nous comptons sur les dons de la communauté pour la plupart de nos dépenses, dont nous sommes reconnaissants et qui nous permettent de ne pas dépenser trop d'énergie se soucier du financement. </p><p>Notre service et nos logiciels sont gratuits pour tout le monde à utiliser, à communiquer et à apprendre, mais vous devez vous conformer aux lois et réglementations locales dans le processus de votre utilisation, sinon tout problème n'a rien à voir avec nous. </p><p>Si une partie du magasin enfreint vos droits, veuillez nous en informer &lt;jifengshenmo@outlook.com&gt; nous retirerons le contenu en infraction dès que possible. </p><p>Si vous souhaitez également vous impliquer avec nous, que vous soyez impliqué dans le développement, la conception, le pitching ou la soumission de travaux, nous vous invitons à nous rejoindre. </p><p>QQ group:872690351<br/></p></body></html></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>downloadlist</name>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="20"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="50"/>
|
||||
<source>icon</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="82"/>
|
||||
<source>TextLabel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="106"/>
|
||||
<source>名称</source>
|
||||
<translation>Nom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="189"/>
|
||||
<source>等待开始下载</source>
|
||||
<translatorcomment>Attendez pour téléchargerd</translatorcomment>
|
||||
<translation>Attendez pour télécharger</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="240"/>
|
||||
<source>安装</source>
|
||||
<translation>Installer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="259"/>
|
||||
<source>取消</source>
|
||||
<translation>Annuler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="278"/>
|
||||
<source>详情</source>
|
||||
<translation>Détail</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
trans/spark-store_en.qm
Normal file
630
trans/spark-store_en.ts
Normal file
@@ -0,0 +1,630 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en">
|
||||
<context>
|
||||
<name>QLabel</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="22"/>
|
||||
<location filename="../main.cpp" line="30"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="16"/>
|
||||
<source>We publish this program under GPL V3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="19"/>
|
||||
<location filename="../main.cpp" line="20"/>
|
||||
<source>https://gitee.com/deepin-community-store/spark-store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="24"/>
|
||||
<source><span style=' font-size:10pt;font-weight:60;'>An appstore powered by deepin community</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>Spark developers</span></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="32"/>
|
||||
<source>The Spark Project</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Widget</name>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="52"/>
|
||||
<source>background-color:#FFFFFF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="67"/>
|
||||
<source>Videos</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="74"/>
|
||||
<source>Download List</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="81"/>
|
||||
<source>Tools</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="88"/>
|
||||
<source>Beautify</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="95"/>
|
||||
<source>Music</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="160"/>
|
||||
<source>Office</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="200"/>
|
||||
<source>Translate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="207"/>
|
||||
<source>Others</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="234"/>
|
||||
<source>Games</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="248"/>
|
||||
<source>Network</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="528"/>
|
||||
<source>Name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="568"/>
|
||||
<source>ICON</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="515"/>
|
||||
<location filename="../widget.cpp" line="536"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="623"/>
|
||||
<source>Uninstall</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="639"/>
|
||||
<source>Site</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="712"/>
|
||||
<location filename="../widget.ui" line="715"/>
|
||||
<source><html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="718"/>
|
||||
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="731"/>
|
||||
<location filename="../widget.ui" line="734"/>
|
||||
<source><html><head/><body><p>Capable to Ubuntu 20.04</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="737"/>
|
||||
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="775"/>
|
||||
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="750"/>
|
||||
<location filename="../widget.ui" line="753"/>
|
||||
<source><html><head/><body><p>Capable to deepin 20</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="173"/>
|
||||
<source>Back to category</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="293"/>
|
||||
<source>Reload</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="383"/>
|
||||
<source>The list is currently empty. Go and download some softwares!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="415"/>
|
||||
<source>Open download directory</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="756"/>
|
||||
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="769"/>
|
||||
<location filename="../widget.ui" line="772"/>
|
||||
<source><html><head/><body><p>Capable to UOS home 20</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="788"/>
|
||||
<location filename="../widget.ui" line="791"/>
|
||||
<source><html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="794"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="826"/>
|
||||
<location filename="../widget.ui" line="829"/>
|
||||
<source><html><head/><body><p>A deepin-wine5 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine5 by your self.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="845"/>
|
||||
<location filename="../widget.ui" line="848"/>
|
||||
<source><html><head/><body><p>An Appimage to deb app.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="851"/>
|
||||
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="678"/>
|
||||
<source>Share</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="153"/>
|
||||
<source>Development</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="217"/>
|
||||
<source>Home </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="227"/>
|
||||
<source>Graphics</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="241"/>
|
||||
<source>Communication</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="807"/>
|
||||
<location filename="../widget.ui" line="810"/>
|
||||
<source><html><head/><body><p>A deepin-wine2 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine2 by your self.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="813"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="832"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="874"/>
|
||||
<source>Contribute translation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="892"/>
|
||||
<source>Info</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="899"/>
|
||||
<source><html><head/><body><p>An app store developed by community enthusiasts</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="938"/>
|
||||
<source>Screenshots</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1101"/>
|
||||
<source>Line Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1117"/>
|
||||
<source>Choose Line:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1140"/>
|
||||
<source>Refresh</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1153"/>
|
||||
<source>Take effect when restart </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1182"/>
|
||||
<source><html><head/><body><p>The role of the source server is to ensure that the software is updated, and supports the use of the apt tool to get the software. We usually prefer that you use the first line as the update source, which is generally the most stable. </p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1192"/>
|
||||
<source>Update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1199"/>
|
||||
<source>Source Server</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1219"/>
|
||||
<source>Server</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1240"/>
|
||||
<source>Temp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1263"/>
|
||||
<source>Clean</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1273"/>
|
||||
<source>Since the dictionary is at /tmp,It would be cleaned automatically when system reboot.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1286"/>
|
||||
<source>Size:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1300"/>
|
||||
<source>Location:/tmp/spark-store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1321"/>
|
||||
<source>About us</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1328"/>
|
||||
<source><html><head/><body><p>We are <span style=" font-weight:600;">NOT</span> the official team, just like you, we are just one of the many Linux/deepin system enthusiasts and users, we develop and run the &quot;Spark Store&quot;! &quot;, is to bring the community together to share useful software, or to participate in development together, so that we all use the latest and greatest software. </p><p>We don't make a profit from this, all developers and maintainers don't get paid, and we rely on the community's donations to us for most of our expenses, which we are grateful for and which allow us not to spend too much energy worrying about funding. </p><p>Our service and software are free for everyone to use, communicate, and learn, but you must comply with local laws and regulations in the process of your use, otherwise any problems have nothing to do with us. </p><p>If any part of the store infringes your rights, please tell us &lt;jifengshenmo@outlook.com&gt; we will remove the infringing content as soon as possible. </p><p>If you'd like to get involved with us too, whether you're involved in development, design, pitching or submitting work, we welcome you to join us. </p><p>QQ group:872690351<br/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="114"/>
|
||||
<source>icon</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="342"/>
|
||||
<source>about:blank</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="540"/>
|
||||
<source><html><head/><body><p><br/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1293"/>
|
||||
<source>0B</source>
|
||||
<translation type="unfinished">0B</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="146"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="147"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="153"/>
|
||||
<source>Submit App</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="154"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="245"/>
|
||||
<source>Not Exist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="297"/>
|
||||
<location filename="../widget.cpp" line="305"/>
|
||||
<source>Spark\ Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="480"/>
|
||||
<source>Failed to download app info. Please check internet connection.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="510"/>
|
||||
<source>PkgName: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="511"/>
|
||||
<source>Version: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="513"/>
|
||||
<source>Author: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="517"/>
|
||||
<source>Official Site: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="521"/>
|
||||
<source>Contributor: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="522"/>
|
||||
<source>Update Time: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="523"/>
|
||||
<source>Installed Size: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="532"/>
|
||||
<location filename="../widget.cpp" line="645"/>
|
||||
<source>Reinstall</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="571"/>
|
||||
<source>Failed to load application icon.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="620"/>
|
||||
<source>Failed to get the name to the file to be downloaded.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="668"/>
|
||||
<source>Spark store could only process spk:// links for now. The search feature is coming soon!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="789"/>
|
||||
<source>Updating, please wait...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="842"/>
|
||||
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="848"/>
|
||||
<source>Unknown error!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="1024"/>
|
||||
<source>Yes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="1024"/>
|
||||
<source>No</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="1025"/>
|
||||
<source>Information for Contributors</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="1026"/>
|
||||
<source>Currently the translation contribution is limited to English,
|
||||
and you will be redirected to our Gitee repository at which you are
|
||||
supposed to be creating pull requests to contribute app info
|
||||
translations.
|
||||
Tips:You can simply click the file to edit to create a flat pull request without create a full pull request
|
||||
Tips:You can use github account to login to Gitee
|
||||
Click yes to continue.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="868"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="882"/>
|
||||
<source>Temporary cache was cleaned</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="949"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>downloadlist</name>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="20"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="50"/>
|
||||
<source>icon</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="82"/>
|
||||
<source>TextLabel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="106"/>
|
||||
<source>Name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="189"/>
|
||||
<source>Waiting to download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="240"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="259"/>
|
||||
<source>Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="278"/>
|
||||
<source>Info</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="24"/>
|
||||
<source>dpkg</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="25"/>
|
||||
<source>gdebi</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="26"/>
|
||||
<source>deepin deb installer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="55"/>
|
||||
<source>Downloaded, waiting to install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="80"/>
|
||||
<source>Failed to download %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="82"/>
|
||||
<source>Download Failed,Check Your Connection</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="92"/>
|
||||
<source>Finished downloading %1, awaiting to install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="125"/>
|
||||
<source>Installing...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="172"/>
|
||||
<source>Finish</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="176"/>
|
||||
<source>Retry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="177"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="181"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="203"/>
|
||||
<source>Download canceled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
trans/spark-store_zh_CN.qm
Normal file
675
trans/spark-store_zh_CN.ts
Normal file
@@ -0,0 +1,675 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="zh_CN">
|
||||
<context>
|
||||
<name>QLabel</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="22"/>
|
||||
<location filename="../main.cpp" line="30"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>Spark 应用商店</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="16"/>
|
||||
<source>We publish this program under GPL V3</source>
|
||||
<translation>本程序按GPL V3开源</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Version 2.0+2</source>
|
||||
<translation type="vanished">版本: 2.0+2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="19"/>
|
||||
<location filename="../main.cpp" line="20"/>
|
||||
<source>https://gitee.com/deepin-community-store/spark-store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="24"/>
|
||||
<source><span style=' font-size:10pt;font-weight:60;'>An appstore powered by deepin community</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>Spark developers</span></source>
|
||||
<translation><span style=' font-size:10pt;font-weight:60;'>deepin 社区驱动的一款第三方应用商店</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>Spark developers</span></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="32"/>
|
||||
<source>The Spark Project</source>
|
||||
<translation>星火项目组</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Widget</name>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="52"/>
|
||||
<source>background-color:#FFFFFF</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="67"/>
|
||||
<source>Videos</source>
|
||||
<translation>视频播放</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="74"/>
|
||||
<source>Download List</source>
|
||||
<translation>下载列表</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="81"/>
|
||||
<source>Tools</source>
|
||||
<translation>系统工具</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="88"/>
|
||||
<source>Beautify</source>
|
||||
<translation>主题美化</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="95"/>
|
||||
<source>Music</source>
|
||||
<translation>音乐欣赏</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Coding</source>
|
||||
<translation type="vanished">编程开发</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="160"/>
|
||||
<source>Office</source>
|
||||
<translation>办公学习</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="200"/>
|
||||
<source>Translate</source>
|
||||
<translation>阅读翻译</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="207"/>
|
||||
<source>Others</source>
|
||||
<translation>其他应用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FrontPage</source>
|
||||
<translation type="vanished">商店首页</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Images</source>
|
||||
<translation type="vanished">图形图像</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="234"/>
|
||||
<source>Games</source>
|
||||
<translation>游戏娱乐</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Chatting</source>
|
||||
<translation type="vanished">社交沟通</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="248"/>
|
||||
<source>Network</source>
|
||||
<translation>网络应用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="383"/>
|
||||
<source>The list is currently empty. Go and download some softwares!</source>
|
||||
<translation>当前下载列表为空</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="415"/>
|
||||
<source>Open download directory</source>
|
||||
<translation>打开下载文件夹</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="528"/>
|
||||
<source>Name</source>
|
||||
<translation>软件名</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="568"/>
|
||||
<source>ICON</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="515"/>
|
||||
<location filename="../widget.cpp" line="536"/>
|
||||
<source>Install</source>
|
||||
<translation>安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="623"/>
|
||||
<source>Uninstall</source>
|
||||
<translation>卸载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="639"/>
|
||||
<source>Site</source>
|
||||
<translation>官网</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="712"/>
|
||||
<location filename="../widget.ui" line="715"/>
|
||||
<source><html><head/><body><p>This app is developed by community user,we give this tag to honor those who contribute to the Linux Ecology</p></body></html></source>
|
||||
<translation><html><head/><body><p>这款应用是社区开发者开发的,我们为社区开发者颁发这款勋章以表彰他们对Linux生态的贡献</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="718"/>
|
||||
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="731"/>
|
||||
<location filename="../widget.ui" line="734"/>
|
||||
<source><html><head/><body><p>Capable to Ubuntu 20.04</p></body></html></source>
|
||||
<translation><html><head/><body><p>支持Ubuntu 20.04</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="750"/>
|
||||
<location filename="../widget.ui" line="753"/>
|
||||
<source><html><head/><body><p>Capable to deepin 20</p></body></html></source>
|
||||
<translation><html><head/><body><p>支持deepin 20</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="756"/>
|
||||
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="769"/>
|
||||
<location filename="../widget.ui" line="772"/>
|
||||
<source><html><head/><body><p>Capable to UOS home 20</p></body></html></source>
|
||||
<translation><html><head/><body><p>支持UOS家庭版 20</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="788"/>
|
||||
<location filename="../widget.ui" line="791"/>
|
||||
<source><html><head/><body><p>This is a DTK5 app,which means it would have better effect on Deepin Desktop Environment</p></body></html></source>
|
||||
<translation><html><head/><body><p>这是一款DTK5应用,请使用深度桌面环境来获得最完美的体验</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="794"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="826"/>
|
||||
<location filename="../widget.ui" line="829"/>
|
||||
<source><html><head/><body><p>A deepin-wine5 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine5 by your self.</p></body></html></source>
|
||||
<translation><html><head/><body><p>这是一款deepin-wine5应用,如果你并没有在使用深度系列发行版(比如您在使用ubuntu),你需要自行配置deepin-wine5环境</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="845"/>
|
||||
<location filename="../widget.ui" line="848"/>
|
||||
<source><html><head/><body><p>An Appimage to deb app.</p></body></html></source>
|
||||
<translation><html><head/><body><p>这是一款Appimage转制应用.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="851"/>
|
||||
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="678"/>
|
||||
<source>Share</source>
|
||||
<translation>分享</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="153"/>
|
||||
<source>Development</source>
|
||||
<translation>编程开发</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="217"/>
|
||||
<source>Home </source>
|
||||
<translation>商店首页</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="227"/>
|
||||
<source>Graphics</source>
|
||||
<translation>图形图像</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="241"/>
|
||||
<source>Communication</source>
|
||||
<translation>社交沟通</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="807"/>
|
||||
<location filename="../widget.ui" line="810"/>
|
||||
<source><html><head/><body><p>A deepin-wine2 app.If you are using ubuntu or other non-deepin distro,you should deploy deepin-wine2 by your self.</p></body></html></source>
|
||||
<translation type="unfinished"><html><head/><body><p>这是一款deepin-wine5应用,如果你并没有在使用深度系列发行版(比如您在使用ubuntu),你需要自行配置deepin-wine5环境</p></body></html> {2 ?} {2 ?}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="813"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="832"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="874"/>
|
||||
<source>Contribute translation</source>
|
||||
<translation type="unfinished">贡献翻译</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="892"/>
|
||||
<source>Info</source>
|
||||
<translation>详细</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="899"/>
|
||||
<source><html><head/><body><p>An app store developed by community enthusiasts</p></body></html></source>
|
||||
<translation type="unfinished"><html><head/><body><p>社区爱好者开发的一款应用商店</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="938"/>
|
||||
<source>Screenshots</source>
|
||||
<translation>屏幕截图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1101"/>
|
||||
<source>Line Settings</source>
|
||||
<translation>线路设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1117"/>
|
||||
<source>Choose Line:</source>
|
||||
<translation>线路选择:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1140"/>
|
||||
<source>Refresh</source>
|
||||
<translation>刷新</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1153"/>
|
||||
<source>Take effect when restart </source>
|
||||
<translation>重启商店后生效</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1182"/>
|
||||
<source><html><head/><body><p>The role of the source server is to ensure that the software is updated, and supports the use of the apt tool to get the software. We usually prefer that you use the first line as the update source, which is generally the most stable. </p></body></html></source>
|
||||
<translation><html><head/><body><p>源服务器的作用是保证软件更新,并且支持使用apt工具获取软件。通常我们更建议你使用第一个线路作为更新源,一般是最稳定的。</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1192"/>
|
||||
<source>Update</source>
|
||||
<translation>更新源</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1199"/>
|
||||
<source>Source Server</source>
|
||||
<translation>更新源服务器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1219"/>
|
||||
<source>Server</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1240"/>
|
||||
<source>Temp</source>
|
||||
<translation>缓存目录</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1263"/>
|
||||
<source>Clean</source>
|
||||
<translation>清空</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1273"/>
|
||||
<source>Since the dictionary is at /tmp,It would be cleaned automatically when system reboot.</source>
|
||||
<translation>因为这个目录位于/tmp下,所以即使你不手动清空的话,其也将在系统重启时自动清空。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1286"/>
|
||||
<source>Size:</source>
|
||||
<translation>目录大小:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1300"/>
|
||||
<source>Location:/tmp/spark-store</source>
|
||||
<translation>目录位置:/tmp/spark-store</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1321"/>
|
||||
<source>About us</source>
|
||||
<translation>关于我们</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1328"/>
|
||||
<source><html><head/><body><p>We are <span style=" font-weight:600;">NOT</span> the official team, just like you, we are just one of the many Linux/deepin system enthusiasts and users, we develop and run the &quot;Spark Store&quot;! &quot;, is to bring the community together to share useful software, or to participate in development together, so that we all use the latest and greatest software. </p><p>We don't make a profit from this, all developers and maintainers don't get paid, and we rely on the community's donations to us for most of our expenses, which we are grateful for and which allow us not to spend too much energy worrying about funding. </p><p>Our service and software are free for everyone to use, communicate, and learn, but you must comply with local laws and regulations in the process of your use, otherwise any problems have nothing to do with us. </p><p>If any part of the store infringes your rights, please tell us &lt;jifengshenmo@outlook.com&gt; we will remove the infringing content as soon as possible. </p><p>If you'd like to get involved with us too, whether you're involved in development, design, pitching or submitting work, we welcome you to join us. </p><p>QQ group:872690351<br/></p></body></html></source>
|
||||
<translation><html><head/><body><p>我们并<span style=" font-weight:600;">不是</span>官方团队,和你一样,我们也只是众多Linux/deepin系统爱好者和用户之中的一员,我们开发并且运营这个“Spark应用商店”,是为了让社区的朋友们一起分享好用的软件,或者一起参与开发,让大家都用到最新的,最优秀的软件。</p><p>我们并没有因此盈利,所有开发和维护人员都不会获得报酬,我们的主要支出大部分依赖于社区对我们的捐助,很感谢大家,这部分捐助让我们并不需要耗费太多精力去担心资金问题。</p><p>我们的服务和开发的软件都是免费供给大家使用,交流,学习的,但是在您的使用过程中一定要遵守当地的法律法规,否则出现任何问题和我们无关。</p><p>如果商店中任何一部分有侵犯您权益的行为,请告知我们 &lt;jifengshenmo@outlook.com&gt;,我们会第一时间删除侵权内容。</p><p>如果你也想参与我们,不管是参与开发,设计,投递还是投稿作品,我们都欢迎你的加入。</p><p>QQ 群:872690351<br/></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="114"/>
|
||||
<source>icon</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="173"/>
|
||||
<source>Back to category</source>
|
||||
<translation>返回分类</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="293"/>
|
||||
<source>Reload</source>
|
||||
<translation>刷新</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="342"/>
|
||||
<source>about:blank</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="540"/>
|
||||
<source><html><head/><body><p><br/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="737"/>
|
||||
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="775"/>
|
||||
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.ui" line="1293"/>
|
||||
<source>0B</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="146"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>Spark 应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="147"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation>搜索或打开链接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="153"/>
|
||||
<source>Submit App</source>
|
||||
<translation>投递应用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="154"/>
|
||||
<source>Settings</source>
|
||||
<translation>设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="245"/>
|
||||
<source>Not Exist</source>
|
||||
<translation>不存在</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="297"/>
|
||||
<location filename="../widget.cpp" line="305"/>
|
||||
<source>Spark\ Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="480"/>
|
||||
<source>Failed to download app info. Please check internet connection.</source>
|
||||
<translation>下载应用程序详细信息失败,请检查网络连接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="510"/>
|
||||
<source>PkgName: </source>
|
||||
<translation>包名:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="511"/>
|
||||
<source>Version: </source>
|
||||
<translation>版本:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="513"/>
|
||||
<source>Author: </source>
|
||||
<translation>作者:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="517"/>
|
||||
<source>Official Site: </source>
|
||||
<translation>官网:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="521"/>
|
||||
<source>Contributor: </source>
|
||||
<translation>投稿者:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="522"/>
|
||||
<source>Update Time: </source>
|
||||
<translation>更新时间:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="523"/>
|
||||
<source>Installed Size: </source>
|
||||
<translation>大小:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="532"/>
|
||||
<location filename="../widget.cpp" line="645"/>
|
||||
<source>Reinstall</source>
|
||||
<translation>重新安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="571"/>
|
||||
<source>Failed to load application icon.</source>
|
||||
<translation>加载应用程序图标失败</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="620"/>
|
||||
<source>Failed to get the name to the file to be downloaded.</source>
|
||||
<translation>获取安装包文件名失败</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="668"/>
|
||||
<source>Spark store could only process spk:// links for now. The search feature is coming soon!</source>
|
||||
<translation>目前仅支持商店专用链接的打开,搜索功能正在开发,请期待以后的版本!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="789"/>
|
||||
<source>Updating, please wait...</source>
|
||||
<translation>正在更新,请稍候……</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="842"/>
|
||||
<source>Apt has reported an error. Please use apt update in terminal to locate the problem.</source>
|
||||
<translation>更新中发生错误,请在终端使用apt update来查看错误原因</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="848"/>
|
||||
<source>Unknown error!</source>
|
||||
<translation>未知错误!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="1024"/>
|
||||
<source>Yes</source>
|
||||
<translation>是</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="1024"/>
|
||||
<source>No</source>
|
||||
<translation>否</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="1025"/>
|
||||
<source>Information for Contributors</source>
|
||||
<translation>贡献者须知</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="1026"/>
|
||||
<source>Currently the translation contribution is limited to English,
|
||||
and you will be redirected to our Gitee repository at which you are
|
||||
supposed to be creating pull requests to contribute app info
|
||||
translations.
|
||||
Tips:You can simply click the file to edit to create a flat pull request without create a full pull request
|
||||
Tips:You can use github account to login to Gitee
|
||||
Click yes to continue.</source>
|
||||
<translation type="unfinished">目前商店仅支持应用程序英文详细信息的贡献。
|
||||
在你确认后你会被导向到我们的 Gitee 页面,
|
||||
请在此创建 Pull Request 以进行翻译贡献。
|
||||
备注:你可以直接在页面编辑以快速创建轻量级pr
|
||||
你也可以使用github账户直接登陆Gitee
|
||||
|
||||
单击“是”以继续。.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Currently the translation contribution is limited to English,
|
||||
and you will be redirected to our Gitee repository at which you are
|
||||
supposed to be creating pull requests to contribute app info
|
||||
translations.
|
||||
|
||||
Click yes to continue.</source>
|
||||
<translation type="obsolete">目前商店仅支持应用程序英文详细信息的贡献。
|
||||
在你确认后你会被导向到我们的 Gitee 页面,
|
||||
请在此创建 Pull Request 以进行翻译贡献。
|
||||
备注:你可以直接在页面编辑以快速创建轻量级pr
|
||||
你也可以使用github账户直接登陆Gitee
|
||||
|
||||
单击“是”以继续。.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown server error!</source>
|
||||
<translation type="vanished">服务器未知错误</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="868"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation>卸载成功</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="882"/>
|
||||
<source>Temporary cache was cleaned</source>
|
||||
<translation>缓存目录已清空</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widget.cpp" line="949"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation>链接已复制到剪贴板</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>downloadlist</name>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="20"/>
|
||||
<source>Form</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="50"/>
|
||||
<source>icon</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="82"/>
|
||||
<source>TextLabel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="106"/>
|
||||
<source>Name</source>
|
||||
<translation>软件名</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="189"/>
|
||||
<source>Waiting to download</source>
|
||||
<translation>正在等待下载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="240"/>
|
||||
<source>Install</source>
|
||||
<translation>安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="259"/>
|
||||
<source>Cancel</source>
|
||||
<translation>取消</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.ui" line="278"/>
|
||||
<source>Info</source>
|
||||
<translation>详情</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="24"/>
|
||||
<source>dpkg</source>
|
||||
<translation>dpkg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="25"/>
|
||||
<source>gdebi</source>
|
||||
<translation>gdebi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="26"/>
|
||||
<source>deepin deb installer</source>
|
||||
<translation>深度软件包安装器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="55"/>
|
||||
<source>Downloaded, waiting to install</source>
|
||||
<translation>已完成,等待安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="80"/>
|
||||
<source>Failed to download %1</source>
|
||||
<translation>下载 %1 失败</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="82"/>
|
||||
<source>Download Failed,Check Your Connection</source>
|
||||
<translation>下载失败,请检查网络连接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="92"/>
|
||||
<source>Finished downloading %1, awaiting to install</source>
|
||||
<translation>%1 下载完成,等待安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="125"/>
|
||||
<source>Installing...</source>
|
||||
<translation>正在安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="172"/>
|
||||
<source>Finish</source>
|
||||
<translation>完成</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="176"/>
|
||||
<source>Retry</source>
|
||||
<translation>重试</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="177"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<translation>dpkg出现错误,可重新安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="181"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<translation>安装被中止,可重新安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../downloadlist.cpp" line="203"/>
|
||||
<source>Download canceled</source>
|
||||
<translation>下载已取消</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
430
widget.cpp
@@ -16,9 +16,9 @@
|
||||
#include <QtConcurrent> // 并发
|
||||
#include <QSettings>
|
||||
#include <QIcon>
|
||||
#include <QWebFrame>
|
||||
#include <QGraphicsOpacityEffect>
|
||||
#include <QDesktopServices>
|
||||
#include <DDialog>
|
||||
#include <DSettings>
|
||||
#include <DSettingsOption>
|
||||
#include <DSettingsDialog>
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <QClipboard>
|
||||
#include <DApplication>
|
||||
#include <DGuiApplicationHelper>
|
||||
#include <DPushButton>
|
||||
DWIDGET_USE_NAMESPACE
|
||||
|
||||
Widget::Widget(DBlurEffectWidget *parent) :
|
||||
@@ -36,22 +37,24 @@ 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);});
|
||||
connect(ui->menu_chat,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(2);});
|
||||
connect(ui->menu_music,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(3);});
|
||||
connect(ui->menu_video,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(4);});
|
||||
connect(ui->menu_photo,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(5);});
|
||||
connect(ui->menu_game,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(6);});
|
||||
connect(ui->menu_office,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(7);});
|
||||
connect(ui->menu_read,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(8);});
|
||||
connect(ui->menu_dev,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(9);});
|
||||
connect(ui->menu_system,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(10);});
|
||||
connect(ui->menu_theme,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(11);});
|
||||
connect(ui->menu_other,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(12);});
|
||||
connect(ui->menu_download,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(13);});
|
||||
connect(ui->menu_main,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(0);});
|
||||
connect(ui->menu_network,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(1);});
|
||||
connect(ui->menu_chat,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(2);});
|
||||
connect(ui->menu_music,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(3);});
|
||||
connect(ui->menu_video,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(4);});
|
||||
connect(ui->menu_photo,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(5);});
|
||||
connect(ui->menu_game,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(6);});
|
||||
connect(ui->menu_office,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(7);});
|
||||
connect(ui->menu_read,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(8);});
|
||||
connect(ui->menu_dev,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(9);});
|
||||
connect(ui->menu_system,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(10);});
|
||||
connect(ui->menu_theme,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(11);});
|
||||
connect(ui->menu_other,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(12);});
|
||||
connect(ui->menu_download,&DPushButton::clicked,[=](){Widget::chooseLeftMenu(13);});
|
||||
// connect((ui->titlebar))
|
||||
|
||||
// 搜索事件
|
||||
@@ -72,7 +75,7 @@ Widget::Widget(DBlurEffectWidget *parent) :
|
||||
qDebug()<<"Dark";
|
||||
setTheme(true,main_color);
|
||||
}else {
|
||||
qDebug()<<"White";
|
||||
qDebug()<<"Light";
|
||||
setTheme(false,main_color);
|
||||
}
|
||||
});
|
||||
@@ -99,6 +102,8 @@ Widget::Widget(DBlurEffectWidget *parent) :
|
||||
size2=download_size;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
Widget::~Widget()
|
||||
@@ -138,17 +143,23 @@ void Widget::initUI()
|
||||
titlebar=ui->titlebar;
|
||||
titlebar->setCustomWidget(w_titlebar);
|
||||
// titlebar->setIcon(QIcon::fromTheme("spark-store"));
|
||||
titlebar->setTitle("星火应用商店");
|
||||
searchEdit->setPlaceholderText("搜索或打开链接");
|
||||
titlebar->setTitle(tr("Spark Store"));
|
||||
searchEdit->setPlaceholderText(tr("Search or enter spk://"));
|
||||
searchEdit->setFixedWidth(300);
|
||||
titlebar->setSeparatorVisible(false);
|
||||
// titlebar->setAutoHideOnFullscreen(true);
|
||||
|
||||
// 添加菜单项
|
||||
QAction *setting=new QAction("设置");
|
||||
QAction *actionSubmission = new QAction(tr("Submit App"), this);
|
||||
QAction *setting=new QAction(tr("Settings"));
|
||||
|
||||
QMenu *menu=new QMenu;
|
||||
|
||||
menu->addAction(setting);
|
||||
menu->addAction(actionSubmission);
|
||||
titlebar->setMenu(menu);
|
||||
connect(actionSubmission, &QAction::triggered, this,
|
||||
[=](){QDesktopServices::openUrl(QUrl("https://upload.spark-app.store/"));});
|
||||
connect(setting,&QAction::triggered,this,&Widget::opensetting);
|
||||
|
||||
// 初始化菜单数组
|
||||
@@ -167,21 +178,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();
|
||||
|
||||
}
|
||||
@@ -208,7 +205,6 @@ void Widget::initConfig()
|
||||
}else {
|
||||
serverUrl="http://sucdn.jerrywang.top/"; // 默认URL
|
||||
}
|
||||
// by shenmo 在这里换成路径为{cdn/dc}/store/#
|
||||
configCanSave=true; // 防止触发保存配置信号
|
||||
menuUrl[0]=serverUrl + "store/#/";
|
||||
// menuUrl[0]="http://127.0.0.1:8000/#/darkprogramming";
|
||||
@@ -225,14 +221,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++){
|
||||
@@ -245,7 +242,7 @@ void Widget::initConfig()
|
||||
if(aptserver.isOpen()){
|
||||
ui->label_aptserver->setText(aptserver.readAll());
|
||||
}else {
|
||||
ui->label_aptserver->setText("不存在");
|
||||
ui->label_aptserver->setText(tr("Not Exist"));
|
||||
}
|
||||
aptserver.close();
|
||||
|
||||
@@ -260,26 +257,28 @@ 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");
|
||||
ui->scrollArea->setStyleSheet("#scrollArea{background-color:#252525}");
|
||||
// ui->scrollArea->setStyleSheet("background-color:#252525");
|
||||
ui->label_show->setStyleSheet("background-color:#252525");
|
||||
ui->pushButton_return->setIcon(QIcon(":/icons/icons/category_active_dark.svg"));
|
||||
ui->pushButton_refresh->setIcon(QIcon(":/icons/icons/refresh-page-dark.svg"));
|
||||
}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");
|
||||
ui->scrollArea->setStyleSheet("#scrollArea{background-color:#F8F8F8}");
|
||||
// ui->scrollArea->setStyleSheet("background-color:#F8F8F8");
|
||||
ui->label_show->setStyleSheet("background-color:#F8F8F8");
|
||||
ui->pushButton_return->setIcon(QIcon(":/icons/icons/category_active.svg"));
|
||||
ui->pushButton_refresh->setIcon(QIcon(":/icons/icons/refresh-page.svg"));
|
||||
}
|
||||
main_color=color;
|
||||
|
||||
m_loadweb->setTheme(themeIsDark,color);
|
||||
updateUI();
|
||||
if(ui->stackedWidget->currentIndex()==0){
|
||||
chooseLeftMenu(nowMenu);
|
||||
@@ -289,36 +288,23 @@ void Widget::setTheme(bool isDark,QColor color)
|
||||
|
||||
DTitlebar* Widget::getTitlebar()
|
||||
{
|
||||
return ui->titlebar;
|
||||
return ui->titlebar;
|
||||
}
|
||||
|
||||
void Widget::on_webView_loadStarted()
|
||||
void Widget::sendNotification(const QString &message, const int msTimeout, const QString &icon)
|
||||
{
|
||||
m_loadweb->setValue(0);
|
||||
m_loadweb->show();
|
||||
m_loaderror->hide();
|
||||
ui->label_show->hide();
|
||||
system((QString("notify-send --icon=%1 --expire-time=%2 --app-name=").arg(icon).arg(msTimeout) +
|
||||
tr("Spark\\ Store") +
|
||||
" '" + message + "'"
|
||||
).toUtf8());
|
||||
}
|
||||
|
||||
// 分析出服务器中的分类名称
|
||||
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::sendNotification(const char *message, const int msTimeout, const QString &icon)
|
||||
{
|
||||
system((QString("notify-send --icon=%1 --expire-time=%2 --app-name=").arg(icon).arg(msTimeout) +
|
||||
tr("Spark\\ Store") +
|
||||
" '" + message + "'"
|
||||
).toUtf8());
|
||||
}
|
||||
|
||||
void Widget::updateUI()
|
||||
@@ -363,6 +349,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 +401,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 +413,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);
|
||||
@@ -451,10 +438,10 @@ void Widget::updatefoot()
|
||||
ui->webfoot->setFixedHeight(allh-foot);
|
||||
}
|
||||
|
||||
void Widget::loadappinfo(QUrl arg1)
|
||||
int Widget::loadappinfo(QUrl arg1)
|
||||
{
|
||||
if(arg1.isEmpty()){
|
||||
return;
|
||||
return 1;
|
||||
}
|
||||
|
||||
// 先隐藏详情页负责显示截图的label
|
||||
@@ -463,12 +450,23 @@ void Widget::loadappinfo(QUrl arg1)
|
||||
ui->screen_2->hide();
|
||||
ui->screen_3->hide();
|
||||
ui->screen_4->hide();
|
||||
ui->label_appicon->clear();
|
||||
ui->tag_community->hide();
|
||||
ui->tag_ubuntu->hide();
|
||||
ui->tag_deepin->hide();
|
||||
ui->tag_uos->hide();
|
||||
ui->tag_dtk5->hide();
|
||||
ui->tag_dwine2->hide();
|
||||
ui->tag_dwine5->hide();
|
||||
ui->tag_a2d->hide();
|
||||
|
||||
// 重置UI状态
|
||||
ui->pushButton_uninstall->hide();
|
||||
ui->label_show->setText("正在加载,请稍候");
|
||||
ui->pushButton_website->setEnabled(false);
|
||||
ui->pushButton->setEnabled(false);
|
||||
ui->pushButton_translate->setEnabled(false);
|
||||
ui->label_show->setText("Loading...");
|
||||
ui->label_show->show();
|
||||
ui->pushButton_website->hide();
|
||||
|
||||
QProcess get_json;
|
||||
QDir dir("/tmp");
|
||||
@@ -477,6 +475,11 @@ void Widget::loadappinfo(QUrl arg1)
|
||||
|
||||
get_json.start("curl -o app.json "+arg1.toString());
|
||||
get_json.waitForFinished();
|
||||
if(get_json.exitCode())
|
||||
{
|
||||
sendNotification(tr("Failed to download app info. Please check internet connection."));
|
||||
}
|
||||
|
||||
QFile app_json("app.json");
|
||||
if(app_json.open(QIODevice::ReadOnly)){
|
||||
// 成功得到json文件
|
||||
@@ -487,7 +490,7 @@ void Widget::loadappinfo(QUrl arg1)
|
||||
urladdress=ui->comboBox_server->currentText();
|
||||
QString deburl=urladdress;
|
||||
deburl=deburl.left(urladdress.length()-1);
|
||||
urladdress="http://img.jerrywang.top/"; // 使用图片专用服务器请保留这行,删除后将使用源服务器
|
||||
urladdress="https://cdn.jsdelivr.net/gh/Jerrywang959/jsonpng@master/"; // 使用图片专用服务器请保留这行,删除后将使用源服务器
|
||||
urladdress=urladdress.left(urladdress.length()-1);
|
||||
|
||||
for (int i=3;i<downloadurl.size();i++) {
|
||||
@@ -504,20 +507,20 @@ void Widget::loadappinfo(QUrl arg1)
|
||||
ui->label_show->show();
|
||||
// 软件信息加载
|
||||
QString info;
|
||||
info="包名: "+json["Pkgname"].toString()+"\n";
|
||||
info+="版本号: "+json["Version"].toString()+"\n";
|
||||
info= tr("PkgName: ")+json["Pkgname"].toString()+"\n";
|
||||
info+=tr("Version: ")+json["Version"].toString()+"\n";
|
||||
if(json["Author"].toString()!="" && json["Author"].toString()!=" "){
|
||||
info+="作者: "+json["Author"].toString()+"\n";
|
||||
info+=tr("Author: ")+json["Author"].toString()+"\n";
|
||||
}
|
||||
|
||||
if(json["Website"].toString()!="" && json["Website"].toString()!=" "){
|
||||
info+="官网: "+json["Website"].toString()+"\n";
|
||||
info+=tr("Official Site: ")+json["Website"].toString()+"\n";
|
||||
ui->pushButton_website->show();
|
||||
appweb=json["Website"].toString();
|
||||
}
|
||||
info+="投稿者: "+json["Contributor"].toString()+"\n";
|
||||
info+="更新时间: "+json["Update"].toString()+"\n";
|
||||
info+="大小: "+json["Size"].toString()+"\n";
|
||||
info+=tr("Contributor: ")+json["Contributor"].toString()+"\n";
|
||||
info+=tr("Update Time: ")+json["Update"].toString()+"\n";
|
||||
info+=tr("Installed Size: ")+json["Size"].toString()+"\n";
|
||||
ui->label_info->setText(info);
|
||||
ui->label_more->setText(json["More"].toString());
|
||||
QProcess isInstall;
|
||||
@@ -526,18 +529,47 @@ void Widget::loadappinfo(QUrl arg1)
|
||||
isInstall.waitForFinished();
|
||||
int error=QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
|
||||
if(error==0){
|
||||
ui->pushButton_download->setText("重新安装");
|
||||
ui->pushButton_download->setText(tr("Reinstall"));
|
||||
ui->pushButton_uninstall->show();
|
||||
|
||||
}else {
|
||||
ui->pushButton_download->setText("安装");
|
||||
ui->pushButton_download->setText(tr("Install"));
|
||||
}
|
||||
//tag加载
|
||||
QString tags=json["Tags"].toString();
|
||||
QStringList tagList=tags.split(";");
|
||||
for (int i=0;i<tagList.size();i++) {
|
||||
if(tagList[i]=="community")
|
||||
ui->tag_community->show();
|
||||
if(tagList[i]=="ubuntu")
|
||||
ui->tag_ubuntu->show();
|
||||
if(tagList[i]=="deepin")
|
||||
ui->tag_deepin->show();
|
||||
if(tagList[i]=="uos")
|
||||
ui->tag_uos->show();
|
||||
if(tagList[i]=="dtk5")
|
||||
ui->tag_dtk5->show();
|
||||
if(tagList[i]=="dwine2")
|
||||
ui->tag_dwine2->show();
|
||||
if(tagList[i]=="dwine5")
|
||||
ui->tag_dwine5->show();
|
||||
if(tagList[i]=="a2d")
|
||||
ui->tag_a2d->show();
|
||||
}
|
||||
// 图标加载
|
||||
get_json.start("curl -o icon.png "+urladdress+"icon.png");
|
||||
get_json.waitForFinished();
|
||||
QPixmap appicon(QString::fromUtf8(TMP_PATH)+"/icon.png");
|
||||
ui->label_appicon->setPixmap(appicon);
|
||||
ui->pushButton_download->setEnabled(true);
|
||||
if(!get_json.exitCode()) {
|
||||
QPixmap appicon(QString::fromUtf8(TMP_PATH)+"/icon.png");
|
||||
ui->label_appicon->setPixmap(appicon);
|
||||
ui->pushButton_download->setEnabled(true);
|
||||
ui->pushButton->setEnabled(true);
|
||||
ui->pushButton_translate->setEnabled(true);
|
||||
ui->pushButton_website->setEnabled(true);
|
||||
}
|
||||
else
|
||||
sendNotification(tr("Failed to load application icon."));
|
||||
|
||||
|
||||
// 截图展示加载
|
||||
image_show *label_screen[5];
|
||||
@@ -547,9 +579,12 @@ void Widget::loadappinfo(QUrl arg1)
|
||||
label_screen[3]=ui->screen_3;
|
||||
label_screen[4]=ui->screen_4;
|
||||
for (int i=0;i<5;i++) {
|
||||
get_json.start("curl -o screen_"+QString::number(i+1)+".png "+urladdress+"screen_"+QString::number(i+1)+".png");
|
||||
QString cmd = "curl -o screen_"+QString::number(i+1)+".png "+urladdress+"screen_"+QString::number(i+1)+".png";
|
||||
get_json.terminate();
|
||||
get_json.start(cmd);
|
||||
get_json.waitForFinished();
|
||||
if(screen[i].load("screen_"+QString::number(i+1)+".png")){
|
||||
bool s = screen[i].load("screen_"+QString::number(i+1)+".png");
|
||||
if(s){
|
||||
label_screen[i]->setImage(screen[i]);
|
||||
label_screen[i]->show();
|
||||
switch(i){ // 故意为之,为了清除多余截图
|
||||
@@ -570,6 +605,7 @@ void Widget::loadappinfo(QUrl arg1)
|
||||
ui->label_show->setText("");
|
||||
ui->label_show->hide();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Widget::on_pushButton_download_clicked()
|
||||
@@ -581,7 +617,7 @@ void Widget::on_pushButton_download_clicked()
|
||||
download_list[allDownload-1].pkgName=pkgName;
|
||||
if(fileName.isEmpty())
|
||||
{
|
||||
system("notify-send 获取失败 --icon=spark-store");
|
||||
sendNotification(tr("Failed to get the name to the file to be downloaded."));
|
||||
return;
|
||||
}
|
||||
download_list[allDownload-1].setParent(ui->listWidget);
|
||||
@@ -606,7 +642,7 @@ void Widget::on_pushButton_download_clicked()
|
||||
nowDownload+=1;
|
||||
startRequest(urList.at(nowDownload-1)); // 进行链接请求
|
||||
}
|
||||
if(ui->pushButton_download->text()=="重新安装"){
|
||||
if(ui->pushButton_download->text()==tr("Reinstall")){
|
||||
download_list[allDownload-1].reinstall=true;
|
||||
}
|
||||
}
|
||||
@@ -629,8 +665,8 @@ void Widget::searchApp(QString text)
|
||||
if(text.left(6)=="spk://"){
|
||||
openUrl(text);
|
||||
}else {
|
||||
system("notify-send 目前仅支持商店专用链接的打开,搜索功能正在开发,请期待以后的版本! --icon=spark-store");
|
||||
// ui->webView->setUrl(QUrl("http://www.baidu.com/s?wd="+text));
|
||||
sendNotification(tr("Spark store could only process spk:// links for now. The search feature is coming soon!"));
|
||||
// ui->webView->setUrl(QUrl("http://www.baidu.com/s?wd="+text));//这东西对接百度
|
||||
// ui->stackedWidget->setCurrentIndex(0);
|
||||
}
|
||||
}
|
||||
@@ -645,6 +681,7 @@ void Widget::httpReadyRead()
|
||||
|
||||
void Widget::updateDataReadProgress(qint64 bytesRead, qint64 totalBytes)
|
||||
{
|
||||
if(totalBytes <= 0) return;
|
||||
download_list[nowDownload-1].setMax(10000); // 最大值
|
||||
download_list[nowDownload-1].setValue((bytesRead*10000)/totalBytes); // 当前值
|
||||
download_size=bytesRead;
|
||||
@@ -706,6 +743,14 @@ void Widget::on_pushButton_return_clicked()
|
||||
// }
|
||||
}
|
||||
|
||||
void Widget::on_pushButton_refresh_clicked()
|
||||
{
|
||||
if(ui->stackedWidget->currentIndex() == 2) //如果在详情页面要重新触发UrlChanged
|
||||
emit ui->webEngineView->urlChanged(ui->webEngineView->url());
|
||||
else
|
||||
ui->webEngineView->reload();
|
||||
}
|
||||
|
||||
void Widget::on_comboBox_server_currentIndexChanged(const QString &arg1)
|
||||
{
|
||||
if(configCanSave){
|
||||
@@ -741,39 +786,66 @@ void Widget::on_pushButton_updateApt_clicked()
|
||||
{
|
||||
QtConcurrent::run([=](){
|
||||
ui->pushButton_updateApt->setEnabled(false);
|
||||
ui->label_aptserver->setText("请稍等,正在更新");
|
||||
std::fstream sourcesList;
|
||||
ui->label_aptserver->setText(tr("Updating, please wait..."));
|
||||
|
||||
std::fstream sourcesList, policy, update;
|
||||
QDir tmpdir("/tmp");
|
||||
auto tmpPath = QString::fromUtf8(TMP_PATH).toStdString();
|
||||
bool unknownError = true;
|
||||
|
||||
tmpdir.mkpath("spark-store");
|
||||
sourcesList.open(QString::fromUtf8(TMP_PATH).toStdString()+"/sparkstore.list",std::ios::out);
|
||||
if(sourcesList){
|
||||
sourcesList<<"deb [by-hash=force] ";
|
||||
sourcesList<<QString::fromUtf8(ui->comboBox_server->currentText().toUtf8()).toStdString();
|
||||
sourcesList<<" /";
|
||||
std::fstream update;
|
||||
update.open(QString::fromUtf8(TMP_PATH).toStdString()+"/update.sh",std::ios::out);
|
||||
update<<"#!/bin/sh\n";
|
||||
update<<"mv "+QString::fromUtf8(TMP_PATH).toStdString()+"/sparkstore.list /etc/apt/sources.list.d/sparkstore.list && apt update";
|
||||
update.close();
|
||||
system("chmod +x "+QString::fromUtf8(TMP_PATH).toUtf8()+"/update.sh");
|
||||
QProcess runupdate;
|
||||
runupdate.start("pkexec "+QString::fromUtf8(TMP_PATH)+"/update.sh");
|
||||
runupdate.waitForFinished();
|
||||
QString error=QString::fromStdString(runupdate.readAllStandardError().toStdString());
|
||||
QStringList everyError=error.split("\n");
|
||||
bool haveError=false;
|
||||
for (int i=0;i<everyError.size();i++) {
|
||||
if(everyError[i].left(2)=="E:"){
|
||||
haveError=true;
|
||||
sourcesList.open(tmpPath + "/sparkstore.list", std::ios::out);
|
||||
//policy.open(tmpPath + "/sparkstore", std::ios::out);
|
||||
// 商店已经下架会替换系统库的包,优先级policy弃用
|
||||
|
||||
if(sourcesList /*&& policy*/) {
|
||||
auto serverAddr = ui->comboBox_server->currentText();
|
||||
|
||||
sourcesList << "deb [by-hash=force] ";
|
||||
sourcesList << serverAddr.toUtf8().toStdString();
|
||||
sourcesList << " /";
|
||||
sourcesList.close();
|
||||
|
||||
/*
|
||||
policy << "Package: *\n"
|
||||
"Pin: origin *" << serverAddr.mid(serverAddr.indexOf('.')).toUtf8().toStdString() << "\n"
|
||||
"Pin-Priority: 90"; // 降低星火源的优先级,防止从星火安装已存在的系统包,破坏依赖
|
||||
policy.close();
|
||||
*/
|
||||
|
||||
update.open(tmpPath + "/update.sh",std::ios::out);
|
||||
if(update) {
|
||||
unknownError = false;
|
||||
update << "#!/bin/sh\n"
|
||||
"mv " + tmpPath + "/sparkstore.list /etc/apt/sources.list.d/sparkstore.list && "
|
||||
// "mv " + tmpPath + "/sparkstore /etc/apt/preferences.d/sparkstore && "
|
||||
"apt update";
|
||||
update.close();
|
||||
|
||||
system(("chmod +x " + tmpPath + "/update.sh").c_str());
|
||||
QProcess runupdate;
|
||||
runupdate.start(QString::fromStdString("pkexec " + tmpPath + "/update.sh"));
|
||||
runupdate.waitForFinished();
|
||||
QString error = runupdate.readAllStandardError();
|
||||
|
||||
QStringList everyError = error.split("\n");
|
||||
bool haveError = false;
|
||||
for (int i=0; i < everyError.size(); i++) {
|
||||
if(everyError[i].left(2) == "E:") {
|
||||
haveError = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!haveError) {
|
||||
ui->label_aptserver->setText("deb [by-hash=force] " + ui->comboBox_server->currentText().toUtf8() + " /");
|
||||
} else {
|
||||
ui->label_aptserver->setText(tr("Apt has reported an error. Please use apt update in terminal to locate the problem."));
|
||||
}
|
||||
}
|
||||
if(!haveError){
|
||||
ui->label_aptserver->setText("deb [by-hash=force] "+ui->comboBox_server->currentText().toUtf8()+" /");
|
||||
}else {
|
||||
ui->label_aptserver->setText("更新中发生错误,请在终端使用apt update来查看错误原因");
|
||||
}
|
||||
}else {
|
||||
ui->label_aptserver->setText("服务器错误");
|
||||
}
|
||||
|
||||
if(unknownError) {
|
||||
ui->label_aptserver->setText(tr("Unknown error!"));
|
||||
}
|
||||
|
||||
ui->pushButton_updateApt->setEnabled(true);
|
||||
@@ -789,11 +861,11 @@ void Widget::on_pushButton_uninstall_clicked()
|
||||
uninstall.start("pkexec apt purge -y "+pkgName);
|
||||
uninstall.waitForFinished();
|
||||
ui->pushButton_download->setEnabled(true);
|
||||
ui->pushButton_download->setText("安装");
|
||||
ui->pushButton_download->setText("Install");
|
||||
ui->pushButton_uninstall->hide();
|
||||
ui->pushButton_uninstall->setEnabled(true);
|
||||
updatesEnabled();
|
||||
system("notify-send 卸载完成 --icon=spark-store");
|
||||
sendNotification(tr("Uninstall succeeded"));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -807,7 +879,7 @@ void Widget::on_pushButton_clear_clicked() // 清空临时缓存目录
|
||||
for (int i=0;i<quantity;i++) {
|
||||
tmpdir.remove(tmpdir[i]);
|
||||
}
|
||||
system("notify-send 已清除所有临时缓存 --icon=spark-store");
|
||||
sendNotification(tr("Temporary cache was cleaned"));
|
||||
ui->pushButton_clear->setEnabled(true);
|
||||
Widget::opensetting();
|
||||
});
|
||||
@@ -859,7 +931,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,33 +939,14 @@ 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;
|
||||
share_url="spk://store/"+type_name+"/"+pkgName;
|
||||
qDebug()<<"Share"<<share_url;
|
||||
QClipboard *clipboard=QApplication::clipboard();
|
||||
system("notify-send 链接已经复制到剪贴板 --icon=spark-store");
|
||||
clipboard->setText(share_url);
|
||||
sendNotification(tr("The URL has been copied to the clipboard"));
|
||||
}
|
||||
|
||||
void Widget::on_btn_openDir_clicked()
|
||||
@@ -910,3 +963,74 @@ 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([=](){
|
||||
int loadresult = 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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void Widget::on_pushButton_translate_clicked()
|
||||
{
|
||||
DDialog tipDialog;
|
||||
tipDialog.setWordWrapMessage(true);
|
||||
tipDialog.addButtons({ tr("Yes"), tr("No") });
|
||||
tipDialog.setTitle(tr("Information for Contributors"));
|
||||
tipDialog.setMessage(tr("Currently the translation contribution is limited to English,\n"
|
||||
"and you will be redirected to our Gitee repository at which you are\n"
|
||||
"supposed to be creating pull requests to contribute app info\n"
|
||||
"translations.\n"
|
||||
"Tips:You can simply click the file to edit to create a flat pull request without create a full pull request\n"
|
||||
"Tips:You can use github account to login to Gitee"
|
||||
"\nClick yes to continue."));
|
||||
if(!tipDialog.exec())
|
||||
QDesktopServices::openUrl("https://gitee.com/deepin-community-store/json/tree/master/store/" +
|
||||
type_name + '/' + pkgName);
|
||||
}
|
||||
|
||||
22
widget.h
@@ -10,6 +10,7 @@
|
||||
#include <QJsonObject>
|
||||
#include <QProcess>
|
||||
#include <QFuture>
|
||||
#include <QFutureWatcher>
|
||||
#include <QToolButton>
|
||||
#include <QTimer>
|
||||
#include <DSettings>
|
||||
@@ -19,6 +20,7 @@
|
||||
#include <QLabel>
|
||||
#include <DTitlebar>
|
||||
#include <DSearchEdit>
|
||||
#include <progressload.h>
|
||||
#define LIST_MAX 99 //一次最多下载数量
|
||||
#define TMP_PATH "/tmp/spark-store"
|
||||
|
||||
@@ -46,6 +48,9 @@ public:
|
||||
void setTheme(bool,QColor);
|
||||
DTitlebar* getTitlebar();
|
||||
|
||||
static void sendNotification(const QString &message, const int msTimeout = 5000, const QString &icon = "spark-store");
|
||||
static void sendNotification(const char *message, const int msTimeout = 5000, const QString &icon = "spark-store");
|
||||
|
||||
private slots:
|
||||
|
||||
void httpFinished();
|
||||
@@ -53,21 +58,21 @@ 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();
|
||||
|
||||
void on_btn_openDir_clicked();
|
||||
|
||||
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);
|
||||
void on_pushButton_refresh_clicked();
|
||||
void on_pushButton_translate_clicked();
|
||||
|
||||
public:
|
||||
|
||||
@@ -90,7 +95,7 @@ public:
|
||||
private:
|
||||
void initUI();
|
||||
void initConfig();
|
||||
void loadappinfo(QUrl);
|
||||
int loadappinfo(QUrl);
|
||||
void chooseLeftMenu(int index);
|
||||
void setfoot(int);
|
||||
void updatefoot();
|
||||
@@ -101,7 +106,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;
|
||||
@@ -112,6 +117,7 @@ private:
|
||||
long size2=0;
|
||||
QPixmap screen[5];
|
||||
QFuture<void> load;
|
||||
QFutureWatcher<void> watchScreenshotLoad;
|
||||
QTimer download_speed;
|
||||
QString type_name;
|
||||
QColor main_color;
|
||||
|
||||