mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-06-22 14:13:49 +08:00
Compare commits
54 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8850cfd4a3 | |||
| bec8a14baf | |||
| 1b9c925183 | |||
| 09221bc2e9 | |||
| 98da0c22fc | |||
| cadbb351fb | |||
| 2de237ce83 | |||
| 511fbaa0b0 | |||
| a6d85b6ade | |||
| 5889ac3045 | |||
| c1ba14bbd0 | |||
| 7bdccc7783 | |||
| 3a54cba3e5 | |||
| 79463246fb | |||
| cc8ff5eff2 | |||
| 613327b2cc | |||
| 8b31db843c | |||
| fd4fdbe970 | |||
| 89a3ab0b4c | |||
| 0179c2f04f | |||
| 8918e63484 | |||
| 6d1fb80f0f | |||
| 4add78c6d7 | |||
| 89c32013bf | |||
| 8f7ce54584 | |||
| 65f3114078 | |||
| 00386c7aeb | |||
| 3a89394838 | |||
| a3f3a9153a | |||
| cc582da96b | |||
| d5877ffe00 | |||
| 58f590560e | |||
| f636b82f02 | |||
| 877c3aafd1 | |||
| 65c26f035b | |||
| ba331cb3fb | |||
| 27c95991c5 | |||
| ffd31445b9 | |||
| 02fd887116 | |||
| fd3df91017 | |||
| c9d0c8b751 | |||
| adf9032897 | |||
| 2c1679d0af | |||
| 95f9806c1c | |||
| 252d2f491d | |||
| e2f6d97f94 | |||
| 48fd79e9be | |||
| 07eb9493cb | |||
| 217b299a67 | |||
| 9738c41bb9 | |||
| e17c50d396 | |||
| 795c3308d3 | |||
| f026844dba | |||
| 1a05ad05aa |
@@ -32,6 +32,7 @@ stages:
|
||||
- cd ..
|
||||
- rm -rf dtk-old-bundle
|
||||
- 'mk-build-deps --install --tool "apt-get -o Debug::pkgProblemResolver=yes -y" '
|
||||
- sed -i 's/-j$(JOBS)/-j2/g' debian/rules
|
||||
- dpkg-buildpackage -b -us -uc
|
||||
- cd ..
|
||||
- ls -all
|
||||
|
||||
@@ -33,7 +33,7 @@ stages:
|
||||
- rm -rf dtk-old-bundle
|
||||
- ''
|
||||
- 'mk-build-deps --install --tool "apt-get -o Debug::pkgProblemResolver=yes -y" '
|
||||
- ''
|
||||
- sed -i 's/-j$(JOBS)/-j2/g' debian/rules
|
||||
- dpkg-buildpackage -b -us -uc
|
||||
- cd ..
|
||||
- ls -all
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
# 关于编写 "描述主体结构预览说明" 的规范
|
||||
|
||||
1. 主体结构预览
|
||||
|
||||
一般以 `tree` 命令进行获取目录结构进行展示所需要描述的预览内容。
|
||||
|
||||
2. 对主体结构中的内容单独说明
|
||||
|
||||
并使用所用语言进行非侵入式独立描述,而不是在代码中填充说明与注释。
|
||||
|
||||
在单行描述中,尽量不超过您认为最大的字符数量宽度,可以收缩内容的重要性。
|
||||
|
||||
在此种说明文档中,尽量使用您所描述的对象支持的代码注释,而不是以白底黑字进行描述。
|
||||
|
||||
对于规范的全部:主体结构 + 单独内容中进行简单(而不是简少)的说明。
|
||||
|
||||
一个简单的例子,例如: 有关项目源代码结构的预览说明
|
||||
|
||||
- 项目结构预览
|
||||
|
||||
```
|
||||
.
|
||||
├── assets
|
||||
├── debian
|
||||
├── DOCS
|
||||
├── patchs
|
||||
├── src
|
||||
├── tool
|
||||
└── translations
|
||||
|
||||
10 directories, 9 files
|
||||
```
|
||||
|
||||
- 来自 debian 目录的说明
|
||||
|
||||
```shell
|
||||
# 将此项目进行 debian 的标志,基于 debian 系列的发行版可对包含
|
||||
# 此种目录的开源项目进行构建 deb 软件包。
|
||||
|
||||
# 1. 构建软件包(打包)
|
||||
# 执行 dpkg-buildpackage 命令以尝试构建此软件包
|
||||
dpkg-buildpackage
|
||||
# 如果构建将会在上级目录中产生一个 deb,而源代码目录不会有任何变化。
|
||||
|
||||
# 如果出现以下内容可忽视,仅需要查看是否已成功构建软件包:
|
||||
# gpg: 已跳过 "": 无效的用户ID
|
||||
# gpg: ...: clear-sign failed: 无效的用户ID
|
||||
# dpkg-buildpackage: error: failed to sign .dsc file
|
||||
```
|
||||
|
||||
- 来自 patchs 目录的说明
|
||||
|
||||
```shell
|
||||
# 一种用于可扩展的补丁,主要目的是为项目提供可选的应用方案,而不是直接堆砌到
|
||||
# 当前项目的分支中。您可以认为所有分支都是主线分支。
|
||||
# 例如:
|
||||
# 主线稳定分支: master
|
||||
# 主线开发分支: dev
|
||||
# 主线其它: ...
|
||||
|
||||
# 注意:
|
||||
# 当您认为您所提交的内容并不会为主线带来 bug fix 之类的内容,请使用补丁。
|
||||
# 当您所提交的内容会带来不可预知的问题的时候,或会改变目前主线的开发模式时,
|
||||
# 此种方式可确保您提交的方案可被任意时间被弃用,而不是由其它维护者耗费精力
|
||||
# 去试图移除您提交的内容,而不是等待由提交者进行新的维护。
|
||||
```
|
||||
|
||||
- 来自其它的内容...可随时由任何人进行补充
|
||||
|
||||
|
||||
- 一些在关此种预览描述的文档
|
||||
|
||||
```shell
|
||||
# 此种描述还将出现在 `src/README.md` 的描述中。
|
||||
# 当然,我预期会由其它维护者进行移动到 `DOCS` 之下。
|
||||
|
||||
# 另外在 `patchs/zinface-community-cmake-build-system.patch` 补丁文件中,
|
||||
# 也随附过一个简要的文档内容,而它是记录了 `Spark` 为名的构建模式。
|
||||
|
||||
# 在未应用此补丁时,将不会出现在任何地方。
|
||||
```
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
# Spark App Store
|
||||
[](https://gitee.com/deepin-community-store/spark-store/stargazers) [](https://gitee.com/deepin-community-store/spark-store/members)
|
||||
|
||||
Spark Store aims to collect Linux apps for the convieniece of Linux new comers
|
||||
|
||||
The collecting process needs everyone's help
|
||||
|
||||
We set up this APP Store and collect APPs/tools that everyone need widely. Also we pack Windows apps with wine.
|
||||
|
||||
All packages will be shared in our repository for users to get freely.
|
||||
|
||||
Distrobution supported:Deepin 20 ; Ubuntu 22.04 LTS / Ubuntu 20.04 LTS(May stop support in the future) ; UniontechOS Home 21
|
||||
|
||||
*About OpenKylin and deepin 23*
|
||||
|
||||
The adaptation work is scheduled after their official release.
|
||||
|
||||
You can track our Issue resoving progress here https://gitee.com/deepin-community-store/spark-store/board
|
||||
|
||||
|
||||
We hope people who see here can also join our team,development help or submit applications are welcomed
|
||||
|
||||
If you want to submit an APP to share with others,Please [Click here](https://upload.deepinos.org/index)
|
||||
|
||||
|
||||
## 🙌 A simple start
|
||||
|
||||
If you simply want to install the Spark Store,just enter the [Release] page, find the version you want and install.
|
||||
|
||||
If you are using Debian11/Ubuntu 20.04, you will need extra dependency package. Available [here](https://code.gitlink.org.cn/shenmo7192/spark-store-dependencies/raw/branch/master/spark-store-dependencies-kylin.zip)
|
||||
|
||||
---
|
||||
#### Compile and developement
|
||||
|
||||
|
||||
For Deepin V20/UOS 21/ Debian 11
|
||||
|
||||
```shell
|
||||
sudo apt install git qt5-default debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev
|
||||
|
||||
```
|
||||
|
||||
Ubuntu 22.04
|
||||
```shell
|
||||
sudo apt install git qtbase5-dev debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev
|
||||
|
||||
```
|
||||
|
||||
Then
|
||||
|
||||
```shell
|
||||
git clone https://gitee.com/deepin-community-store/spark-store.git
|
||||
cd spark-store
|
||||
dpkg-buildpackage
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 🚀 Coorperation
|
||||
|
||||
We use Gitee as our code hosting platform. Please click here to contact us.
|
||||
|
||||
https://gitee.com/deepin-community-store/spark-store
|
||||
|
||||
### Rocket Chat
|
||||
|
||||
https://chat.shenmo.tech/
|
||||
|
||||
PWA Client:
|
||||
|
||||
spk://store/chat/store.spark-app.feedback
|
||||
|
||||
(Copy and paste to search bar or in browser address bar after installing Spark Store)
|
||||
@@ -1,50 +1,53 @@
|
||||
# 星火应用商店
|
||||
# Spark App Store
|
||||
[](https://gitee.com/deepin-community-store/spark-store/stargazers) [](https://gitee.com/deepin-community-store/spark-store/members)
|
||||
|
||||
众所周知,国内的Linux应用比较少,wine应用难以获取,优质工具分散在民间各大论坛,无法形成合力,难以改善生态
|
||||
Spark Store aims to collect Linux apps for the convieniece of Linux new comers
|
||||
|
||||
生态构建需要的不是某一方的单打独斗,而是人人行动起来,汇聚星火,产生燎原之势
|
||||
The collecting process needs everyone's help
|
||||
|
||||
我们创建了这个应用商店,广泛收录大家需要的软件包,搜集优质小工具,主动适配wine应用,存放到储存库供大家获取
|
||||
我们支持:Deepin 20 ; Ubuntu 22.04 LTS / Ubuntu 20.04 LTS(将会逐渐停止支持) ; UOS Home 21
|
||||
We set up this APP Store and collect APPs/tools that everyone need widely. Also we pack Windows apps with wine.
|
||||
|
||||
## 关于协作:分支相关的文档见 [这里](https://deepin-community-store.gitee.io/spark-wiki/#/Dev/Spark-Store-Git-Repo)
|
||||
All packages will be shared in our repository for users to get freely.
|
||||
|
||||
*关于OpenKylin和deepin 23*
|
||||
Distrobution supported:Deepin 20 ; Ubuntu 22.04 LTS / Ubuntu 20.04 LTS(May stop support in the future) ; UniontechOS Home 21
|
||||
|
||||
支持计划将会在对应系统发布正式版之后开始评估和执行
|
||||
*About OpenKylin and deepin 23*
|
||||
|
||||
希望看到这里的人也可以加入我们的队伍,开发或者投递应用都很欢迎,共同构建Linux应用生态
|
||||
The adaptation work is scheduled after their official release.
|
||||
|
||||
在这里追踪我们的Issue处理情况 https://gitee.com/deepin-community-store/spark-store/board
|
||||
|
||||
如果有想要提交的软件包,请 [在这里投稿](https://upload.deepinos.org/index)
|
||||
You can track our Issue resoving progress here https://gitee.com/deepin-community-store/spark-store/board
|
||||
|
||||
|
||||
## 🙌 简单的开始
|
||||
We hope people who see here can also join our team,development help or submit applications are welcomed
|
||||
|
||||
如果想安装 `星火应用商店` ,请打开右侧的 [Release] 页面,找到最新版本,并选择适用于当前系统的安装包下载。
|
||||
If you want to submit an APP to share with others,Please [Click here](https://upload.deepinos.org/index)
|
||||
|
||||
如果你在使用 `Debian 11/Ubuntu 20.04`,你需要额外下载[依赖补充包](https://code.gitlink.org.cn/shenmo7192/spark-store-dependencies/raw/branch/master/spark-store-dependencies-kylin.zip)
|
||||
|
||||
## 🙌 A simple start
|
||||
|
||||
If you simply want to install the Spark Store,just enter the [Release] page, find the version you want and install.
|
||||
|
||||
If you are using Debian11/Ubuntu 20.04, you will need extra dependency package. Available [here](https://code.gitlink.org.cn/shenmo7192/spark-store-dependencies/raw/branch/master/spark-store-dependencies-kylin.zip)
|
||||
|
||||
---
|
||||
#### 编译安装
|
||||
#### Compile and developement
|
||||
|
||||
|
||||
Deepin V20/UOS 21 系统下, 安装依赖
|
||||
For Deepin V20/UOS 21/ Debian 11
|
||||
|
||||
```shell
|
||||
sudo apt install git qt5-default debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev fakeroot
|
||||
sudo apt install git qt5-default debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev fakeroot qtwayland5 qtwayland5-dev-tools dde-qt5wayland-plugin
|
||||
|
||||
```
|
||||
|
||||
Ubuntu 22.04 系统下, 安装依赖
|
||||
Ubuntu 22.04
|
||||
```shell
|
||||
sudo apt install git qtbase5-dev debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev
|
||||
sudo apt install git qtbase5-dev debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev qtwayland5 qtwayland5-dev-tools
|
||||
|
||||
```
|
||||
|
||||
然后
|
||||
Then
|
||||
|
||||
```shell
|
||||
git clone https://gitee.com/deepin-community-store/spark-store.git
|
||||
cd spark-store
|
||||
@@ -53,16 +56,18 @@ dpkg-buildpackage
|
||||
|
||||
|
||||
|
||||
## 🚀 协作
|
||||
## 🚀 Coorperation
|
||||
|
||||
非常感谢有兴趣的开发者或爱好者参与 `星火应用商店` 项目,分享你的见解与思路。
|
||||
We use Gitee as our code hosting platform. Please click here to contact us.
|
||||
|
||||
### 交流平台
|
||||
https://gitee.com/deepin-community-store/spark-store
|
||||
|
||||
### Rocket Chat
|
||||
|
||||
https://chat.shenmo.tech/
|
||||
|
||||
客户端PWA:
|
||||
PWA Client:
|
||||
|
||||
spk://store/chat/store.spark-app.feedback
|
||||
|
||||
(安装星火商店后在浏览器打开或复制到搜索栏打开)
|
||||
(Copy and paste to search bar or in browser address bar after installing Spark Store)
|
||||
@@ -0,0 +1,68 @@
|
||||
# 星火应用商店
|
||||
[](https://gitee.com/deepin-community-store/spark-store/stargazers) [](https://gitee.com/deepin-community-store/spark-store/members)
|
||||
|
||||
众所周知,国内的Linux应用比较少,wine应用难以获取,优质工具分散在民间各大论坛,无法形成合力,难以改善生态
|
||||
|
||||
生态构建需要的不是某一方的单打独斗,而是人人行动起来,汇聚星火,产生燎原之势
|
||||
|
||||
我们创建了这个应用商店,广泛收录大家需要的软件包,搜集优质小工具,主动适配wine应用,存放到储存库供大家获取
|
||||
我们支持:Deepin 20 ; Ubuntu 22.04 LTS / Ubuntu 20.04 LTS(将会逐渐停止支持) ; UOS Home 21
|
||||
|
||||
## 关于协作:分支相关的文档见 [这里](https://deepin-community-store.gitee.io/spark-wiki/#/Dev/Spark-Store-Git-Repo)
|
||||
|
||||
*关于OpenKylin和deepin 23*
|
||||
|
||||
支持计划将会在对应系统发布正式版之后开始评估和执行
|
||||
|
||||
希望看到这里的人也可以加入我们的队伍,开发或者投递应用都很欢迎,共同构建Linux应用生态
|
||||
|
||||
在这里追踪我们的Issue处理情况 https://gitee.com/deepin-community-store/spark-store/board
|
||||
|
||||
如果有想要提交的软件包,请 [在这里投稿](https://upload.deepinos.org/index)
|
||||
|
||||
|
||||
## 🙌 简单的开始
|
||||
|
||||
如果想安装 `星火应用商店` ,请打开右侧的 [Release] 页面,找到最新版本,并选择适用于当前系统的安装包下载。
|
||||
|
||||
如果你在使用 `Debian 11/Ubuntu 20.04`,你需要额外下载[依赖补充包](https://code.gitlink.org.cn/shenmo7192/spark-store-dependencies/raw/branch/master/spark-store-dependencies-kylin.zip)
|
||||
|
||||
---
|
||||
#### 编译安装
|
||||
|
||||
|
||||
Deepin V20/UOS 21 系统下, 安装依赖
|
||||
|
||||
```shell
|
||||
sudo apt install git qt5-default debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev fakeroot qtwayland5 qtwayland5-dev-tools dde-qt5wayland-plugin
|
||||
|
||||
```
|
||||
|
||||
Ubuntu 22.04 系统下, 安装依赖
|
||||
```shell
|
||||
sudo apt install git qtbase5-dev debhelper pkg-config qtchooser libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5concurrent5 libdtkcore-dev libdtkgui-dev libdtkwidget-dev qttools5-private-dev libnotify-dev qtwebengine5-dev qtwayland5 qtwayland5-dev-tools
|
||||
|
||||
```
|
||||
|
||||
然后
|
||||
```shell
|
||||
git clone https://gitee.com/deepin-community-store/spark-store.git
|
||||
cd spark-store
|
||||
dpkg-buildpackage
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 🚀 协作
|
||||
|
||||
非常感谢有兴趣的开发者或爱好者参与 `星火应用商店` 项目,分享你的见解与思路。
|
||||
|
||||
### 交流平台
|
||||
|
||||
https://chat.shenmo.tech/
|
||||
|
||||
客户端PWA:
|
||||
|
||||
spk://store/chat/store.spark-app.feedback
|
||||
|
||||
(安装星火商店后在浏览器打开或复制到搜索栏打开)
|
||||
Vendored
+34
@@ -1,3 +1,37 @@
|
||||
spark-store (4.1.2) stable; urgency=medium
|
||||
|
||||
* feat: 初步的wayland支持
|
||||
* fix: 首页的捐赠页面在中文环境下显示中文
|
||||
* chore: 新增编译依赖,测试安装时不会出现报错
|
||||
* fix: 更新检测模块在aptss ssupdate操作失败后现在会正确地移除锁而不是错误的残留锁。
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
|
||||
spark-store (4.1.1) stable; urgency=medium
|
||||
|
||||
* fix:更新失效
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (4.1.0) stable; urgency=medium
|
||||
|
||||
* feat: 现在可以支持UOS签名包问题了
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (4.0.1) stable; urgency=medium
|
||||
|
||||
* feat: 提升Ubuntu下的显示效果
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (4.0.0) stable; urgency=medium
|
||||
|
||||
* feat: 修复了成吨的bug后开始正式版
|
||||
|
||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||
|
||||
spark-store (4.0.0~test2) stable; urgency=medium
|
||||
|
||||
* feat: 修复了成吨的bug后开始公测
|
||||
|
||||
Vendored
+6
-2
@@ -15,7 +15,11 @@ Build-Depends:
|
||||
libdtkgui-dev(>=5.0),
|
||||
libdtkwidget-dev(>=5.0),
|
||||
qttools5-private-dev,
|
||||
qtwebengine5-dev
|
||||
qtwebengine5-dev,
|
||||
qtwayland5,
|
||||
qtwayland5-dev-tools,
|
||||
gcc,
|
||||
g++
|
||||
Standards-Version: 3.0
|
||||
Homepage: https://www.spark-app.store/
|
||||
|
||||
@@ -28,12 +32,12 @@ Depends:${shlibs:Depends}, ${misc:Depends},
|
||||
libqt5widgets5,
|
||||
libqt5network5,
|
||||
libqt5concurrent5,
|
||||
qtwayland5,
|
||||
libdtkcore5,
|
||||
libdtkgui5,
|
||||
libdtkwidget5,
|
||||
curl,
|
||||
openssl,
|
||||
libssl-dev,
|
||||
dde-qt5integration,
|
||||
bubblewrap,
|
||||
aria2,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,6 +8,7 @@ TARGET = spark-store
|
||||
TEMPLATE = subdirs
|
||||
|
||||
CONFIG += ordered
|
||||
CONFIG += wayland-compositor
|
||||
|
||||
SUBDIRS += \
|
||||
src/spark-dstore-patch \
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# 有关 src 下的一些改进预览
|
||||
|
||||
> 1. 主体结构预览
|
||||
> 2. 主体结构中的内容单独说明
|
||||
> 并使用所用语言进行非侵入式独立描述,而不是在代码中填充说明与注释。
|
||||
>
|
||||
> 这是简单的预览说明规范
|
||||
|
||||
- widget/base 结构
|
||||
|
||||
```
|
||||
src/widgets/base/
|
||||
├── basewidgetopacity.cpp
|
||||
└── basewidgetopacity.h
|
||||
|
||||
0 directories, 2 files
|
||||
```
|
||||
|
||||
- 来源于 widget/base 的说明
|
||||
|
||||
```c++
|
||||
// BaseWidgetOpacity 是一个提供了淡出/淡入动画的基础类:
|
||||
// 1. closeEvent 窗口关闭时进行淡出动画
|
||||
// 此前在 MainWindow 中实现的淡出动画将由 BaseWidgetOpacity 来实现。
|
||||
|
||||
// 此前 MainWindow 原有的 DBlurEffectWidget 父类将移交至 BaseWidgetOpacity 继承。
|
||||
|
||||
// 注意:
|
||||
// 如果 MainWindow 在未来重写 closeEvent 事件时将可能丢失 BaseWidgetOpacity 中的淡出效果
|
||||
```
|
||||
@@ -30,7 +30,6 @@ void DownloadController::setFilename(QString filename)
|
||||
this->filename = filename;
|
||||
}
|
||||
|
||||
|
||||
bool checkMeatlink(QString metaUrl)
|
||||
{
|
||||
QFile metaStatus("/tmp/spark-store/metaStatus.txt");
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
#include <QScreen> // Qt5 不再建议使用 QDesktopWidget
|
||||
#include <QGuiApplication>
|
||||
|
||||
image_show::image_show(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
image_show::image_show(QWidget *parent) : QWidget(parent),
|
||||
m_dialog(new big_image),
|
||||
m_label(new QLabel)
|
||||
{
|
||||
|
||||
@@ -6,14 +6,19 @@ QString SparkAPI::serverUrl = "";
|
||||
|
||||
SparkAPI::SparkAPI(QObject *parent) : QObject(parent)
|
||||
{
|
||||
SparkAPI::serverUrl = "https://cdn.d.store.deepinos.org.cn/";
|
||||
QSettings readConfig(QDir::homePath() + "/.config/spark-store/config.ini", QSettings::IniFormat);
|
||||
if (!readConfig.value("server/choose").toString().isEmpty() && readConfig.value("server/updated").toString() == "TRUE")
|
||||
{
|
||||
SparkAPI::setServerUrl(readConfig.value("server/choose").toString());
|
||||
}
|
||||
}
|
||||
void SparkAPI::get(QUrl url)
|
||||
{
|
||||
QNetworkRequest request;
|
||||
HttpRequest *httprequest = new HttpRequest;
|
||||
request.setUrl(QUrl(url.toString().replace("+", "%2B")));
|
||||
connect(httprequest,&HttpRequest::finished,[=](QString data){
|
||||
connect(httprequest, &HttpRequest::finished, [=](QString data)
|
||||
{
|
||||
QByteArray arr = data.toUtf8();
|
||||
//解析Json
|
||||
QJsonParseError error;
|
||||
@@ -26,8 +31,7 @@ void SparkAPI::get(QUrl url)
|
||||
emit finishedObject(doc);
|
||||
}
|
||||
|
||||
httprequest->deleteLater();
|
||||
});
|
||||
httprequest->deleteLater(); });
|
||||
httprequest->getRequest(request);
|
||||
}
|
||||
void SparkAPI::getRAW(QUrl url)
|
||||
@@ -35,10 +39,10 @@ void SparkAPI::getRAW(QUrl url)
|
||||
QNetworkRequest request;
|
||||
HttpRequest *httprequest = new HttpRequest;
|
||||
request.setUrl(QUrl(url.toString().replace("+", "%2B")));
|
||||
connect(httprequest,&HttpRequest::finished,[=](QString data){
|
||||
connect(httprequest, &HttpRequest::finished, [=](QString data)
|
||||
{
|
||||
emit finishedRAW(data);
|
||||
httprequest->deleteLater();
|
||||
});
|
||||
httprequest->deleteLater(); });
|
||||
httprequest->getRequest(request);
|
||||
}
|
||||
void SparkAPI::getAppList(QString type)
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
#include <QJsonArray>
|
||||
#include <QJsonParseError>
|
||||
#include "utils/httprequest.h"
|
||||
|
||||
#include <QSettings>
|
||||
#include <QDir>
|
||||
class SparkAPI : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
DBusSparkStoreService::DBusSparkStoreService(QObject *parent)
|
||||
: QDBusAbstractAdaptor(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void DBusSparkStoreService::activeWindow(const QString &arg)
|
||||
|
||||
+69
-23
@@ -7,68 +7,115 @@
|
||||
#include <DAboutDialog>
|
||||
#include <QLabel>
|
||||
#include <DWidgetUtil>
|
||||
#include <DSysInfo>
|
||||
|
||||
DCORE_USE_NAMESPACE
|
||||
DWIDGET_USE_NAMESPACE
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Get build time
|
||||
static const QString version = "Version 4.0.0~test2";
|
||||
static const QString version = "Version 4.1.2";
|
||||
static const QDate buildDate = QLocale(QLocale::English).toDate(QString(__DATE__).replace(" ", " 0"), "MMM dd yyyy");
|
||||
static const QTime buildTime = QTime::fromString(__TIME__, "hh:mm:ss");
|
||||
QSettings readConfig(QDir::homePath() + "/.config/spark-store/config.ini", QSettings::IniFormat);
|
||||
QSettings *setConfig = new QSettings(QDir::homePath() + "/.config/spark-store/config.ini", QSettings::IniFormat);
|
||||
|
||||
// 设置桌面环境环境变量
|
||||
if (!QString(qgetenv("XDG_CURRENT_DESKTOP")).toLower().startsWith("deepin")) {
|
||||
bool isDeepinOS = true;
|
||||
if (!QString(qgetenv("XDG_CURRENT_DESKTOP")).toLower().startsWith("deepin"))
|
||||
{
|
||||
setenv("XDG_CURRENT_DESKTOP", "Deepin", 1);
|
||||
isDeepinOS = false;
|
||||
}
|
||||
bool isWayland = false;
|
||||
auto e = QProcessEnvironment::systemEnvironment();
|
||||
QString XDG_SESSION_TYPE = e.value(QStringLiteral("XDG_SESSION_TYPE"));
|
||||
QString WAYLAND_DISPLAY = e.value(QStringLiteral("WAYLAND_DISPLAY"));
|
||||
|
||||
if (XDG_SESSION_TYPE == QLatin1String("wayland") || WAYLAND_DISPLAY.contains(QLatin1String("wayland"), Qt::CaseInsensitive))
|
||||
{
|
||||
isWayland = true;
|
||||
}
|
||||
setConfig->setValue("build/isWayland", isWayland);
|
||||
setConfig->setValue("build/isDeepinOS", isDeepinOS);
|
||||
|
||||
// Check config file, if there is no wayland config, then set it to default, which means use wayland if possible.
|
||||
if (!readConfig.contains("build/useWayland"))
|
||||
{
|
||||
setConfig->setValue("build/useWayland", true);
|
||||
}
|
||||
|
||||
bool useWayland = readConfig.value("build/useWayland").toBool();
|
||||
qDebug() << "System Wayland enabled:" << isWayland << ". Spark Wayland enabled:" << useWayland;
|
||||
|
||||
// Set display backend
|
||||
if (isWayland && useWayland && !(Dtk::Core::DSysInfo::isDDE() || isDeepinOS))
|
||||
{
|
||||
qputenv("QT_QPA_PLATFORM", "wayland");
|
||||
}
|
||||
else if (isWayland && useWayland && (Dtk::Core::DSysInfo::isDDE() && isDeepinOS))
|
||||
{
|
||||
qputenv("QT_QPA_PLATFORM", "dwayland");
|
||||
}
|
||||
else
|
||||
{
|
||||
qputenv("QT_QPA_PLATFORM", "dxcb");
|
||||
}
|
||||
DApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // 开启 Hidpi 支持
|
||||
#ifndef DSTORE_NO_DXCBs
|
||||
DApplication::loadDXcbPlugin(); // 加载 DXCB 插件
|
||||
#endif
|
||||
|
||||
// 浏览器开启 GPU 支持
|
||||
qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--ignore-gpu-blocklist --enable-gpu-rasterization --enable-native-gpu-memory-buffers --enable-accelerated-video-decode");
|
||||
|
||||
QVector<char *> fakeArgs(argc + 2);
|
||||
fakeArgs[0] = argv[0];
|
||||
QString fakeArgs1 = "-platformtheme";
|
||||
QByteArray fakeArgsTemp = fakeArgs1.toLatin1(); // must
|
||||
fakeArgs[1] = fakeArgsTemp.data();
|
||||
fakeArgs1 = "deepin";
|
||||
fakeArgsTemp = fakeArgs1.toLatin1(); // must
|
||||
fakeArgs[2] = fakeArgsTemp.data();
|
||||
|
||||
for (int i = 1; i < argc; i++)
|
||||
fakeArgs[i + 2] = argv[i];
|
||||
int fakeArgc = argc + 2; // DApplication的argc要用引用,避免c++编译器优化
|
||||
DApplication a(fakeArgc, fakeArgs.data());
|
||||
|
||||
// 初始化日志模块 (默认日志位置 ~/.cache/deepin/spark-store)
|
||||
DLogManager::registerConsoleAppender();
|
||||
DLogManager::registerFileAppender();
|
||||
|
||||
DApplication a(argc, argv);
|
||||
|
||||
// Wayland 环境下使用,防止子控件 Native 化
|
||||
if (!DPlatformWindowHandle::pluginVersion().isEmpty()) {
|
||||
if (!DPlatformWindowHandle::pluginVersion().isEmpty())
|
||||
{
|
||||
a.setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true);
|
||||
}
|
||||
a.setAttribute(Qt::AA_UseHighDpiPixmaps);
|
||||
a.loadDXcbPlugin();
|
||||
a.setApplicationDisplayName("Spark Store");
|
||||
|
||||
a.loadTranslator(); // 载入翻译
|
||||
|
||||
QSettings readConfig(QDir::homePath() + "/.config/spark-store/config.ini", QSettings::IniFormat);
|
||||
|
||||
if (readConfig.value("build/version").toString() != version){
|
||||
if (readConfig.value("build/version").toString() != version)
|
||||
{
|
||||
qDebug() << "Spark Store has been updated!";
|
||||
QSettings *setConfig = new QSettings(QDir::homePath() + "/.config/spark-store/config.ini", QSettings::IniFormat);
|
||||
setConfig->setValue("build/version", version);
|
||||
setConfig->setValue("build/time", buildDate.toString("yyyy.MM.dd") + "-" + buildTime.toString());
|
||||
setConfig->deleteLater();
|
||||
}
|
||||
setConfig->deleteLater();
|
||||
|
||||
// Customized DAboutDialog
|
||||
|
||||
DAboutDialog dialog;
|
||||
a.setAboutDialog(&dialog);
|
||||
dialog.setLicense(QObject::tr("We publish this program under GPL V3"));
|
||||
dialog.setVersion(DApplication::buildVersion(readConfig.value("build/version").toString()+"-"+readConfig.value("build/time").toString()));
|
||||
dialog.setVersion(DApplication::buildVersion(readConfig.value("build/version").toString() + "-" + "Flamescion" + "-" + readConfig.value("build/time").toString()));
|
||||
dialog.setProductIcon(QIcon::fromTheme("spark-store")); // 设置Logo
|
||||
dialog.setProductName(QLabel::tr("Spark Store"));
|
||||
dialog.setDescription(
|
||||
QObject::tr(
|
||||
"<span style=' font-size:10pt;font-weight:60;'>An appstore powered by 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>"
|
||||
)
|
||||
);
|
||||
"<span style=' font-size:12pt;'>Spark developers</span>"));
|
||||
|
||||
dialog.setProductName(QLabel::tr("Spark Store"));
|
||||
dialog.setCompanyLogo(QPixmap(":/spark-store.png"));
|
||||
@@ -85,9 +132,7 @@ int main(int argc, char *argv[])
|
||||
"<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><br/><br/>"
|
||||
"Published under GPL V3"
|
||||
)
|
||||
);
|
||||
"Published under GPL V3"));
|
||||
// 限制单实例运行
|
||||
if (!a.setSingleInstance("spark-store"))
|
||||
{
|
||||
@@ -101,7 +146,6 @@ int main(int argc, char *argv[])
|
||||
|
||||
iface.asyncCall("activeWindow", arg1);
|
||||
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -113,10 +157,12 @@ int main(int argc, char *argv[])
|
||||
Dtk::Widget::moveToCenter(&w);
|
||||
|
||||
QString arg1 = argv[1];
|
||||
if (arg1.startsWith("spk://")) {
|
||||
if (arg1.startsWith("spk://"))
|
||||
{
|
||||
w.openUrl(QUrl(argv[1]));
|
||||
}
|
||||
w.show();
|
||||
w.setWindowTitle("Spark Store");
|
||||
|
||||
return a.exec();
|
||||
}
|
||||
|
||||
+81
-90
@@ -3,16 +3,19 @@
|
||||
|
||||
#include <DWidgetUtil>
|
||||
#include <DGuiApplicationHelper>
|
||||
#include <DApplicationSettings>
|
||||
#include <QSizePolicy>
|
||||
|
||||
#define AppPageApplist 0
|
||||
#define AppPageSearchlist 1
|
||||
#define AppPageAppdetail 2
|
||||
#define AppPageSettings 3
|
||||
#define WaylandSearchCenter 1
|
||||
#define OtherSearchCenter 2
|
||||
#define RightSearchSpace 1
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent)
|
||||
: DBlurEffectWidget(parent)
|
||||
, ui(new Ui::MainWindow)
|
||||
: BaseWidgetOpacity(parent), ui(new Ui::MainWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
initConfig();
|
||||
@@ -42,12 +45,14 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
menu->addAction(actionSubmissionWithClient);
|
||||
|
||||
ui->titlebar->setMenu(menu);
|
||||
connect(actionSubmission, &QAction::triggered, this, [=]{QDesktopServices::openUrl(QUrl("https://upload.deepinos.org/"));});
|
||||
connect(setting, &QAction::triggered, this, [=]{
|
||||
connect(actionSubmission, &QAction::triggered, this, [=]
|
||||
{ QDesktopServices::openUrl(QUrl("https://upload.deepinos.org/")); });
|
||||
connect(setting, &QAction::triggered, this, [=]
|
||||
{
|
||||
switchPage(AppPageSettings);
|
||||
ui->settingspage->updateUI();
|
||||
});
|
||||
connect(upgrade, &QAction::triggered, this, [=]{QProcess::startDetached("/opt/durapps/spark-store/bin/update-upgrade/ss-update-controler.sh");});
|
||||
ui->settingspage->updateUI(); });
|
||||
connect(upgrade, &QAction::triggered, this, [=]
|
||||
{ QProcess::startDetached("/opt/durapps/spark-store/bin/update-upgrade/ss-update-controler.sh"); });
|
||||
// 投稿器
|
||||
connect(actionSubmissionWithClient, &QAction::triggered, this, [=]
|
||||
{
|
||||
@@ -58,16 +63,15 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
qDebug() << "投稿器存在";
|
||||
QProcess::startDetached("/opt/spark-store-submitter/bin/spark-store-submitter");
|
||||
}
|
||||
else{
|
||||
else
|
||||
{
|
||||
qDebug() << "投稿器不存在,跳转页面";
|
||||
openUrl(submitterSpk);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
} });
|
||||
|
||||
// 主题切换
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [=](DGuiApplicationHelper::ColorType themeType) {
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [=](DGuiApplicationHelper::ColorType themeType)
|
||||
{
|
||||
if (themeType == DGuiApplicationHelper::DarkType) {
|
||||
//深色模式
|
||||
setMaskColor(QColor("#2a2b2b"));
|
||||
@@ -79,8 +83,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
downloadButton->setBackgroundColor(QColor("#444444"));
|
||||
downloadButton->setColor(QColor("#66CCFF"));
|
||||
ui->pushButton_14->setIcon(QIcon(":/icon/dark/update.svg"));
|
||||
int i = 0;
|
||||
while (i < ui->buttonGroup->buttons().size()) {
|
||||
for (int i = 0; i < ui->buttonGroup->buttons().size(); i++) {
|
||||
ui->buttonGroup->buttons()[i]->setIcon(QIcon(":/icon/dark/leftbutton_" + QString::number(i) + ".svg"));
|
||||
if (QLocale::system().name() == "zh_CN") {
|
||||
ui->buttonGroup->buttons()[i]->setStyleSheet("QPushButton{background-color:transparent;}\
|
||||
@@ -91,7 +94,6 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
QPushButton:hover{background-color:#7a7a7a;border:0px;border-radius:8px;text-align: left; padding-left: 15px;}\
|
||||
QPushButton:checked{background-color:#6e6e6e;border:0px;border-radius:8px;text-align: left; padding-left: 15px;}");
|
||||
}
|
||||
i++;
|
||||
}
|
||||
} else {
|
||||
//亮色模式
|
||||
@@ -104,8 +106,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
downloadButton->setColor(QColor("#66CCFF"));
|
||||
downloadButton->setIcon(":/icon/light/download.svg");
|
||||
ui->pushButton_14->setIcon(QIcon(":/icon/light/update.svg"));
|
||||
int i = 0;
|
||||
while (i < ui->buttonGroup->buttons().size()) {
|
||||
for (int i = 0; i < ui->buttonGroup->buttons().size(); i++) {
|
||||
ui->buttonGroup->buttons()[i]->setIcon(QIcon(":/icon/light/leftbutton_" + QString::number(i) + ".svg"));
|
||||
if (QLocale::system().name() == "zh_CN") {
|
||||
ui->buttonGroup->buttons()[i]->setStyleSheet("QPushButton{background-color:transparent;}\
|
||||
@@ -116,42 +117,45 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
QPushButton:hover{background-color:#eAeAeA;border:0px;border-radius:8px;text-align: left; padding-left: 15px;}\
|
||||
QPushButton:checked{background-color:#dddddd;border:0px;border-radius:8px;text-align: left; padding-left: 15px;}");
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
ui->pushButton_14->setStyleSheet(ui->pushButton_4->styleSheet());
|
||||
ui->applistpage->setTheme(themeType == DGuiApplicationHelper::DarkType);
|
||||
ui->applistpage_1->setTheme(themeType == DGuiApplicationHelper::DarkType);
|
||||
ui->appintopage->setTheme(themeType == DGuiApplicationHelper::DarkType);
|
||||
ui->settingspage->setTheme(themeType == DGuiApplicationHelper::DarkType);
|
||||
});
|
||||
ui->settingspage->setTheme(themeType == DGuiApplicationHelper::DarkType); });
|
||||
|
||||
// 初始化标题栏控件
|
||||
connect(downloadButton, &ProgressButton::clicked, [=]() {
|
||||
connect(downloadButton, &ProgressButton::clicked, [=]()
|
||||
{
|
||||
QPoint pos;
|
||||
pos.setX(downloadButton->mapToGlobal(QPoint(0, 0)).x() + downloadButton->width() / 2 - downloadlistwidget->width() / 2);
|
||||
pos.setY(downloadButton->mapToGlobal(QPoint(0, 0)).y() + downloadButton->height() + 5);
|
||||
downloadlistwidget->m_move(pos.x(), pos.y());
|
||||
downloadlistwidget->show();
|
||||
});
|
||||
downloadlistwidget->show(); });
|
||||
|
||||
// appintopage按下下载按钮时标题栏下载列表按钮抖动
|
||||
connect(ui->appintopage, &AppIntoPage::clickedDownloadBtn, [=]() {
|
||||
connect(ui->appintopage, &AppIntoPage::clickedDownloadBtn, [=]()
|
||||
{
|
||||
WidgetAnimation::widgetShake(downloadButton, 6); // 第一个参数是抖动的控件,第二个参数是抖动范围(像素)
|
||||
});
|
||||
|
||||
connect(backButtom, &QPushButton::clicked, [=]() {
|
||||
connect(backButtom, &QPushButton::clicked, [=]()
|
||||
{
|
||||
ui->stackedWidget->setCurrentIndex(pageHistory.at(pageHistory.count() - 2));
|
||||
pageHistory.removeLast();
|
||||
if (pageHistory.count() > 1) {
|
||||
backButtom->show();
|
||||
} else {
|
||||
backButtom->hide();
|
||||
}
|
||||
});
|
||||
} });
|
||||
downloadlistwidget->hide();
|
||||
backButtom->hide();
|
||||
ui->titlebar->setIcon(QIcon::fromTheme(":/icon/logo.svg"));
|
||||
|
||||
// Check wayland configs
|
||||
QSettings readConfig(QDir::homePath() + "/.config/spark-store/config.ini", QSettings::IniFormat);
|
||||
|
||||
QWidget *w_titlebar = new QWidget(ui->titlebar);
|
||||
QHBoxLayout *ly_titlebar = new QHBoxLayout(w_titlebar);
|
||||
QLabel *title = new QLabel(this);
|
||||
@@ -159,26 +163,39 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
searchEdit->setPlaceholderText(tr("Search or enter spk://"));
|
||||
ly_titlebar->addWidget(title);
|
||||
ly_titlebar->addWidget(backButtom);
|
||||
ly_titlebar->addStretch(2.5);
|
||||
|
||||
if (!readConfig.value("build/isDeepinOS").toBool() && readConfig.value("build/useWayland").toBool())
|
||||
{
|
||||
// Wayland 搜索栏居中
|
||||
ly_titlebar->addStretch(WaylandSearchCenter);
|
||||
}
|
||||
else
|
||||
{
|
||||
// dwayland dxcb 搜索栏顶部右侧居中
|
||||
ly_titlebar->addStretch(OtherSearchCenter);
|
||||
}
|
||||
|
||||
ly_titlebar->addWidget(searchEdit);
|
||||
ly_titlebar->addWidget(downloadButton);
|
||||
ly_titlebar->addStretch(1);
|
||||
ly_titlebar->addStretch(RightSearchSpace);
|
||||
ui->titlebar->setCustomWidget(w_titlebar);
|
||||
// 侧边栏按钮
|
||||
int i = 0;
|
||||
while (i < ui->buttonGroup->buttons().size()) {
|
||||
while (i < ui->buttonGroup->buttons().size())
|
||||
{
|
||||
ui->buttonGroup->buttons()[i]->setStyleSheet("QPushButton{qproperty-icon: url(data/images/userMangaer/teacher.png);}");
|
||||
connect(ui->buttonGroup->buttons()[i], &QPushButton::toggled, [=](bool checked) {
|
||||
connect(ui->buttonGroup->buttons()[i], &QPushButton::toggled, [=](bool checked)
|
||||
{
|
||||
if (checked == true) {
|
||||
searchEdit->clearEdit();
|
||||
updateUi(i);
|
||||
}
|
||||
});
|
||||
} });
|
||||
i++;
|
||||
}
|
||||
|
||||
// 搜索事件
|
||||
connect(searchEdit, &DSearchEdit::returnPressed, this, [=]() {
|
||||
connect(searchEdit, &DSearchEdit::returnPressed, this, [=]()
|
||||
{
|
||||
QString searchtext = searchEdit->text();
|
||||
if (!searchtext.isEmpty()) {
|
||||
if (searchtext.startsWith("spk://")) {
|
||||
@@ -189,22 +206,17 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
switchPage(AppPageSearchlist);
|
||||
}
|
||||
}
|
||||
this->setFocus();
|
||||
});
|
||||
this->setFocus(); });
|
||||
|
||||
connect(downloadlistwidget, &DownloadListWidget::downloadProgress, this, [=](int i) {
|
||||
downloadButton->setProgress(i);
|
||||
});
|
||||
connect(downloadlistwidget, &DownloadListWidget::downloadProgress, this, [=](int i)
|
||||
{ downloadButton->setProgress(i); });
|
||||
// 列表点击事件
|
||||
connect(ui->applistpage, &AppListPage::clicked, this, [=](QUrl spk) {
|
||||
openUrl(spk);
|
||||
});
|
||||
connect(ui->applistpage_1, &AppListPage::clicked, this, [=](QUrl spk) {
|
||||
openUrl(spk);
|
||||
});
|
||||
connect(ui->settingspage, &SettingsPage::openUrl, this, [=](QUrl spk) {
|
||||
openUrl(spk);
|
||||
});
|
||||
connect(ui->applistpage, &AppListPage::clicked, this, [=](QUrl spk)
|
||||
{ openUrl(spk); });
|
||||
connect(ui->applistpage_1, &AppListPage::clicked, this, [=](QUrl spk)
|
||||
{ openUrl(spk); });
|
||||
connect(ui->settingspage, &SettingsPage::openUrl, this, [=](QUrl spk)
|
||||
{ openUrl(spk); });
|
||||
emit DGuiApplicationHelper::instance()->themeTypeChanged(DGuiApplicationHelper::instance()->themeType());
|
||||
|
||||
initDbus();
|
||||
@@ -237,10 +249,13 @@ void MainWindow::onGetUrl(const QString &url)
|
||||
|
||||
void MainWindow::openUrl(QUrl url)
|
||||
{
|
||||
if (url.toString().startsWith("spk://")) {
|
||||
if (url.toString().startsWith("spk://"))
|
||||
{
|
||||
ui->appintopage->openUrl(QUrl(url.toString().replace("+", "%2B")));
|
||||
switchPage(AppPageAppdetail);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
QDesktopServices::openUrl(QUrl(url.toString().replace("+", "%2B")));
|
||||
}
|
||||
}
|
||||
@@ -255,9 +270,12 @@ void MainWindow::initConfig()
|
||||
void MainWindow::switchPage(int now) // 临时方案,回家后修改
|
||||
{
|
||||
qDebug() << pageHistory.count();
|
||||
if (pageHistory.count() >= 1) {
|
||||
if (pageHistory.count() >= 1)
|
||||
{
|
||||
backButtom->show();
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
backButtom->hide();
|
||||
}
|
||||
ui->stackedWidget->setCurrentIndex(now);
|
||||
@@ -271,14 +289,14 @@ void MainWindow::updateUi(int now)
|
||||
QStringList itemlist;
|
||||
itemlist << ""
|
||||
<< "network"
|
||||
<< "relations"
|
||||
<< "musicandsound"
|
||||
<< "videos"
|
||||
<< "photos"
|
||||
<< "chat"
|
||||
<< "music"
|
||||
<< "video"
|
||||
<< "image_graphics"
|
||||
<< "games"
|
||||
<< "office"
|
||||
<< "reading"
|
||||
<< "programming"
|
||||
<< "development"
|
||||
<< "tools"
|
||||
<< "themes"
|
||||
<< "others";
|
||||
@@ -290,41 +308,14 @@ void MainWindow::updateUi(int now)
|
||||
void MainWindow::on_pushButton_14_clicked()
|
||||
{
|
||||
QFile upgradeStatus("/tmp/spark-store/upgradeStatus.txt");
|
||||
if (!upgradeStatus.exists()){
|
||||
QtConcurrent::run([=]{
|
||||
if (!upgradeStatus.exists())
|
||||
{
|
||||
QtConcurrent::run([=]
|
||||
{
|
||||
auto upgradeP = new QProcess();
|
||||
upgradeP->startDetached("/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade.sh");
|
||||
upgradeP->waitForStarted();
|
||||
upgradeP->waitForFinished(-1);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// @brief 窗口关闭事件
|
||||
/// @param event
|
||||
void MainWindow::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
if (!closeWindowAnimation) {
|
||||
QPropertyAnimation *animation = new QPropertyAnimation(this, "windowOpacity");
|
||||
animation->setEasingCurve(QEasingCurve::OutQuart);
|
||||
animation->setDuration(500);
|
||||
animation->setStartValue(1.0);
|
||||
animation->setEndValue(0.0);
|
||||
|
||||
QObject::connect(animation, &QPropertyAnimation::valueChanged, this, [=](const QVariant &value){
|
||||
this->update();
|
||||
// setWindowTitle(QString("ヾ(⌒∇⌒*)See You♪ - %1%").arg(int(value.toFloat() * 100)));
|
||||
});
|
||||
|
||||
QObject::connect(animation, &QPropertyAnimation::finished, this, [=](){
|
||||
closeWindowAnimation = true;
|
||||
this->close();
|
||||
});
|
||||
|
||||
animation->start();
|
||||
event->ignore();
|
||||
} else {
|
||||
event->accept();
|
||||
upgradeP->deleteLater(); });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
#define MAINWINDOWDTK_H
|
||||
|
||||
#include <DMainWindow>
|
||||
#include <DBlurEffectWidget>
|
||||
#include <DTitlebar>
|
||||
#include <DSearchEdit>
|
||||
#include <QGraphicsDropShadowEffect>
|
||||
@@ -12,6 +11,7 @@
|
||||
#include <QDir>
|
||||
#include <QDesktopServices>
|
||||
|
||||
#include "widgets/base/basewidgetopacity.h"
|
||||
#include "widgets/downloadlistwidget.h"
|
||||
#include "widgets/common/progressbutton.h"
|
||||
#include "utils/widgetanimation.h"
|
||||
@@ -23,7 +23,7 @@ namespace Ui {
|
||||
class MainWindow;
|
||||
}
|
||||
|
||||
class MainWindow : public DBlurEffectWidget
|
||||
class MainWindow : public BaseWidgetOpacity
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@@ -53,10 +53,6 @@ private slots:
|
||||
void onGetUrl(const QString &url);
|
||||
void on_pushButton_14_clicked();
|
||||
|
||||
// QWidget interface
|
||||
protected:
|
||||
bool closeWindowAnimation = false;
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
};
|
||||
|
||||
#endif // MAINWINDOWDTK_H
|
||||
|
||||
+29
-19
@@ -1,7 +1,6 @@
|
||||
#include "appintopage.h"
|
||||
#include "ui_appintopage.h"
|
||||
AppIntoPage::AppIntoPage(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
AppIntoPage::AppIntoPage(QWidget *parent) : QWidget(parent),
|
||||
ui(new Ui::AppIntoPage)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
@@ -10,11 +9,11 @@ AppIntoPage::AppIntoPage(QWidget *parent) :
|
||||
ui->listWidget->setMaximumHeight(200);
|
||||
ui->listWidget->setFlow(QListView::TopToBottom);
|
||||
api1 = new SparkAPI(this);
|
||||
connect(api1,&SparkAPI::finishedRAW,[=](QString download_times){
|
||||
connect(api1, &SparkAPI::finishedRAW, [=](QString download_times)
|
||||
{
|
||||
download_times.remove(QRegExp("\\n"));
|
||||
ui->download_times->setText(download_times);
|
||||
qDebug()<<"Download Times:"+download_times;
|
||||
});
|
||||
qDebug()<<"Download Times:"+download_times; });
|
||||
clear();
|
||||
}
|
||||
|
||||
@@ -50,16 +49,16 @@ void AppIntoPage::clear()
|
||||
void AppIntoPage::setDownloadWidget(DownloadListWidget *w)
|
||||
{
|
||||
dw = w;
|
||||
connect(w, &DownloadListWidget::downloadFinished, [=]() {
|
||||
isDownloading(SparkAPI::getServerUrl()+"store"+spk.path()+"/"+info["Filename"].toString());
|
||||
});
|
||||
connect(w, &DownloadListWidget::downloadFinished, [=]()
|
||||
{ isDownloading(SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString()); });
|
||||
}
|
||||
void AppIntoPage::openUrl(QUrl url)
|
||||
{
|
||||
spk = url;
|
||||
SparkAPI *api = new SparkAPI(this);
|
||||
clear();
|
||||
connect(api,&SparkAPI::finishedObject,[=](QJsonObject appinfo){
|
||||
connect(api, &SparkAPI::finishedObject, [=](QJsonObject appinfo)
|
||||
{
|
||||
|
||||
info = appinfo;
|
||||
// qDebug()<<url;
|
||||
@@ -188,8 +187,7 @@ void AppIntoPage::openUrl(QUrl url)
|
||||
}
|
||||
this->sltAppinfoTags(&taglist);
|
||||
disconnect(api,&SparkAPI::finished,nullptr,nullptr);
|
||||
api->deleteLater();
|
||||
});
|
||||
api->deleteLater(); });
|
||||
api->getAppInfo(url);
|
||||
api1->getAppDownloadTimes(url);
|
||||
}
|
||||
@@ -200,9 +198,13 @@ void AppIntoPage::isDownloading(QUrl url)
|
||||
{
|
||||
ui->downloadButton->setEnabled(true);
|
||||
return;
|
||||
}else{
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->downloadButton->setEnabled(false);
|
||||
}
|
||||
|
||||
ui->pushButton_3->hide();
|
||||
if (dw->getDIList()[dw->getUrlList().lastIndexOf(url)]->download == 2)
|
||||
{
|
||||
ui->downloadButton->setEnabled(true);
|
||||
@@ -217,6 +219,7 @@ void AppIntoPage::isDownloading(QUrl url)
|
||||
{
|
||||
ui->downloadButton->setEnabled(false);
|
||||
ui->downloadButton->setText(tr("Installing"));
|
||||
return;
|
||||
}
|
||||
if (dw->getDIList()[dw->getUrlList().lastIndexOf(url)]->download == 3)
|
||||
{
|
||||
@@ -281,7 +284,9 @@ void AppIntoPage::setTheme(bool dark)
|
||||
ui->icon_4->setPixmap(QPixmap(":/icon/dark/text.svg"));
|
||||
ui->icon_5->setPixmap(QPixmap(":/icon/dark/folder.svg"));
|
||||
ui->icon_6->setPixmap(QPixmap(":/icon/dark/globe.svg"));
|
||||
}else {
|
||||
}
|
||||
else
|
||||
{
|
||||
// 亮色模式
|
||||
QString frameStyleSheet = "#frame,#frame_2,#frame_3,#frame_4{background-color: #fbfbfb;border-radius:14px;border:1px solid rgb(229,229,229);}";
|
||||
ui->frame->setStyleSheet(frameStyleSheet);
|
||||
@@ -295,7 +300,6 @@ void AppIntoPage::setTheme(bool dark)
|
||||
ui->icon_4->setPixmap(QPixmap(":/icon/light/text.svg"));
|
||||
ui->icon_5->setPixmap(QPixmap(":/icon/light/folder.svg"));
|
||||
ui->icon_6->setPixmap(QPixmap(":/icon/light/globe.svg"));
|
||||
|
||||
}
|
||||
}
|
||||
AppIntoPage::~AppIntoPage()
|
||||
@@ -309,6 +313,10 @@ void AppIntoPage::on_downloadButton_clicked()
|
||||
{
|
||||
dw->getDIList()[dw->getUrlList().lastIndexOf(SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString())]->install(0);
|
||||
isDownloading(SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString());
|
||||
QObject::connect(dw->getDIList()[dw->getUrlList().lastIndexOf(SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString())], &DownloadItem::finished, [=]()
|
||||
{
|
||||
isDownloading(SparkAPI::getServerUrl()+"store"+spk.path()+"/"+info["Filename"].toString());
|
||||
disconnect(dw->getDIList()[dw->getUrlList().lastIndexOf(SparkAPI::getServerUrl()+"store"+spk.path()+"/"+info["Filename"].toString())],&DownloadItem::finished,nullptr,nullptr); });
|
||||
return;
|
||||
}
|
||||
emit clickedDownloadBtn();
|
||||
@@ -318,6 +326,10 @@ void AppIntoPage::on_downloadButton_clicked()
|
||||
dw->getDIList()[dw->allDownload - 1]->reinstall = true;
|
||||
}
|
||||
ui->downloadButton->setEnabled(false);
|
||||
QObject::connect(dw->getDIList()[dw->getUrlList().lastIndexOf(SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString())], &DownloadItem::finished, [=]()
|
||||
{
|
||||
isDownloading(SparkAPI::getServerUrl()+"store"+spk.path()+"/"+info["Filename"].toString());
|
||||
disconnect(dw->getDIList()[dw->getUrlList().lastIndexOf(SparkAPI::getServerUrl()+"store"+spk.path()+"/"+info["Filename"].toString())],&DownloadItem::finished,nullptr,nullptr); });
|
||||
isDownloading(SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString());
|
||||
}
|
||||
|
||||
@@ -346,8 +358,7 @@ void AppIntoPage::on_pushButton_3_clicked()
|
||||
}
|
||||
|
||||
ui->downloadButton->setEnabled(true);
|
||||
ui->pushButton_3->setEnabled(true);
|
||||
});
|
||||
ui->pushButton_3->setEnabled(true); });
|
||||
}
|
||||
|
||||
void AppIntoPage::on_shareButton_clicked()
|
||||
@@ -358,7 +369,6 @@ void AppIntoPage::on_shareButton_clicked()
|
||||
clipboard->setText(spk.toString());
|
||||
}
|
||||
|
||||
|
||||
void AppIntoPage::on_updateButton_clicked()
|
||||
{
|
||||
QString feedbackSpk = "spk://store/chat/store.spark-app.feedback";
|
||||
@@ -368,9 +378,9 @@ void AppIntoPage::on_updateButton_clicked()
|
||||
qDebug() << "反馈器存在";
|
||||
QProcess::startDetached("sh /opt/durapps/store.spark-app.feedback/launch.sh");
|
||||
}
|
||||
else{
|
||||
else
|
||||
{
|
||||
qDebug() << "反馈器不存在,跳转页面";
|
||||
openUrl(feedbackSpk);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -762,7 +762,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Description</string>
|
||||
<string>Introduction</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
|
||||
+29
-11
@@ -1,8 +1,7 @@
|
||||
#include "applistpage.h"
|
||||
#include "ui_applistpage.h"
|
||||
|
||||
AppListPage::AppListPage(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
AppListPage::AppListPage(QWidget *parent) : QWidget(parent),
|
||||
ui(new Ui::AppListPage)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
@@ -14,14 +13,18 @@ void AppListPage::setTheme(bool dark)
|
||||
if (dark)
|
||||
{
|
||||
this->setStyleSheet("#frame{background-color: #252525;border-radius:14px;border:1px solid rgb(64, 64, 64);}");
|
||||
}else {
|
||||
}
|
||||
else
|
||||
{
|
||||
// 亮色模式
|
||||
this->setStyleSheet("#frame{background-color: #ffffff;border-radius:14px;border:1px solid rgb(229,229,229);}");
|
||||
}
|
||||
if (isSearch)
|
||||
{
|
||||
getSearchList(nowType);
|
||||
}else{
|
||||
}
|
||||
else
|
||||
{
|
||||
getAppList(nowType);
|
||||
}
|
||||
}
|
||||
@@ -31,12 +34,24 @@ void AppListPage::getAppList(QString type)
|
||||
nowType = type;
|
||||
SparkAPI *api = new SparkAPI(this);
|
||||
QString url;
|
||||
QString theme;
|
||||
if (isDark)
|
||||
{
|
||||
url=api->getServerUrl()+"store/#/dark"+type;
|
||||
}else{
|
||||
url=api->getServerUrl()+"store/#/"+type;
|
||||
theme = "theme=dark";
|
||||
}
|
||||
else
|
||||
{
|
||||
theme = "theme=light";
|
||||
}
|
||||
if (type == "")
|
||||
{
|
||||
url = api->getServerUrl() + "store/#/flamescion/?" + theme;
|
||||
}
|
||||
else
|
||||
{
|
||||
url = api->getServerUrl() + "store/#/flamescion/applist?type=" + type + "&" + theme;
|
||||
}
|
||||
|
||||
ui->webEngineView->setUrl(url);
|
||||
}
|
||||
|
||||
@@ -46,12 +61,16 @@ void AppListPage::getSearchList(QString keyword)
|
||||
nowType = keyword;
|
||||
SparkAPI *api = new SparkAPI(this);
|
||||
QString url;
|
||||
QString theme;
|
||||
if (isDark)
|
||||
{
|
||||
url=api->getServerUrl()+"store/#/darksearch?keywords="+keyword;
|
||||
}else{
|
||||
url=api->getServerUrl()+"store/#/search?keywords="+keyword;
|
||||
theme = "theme=dark";
|
||||
}
|
||||
else
|
||||
{
|
||||
theme = "theme=light";
|
||||
}
|
||||
url = api->getServerUrl() + "store/#/flamescion/search?keywords=" + keyword + "&" + theme;
|
||||
ui->webEngineView->setUrl(url);
|
||||
}
|
||||
|
||||
@@ -73,4 +92,3 @@ void AppListPage::on_webEngineView_urlChanged(const QUrl &arg1)
|
||||
emit clicked(url);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+11
-17
@@ -1,11 +1,11 @@
|
||||
#include "settingspage.h"
|
||||
#include "ui_settingspage.h"
|
||||
bool SettingsPage::isdownload = false;
|
||||
SettingsPage::SettingsPage(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
SettingsPage::SettingsPage(QWidget *parent) : QWidget(parent),
|
||||
ui(new Ui::SettingsPage)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
configCanSave = false;
|
||||
initConfig();
|
||||
}
|
||||
|
||||
@@ -14,7 +14,9 @@ void SettingsPage::setTheme(bool dark)
|
||||
if (dark)
|
||||
{
|
||||
this->setStyleSheet("#frame{background-color: #252525;border-radius:14px;border:1px solid rgb(64, 64, 64);}");
|
||||
}else {
|
||||
}
|
||||
else
|
||||
{
|
||||
// 亮色模式
|
||||
this->setStyleSheet("#frame{background-color: #ffffff;border-radius:14px;border:1px solid rgb(229,229,229);}");
|
||||
}
|
||||
@@ -72,6 +74,7 @@ void SettingsPage::initConfig()
|
||||
QSettings readConfig(QDir::homePath() + "/.config/spark-store/config.ini", QSettings::IniFormat);
|
||||
if (!readConfig.value("server/choose").toString().isEmpty() && readConfig.value("server/updated").toString() == "TRUE")
|
||||
{
|
||||
qDebug() << readConfig.value("server/choose").toString();
|
||||
ui->comboBox_server->setCurrentText(readConfig.value("server/choose").toString());
|
||||
SparkAPI::setServerUrl(readConfig.value("server/choose").toString());
|
||||
}
|
||||
@@ -94,17 +97,14 @@ void SettingsPage::on_pushButton_updateServer_clicked()
|
||||
system("curl -o " + QDir::homePath().toUtf8() + "/.config/spark-store/server.list https://d.store.deepinos.org.cn/store/server-and-mirror.list");
|
||||
|
||||
ui->pushButton_updateServer->setEnabled(true);
|
||||
ui->comboBox_server->setCurrentIndex(0);
|
||||
|
||||
readServerList();
|
||||
});
|
||||
ui->comboBox_server->setCurrentIndex(0); });
|
||||
}
|
||||
|
||||
|
||||
void SettingsPage::on_comboBox_server_currentIndexChanged(const QString &arg1)
|
||||
{
|
||||
SparkAPI::setServerUrl(arg1); // 服务器信息更新
|
||||
|
||||
qDebug() << arg1;
|
||||
const QString updatedInfo = "TRUE";
|
||||
if (configCanSave)
|
||||
{
|
||||
@@ -183,11 +183,9 @@ void SettingsPage::on_pushButton_updateApt_clicked()
|
||||
emit openUrl(QUrl("spk://store/tools/spark-store"));
|
||||
ui->label_aptserver->setText(tr(""));
|
||||
|
||||
ui->pushButton_updateApt->setEnabled(true);
|
||||
});
|
||||
ui->pushButton_updateApt->setEnabled(true); });
|
||||
}
|
||||
|
||||
|
||||
void SettingsPage::on_pushButton_clear_clicked()
|
||||
{
|
||||
QtConcurrent::run([=]()
|
||||
@@ -203,11 +201,9 @@ void SettingsPage::on_pushButton_clear_clicked()
|
||||
}
|
||||
Utils::sendNotification("spark-store",tr("Spark Store"),tr("Temporary cache was cleaned"));
|
||||
ui->pushButton_clear->setEnabled(true);
|
||||
updateUI();
|
||||
});
|
||||
updateUI(); });
|
||||
}
|
||||
|
||||
|
||||
void SettingsPage::on_pushButton_clearWebCache_clicked()
|
||||
{
|
||||
QtConcurrent::run([=]()
|
||||
@@ -219,7 +215,5 @@ void SettingsPage::on_pushButton_clearWebCache_clicked()
|
||||
dataLocal = QStandardPaths::writableLocation(QStandardPaths::TempLocation);
|
||||
qDebug() << dataLocal;
|
||||
QDir cacheDir(dataLocal);
|
||||
cacheDir.removeRecursively();
|
||||
});
|
||||
cacheDir.removeRecursively(); });
|
||||
}
|
||||
|
||||
|
||||
+4
-2
@@ -58,7 +58,8 @@ SOURCES += \
|
||||
backend/downloadworker.cpp \
|
||||
pages/appintopage.cpp \
|
||||
widgets/big_image.cpp \
|
||||
backend/image_show.cpp
|
||||
backend/image_show.cpp \
|
||||
widgets/base/basewidgetopacity.cpp
|
||||
|
||||
HEADERS += \
|
||||
dbus/dbussparkstoreservice.h \
|
||||
@@ -79,7 +80,8 @@ HEADERS += \
|
||||
backend/downloadworker.h \
|
||||
pages/appintopage.h \
|
||||
widgets/big_image.h \
|
||||
backend/image_show.h
|
||||
backend/image_show.h \
|
||||
widgets/base/basewidgetopacity.h
|
||||
|
||||
FORMS += \
|
||||
mainwindow-dtk.ui \
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
#include "httprequest.h"
|
||||
|
||||
|
||||
|
||||
HttpRequest::HttpRequest()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void HttpRequest::getRequest(QNetworkRequest request)
|
||||
|
||||
+1
-2
@@ -2,10 +2,9 @@
|
||||
|
||||
Utils::Utils()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//这个函数是chatGPT写的
|
||||
// Author: chatGPT
|
||||
void Utils::sendNotification(QString icon, QString title, QString body)
|
||||
{
|
||||
QDBusInterface iface("org.freedesktop.Notifications",
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
WidgetAnimation::WidgetAnimation()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void WidgetAnimation::widgetShake(QWidget *pWidget, int nRange)
|
||||
@@ -16,7 +15,8 @@ void WidgetAnimation::widgetShake(QWidget *pWidget, int nRange)
|
||||
|
||||
int nShakeCount = 8;
|
||||
double nStep = 1.0 / nShakeCount;
|
||||
for(int i = 1; i < nShakeCount; i++){
|
||||
for (int i = 1; i < nShakeCount; i++)
|
||||
{
|
||||
nRange = i & 1 ? -nRange : nRange;
|
||||
pAnimation->setKeyValueAt(nStep * i, QRect(QPoint(nX + nRange, nY), pWidget->size()));
|
||||
}
|
||||
@@ -25,7 +25,7 @@ void WidgetAnimation::widgetShake(QWidget *pWidget, int nRange)
|
||||
pAnimation->start(QAbstractAnimation::DeleteWhenStopped);
|
||||
}
|
||||
|
||||
void WidgetAnimation::widgetOpacity(QWidget *pWidget, bool isAppear)
|
||||
QPropertyAnimation *WidgetAnimation::createWidgetOpacity(QWidget *pWidget, bool isAppear)
|
||||
{
|
||||
QPropertyAnimation *animation = new QPropertyAnimation(pWidget, "windowOpacity", pWidget);
|
||||
// 设置动画效果
|
||||
@@ -38,10 +38,17 @@ void WidgetAnimation::widgetOpacity(QWidget *pWidget, bool isAppear)
|
||||
animation->setKeyValueAt(0, 0);
|
||||
// m_animation->setKeyValueAt(0.5, 0);
|
||||
animation->setKeyValueAt(1, 1);
|
||||
}else{
|
||||
}
|
||||
else
|
||||
{
|
||||
animation->setKeyValueAt(0, 1);
|
||||
animation->setKeyValueAt(1, 0);
|
||||
}
|
||||
// 开始动画
|
||||
animation->start();
|
||||
return animation;
|
||||
}
|
||||
|
||||
void WidgetAnimation::widgetOpacity(QWidget *pWidget, bool isAppear)
|
||||
{
|
||||
// 开始动画
|
||||
createWidgetOpacity(pWidget, isAppear)->start();
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@ class WidgetAnimation
|
||||
public:
|
||||
WidgetAnimation();
|
||||
static void widgetShake(QWidget *pWidget, int nRange);
|
||||
|
||||
static QPropertyAnimation* createWidgetOpacity(QWidget *pWidget, bool isAppear);
|
||||
static void widgetOpacity(QWidget *pWidget, bool isAppear);
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
#include "basewidgetopacity.h"
|
||||
|
||||
#include <QCloseEvent>
|
||||
#include <QPropertyAnimation>
|
||||
|
||||
BaseWidgetOpacity::BaseWidgetOpacity(QWidget *parent) : DBlurEffectWidget(parent)
|
||||
{
|
||||
// WidgetAnimation::widgetOpacity(this,true);
|
||||
}
|
||||
|
||||
/// @brief 窗口关闭事件
|
||||
/// @param event
|
||||
void BaseWidgetOpacity::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
if (!closeWindowAnimation)
|
||||
{
|
||||
closeWindowAnimation = true;
|
||||
|
||||
QPropertyAnimation *animation = new QPropertyAnimation(this, "windowOpacity");
|
||||
animation->setEasingCurve(QEasingCurve::OutQuart);
|
||||
animation->setDuration(500);
|
||||
animation->setStartValue(1.0);
|
||||
animation->setEndValue(0.0);
|
||||
|
||||
QObject::connect(animation, &QPropertyAnimation::valueChanged, this, [=](const QVariant &value)
|
||||
{
|
||||
this->update();
|
||||
// setWindowTitle(QString("ヾ(⌒∇⌒*)See You♪ - %1%").arg(int(value.toFloat() * 100)));
|
||||
});
|
||||
|
||||
QObject::connect(animation, &QPropertyAnimation::finished, this, [=]()
|
||||
{ this->close(); });
|
||||
|
||||
animation->start();
|
||||
event->ignore();
|
||||
}
|
||||
else
|
||||
{
|
||||
event->accept();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
#ifndef BASEWIDGETOPACITY_H
|
||||
#define BASEWIDGETOPACITY_H
|
||||
|
||||
#include <DBlurEffectWidget>
|
||||
|
||||
DWIDGET_USE_NAMESPACE
|
||||
|
||||
class BaseWidgetOpacity : public DBlurEffectWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit BaseWidgetOpacity(QWidget *parent = nullptr);
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
// QWidget interface
|
||||
protected:
|
||||
bool closeWindowAnimation = false;
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
};
|
||||
|
||||
#endif // BASEWIDGETOPACITY_H
|
||||
@@ -3,8 +3,7 @@
|
||||
#include <QHBoxLayout>
|
||||
#include <QtConcurrent>
|
||||
|
||||
big_image::big_image(DBlurEffectWidget *parent) :
|
||||
DBlurEffectWidget(parent),
|
||||
big_image::big_image(DBlurEffectWidget *parent) : DBlurEffectWidget(parent),
|
||||
m_image(new QLabel)
|
||||
{
|
||||
// setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint); // 设置图片对话框总在最前
|
||||
|
||||
@@ -6,8 +6,7 @@
|
||||
|
||||
bool DownloadItem::isInstall = false;
|
||||
|
||||
DownloadItem::DownloadItem(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
DownloadItem::DownloadItem(QWidget *parent) : QWidget(parent),
|
||||
reinstall(false),
|
||||
close(false),
|
||||
ui(new Ui::DownloadItem),
|
||||
@@ -164,11 +163,10 @@ void DownloadItem::install(int t)
|
||||
|
||||
ui->widget_spinner->hide();
|
||||
DownloadItem::isInstall = false;
|
||||
});
|
||||
|
||||
emit finished(); });
|
||||
// emit finished();
|
||||
qDebug() << ui->label_filename->text().toUtf8();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void DownloadItem::on_pushButton_install_clicked()
|
||||
|
||||
@@ -152,14 +152,11 @@ void ProgressButton::mousePressEvent(QMouseEvent *event)
|
||||
|
||||
void ProgressButton::operationProcessing()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
const int RADIUS = 60;
|
||||
WaterDrop::WaterDrop(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, m_waterDropAnimation(nullptr)
|
||||
, m_animationRadius(0)
|
||||
: QWidget(parent), m_waterDropAnimation(nullptr), m_animationRadius(0)
|
||||
{
|
||||
this->setFixedSize(QSize(RADIUS * 2, RADIUS * 2));
|
||||
this->setWindowFlags(Qt::FramelessWindowHint | Qt::Tool);
|
||||
|
||||
@@ -1,10 +1,26 @@
|
||||
#include "webenginepage.h"
|
||||
|
||||
#include <QDesktopServices>
|
||||
#include <QWebEngineSettings>
|
||||
#include <QWebEngineProfile>
|
||||
|
||||
WebEnginePage::WebEnginePage(QObject *parent)
|
||||
: QWebEnginePage(parent)
|
||||
{
|
||||
QLocale ql;
|
||||
switch (ql.language())
|
||||
{
|
||||
case QLocale::Chinese:
|
||||
{
|
||||
// 系统语言是中文,获取网页为中文 @momen @uniartisan
|
||||
QWebEngineProfile *profile = QWebEngineProfile::defaultProfile();
|
||||
qDebug() << profile->httpAcceptLanguage();
|
||||
profile->setHttpAcceptLanguage("zh-CN,zh;q=0.8,en;q=0.6");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
WebEnginePage::~WebEnginePage()
|
||||
@@ -13,7 +29,8 @@ WebEnginePage::~WebEnginePage()
|
||||
|
||||
void WebEnginePage::setUrl(const QUrl &url)
|
||||
{
|
||||
if (m_currentUrl == url) {
|
||||
if (m_currentUrl == url)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -32,7 +49,8 @@ QWebEnginePage *WebEnginePage::createWindow(QWebEnginePage::WebWindowType type)
|
||||
|
||||
void WebEnginePage::slotUrlChanged(const QUrl &url)
|
||||
{
|
||||
if (m_currentUrl == url) {
|
||||
if (m_currentUrl == url)
|
||||
{
|
||||
sender()->deleteLater();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
#include <QGraphicsOpacityEffect>
|
||||
#include <QPropertyAnimation>
|
||||
#include <QDebug>
|
||||
DownloadListWidget::DownloadListWidget(QWidget *parent) :
|
||||
DBlurEffectWidget(parent),
|
||||
DownloadListWidget::DownloadListWidget(QWidget *parent) : DBlurEffectWidget(parent),
|
||||
ui(new Ui::DownloadListWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setWindowTitle("Download list");
|
||||
installEventFilter(this);
|
||||
this->setAttribute(Qt::WA_Hover, true);
|
||||
setFocus();
|
||||
@@ -47,16 +47,20 @@ DownloadListWidget::DownloadListWidget(QWidget *parent) :
|
||||
downloaditemlist[nowDownload - 1]->setSpeed(theSpeed);
|
||||
}else{
|
||||
emit downloadProgress(0);
|
||||
}
|
||||
});
|
||||
} });
|
||||
}
|
||||
|
||||
DownloadListWidget::~DownloadListWidget()
|
||||
{
|
||||
if (downloadController)
|
||||
{
|
||||
downloadController->stopDownload();
|
||||
delete downloadController;
|
||||
downloadController->deleteLater();
|
||||
}
|
||||
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void DownloadListWidget::clearItem()
|
||||
{
|
||||
ui->listWidget->vScrollBar->scrollTop();
|
||||
@@ -171,7 +175,6 @@ void DownloadListWidget::updateDataReadProgress(QString speedInfo, qint64 bytesR
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DownloadListWidget::m_move(int x, int y)
|
||||
{
|
||||
m_rect.setX(x);
|
||||
@@ -181,11 +184,14 @@ void DownloadListWidget::m_move(int x,int y)
|
||||
}
|
||||
bool DownloadListWidget::eventFilter(QObject *watched, QEvent *event)
|
||||
{
|
||||
if (Q_NULLPTR == watched) {
|
||||
if (Q_NULLPTR == watched)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (QEvent::ActivationChange == event->type()) {
|
||||
if(QApplication::activeWindow() != this){
|
||||
if (QEvent::ActivationChange == event->type())
|
||||
{
|
||||
if (QApplication::activeWindow() != this)
|
||||
{
|
||||
this->close();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,6 +73,10 @@ else
|
||||
|
||||
zenity --info --icon-name=spark-store --height 270 --width 500 --text "软件包校验失败!这不应该发生!\n可能是因为软件包已损坏,星火仓库未同步,或者最坏的情况:恶意软件尝试利用自动安装来入侵系统!\n如果你不清楚发生了什么,请在接下来的认证窗口中选择取消认证\n执行 sudo aptss ssupdate 后再尝试安装。\n如果问题仍然存在,请在应用信息界面点击 应用反馈 来提交反馈给我们!\n\n如果你是审核人员,这是正常现象,在审核通过前星火仓库不会保存相关信息。请在接下来的弹窗中进行认证即可"
|
||||
|
||||
echo "软件包校验失败!这不应该发生!"
|
||||
echo "执行 sudo aptss ssupdate 后再尝试安装。"
|
||||
echo "如果问题仍然存在,请在应用信息界面点击 应用反馈 来提交反馈给我们!"
|
||||
echo "如果你是审核人员,这是正常现象,在审核通过前星火仓库不会保存相关信息。请在接下来的弹窗中进行认证即可"
|
||||
|
||||
pkexec_as_current_user bash -c "dpkg -i "$DEBPATH" || aptss install -yf "
|
||||
|
||||
|
||||
@@ -4,16 +4,29 @@ pkexec "$0" "$@"
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
case $1 in
|
||||
ssupdate)
|
||||
aptss ssupdate 2>&1 | tee /tmp/spark-store-app-ssupdate-log.txt
|
||||
IS_SSUPDATE_ERROR=`cat /tmp/spark-store-app-ssupdate-log.txt | grep "E: "`
|
||||
echo "$IS_SSUPDATE_ERROR" > /tmp/spark-store-app-ssupdate-status.txt
|
||||
;;
|
||||
|
||||
upgradable-list)
|
||||
bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" | awk 'BEGIN {FS="/"} {print $1}' | awk NR\>1
|
||||
output=$(env LANGUAGE=en_US bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="/dev/null" -o APT::Get::List-Cleanup="0" | awk NR\>1)
|
||||
|
||||
IFS_OLD="$IFS"
|
||||
IFS=$'\n'
|
||||
|
||||
for line in $output ; do
|
||||
PKG_NAME=$(echo $line | awk -F '/' '{print $1}')
|
||||
PKG_NEW_VER=$(echo $line | awk -F ' ' '{print $2}')
|
||||
PKG_CUR_VER=$(echo $line | awk -F ' ' '{print $6}' | awk -F ']' '{print $1}')
|
||||
echo "${PKG_NAME} ${PKG_NEW_VER} ${PKG_CUR_VER}"
|
||||
done
|
||||
|
||||
IFS="$IFS_OLD"
|
||||
;;
|
||||
|
||||
upgrade-app)
|
||||
aptss install "${@:2}" --only-upgrade 2>&1 | tee /tmp/spark-store-app-upgrade-log.txt
|
||||
IS_UPGRADE_ERROR=`cat /tmp/spark-store-app-upgrade-log.txt | grep "Package manager quit with exit code."`
|
||||
|
||||
@@ -1,58 +1,82 @@
|
||||
#!/bin/bash
|
||||
|
||||
touch /tmp/spark-store/upgradeStatus.txt
|
||||
|
||||
# 执行 apt update
|
||||
pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh ssupdate | zenity --progress --auto-close --pulsate --no-cancel --text="正在检查更新,请稍候..." --height 70 --width 400 --title="星火商店更新模块" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
|
||||
if [ -z `cat /tmp/spark-store-app-ssupdate-status.txt` != "0" ];then
|
||||
if [ -z `cat /tmp/spark-store-app-ssupdate-status.txt` ] ; then
|
||||
echo "无错误"
|
||||
pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh clean-log
|
||||
else
|
||||
zenity --error --text "检查更新进程出现错误!按确定查看报错,可用于反馈" --title "星火商店更新检测模块" --height 200 --width 350 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
zenity --text-info --filename=/tmp/spark-store-app-ssupdate-log.txt --checkbox="我已复制了此文本框中的日志,且将会在反馈时附上。反馈渠道可以在右上角菜单的设置中找到" --title="反馈渠道在商店右上角的设置里" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh clean-log
|
||||
rm -f /tmp/spark-store/upgradeStatus.txt
|
||||
exit
|
||||
fi
|
||||
pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh clean-log
|
||||
|
||||
# 获取可更新应用列表
|
||||
PKG_LIST="$(pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgradable-list)"
|
||||
####如果没更新,就弹出不需要更新
|
||||
## 如果没更新,就弹出不需要更新
|
||||
if [ -z "$PKG_LIST" ] ; then
|
||||
zenity --info --text "没有软件需要更新\n但是你并没有站在世界之巅" --title "星火商店更新检测模块" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
else
|
||||
PKG_UPGRADE_LIST=`for PKG_NAME in $PKG_LIST;
|
||||
do
|
||||
## 获取用户选择的要更新的应用
|
||||
### 指定分隔符为 \n
|
||||
IFS_OLD="$IFS"
|
||||
IFS=$'\n'
|
||||
|
||||
PKG_UPGRADE_LIST=`for line in $PKG_LIST ; do
|
||||
PKG_NAME=$(echo $line | awk -F ' ' '{print $1}')
|
||||
PKG_NEW_VER=$(echo $line | awk -F ' ' '{print $2}')
|
||||
PKG_CUR_VER=$(echo $line | awk -F ' ' '{print $3}')
|
||||
|
||||
dpkg --compare-versions $PKG_NEW_VER le $PKG_CUR_VER
|
||||
if [ $? -eq 0 ] ; then
|
||||
continue
|
||||
fi
|
||||
#### 检测是否是 hold 状态
|
||||
if [ "$(dpkg-query -W -f='${Status}' $PKG_NAME | grep hold)" = "" ];then
|
||||
PKG_STA=$(dpkg-query -W -f='${db:Status-Want}' $PKG_NAME)
|
||||
if [ "$PKG_STA" != "hold" ] ; then
|
||||
echo "true"
|
||||
echo "$PKG_NAME"
|
||||
echo "$PKG_NAME"
|
||||
echo "$PKG_NEW_VER"
|
||||
echo "$PKG_CUR_VER"
|
||||
else
|
||||
echo "false"
|
||||
echo "$PKG_NAME(无法更新:已被标记为保留)"
|
||||
echo "$PKG_NAME"
|
||||
echo "$PKG_NEW_VER"
|
||||
echo "$PKG_CUR_VER"
|
||||
fi
|
||||
done | zenity --list --text="选择你想更新的应用" --column=是否更新 --column=应用包名 --column="真的应用包名" --separator=" " --checklist --print-column=3 --multiple --height 350 --width 550 --hide-column=3 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg`
|
||||
done`
|
||||
|
||||
#### 如果没有选择,则直接退出
|
||||
### 还原分隔符
|
||||
IFS="$IFS_OLD"
|
||||
|
||||
if [ "$PKG_UPGRADE_LIST" = "" ];then
|
||||
## 如果没有应用需要更新,则直接退出
|
||||
if [ -z "$PKG_UPGRADE_LIST" ] ; then
|
||||
zenity --info --text "没有软件需要更新\n但是你并没有站在世界之巅" --title "星火商店更新检测服务" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
else
|
||||
PKG_UPGRADE_LIST=$(echo "$PKG_UPGRADE_LIST" | zenity --list --text="选择你想更新的应用" --column="是否更新" --column="包名" --column="新版本" --column="从该版本更新" --separator=" " --checklist --multiple --print-column=2 --height 350 --width 550 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg)
|
||||
## 如果没有选择,则直接退出
|
||||
if [ -z "$PKG_UPGRADE_LIST" ] ; then
|
||||
zenity --info --text "没有选中任何软件\n但是你并没有站在世界之巅" --title "星火商店更新检测服务" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
else
|
||||
### 更新用户选择的应用
|
||||
pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgrade-app $PKG_UPGRADE_LIST -y | zenity --progress --auto-close --no-cancel --pulsate --text="正在更新已选中的应用,请稍候..." --height 70 --width 400 --title="星火商店更新模块" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
|
||||
pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgrade-app $PKG_UPGRADE_LIST -y | zenity --progress --auto-close --no-cancel --pulsate --text=正在更新已选中的应用,请稍候... --height 70 --width 400 --title="星火商店更新模块" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
|
||||
#### 更新成功
|
||||
if [ -z "`cat /tmp/spark-store-app-upgrade-status.txt`" ] ; then
|
||||
|
||||
zenity --info --text "选中的软件已经更新完毕" --title "星火商店更新检测模块" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
else
|
||||
#### 更新异常
|
||||
zenity --error --text "更新出现错误!按确定查看报错,可用于反馈" --title "星火商店更新检测模块" --height 200 --width 350 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
zenity --text-info --filename=/tmp/spark-store-app-upgrade-log.txt --checkbox="我已复制了此文本框中的日志,且将会在反馈时附上 。反馈渠道可以在右上角菜单的设置中找到" --title="反馈渠道在商店右上角的设置里往下拉" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
fi
|
||||
|
||||
|
||||
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
rm -f touch /tmp/spark-store/upgradeStatus.txt
|
||||
####从最开头
|
||||
rm -f /tmp/spark-store/upgradeStatus.txt
|
||||
# 从最开头
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
LANG=en.US
|
||||
LANGUAGE=en_US
|
||||
|
||||
# 发送通知
|
||||
function notify-send() {
|
||||
#Detect the name of the display in use
|
||||
# Detect name of the display in use
|
||||
local display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head -n 1)"
|
||||
|
||||
#Detect the user using such display
|
||||
# Detect user using the display
|
||||
local user=$(who | grep '('$display')' | awk '{print $1}' | head -n 1)
|
||||
|
||||
#Detect the id of the user
|
||||
# Detect uid of the user
|
||||
local uid=$(id -u $user)
|
||||
|
||||
sudo -u $user DISPLAY=$display DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus notify-send "$@"
|
||||
sudo -u $user DISPLAY=$display DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${uid}/bus notify-send "$@"
|
||||
}
|
||||
|
||||
# 检测网络链接畅通
|
||||
@@ -34,63 +34,60 @@ function network()
|
||||
# 网络不畅通
|
||||
return 1
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
network
|
||||
if [ $? -eq 1 ];then
|
||||
if [ $? -ne 0 ] ; then
|
||||
echo "Network fail. Stop to avoid bother dpkg"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
# The code above is modified from https://blog.csdn.net/yaxuan88521/article/details/120516298
|
||||
|
||||
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
||||
# 每日更新星火源文件
|
||||
mkdir -p /etc/apt/preferences.d
|
||||
touch /etc/apt/preferences.d/sparkstore
|
||||
cat << EOF >/etc/apt/preferences.d/sparkstore
|
||||
Package: *
|
||||
Pin: origin *.deepinos.org.cn
|
||||
Pin-Priority: 100
|
||||
|
||||
EOF
|
||||
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"
|
||||
|
||||
updatetext=`aptss ssupdate`
|
||||
|
||||
rm /etc/apt/preferences.d/sparkstore
|
||||
|
||||
|
||||
isupdate=`echo ${updatetext: -5}`
|
||||
if [ "$isupdate" = "date." ] ; then
|
||||
exit 0
|
||||
fi
|
||||
#### 从这里开始,只有检测到了更新才会进行
|
||||
|
||||
## 从这里开始,只有检测到了更新才会进行
|
||||
update_app_number=`echo ${updatetext%package*} #从右向左截取第一个 src 后的字符串`
|
||||
update_app_number=`echo ${update_app_number##*information...}`
|
||||
|
||||
# 获取用户选择的要更新的应用
|
||||
PKG_LIST="$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgradable-list)"
|
||||
# 指定分隔符为 \n
|
||||
IFS_OLD="$IFS"
|
||||
IFS=$'\n'
|
||||
|
||||
PKG_LIST="$(bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" | awk 'BEGIN {FS="/"} {print $1}' | awk NR\>1)"
|
||||
for line in $PKG_LIST ; do
|
||||
PKG_NAME=$(echo $line | awk -F ' ' '{print $1}')
|
||||
PKG_NEW_VER=$(echo $line | awk -F ' ' '{print $2}')
|
||||
PKG_CUR_VER=$(echo $line | awk -F ' ' '{print $3}')
|
||||
|
||||
dpkg --compare-versions $PKG_NEW_VER le $PKG_CUR_VER
|
||||
|
||||
|
||||
for PKG_NAME in $PKG_LIST;do
|
||||
if [ "$(dpkg-query -W -f='${Status}' $PKG_NAME | grep hold)" != "" ];then
|
||||
if [ $? -eq 0 ] ; then
|
||||
let update_app_number=$update_app_number-1
|
||||
continue
|
||||
fi
|
||||
|
||||
## 检测是否是 hold 状态
|
||||
PKG_STA=$(dpkg-query -W -f='${db:Status-Want}' $PKG_NAME)
|
||||
if [ "$PKG_STA" = "hold" ] ; then
|
||||
let update_app_number=$update_app_number-1
|
||||
echo $update_app_number
|
||||
echo $PKG_NAME
|
||||
fi
|
||||
done
|
||||
|
||||
# 还原分隔符
|
||||
IFS="$IFS_OLD"
|
||||
|
||||
|
||||
if [ $update_app_number -lt 1 ];then
|
||||
exit
|
||||
if [ $update_app_number -le 0 ] ; then
|
||||
exit 0
|
||||
fi
|
||||
#### 如果都是hold的那就直接退出,否则把剩余的给提醒了
|
||||
|
||||
notify-send -i spark-store "星火更新提醒" "星火商店仓库中有$update_app_number个软件包可以更新啦!请到星火商店的菜单处理"
|
||||
|
||||
|
||||
## 如果都是hold或者版本一致的那就直接退出,否则把剩余的给提醒了
|
||||
notify-send -a spark-store "星火更新提醒" "星火商店仓库中有$update_app_number个软件包可以更新啦!请到星火商店的菜单处理"
|
||||
|
||||
@@ -9,210 +9,212 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="234"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="146"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="201"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="147"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="209"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="280"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="290"/>
|
||||
<source>Uninstall</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="336"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="346"/>
|
||||
<source>0</source>
|
||||
<translation type="unfinished">0B {0?}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="346"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="356"/>
|
||||
<source>Download Times</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="400"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="403"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="410"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="413"/>
|
||||
<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="../src/pages/appintopage.ui" line="406"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="416"/>
|
||||
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="419"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="422"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="429"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="432"/>
|
||||
<source><html><head/><body><p>Capable to Ubuntu 20.04</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="425"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="435"/>
|
||||
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="438"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="441"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="448"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="451"/>
|
||||
<source><html><head/><body><p>Capable to UOS home 20</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="444"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="454"/>
|
||||
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="457"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="460"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="467"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="470"/>
|
||||
<source><html><head/><body><p>A deepin-wine2 app. Spark Store will automatically configure the wine kit for you.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="463"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="473"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="476"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="479"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="486"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="489"/>
|
||||
<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="../src/pages/appintopage.ui" line="482"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="492"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="495"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="498"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="505"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="508"/>
|
||||
<source><html><head/><body><p>Capable to deepin 20</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="501"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="511"/>
|
||||
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="514"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="517"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="524"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="527"/>
|
||||
<source><html><head/><body><p>An Appimage to deb app.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="520"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="530"/>
|
||||
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="533"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="536"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="543"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="546"/>
|
||||
<source><html><head/><body><p>A deepin-wine5 app.Spark Store will automatically configure the wine kit for you</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="539"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="549"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="592"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="602"/>
|
||||
<source>Share</source>
|
||||
<translation type="unfinished">Spk share link</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="599"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="609"/>
|
||||
<source>APP Feedback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="755"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1055"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="765"/>
|
||||
<source>Introduction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1068"/>
|
||||
<source>Description</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="890"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="903"/>
|
||||
<source>Screen capture</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1142"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1161"/>
|
||||
<source>Update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1171"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1190"/>
|
||||
<source>Contributor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1178"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1197"/>
|
||||
<source>Pkgname</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1281"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1303"/>
|
||||
<source>Author</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1314"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1339"/>
|
||||
<source>Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1347"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1375"/>
|
||||
<source>Website</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="88"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="89"/>
|
||||
<source>Click Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="131"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="297"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="132"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="224"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="316"/>
|
||||
<source>Reinstall</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="138"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="139"/>
|
||||
<source>Upgrade</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="206"/>
|
||||
<source>Downloading</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="211"/>
|
||||
<source>Downloaded</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="321"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="214"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="308"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="341"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="336"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="219"/>
|
||||
<source>Installing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="345"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="356"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="345"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="336"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="356"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -253,79 +255,79 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="192"/>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="198"/>
|
||||
<source>Waiting to download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="243"/>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="249"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="262"/>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="268"/>
|
||||
<source>Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="281"/>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="287"/>
|
||||
<source>Info</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="39"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="40"/>
|
||||
<source>Download Complete.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="141"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="149"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="156"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="142"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="152"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="159"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="98"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="99"/>
|
||||
<source>Installing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="141"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="142"/>
|
||||
<source>Installation complete.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="142"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="143"/>
|
||||
<source>Finish</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="148"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="150"/>
|
||||
<source>Retry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="149"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="152"/>
|
||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="150"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="153"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="156"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="159"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="157"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="160"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="178"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="181"/>
|
||||
<source>Download canceled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -446,12 +448,12 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="180"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="158"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="181"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="159"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -9,210 +9,212 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="234"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="146"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="201"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="147"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="209"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="280"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="290"/>
|
||||
<source>Uninstall</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="336"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="346"/>
|
||||
<source>0</source>
|
||||
<translation type="unfinished">0B {0?}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="346"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="356"/>
|
||||
<source>Download Times</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="400"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="403"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="410"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="413"/>
|
||||
<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="../src/pages/appintopage.ui" line="406"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="416"/>
|
||||
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="419"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="422"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="429"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="432"/>
|
||||
<source><html><head/><body><p>Capable to Ubuntu 20.04</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="425"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="435"/>
|
||||
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="438"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="441"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="448"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="451"/>
|
||||
<source><html><head/><body><p>Capable to UOS home 20</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="444"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="454"/>
|
||||
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="457"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="460"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="467"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="470"/>
|
||||
<source><html><head/><body><p>A deepin-wine2 app. Spark Store will automatically configure the wine kit for you.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="463"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="473"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="476"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="479"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="486"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="489"/>
|
||||
<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="../src/pages/appintopage.ui" line="482"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="492"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="495"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="498"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="505"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="508"/>
|
||||
<source><html><head/><body><p>Capable to deepin 20</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="501"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="511"/>
|
||||
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="514"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="517"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="524"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="527"/>
|
||||
<source><html><head/><body><p>An Appimage to deb app.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="520"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="530"/>
|
||||
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="533"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="536"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="543"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="546"/>
|
||||
<source><html><head/><body><p>A deepin-wine5 app.Spark Store will automatically configure the wine kit for you</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="539"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="549"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="592"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="602"/>
|
||||
<source>Share</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="599"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="609"/>
|
||||
<source>APP Feedback</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="755"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1055"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="765"/>
|
||||
<source>Introduction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1068"/>
|
||||
<source>Description</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="890"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="903"/>
|
||||
<source>Screen capture</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1142"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1161"/>
|
||||
<source>Update</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1171"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1190"/>
|
||||
<source>Contributor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1178"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1197"/>
|
||||
<source>Pkgname</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1281"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1303"/>
|
||||
<source>Author</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1314"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1339"/>
|
||||
<source>Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1347"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1375"/>
|
||||
<source>Website</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="88"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="89"/>
|
||||
<source>Click Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="131"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="297"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="132"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="224"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="316"/>
|
||||
<source>Reinstall</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="138"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="139"/>
|
||||
<source>Upgrade</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="206"/>
|
||||
<source>Downloading</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="211"/>
|
||||
<source>Downloaded</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="321"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="214"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="308"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="341"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="336"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="219"/>
|
||||
<source>Installing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="345"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="356"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="345"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="336"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="356"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -253,79 +255,79 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="192"/>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="198"/>
|
||||
<source>Waiting to download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="243"/>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="249"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="262"/>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="268"/>
|
||||
<source>Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="281"/>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="287"/>
|
||||
<source>Info</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="39"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="40"/>
|
||||
<source>Download Complete.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="141"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="149"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="156"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="142"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="152"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="159"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="98"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="99"/>
|
||||
<source>Installing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="141"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="142"/>
|
||||
<source>Installation complete.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="142"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="143"/>
|
||||
<source>Finish</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="148"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="150"/>
|
||||
<source>Retry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="149"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="152"/>
|
||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="150"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="153"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="156"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="159"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="157"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="160"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="178"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="181"/>
|
||||
<source>Download canceled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -446,12 +448,12 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="180"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="158"/>
|
||||
<source>Spark Store</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="181"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="159"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -9,57 +9,57 @@
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="234"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="146"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="201"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="147"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="209"/>
|
||||
<source>Download</source>
|
||||
<translation>下载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="280"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="290"/>
|
||||
<source>Uninstall</source>
|
||||
<translation>卸载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="336"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="346"/>
|
||||
<source>0</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="346"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="356"/>
|
||||
<source>Download Times</source>
|
||||
<translation>下载量</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="400"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="403"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="410"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="413"/>
|
||||
<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="../src/pages/appintopage.ui" line="406"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="416"/>
|
||||
<source><html><head/><body><p><img src=":/tags/community-small.png"/></p></body></html></source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="419"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="422"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="429"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="432"/>
|
||||
<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="../src/pages/appintopage.ui" line="425"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="435"/>
|
||||
<source><html><head/><body><p><img src=":/tags/ubuntu-small.png"/></p></body></html></source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="438"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="441"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="448"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="451"/>
|
||||
<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="../src/pages/appintopage.ui" line="444"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="454"/>
|
||||
<source><html><head/><body><p><img src=":/tags/uos-small.png"/></p></body></html></source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@@ -68,46 +68,46 @@
|
||||
<translation type="obsolete"><html><head/><body><p>这是一款 deepin-wine2 应用,如果你并没有在使用深度系列发行版(比如您在使用ubuntu),你需要自行配置 deepin-wine2 环境</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="457"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="460"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="467"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="470"/>
|
||||
<source><html><head/><body><p>A deepin-wine2 app. Spark Store will automatically configure the wine kit for you.</p></body></html></source>
|
||||
<translation>这是一款 deepin-wine2 应用。星火商店会为你自动配置wine环境</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="463"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="473"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine2-small.png"/></p></body></html></source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="476"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="479"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="486"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="489"/>
|
||||
<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="../src/pages/appintopage.ui" line="482"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="492"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dtk-small.png"/></p></body></html></source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="495"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="498"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="505"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="508"/>
|
||||
<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="../src/pages/appintopage.ui" line="501"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="511"/>
|
||||
<source><html><head/><body><p><img src=":/tags/deepin-small.png"/></p></body></html></source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="514"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="517"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="524"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="527"/>
|
||||
<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="../src/pages/appintopage.ui" line="520"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="530"/>
|
||||
<source><html><head/><body><p><img src=":/tags/a2d-small.png"/></p></body></html></source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@@ -116,111 +116,121 @@
|
||||
<translation type="obsolete"><html><head/><body><p>这是一款deepin-wine5应用,如果你并没有在使用深度系列发行版(比如您在使用ubuntu),你需要自行配置deepin-wine5环境</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="533"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="536"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="543"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="546"/>
|
||||
<source><html><head/><body><p>A deepin-wine5 app.Spark Store will automatically configure the wine kit for you</p></body></html></source>
|
||||
<translation>这是一款 deepin-wine5 应用。星火商店会为你自动配置wine环境</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="539"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="549"/>
|
||||
<source><html><head/><body><p><img src=":/tags/dwine5-small.png"/></p></body></html></source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="592"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="602"/>
|
||||
<source>Share</source>
|
||||
<translation>Spk分享链接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="599"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="609"/>
|
||||
<source>APP Feedback</source>
|
||||
<translation>应用反馈</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="755"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1055"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1068"/>
|
||||
<source>Description</source>
|
||||
<translation>描述</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="890"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="903"/>
|
||||
<source>Screen capture</source>
|
||||
<translation>屏幕截图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1142"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="765"/>
|
||||
<source>Introduction</source>
|
||||
<translation>介绍</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1161"/>
|
||||
<source>Update</source>
|
||||
<translation>更新时间</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1171"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1190"/>
|
||||
<source>Contributor</source>
|
||||
<translation>投稿用户</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1178"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1197"/>
|
||||
<source>Pkgname</source>
|
||||
<translation>软件包名</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1281"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1303"/>
|
||||
<source>Author</source>
|
||||
<translation>软件作者</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1314"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1339"/>
|
||||
<source>Size</source>
|
||||
<translation>软件大小</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.ui" line="1347"/>
|
||||
<location filename="../src/pages/appintopage.ui" line="1375"/>
|
||||
<source>Website</source>
|
||||
<translation>软件官网</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="88"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="89"/>
|
||||
<source>Click Open</source>
|
||||
<translation>点击跳转</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="131"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="297"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="132"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="224"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="316"/>
|
||||
<source>Reinstall</source>
|
||||
<translation>重新安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="138"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="139"/>
|
||||
<source>Upgrade</source>
|
||||
<translation>升级</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="206"/>
|
||||
<source>Downloading</source>
|
||||
<translation>下载中</translation>
|
||||
<translation type="vanished">下载中</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="211"/>
|
||||
<source>Downloaded</source>
|
||||
<translation>下载完成</translation>
|
||||
<translation type="vanished">下载完成</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="321"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="214"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="308"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="341"/>
|
||||
<source>Install</source>
|
||||
<translation>安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="336"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="219"/>
|
||||
<source>Installing</source>
|
||||
<translation type="unfinished">正在安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="345"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="356"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="345"/>
|
||||
<source>Uninstall succeeded</source>
|
||||
<translation>卸载成功</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/pages/appintopage.cpp" line="336"/>
|
||||
<location filename="../src/pages/appintopage.cpp" line="356"/>
|
||||
<source>The URL has been copied to the clipboard</source>
|
||||
<translation>链接已复制到剪贴板</translation>
|
||||
</message>
|
||||
@@ -261,22 +271,22 @@
|
||||
<translation>软件名</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="192"/>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="198"/>
|
||||
<source>Waiting to download</source>
|
||||
<translation>正在等待下载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="243"/>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="249"/>
|
||||
<source>Install</source>
|
||||
<translation>安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="262"/>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="268"/>
|
||||
<source>Cancel</source>
|
||||
<translation>取消</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="281"/>
|
||||
<location filename="../src/widgets/common/downloaditem.ui" line="287"/>
|
||||
<source>Info</source>
|
||||
<translation>详情</translation>
|
||||
</message>
|
||||
@@ -305,59 +315,59 @@
|
||||
<translation type="vanished">打开 APP 升级和安装设置以启用无密码安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="39"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="40"/>
|
||||
<source>Download Complete.</source>
|
||||
<translation>下载完成.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="141"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="149"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="156"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="142"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="152"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="159"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="98"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="99"/>
|
||||
<source>Installing</source>
|
||||
<translation>正在安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="141"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="142"/>
|
||||
<source>Installation complete.</source>
|
||||
<translation>安装完成.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="142"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="143"/>
|
||||
<source>Finish</source>
|
||||
<translation>完成</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="148"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="150"/>
|
||||
<source>Retry</source>
|
||||
<translation>重试</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="149"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="152"/>
|
||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>安装被中止,可重新安装。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="150"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="153"/>
|
||||
<source>Error happened in dpkg progress , you can try it again</source>
|
||||
<translation>dpkg出现错误,可重新安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="156"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="159"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>dpkg进程被中断,您可重试安装。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="157"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="160"/>
|
||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||
<translation>安装被中止,可重新安装</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="178"/>
|
||||
<location filename="../src/widgets/common/downloaditem.cpp" line="181"/>
|
||||
<source>Download canceled</source>
|
||||
<translation>下载已取消</translation>
|
||||
</message>
|
||||
@@ -486,12 +496,12 @@
|
||||
<translation>应用更新和安装设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="180"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="158"/>
|
||||
<source>Spark Store</source>
|
||||
<translation>星火应用商店</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="181"/>
|
||||
<location filename="../src/mainwindow-dtk.cpp" line="159"/>
|
||||
<source>Search or enter spk://</source>
|
||||
<translation>搜索或打开链接</translation>
|
||||
</message>
|
||||
|
||||
Reference in New Issue
Block a user