mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-12-16 17:11:37 +08:00
Compare commits
8 Commits
4.2.3test4
...
4.2.3test2
| Author | SHA1 | Date | |
|---|---|---|---|
| ee0d3f87ec | |||
| 4ce19e25e5 | |||
| 41a6a3fc04 | |||
| 682a6e38d6 | |||
| 36d273dd5e | |||
| 8850cfd4a3 | |||
| bec8a14baf | |||
| 8918e63484 |
18
debian/changelog
vendored
18
debian/changelog
vendored
@@ -1,20 +1,3 @@
|
|||||||
spark-store (4.2.3~test4) stable; urgency=medium
|
|
||||||
|
|
||||||
* 修复: aptss 无法安装
|
|
||||||
|
|
||||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
|
||||||
|
|
||||||
spark-store (4.2.3~test3) stable; urgency=medium
|
|
||||||
|
|
||||||
* 调整:打包时从 debian/changelog 自动获取构建版本号并写入关于窗口保证与deb一致
|
|
||||||
* 新增:支持 DTK 5.6.4 关于对话框“版本特性”显示功能。目前只在deepin编译安装时开启
|
|
||||||
* 修复:修复下载列表对话框中,点击某个 item 取消下载按钮后下载列表无法再次显示的问题
|
|
||||||
* 修复:多个应用安装可能会出现某一个应用没有安装
|
|
||||||
* 修复:修复下载按钮点击/双击/拖动时,主窗口动作与下载管理对话框动作同时触发问题
|
|
||||||
* aptss 获取线路信息 转到从 d. 服务器获取
|
|
||||||
|
|
||||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
|
||||||
|
|
||||||
spark-store (4.2.3~test2) stable; urgency=medium
|
spark-store (4.2.3~test2) stable; urgency=medium
|
||||||
|
|
||||||
* 调整:开启安装包加固
|
* 调整:开启安装包加固
|
||||||
@@ -22,7 +5,6 @@ spark-store (4.2.3~test2) stable; urgency=medium
|
|||||||
|
|
||||||
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
|
||||||
|
|
||||||
|
|
||||||
spark-store (4.2.3~test1) stable; urgency=medium
|
spark-store (4.2.3~test1) stable; urgency=medium
|
||||||
|
|
||||||
* 修复:因判断安装状态错误创建多个相同任务的bug
|
* 修复:因判断安装状态错误创建多个相同任务的bug
|
||||||
|
|||||||
4
debian/control
vendored
4
debian/control
vendored
@@ -20,9 +20,9 @@ Build-Depends:
|
|||||||
qtwayland5-dev-tools,
|
qtwayland5-dev-tools,
|
||||||
gcc,
|
gcc,
|
||||||
g++
|
g++
|
||||||
Standards-Version: 4.0.0
|
|
||||||
Homepage: https://www.spark-app.store/
|
|
||||||
|
|
||||||
|
Standards-Version: 3.0
|
||||||
|
Homepage: https://www.spark-app.store/
|
||||||
Package: spark-store
|
Package: spark-store
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends:${shlibs:Depends}, ${misc:Depends},
|
Depends:${shlibs:Depends}, ${misc:Depends},
|
||||||
|
|||||||
12
debian/rules
vendored
12
debian/rules
vendored
@@ -1,14 +1,14 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
export QT_SELECT = qt5
|
export QT_SELECT=5
|
||||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||||
include /usr/share/dpkg/default.mk
|
include /usr/share/dpkg/default.mk
|
||||||
|
|
||||||
DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
|
DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
|
||||||
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
|
DH_AUTO_ARGS = --parallel --buildsystem=qmake
|
||||||
|
|
||||||
# Uncomment this to turn on verbose mode.
|
# Uncomment this to turn on verbose mode.
|
||||||
#export DH_VERBOSE = 1
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
%:
|
%:
|
||||||
dh $@ --parallel
|
dh $@ --parallel
|
||||||
@@ -19,17 +19,19 @@ override_dh_auto_clean:
|
|||||||
override_dh_auto_configure:
|
override_dh_auto_configure:
|
||||||
mkdir -p $(CURDIR)/build
|
mkdir -p $(CURDIR)/build
|
||||||
|
|
||||||
qmake BUILD_VERSION=$(DEB_VERSION_UPSTREAM) spark-store-project.pro \
|
dh_auto_configure MAKEFLAGS=-j$(JOBS) -- spark-store-project.pro \
|
||||||
-spec linux-g++ CONFIG+=qtquickcompiler \
|
-spec linux-g++ CONFIG+=qtquickcompiler \
|
||||||
-o $(CURDIR)/build/
|
-o $(CURDIR)/build/
|
||||||
|
|
||||||
|
|
||||||
override_dh_auto_build:
|
override_dh_auto_build:
|
||||||
make MAKEFLAGS="$(MAKEFLAGS)" -C $(CURDIR)/build
|
make -C $(CURDIR)/build -j$(JOBS)
|
||||||
|
|
||||||
override_dh_auto_install:
|
override_dh_auto_install:
|
||||||
make -C $(CURDIR)/build install \
|
make -C $(CURDIR)/build install \
|
||||||
INSTALL_ROOT=$(CURDIR)/debian/spark-store
|
INSTALL_ROOT=$(CURDIR)/debian/spark-store
|
||||||
|
|
||||||
|
|
||||||
# Ignore the dpkg-shlibdeps: warning (it uses none of the library's symbols)
|
# Ignore the dpkg-shlibdeps: warning (it uses none of the library's symbols)
|
||||||
# Qt Mutidedia lib will ref to network libraray.
|
# Qt Mutidedia lib will ref to network libraray.
|
||||||
override_dh_shlibdeps:
|
override_dh_shlibdeps:
|
||||||
|
|||||||
20
debian/spark-store.postinst
vendored
20
debian/spark-store.postinst
vendored
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
configure)
|
configure)
|
||||||
|
|
||||||
# Enable i386 arch
|
# Enable i386 arch
|
||||||
echo "Enabling i386 arch..."
|
echo "Enable i386 arch..."
|
||||||
dpkg --add-architecture i386
|
dpkg --add-architecture i386
|
||||||
|
|
||||||
# config for aptss
|
# config for aptss
|
||||||
@@ -11,7 +12,10 @@ case "$1" in
|
|||||||
ln -s -f /etc/apt/sources.list /etc/aptss/sources.list
|
ln -s -f /etc/apt/sources.list /etc/aptss/sources.list
|
||||||
|
|
||||||
# Remove the sources.list file
|
# Remove the sources.list file
|
||||||
rm -f /etc/apt/sources.list.d/sparkstore.list
|
if [ -e /etc/apt/sources.list.d/sparkstore.list ];then
|
||||||
|
rm /etc/apt/sources.list.d/sparkstore.list
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Check if /usr/local/bin existed
|
# Check if /usr/local/bin existed
|
||||||
mkdir -p /usr/local/bin
|
mkdir -p /usr/local/bin
|
||||||
@@ -30,8 +34,8 @@ case "$1" in
|
|||||||
# Create symbol links for SSINSTALL
|
# Create symbol links for SSINSTALL
|
||||||
ln -s -f /opt/durapps/spark-store/bin/auto-install-policy/store.spark-app.ssinstall.policy /usr/share/polkit-1/actions/store.spark-app.ssinstall.policy
|
ln -s -f /opt/durapps/spark-store/bin/auto-install-policy/store.spark-app.ssinstall.policy /usr/share/polkit-1/actions/store.spark-app.ssinstall.policy
|
||||||
|
|
||||||
# Compile sender module
|
|
||||||
echo "Compiling the Sender module..."
|
echo "Compiling the Sender module..."
|
||||||
|
|
||||||
gcc -Wformat -Wformat-security -Werror=format-security /opt/durapps/spark-store/bin/ss-feedback/sender-d.sh.c -o /opt/durapps/spark-store/bin/ss-feedback/sender-d
|
gcc -Wformat -Wformat-security -Werror=format-security /opt/durapps/spark-store/bin/ss-feedback/sender-d.sh.c -o /opt/durapps/spark-store/bin/ss-feedback/sender-d
|
||||||
|
|
||||||
# Install key
|
# Install key
|
||||||
@@ -40,13 +44,17 @@ case "$1" in
|
|||||||
gpg --dearmor /tmp/spark-store-install/spark-store.asc
|
gpg --dearmor /tmp/spark-store-install/spark-store.asc
|
||||||
cp -f /tmp/spark-store-install/spark-store.asc.gpg /etc/apt/trusted.gpg.d/spark-store.gpg
|
cp -f /tmp/spark-store-install/spark-store.asc.gpg /etc/apt/trusted.gpg.d/spark-store.gpg
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Run apt update to avoid users being fucked up by the non-exist dependency problem
|
# Run apt update to avoid users being fucked up by the non-exist dependency problem
|
||||||
# Now abandoned as aptss now run ssupdate everytime
|
# Now abandoned as aptss now run ssupdate everytime
|
||||||
#aptss ssupdate
|
#aptss ssupdate
|
||||||
|
|
||||||
|
|
||||||
# Start upgrade detect service
|
# Start upgrade detect service
|
||||||
systemctl enable spark-update-notifier
|
systemctl enable spark-update-notifier
|
||||||
systemctl start spark-update-notifier
|
service spark-update-notifier start
|
||||||
|
|
||||||
|
|
||||||
# Update certain caches
|
# Update certain caches
|
||||||
update-icon-caches /usr/share/icons/hicolor || true
|
update-icon-caches /usr/share/icons/hicolor || true
|
||||||
@@ -55,10 +63,12 @@ case "$1" in
|
|||||||
update-mime-database /usr/share/mime || true
|
update-mime-database /usr/share/mime || true
|
||||||
|
|
||||||
# Send email for statistics
|
# Send email for statistics
|
||||||
#/tmp/spark-store-install/feedback.sh
|
# /tmp/spark-store-install/feedback.sh
|
||||||
|
|
||||||
# Remove temp dir
|
# Remove temp dir
|
||||||
rm -rf /tmp/spark-store-install
|
rm -rf /tmp/spark-store-install
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
triggered)
|
triggered)
|
||||||
|
|||||||
71
debian/spark-store.prerm
vendored
71
debian/spark-store.prerm
vendored
@@ -1,35 +1,48 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
if [ "$1" = "remove" ] || [ "$1" = "purge" ] ; then
|
if [ "$1" = "remove" ] || [ "$1" = "purge" ];then
|
||||||
# Remove residual symbol links
|
# Remove residual symbol links
|
||||||
rm -f /usr/local/bin/spark-store
|
rm /usr/local/bin/spark-store
|
||||||
rm -f /usr/local/bin/ssinstall
|
rm /usr/local/bin/ssinstall
|
||||||
rm -f /usr/local/bin/ssaudit
|
rm /usr/local/bin/ssaudit
|
||||||
rm -f /usr/local/bin/spark-dstore-patch
|
rm /usr/local/bin/spark-dstore-patch
|
||||||
rm -f /usr/local/bin/ussinstall
|
rm /usr/local/bin/ussinstall
|
||||||
rm -f /usr/local/bin/ussremove
|
rm /usr/local/bin/ussremove
|
||||||
rm -f /usr/local/bin/ss-apt-fast
|
rm /usr/local/bin/ss-apt-fast
|
||||||
rm -f /usr/bin/aptss
|
rm /usr/bin/aptss
|
||||||
|
|
||||||
rm -rf /etc/aptss/
|
rm -rf /etc/aptss/
|
||||||
|
|
||||||
# Remove Sender module
|
# Remove Sender module
|
||||||
rm -f /opt/durapps/spark-store/bin/ss-feedback/sender-d
|
rm /opt/durapps/spark-store/bin/ss-feedback/sender-d
|
||||||
|
|
||||||
|
# Remove residual symbol links to stop upgrade detect if exist
|
||||||
|
if [ -e /etc/xdg/autostart/spark-update-notifier.desktop ];then
|
||||||
|
rm /etc/xdg/autostart/spark-update-notifier.desktop
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Shutdown services
|
||||||
|
service spark-update-notifier stop
|
||||||
|
|
||||||
|
# Stop update detect service
|
||||||
|
systemctl disable spark-update-notifier
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Clean the auto install polkit file if exist
|
||||||
|
if [ -f "/usr/share/polkit-1/actions/store.spark-app.ssinstall.policy" ] ; then
|
||||||
|
rm /usr/share/polkit-1/actions/store.spark-app.ssinstall.policy
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove gpg key file
|
||||||
|
if [ -f "/etc/apt/trusted.gpg.d/spark-store.gpg" ] ; then
|
||||||
|
rm /etc/apt/trusted.gpg.d/spark-store.gpg
|
||||||
|
fi
|
||||||
|
|
||||||
|
apt-key del '9D9A A859 F750 24B1 A1EC E16E 0E41 D354 A29A 440C'
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
echo "非卸载操作,不进行配置清理"
|
||||||
|
|
||||||
# Remove residual symbol links to stop upgrade detect
|
|
||||||
rm -f /etc/xdg/autostart/spark-update-notifier.desktop
|
|
||||||
|
|
||||||
# Shutdown services
|
|
||||||
systemctl stop spark-update-notifier
|
|
||||||
# Stop update detect service
|
|
||||||
systemctl disable spark-update-notifier
|
|
||||||
|
|
||||||
# Clean the auto install polkit file if exist
|
|
||||||
rm -f /usr/share/polkit-1/actions/store.spark-app.ssinstall.policy
|
|
||||||
|
|
||||||
# Remove gpg key file
|
|
||||||
rm -f /etc/apt/trusted.gpg.d/spark-store.gpg
|
|
||||||
apt-key del '9D9A A859 F750 24B1 A1EC E16E 0E41 D354 A29A 440C'
|
|
||||||
else
|
|
||||||
echo "非卸载操作,不进行配置清理"
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
"magic": "dsg.config.meta",
|
|
||||||
"version": "1.0",
|
|
||||||
"contents": {
|
|
||||||
"featureUpdated": {
|
|
||||||
"value": false,
|
|
||||||
"serial": 0,
|
|
||||||
"flags": [],
|
|
||||||
"name": "Whether the application has new feature updates",
|
|
||||||
"name[zh_CN]": "配置应用的更新状态",
|
|
||||||
"description": "Configure the update status of the application",
|
|
||||||
"permissions": "readwrite",
|
|
||||||
"visibility": "public"
|
|
||||||
},
|
|
||||||
"autoDisplayFeature": {
|
|
||||||
"value": false,
|
|
||||||
"serial": 0,
|
|
||||||
"flags": [],
|
|
||||||
"name": "The application automatically display new features once",
|
|
||||||
"name[zh_CN]": "配置应用是否自动展示一次新特性",
|
|
||||||
"description": "The application automatically display updated contents once",
|
|
||||||
"permissions": "readwrite",
|
|
||||||
"visibility": "public"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -14,14 +14,8 @@ SUBDIRS += \
|
|||||||
src/spark-dstore-patch \
|
src/spark-dstore-patch \
|
||||||
src/spark-store.pro
|
src/spark-store.pro
|
||||||
|
|
||||||
# https://wiki.debian.org/Hardening
|
|
||||||
QMAKE_CFLAGS *= $(shell dpkg-buildflags --get CFLAGS)
|
|
||||||
QMAKE_CPPFLAGS *= $(shell dpkg-buildflags --get CPPFLAGS)
|
|
||||||
QMAKE_CXXFLAGS *= $(shell dpkg-buildflags --get CXXFLAGS)
|
|
||||||
QMAKE_LFLAGS *= $(shell dpkg-buildflags --get LDFLAGS)
|
|
||||||
|
|
||||||
# Update translation files
|
# Update translation files
|
||||||
CONFIG(release, debug | release) {
|
CONFIG(release, debug|release) {
|
||||||
system(bash $${PWD}/translate_update.sh)
|
system(bash $${PWD}/translate_update.sh)
|
||||||
system(bash $${PWD}/translate_generation.sh)
|
system(bash $${PWD}/translate_generation.sh)
|
||||||
}
|
}
|
||||||
@@ -72,3 +66,9 @@ INSTALLS += \
|
|||||||
bash_completion \
|
bash_completion \
|
||||||
polkit-1
|
polkit-1
|
||||||
# 暂时不添加
|
# 暂时不添加
|
||||||
|
|
||||||
|
# https://wiki.debian.org/Hardening
|
||||||
|
QMAKE_CPPFLAGS *= $(shell dpkg-buildflags --get CPPFLAGS)
|
||||||
|
QMAKE_CFLAGS *= $(shell dpkg-buildflags --get CFLAGS)
|
||||||
|
QMAKE_CXXFLAGS *= $(shell dpkg-buildflags --get CXXFLAGS)
|
||||||
|
QMAKE_LFLAGS *= $(shell dpkg-buildflags --get LDFLAGS)
|
||||||
@@ -1,14 +1,10 @@
|
|||||||
#include "application.h"
|
#include "application.h"
|
||||||
#include "mainwindow-dtk.h"
|
#include "mainwindow-dtk.h"
|
||||||
#include "utils/utils.h"
|
|
||||||
|
|
||||||
#include <DPlatformWindowHandle>
|
#include <DPlatformWindowHandle>
|
||||||
#include <DLog>
|
#include <DLog>
|
||||||
#include <DGuiApplicationHelper>
|
#include <DGuiApplicationHelper>
|
||||||
#include <DAboutDialog>
|
#include <DAboutDialog>
|
||||||
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
|
|
||||||
#include <DFeatureDisplayDialog>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
@@ -47,9 +43,6 @@ Application::Application(int &argc, char **argv)
|
|||||||
// 初始化日志模块 (默认日志位置 ~/.cache/spark-union/spark-store)
|
// 初始化日志模块 (默认日志位置 ~/.cache/spark-union/spark-store)
|
||||||
DLogManager::registerConsoleAppender();
|
DLogManager::registerConsoleAppender();
|
||||||
DLogManager::registerFileAppender();
|
DLogManager::registerFileAppender();
|
||||||
|
|
||||||
// 获取版本特性信息
|
|
||||||
m_featuresJsonObj = Utils::parseFeatureJsonFile();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::handleAboutAction()
|
void Application::handleAboutAction()
|
||||||
@@ -60,21 +53,9 @@ void Application::handleAboutAction()
|
|||||||
}
|
}
|
||||||
|
|
||||||
initAboutDialog();
|
initAboutDialog();
|
||||||
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
|
|
||||||
initFeatureDisplayDialog(); // 初始化版本特性对话框
|
|
||||||
#endif
|
|
||||||
DApplication::handleAboutAction();
|
DApplication::handleAboutAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Application::notify(QObject *receiver, QEvent *event)
|
|
||||||
{
|
|
||||||
if (m_mainWindow) {
|
|
||||||
m_mainWindow->notify(receiver, event);
|
|
||||||
}
|
|
||||||
|
|
||||||
return DApplication::notify(receiver, event);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::checkAppConfigLocation()
|
void Application::checkAppConfigLocation()
|
||||||
{
|
{
|
||||||
QDir dir(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation));
|
QDir dir(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation));
|
||||||
@@ -84,18 +65,21 @@ void Application::checkAppConfigLocation()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::setBuildDateTime(const QString &buildDateTime)
|
void Application::setVersionAndBuildDateTime(const QString &version, const QString &buildDateTime)
|
||||||
{
|
{
|
||||||
|
m_version = version;
|
||||||
|
m_buildDateTime = buildDateTime;
|
||||||
|
|
||||||
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
|
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
|
||||||
if (config.value("build/version").toString() != QString(APP_VERSION)) {
|
if (config.value("build/version").toString() != m_version) {
|
||||||
qDebug() << "Spark Store has been updated!";
|
qDebug() << "Spark Store has been updated!";
|
||||||
|
|
||||||
config.setValue("build/version", QString(APP_VERSION));
|
config.setValue("build/version", m_version);
|
||||||
config.setValue("build/time", buildDateTime);
|
config.setValue("build/time", m_buildDateTime);
|
||||||
config.sync();
|
config.sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
setApplicationVersion(DApplication::buildVersion(QString(APP_VERSION) + "-" + "Flamescion" + "-" + buildDateTime));
|
setApplicationVersion(DApplication::buildVersion(config.value("build/version").toString() + "-" + "Flamescion" + "-" + config.value("build/time").toString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::setMainWindow(MainWindow *window)
|
void Application::setMainWindow(MainWindow *window)
|
||||||
@@ -105,12 +89,6 @@ void Application::setMainWindow(MainWindow *window)
|
|||||||
{
|
{
|
||||||
initAboutDialog();
|
initAboutDialog();
|
||||||
}
|
}
|
||||||
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
|
|
||||||
if (featureDisplayDialog() == nullptr || featureDisplayDialog()->parent() != m_mainWindow)
|
|
||||||
{
|
|
||||||
initFeatureDisplayDialog(); // 初始化版本特性对话框
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::initAboutDialog()
|
void Application::initAboutDialog()
|
||||||
@@ -131,9 +109,6 @@ void Application::initAboutDialog()
|
|||||||
dialog->setProductName(productName());
|
dialog->setProductName(productName());
|
||||||
dialog->setProductIcon(productIcon());
|
dialog->setProductIcon(productIcon());
|
||||||
dialog->setVersion(translate("DAboutDialog", "Version: %1").arg(applicationVersion()));
|
dialog->setVersion(translate("DAboutDialog", "Version: %1").arg(applicationVersion()));
|
||||||
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
|
|
||||||
dialog->setVersion(applicationVersion());
|
|
||||||
#endif
|
|
||||||
// 根据 shenmo 要求,不显示组织 Logo
|
// 根据 shenmo 要求,不显示组织 Logo
|
||||||
// dialog->setCompanyLogo(QPixmap(":/icon/Logo-Spark.png"));
|
// dialog->setCompanyLogo(QPixmap(":/icon/Logo-Spark.png"));
|
||||||
dialog->setCompanyLogo(QPixmap());
|
dialog->setCompanyLogo(QPixmap());
|
||||||
@@ -143,70 +118,9 @@ void Application::initAboutDialog()
|
|||||||
dialog->setLicense(translate("DAboutDialog", "%1 is released under %2").arg(productName()).arg(applicationLicense()));
|
dialog->setLicense(translate("DAboutDialog", "%1 is released under %2").arg(productName()).arg(applicationLicense()));
|
||||||
|
|
||||||
setAboutDialog(dialog);
|
setAboutDialog(dialog);
|
||||||
connect(aboutDialog(), &DAboutDialog::destroyed, this, [=]() {
|
connect(aboutDialog(), &DAboutDialog::destroyed, this, [=] {
|
||||||
setAboutDialog(nullptr);
|
setAboutDialog(nullptr);
|
||||||
});
|
});
|
||||||
|
|
||||||
dialog->hide();
|
dialog->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
|
|
||||||
/**
|
|
||||||
* @brief Application::initFeatureDisplayDialog 初始化版本特性对话框
|
|
||||||
*/
|
|
||||||
void Application::initFeatureDisplayDialog()
|
|
||||||
{
|
|
||||||
if (featureDisplayDialog())
|
|
||||||
{
|
|
||||||
featureDisplayDialog()->deleteLater();
|
|
||||||
setFeatureDisplayDialog(nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 自定义 DFeatureDisplayDialog
|
|
||||||
DFeatureDisplayDialog *dialog = new DFeatureDisplayDialog(m_mainWindow);
|
|
||||||
// 标题
|
|
||||||
dialog->setTitle(m_featuresJsonObj.value("title").toString());
|
|
||||||
// NOTE: json 文件中支持多语言;考虑到维护性,不放入翻译文件处理
|
|
||||||
if (m_featuresJsonObj.contains(QString("title[%1]").arg(QLocale::system().name())))
|
|
||||||
{
|
|
||||||
dialog->setTitle(m_featuresJsonObj.value(QString("title[%1]").arg(QLocale::system().name())).toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
// 特性项
|
|
||||||
QList<DFeatureItem *> items;
|
|
||||||
foreach (const QJsonValue &jsonValue, m_featuresJsonObj.value("items").toArray())
|
|
||||||
{
|
|
||||||
QJsonObject jsonObj = jsonValue.toObject();
|
|
||||||
QString name = jsonObj.value("name").toString();
|
|
||||||
if (jsonObj.contains(QString("name[%1]").arg(QLocale::system().name())))
|
|
||||||
{
|
|
||||||
name = jsonObj.value(QString("name[%1]").arg(QLocale::system().name())).toString();
|
|
||||||
}
|
|
||||||
QString description = jsonObj.value("description").toString();
|
|
||||||
if (jsonObj.contains(QString("description[%1]").arg(QLocale::system().name())))
|
|
||||||
{
|
|
||||||
description = jsonObj.value(QString("description[%1]").arg(QLocale::system().name())).toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
DFeatureItem *item = new DFeatureItem(QIcon::fromTheme("spark-store"), name, description, dialog);
|
|
||||||
items.append(item);
|
|
||||||
}
|
|
||||||
dialog->addItems(items); // NOTE: 也支持 addItem 依次添加单个 item
|
|
||||||
|
|
||||||
// “了解更多”链接按钮
|
|
||||||
dialog->setLinkUrl(m_featuresJsonObj.value("linkUrl").toString());
|
|
||||||
dialog->setLinkButtonVisible(m_featuresJsonObj.value("linkButtonVisible").toBool());
|
|
||||||
|
|
||||||
setFeatureDisplayDialog(dialog);
|
|
||||||
connect(featureDisplayDialog(), &DFeatureDisplayDialog::destroyed, this, [=]() {
|
|
||||||
setFeatureDisplayDialog(nullptr);
|
|
||||||
});
|
|
||||||
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
|
|
||||||
connect(aboutDialog(), &DAboutDialog::featureActivated, this, [=]() {
|
|
||||||
featureDisplayDialog()->show();
|
|
||||||
});
|
|
||||||
#endif
|
|
||||||
|
|
||||||
dialog->hide();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
|
|
||||||
#include <DApplication>
|
#include <DApplication>
|
||||||
|
|
||||||
#include <QJsonObject>
|
|
||||||
|
|
||||||
DWIDGET_USE_NAMESPACE
|
DWIDGET_USE_NAMESPACE
|
||||||
|
|
||||||
class MainWindow;
|
class MainWindow;
|
||||||
@@ -15,21 +13,18 @@ class Application : public DApplication
|
|||||||
public:
|
public:
|
||||||
Application(int &argc, char **argv);
|
Application(int &argc, char **argv);
|
||||||
void handleAboutAction() override;
|
void handleAboutAction() override;
|
||||||
bool notify(QObject *receiver, QEvent *event) override;
|
|
||||||
|
|
||||||
static void checkAppConfigLocation();
|
static void checkAppConfigLocation();
|
||||||
|
|
||||||
void setBuildDateTime(const QString &buildDateTime);
|
void setVersionAndBuildDateTime(const QString &version, const QString &buildDateTime);
|
||||||
void setMainWindow(MainWindow *window);
|
void setMainWindow(MainWindow *window);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void initAboutDialog();
|
void initAboutDialog();
|
||||||
#if (DTK_VERSION >= DTK_VERSION_CHECK(5, 6, 4, 0))
|
|
||||||
void initFeatureDisplayDialog();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QJsonObject m_featuresJsonObj;
|
QString m_version;
|
||||||
|
QString m_buildDateTime;
|
||||||
|
|
||||||
MainWindow *m_mainWindow = nullptr;
|
MainWindow *m_mainWindow = nullptr;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -44,7 +44,6 @@
|
|||||||
<file>icon/light/text.svg</file>
|
<file>icon/light/text.svg</file>
|
||||||
<file>icon/light/update.svg</file>
|
<file>icon/light/update.svg</file>
|
||||||
<file>icon/logo.svg</file>
|
<file>icon/logo.svg</file>
|
||||||
<file>json/features.json</file>
|
|
||||||
<file>tags/a2d-small.png</file>
|
<file>tags/a2d-small.png</file>
|
||||||
<file>tags/a2d.png</file>
|
<file>tags/a2d.png</file>
|
||||||
<file>tags/community-small.png</file>
|
<file>tags/community-small.png</file>
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
"title": "Features",
|
|
||||||
"title[zh_CN]": "版本特性",
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"icon": "/usr/share/icons/hicolor/scalable/apps/spark-store.svg",
|
|
||||||
"name": "Feature 1",
|
|
||||||
"name[zh_CN]": "特性 1",
|
|
||||||
"description": "Please click the learn more button to check",
|
|
||||||
"description[zh_CN]": "请点击 了解更多 按钮来获取特性"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon": ":/icon/logo.svg",
|
|
||||||
"name": "Feature 2",
|
|
||||||
"description": "Feature 2 detailed description..."
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"icon": "spark-store",
|
|
||||||
"name": "Fix 1",
|
|
||||||
"description": "Fix 1 detailed description..."
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"linkUrl": "https://gitee.com/deepin-community-store/spark-store/releases/4.2.3test3",
|
|
||||||
"linkButtonVisible": true
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
#include "downloadworker.h"
|
#include "downloadworker.h"
|
||||||
|
|
||||||
|
#include <QEventLoop>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
|
#include <QDir>
|
||||||
#include <QtConcurrent>
|
#include <QtConcurrent>
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,9 @@
|
|||||||
#define DOWNLOADWORKER_H
|
#define DOWNLOADWORKER_H
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QVector>
|
#include <QList>
|
||||||
|
#include <QFile>
|
||||||
|
#include <QNetworkReply>
|
||||||
|
|
||||||
class DownloadController : public QObject
|
class DownloadController : public QObject
|
||||||
{
|
{
|
||||||
@@ -17,19 +19,23 @@ public:
|
|||||||
qint64 getFileSize(const QString& url);
|
qint64 getFileSize(const QString& url);
|
||||||
QString replaceDomain(const QString& url, const QString domain);
|
QString replaceDomain(const QString& url, const QString domain);
|
||||||
|
|
||||||
signals:
|
|
||||||
void errorOccur(const QString& msg);
|
|
||||||
void downloadProcess(QString, qint64, qint64);
|
|
||||||
void downloadFinished();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int threadNum;
|
int threadNum;
|
||||||
qint64 pidNumber = -1;
|
qint64 pidNumber = -1;
|
||||||
QString filename;
|
QString filename;
|
||||||
qint64 fileSize;
|
qint64 fileSize;
|
||||||
QVector<QPair<qint64, qint64>> ranges;
|
QVector<QPair<qint64, qint64>> ranges;
|
||||||
|
QFile *file;
|
||||||
bool finished = false;
|
bool finished = false;
|
||||||
QVector<QString> domains;
|
QVector<QString> domains;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void errorOccur(const QString& msg);
|
||||||
|
void downloadProcess(QString, qint64, qint64);
|
||||||
|
void downloadFinished();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // FILEDOWNLOADWORKER_H
|
#endif // FILEDOWNLOADWORKER_H
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ DWIDGET_USE_NAMESPACE
|
|||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
// Get build time
|
// Get build time
|
||||||
|
static const QString version = "4.2.3";
|
||||||
static const QDate buildDate = QLocale(QLocale::English).toDate(QString(__DATE__).replace(" ", " 0"), "MMM dd yyyy");
|
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");
|
static const QTime buildTime = QTime::fromString(__TIME__, "hh:mm:ss");
|
||||||
static const QString buildDateTime = buildDate.toString("yyyy.MM.dd") + "-" + buildTime.toString("hh:mm:ss");
|
static const QString buildDateTime = buildDate.toString("yyyy.MM.dd") + "-" + buildTime.toString("hh:mm:ss");
|
||||||
@@ -58,7 +59,7 @@ int main(int argc, char *argv[])
|
|||||||
int fakeArgc = argc + 2; // QCoreApplication 的 argc 要用引用,避免 c++ 编译器优化
|
int fakeArgc = argc + 2; // QCoreApplication 的 argc 要用引用,避免 c++ 编译器优化
|
||||||
Application a(fakeArgc, fakeArgs.data());
|
Application a(fakeArgc, fakeArgs.data());
|
||||||
// 设置版本和构建时间
|
// 设置版本和构建时间
|
||||||
a.setBuildDateTime(buildDateTime);
|
a.setVersionAndBuildDateTime(version, buildDateTime);
|
||||||
|
|
||||||
// 限制单实例运行
|
// 限制单实例运行
|
||||||
if (!a.setSingleInstance("spark-store"))
|
if (!a.setSingleInstance("spark-store"))
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
#include "utils/widgetanimation.h"
|
#include "utils/widgetanimation.h"
|
||||||
#include "widgets/common/progressbutton.h"
|
#include "widgets/common/progressbutton.h"
|
||||||
#include "widgets/downloadlistwidget.h"
|
#include "widgets/downloadlistwidget.h"
|
||||||
#include "widgets/common/downloaditem.h"
|
|
||||||
#include "dbus/dbussparkstoreservice.h"
|
#include "dbus/dbussparkstoreservice.h"
|
||||||
#include "application.h"
|
#include "application.h"
|
||||||
|
|
||||||
@@ -11,7 +10,6 @@
|
|||||||
#include <DWidgetUtil>
|
#include <DWidgetUtil>
|
||||||
#include <DGuiApplicationHelper>
|
#include <DGuiApplicationHelper>
|
||||||
|
|
||||||
#include <QDesktopServices>
|
|
||||||
#include <QAbstractButton>
|
#include <QAbstractButton>
|
||||||
#include <QtConcurrent>
|
#include <QtConcurrent>
|
||||||
|
|
||||||
@@ -134,9 +132,6 @@ void MainWindow::initTitleBar()
|
|||||||
searchEdit->setPlaceholderText(tr("Search or enter spk://"));
|
searchEdit->setPlaceholderText(tr("Search or enter spk://"));
|
||||||
|
|
||||||
downloadButton = new ProgressButton(ui->titlebar);
|
downloadButton = new ProgressButton(ui->titlebar);
|
||||||
downloadButton->setDownloadListWidget(downloadlistwidget);
|
|
||||||
downloadButton->setFocusPolicy(Qt::FocusPolicy::ClickFocus);
|
|
||||||
downloadlistwidget->setFocusProxy(downloadButton);
|
|
||||||
|
|
||||||
QWidget *w_titlebar = new QWidget(ui->titlebar);
|
QWidget *w_titlebar = new QWidget(ui->titlebar);
|
||||||
QHBoxLayout *ly_titlebar = new QHBoxLayout(w_titlebar);
|
QHBoxLayout *ly_titlebar = new QHBoxLayout(w_titlebar);
|
||||||
@@ -302,6 +297,14 @@ void MainWindow::initConnections()
|
|||||||
ui->appintopage->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, [=]()
|
||||||
|
{
|
||||||
|
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(); });
|
||||||
|
|
||||||
// appintopage按下下载按钮时标题栏下载列表按钮抖动
|
// appintopage按下下载按钮时标题栏下载列表按钮抖动
|
||||||
connect(ui->appintopage, &AppIntoPage::clickedDownloadBtn, [=]()
|
connect(ui->appintopage, &AppIntoPage::clickedDownloadBtn, [=]()
|
||||||
{
|
{
|
||||||
@@ -418,35 +421,6 @@ void MainWindow::updateUi(int now)
|
|||||||
switchPage(AppPageApplist);
|
switchPage(AppPageApplist);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::notify(QObject *receiver, QEvent *event)
|
|
||||||
{
|
|
||||||
if (!receiver) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Dtk::Widget::DStyle *o_ptr = qobject_cast<Dtk::Widget::DStyle *>(receiver);
|
|
||||||
if (o_ptr) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (receiver->inherits("QWidgetWindow")
|
|
||||||
|| receiver->inherits("QStyleSheetStyle")) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event->type() == QEvent::FocusIn) {
|
|
||||||
QList<QObject *> list = downloadButton->findChildren<QObject *>(QString(), Qt::FindChildrenRecursively);
|
|
||||||
list << downloadlistwidget->findChildren<QObject *>(QString(), Qt::FindChildrenRecursively);
|
|
||||||
if (receiver != downloadButton && receiver != downloadlistwidget && !list.contains(receiver)) {
|
|
||||||
downloadlistwidget->hide();
|
|
||||||
}
|
|
||||||
} else if (event->type() == QEvent::FocusOut) {
|
|
||||||
if (!downloadlistwidget->isActiveWindow() && !isActiveWindow()) {
|
|
||||||
downloadlistwidget->hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::on_pushButton_14_clicked()
|
void MainWindow::on_pushButton_14_clicked()
|
||||||
{
|
{
|
||||||
// Check UOS
|
// Check UOS
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class MainWindow : public BaseWidgetOpacity
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
explicit MainWindow(QWidget *parent = nullptr);
|
explicit MainWindow(QWidget *parent = nullptr);
|
||||||
~MainWindow() override;
|
~MainWindow();
|
||||||
|
|
||||||
void openUrl(const QString &url);
|
void openUrl(const QString &url);
|
||||||
|
|
||||||
@@ -41,9 +41,6 @@ private:
|
|||||||
void switchPage(int now);
|
void switchPage(int now);
|
||||||
void updateUi(int now);
|
void updateUi(int now);
|
||||||
|
|
||||||
public slots:
|
|
||||||
void notify(QObject *receiver, QEvent *event);
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
//接受来自dbus的url
|
//接受来自dbus的url
|
||||||
void onGetUrl(const QString &url);
|
void onGetUrl(const QString &url);
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
#include "ui_appintopage.h"
|
#include "ui_appintopage.h"
|
||||||
#include "backend/sparkapi.h"
|
#include "backend/sparkapi.h"
|
||||||
#include "widgets/downloadlistwidget.h"
|
#include "widgets/downloadlistwidget.h"
|
||||||
#include "widgets/common/downloaditem.h"
|
|
||||||
#include "backend/image_show.h"
|
#include "backend/image_show.h"
|
||||||
#include "application.h"
|
#include "application.h"
|
||||||
#include "utils/utils.h"
|
|
||||||
|
|
||||||
#include <QtConcurrent>
|
#include <QtConcurrent>
|
||||||
#include <QClipboard>
|
#include <QClipboard>
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#ifndef APPINTOPAGE_H
|
#ifndef APPINTOPAGE_H
|
||||||
#define APPINTOPAGE_H
|
#define APPINTOPAGE_H
|
||||||
|
|
||||||
|
#include "utils/utils.h"
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
|
|||||||
@@ -22,13 +22,8 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
|||||||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
|
||||||
# Get build version from qmake
|
|
||||||
VERSION = $$BUILD_VERSION
|
|
||||||
isEmpty(VERSION): VERSION = 4.0.0
|
|
||||||
DEFINES += APP_VERSION=\\\"'$${VERSION}'\\\"
|
|
||||||
|
|
||||||
# Disable qWarning / qDebug output in Release
|
# Disable qWarning / qDebug output in Release
|
||||||
#CONFIG(release, debug | release): DEFINES += QT_NO_WARNING_OUTPUT QT_NO_DEBUG_OUTPUT
|
# CONFIG(release, debug|release): DEFINES += QT_NO_WARNING_OUTPUT QT_NO_DEBUG_OUTPUT
|
||||||
|
|
||||||
CONFIG += c++11 link_pkgconfig
|
CONFIG += c++11 link_pkgconfig
|
||||||
PKGCONFIG += dtkcore dtkgui dtkwidget
|
PKGCONFIG += dtkcore dtkgui dtkwidget
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QJsonDocument>
|
|
||||||
|
|
||||||
#define UOSDeveloperModeFile "/var/lib/deepin/developer-mode/enabled"
|
#define UOSDeveloperModeFile "/var/lib/deepin/developer-mode/enabled"
|
||||||
|
|
||||||
@@ -183,33 +182,3 @@ void Utils::checkUOSDeveloperMode()
|
|||||||
file.close();
|
file.close();
|
||||||
config.sync(); // 写入更改至 config.ini,并同步最新内容
|
config.sync(); // 写入更改至 config.ini,并同步最新内容
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Utils::parseFeatureJsonFile 解析版本特性 json 文件
|
|
||||||
* @return 返回 QJsonObject
|
|
||||||
*/
|
|
||||||
QJsonObject Utils::parseFeatureJsonFile()
|
|
||||||
{
|
|
||||||
QFile file(":/json/features.json");
|
|
||||||
if (!file.open(QFile::ReadOnly))
|
|
||||||
{
|
|
||||||
qWarning() << Q_FUNC_INFO << "features.json open failed";
|
|
||||||
return QJsonObject();
|
|
||||||
}
|
|
||||||
|
|
||||||
QJsonParseError error;
|
|
||||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(file.readAll(), &error);
|
|
||||||
if (error.error != QJsonParseError::NoError || jsonDoc.isNull())
|
|
||||||
{
|
|
||||||
qWarning() << Q_FUNC_INFO << "features.json validate failed:" << error.errorString();
|
|
||||||
return QJsonObject();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (jsonDoc.isEmpty() || !jsonDoc.isObject())
|
|
||||||
{
|
|
||||||
qWarning() << Q_FUNC_INFO << "features jsonDoc parse failed:" << jsonDoc;
|
|
||||||
return QJsonObject();
|
|
||||||
}
|
|
||||||
|
|
||||||
return jsonDoc.object();
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
#define UTILS_H
|
#define UTILS_H
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QJsonObject>
|
|
||||||
|
|
||||||
class Utils
|
class Utils
|
||||||
{
|
{
|
||||||
@@ -14,7 +13,6 @@ public:
|
|||||||
static bool isUOS();
|
static bool isUOS();
|
||||||
static void setQPAPlatform();
|
static void setQPAPlatform();
|
||||||
static void checkUOSDeveloperMode();
|
static void checkUOSDeveloperMode();
|
||||||
static QJsonObject parseFeatureJsonFile();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // UTILS_H
|
#endif // UTILS_H
|
||||||
|
|||||||
@@ -61,21 +61,8 @@ QString DownloadItem::getName()
|
|||||||
return ui->label_filename->text();
|
return ui->label_filename->text();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DownloadItem::readyInstall()
|
||||||
/***************************************************************
|
|
||||||
* @brief 告知界面,准备安装
|
|
||||||
* @param
|
|
||||||
* @note 如果正在安装,返回-1
|
|
||||||
* @Sample usage: DownloadItem::install(0);
|
|
||||||
**************************************************************/
|
|
||||||
int DownloadItem::readyInstall()
|
|
||||||
{
|
{
|
||||||
// 检查是否正在安装,如果是返回错误 -1
|
|
||||||
if (isInstall)
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!close)
|
if (!close)
|
||||||
{
|
{
|
||||||
ui->progressBar->hide();
|
ui->progressBar->hide();
|
||||||
@@ -83,9 +70,7 @@ int DownloadItem::readyInstall()
|
|||||||
ui->pushButton_install->show();
|
ui->pushButton_install->show();
|
||||||
DownloadItem::install(0);
|
DownloadItem::install(0);
|
||||||
ui->pushButton_2->hide();
|
ui->pushButton_2->hide();
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DownloadItem::setFileName(QString fileName)
|
void DownloadItem::setFileName(QString fileName)
|
||||||
@@ -108,12 +93,6 @@ void DownloadItem::setSpeed(QString s)
|
|||||||
speed = s;
|
speed = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************
|
|
||||||
* @brief 安装当前应用
|
|
||||||
* @param int t, t为安装方式,可以为 0,1,2
|
|
||||||
* @note 备注
|
|
||||||
* @Sample usage: DownloadItem::install(0);
|
|
||||||
**************************************************************/
|
|
||||||
void DownloadItem::install(int t)
|
void DownloadItem::install(int t)
|
||||||
{
|
{
|
||||||
if (!isInstall)
|
if (!isInstall)
|
||||||
@@ -163,12 +142,6 @@ void DownloadItem::on_pushButton_3_clicked()
|
|||||||
output_w->show();
|
output_w->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************
|
|
||||||
* @brief 实际安装应用
|
|
||||||
* @param int t, t为安装方式,可以为 0,1,2
|
|
||||||
* @note 备注
|
|
||||||
* @Sample usage: slotAsyncInstall(0);
|
|
||||||
**************************************************************/
|
|
||||||
void DownloadItem::slotAsyncInstall(int t)
|
void DownloadItem::slotAsyncInstall(int t)
|
||||||
{
|
{
|
||||||
QProcess installer;
|
QProcess installer;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public:
|
|||||||
void setMax(qint64);
|
void setMax(qint64);
|
||||||
void setName(QString);
|
void setName(QString);
|
||||||
QString getName();
|
QString getName();
|
||||||
int readyInstall();
|
void readyInstall();
|
||||||
|
|
||||||
void setFileName(QString);
|
void setFileName(QString);
|
||||||
void seticon(const QPixmap);
|
void seticon(const QPixmap);
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
#include "progressbutton.h"
|
#include "progressbutton.h"
|
||||||
#include "widgets/downloadlistwidget.h"
|
|
||||||
|
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QPainterPath>
|
#include <QPainterPath>
|
||||||
#include <QMoveEvent>
|
#include <QRect>
|
||||||
|
#include <QConicalGradient>
|
||||||
|
#include <QVariantAnimation>
|
||||||
#include <QSvgRenderer>
|
#include <QSvgRenderer>
|
||||||
|
|
||||||
ProgressButton::ProgressButton(QWidget *parent)
|
ProgressButton::ProgressButton(QWidget *parent)
|
||||||
: QWidget{parent}
|
: QWidget{parent}
|
||||||
{
|
{
|
||||||
// this->setWindowFlags(Qt::FramelessWindowHint);
|
// this->setWindowFlags(Qt::FramelessWindowHint);
|
||||||
// this->setAttribute(Qt::WA_TranslucentBackground, true);
|
// this->setAttribute(Qt::WA_TranslucentBackground, true);
|
||||||
setMinimumSize(36, 36);
|
setMinimumWidth(36);
|
||||||
|
setMinimumHeight(36);
|
||||||
svgPath = "";
|
svgPath = "";
|
||||||
backColor = Qt::transparent;
|
backColor = Qt::transparent;
|
||||||
|
setMouseTracking(true);
|
||||||
|
|
||||||
connect(this, &ProgressButton::startProcessing, this, &ProgressButton::operationProcessing, Qt::QueuedConnection);
|
connect(this, &ProgressButton::startProcessing, this, &ProgressButton::operationProcessing, Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
@@ -23,6 +23,69 @@ ProgressButton::~ProgressButton()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ProgressButton::paintEvent(QPaintEvent *event)
|
||||||
|
{
|
||||||
|
QPainter painter(this);
|
||||||
|
painter.setRenderHint(QPainter::Antialiasing, true);
|
||||||
|
auto rect = event->rect();
|
||||||
|
|
||||||
|
if (buttonState == state::normal || buttonState == state::hover)
|
||||||
|
{
|
||||||
|
auto radiu = (rect.height() - 6) / 2;
|
||||||
|
painter.translate(rect.center());
|
||||||
|
painter.setPen(Qt::transparent);
|
||||||
|
painter.setBrush(QColor(buttonState == state::normal ? color : color.darker()));
|
||||||
|
// painter.drawEllipse(QPoint(0,0),radiu,radiu);
|
||||||
|
|
||||||
|
// radiu -= 3;
|
||||||
|
painter.setBrush(backColor);
|
||||||
|
painter.drawEllipse(QPoint(0, 0), radiu, radiu);
|
||||||
|
|
||||||
|
QSvgRenderer m_svgRender;
|
||||||
|
m_svgRender.load(svgPath);
|
||||||
|
m_svgRender.render(&painter, QRectF(-radiu / 2, -radiu / 2, radiu, radiu));
|
||||||
|
}
|
||||||
|
else if (buttonState == state::openProgress)
|
||||||
|
{
|
||||||
|
painter.translate(rect.center());
|
||||||
|
auto radiu = (rect.height() - 6) / 2 - 3;
|
||||||
|
painter.setBrush(backColor);
|
||||||
|
painter.setPen(QPen(backColor, 3));
|
||||||
|
painter.drawEllipse(QPoint(0, 0), radiu, radiu);
|
||||||
|
|
||||||
|
painter.setPen(QPen(backColor, 3));
|
||||||
|
|
||||||
|
QSvgRenderer m_svgRender;
|
||||||
|
m_svgRender.load(svgPath);
|
||||||
|
m_svgRender.render(&painter, QRectF(-radiu / 2, -radiu / 2, radiu, radiu));
|
||||||
|
|
||||||
|
QRect rect = QRect(-radiu, -radiu,
|
||||||
|
radiu * 2, radiu * 2);
|
||||||
|
|
||||||
|
painter.setPen(QPen(color.darker(100), 3));
|
||||||
|
auto angle = progress * 360 / 100;
|
||||||
|
painter.drawArc(rect.adjusted(-3, -3, 3, 3), 90 * 16, -static_cast<int>(angle * 16));
|
||||||
|
}
|
||||||
|
else if (buttonState == state::closeProgress)
|
||||||
|
{
|
||||||
|
auto radiu = (rect.height() - 6) / 2;
|
||||||
|
painter.translate(rect.center());
|
||||||
|
painter.setPen(Qt::transparent);
|
||||||
|
painter.setBrush(QColor(0, 0, 0, 63));
|
||||||
|
painter.drawEllipse(QPoint(0, 0), radiu, radiu);
|
||||||
|
|
||||||
|
radiu -= 3;
|
||||||
|
painter.setBrush(backColor);
|
||||||
|
painter.drawEllipse(QPoint(0, 0), radiu, radiu);
|
||||||
|
|
||||||
|
painter.setPen(QPen(color, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
|
||||||
|
painter.drawLine(QPoint(-radiu / 3, 0),
|
||||||
|
QPoint(-radiu / 5, radiu / 3));
|
||||||
|
painter.drawLine(QPoint(-radiu / 5, radiu / 3),
|
||||||
|
QPoint(radiu / 4, -radiu / 4));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ProgressButton::setProgress(int progress)
|
void ProgressButton::setProgress(int progress)
|
||||||
{
|
{
|
||||||
buttonState = state::openProgress;
|
buttonState = state::openProgress;
|
||||||
@@ -44,11 +107,6 @@ void ProgressButton::setProgress(int progress)
|
|||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProgressButton::setDownloadListWidget(DownloadListWidget *widget)
|
|
||||||
{
|
|
||||||
m_downloadListWidget = widget;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProgressButton::setIcon(QString svgPATH)
|
void ProgressButton::setIcon(QString svgPATH)
|
||||||
{
|
{
|
||||||
svgPath = svgPATH;
|
svgPath = svgPATH;
|
||||||
@@ -67,56 +125,6 @@ void ProgressButton::setColor(QColor color)
|
|||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProgressButton::mousePressEvent(QMouseEvent *event)
|
|
||||||
{
|
|
||||||
m_mouseMoved = false;
|
|
||||||
m_isDownloadListWidgetVisible = m_downloadListWidget->isVisible();
|
|
||||||
m_downloadListWidget->hide();
|
|
||||||
QWidget::mousePressEvent(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProgressButton::mouseReleaseEvent(QMouseEvent *event)
|
|
||||||
{
|
|
||||||
if (buttonState == state::hover || buttonState == state::normal)
|
|
||||||
{
|
|
||||||
widthChangeValue = (this->width() - 6) / 2;
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
else if (buttonState == state::closeProgress)
|
|
||||||
{
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_mouseMoved) {
|
|
||||||
return QWidget::mouseReleaseEvent(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_isDownloadListWidgetVisible) {
|
|
||||||
m_downloadListWidget->hide();
|
|
||||||
} else {
|
|
||||||
QPoint pos(this->mapToGlobal(QPoint(0, 0)));
|
|
||||||
pos += QPoint(width() / 2 - m_downloadListWidget->width() / 2, height() + 5);
|
|
||||||
m_downloadListWidget->m_move(pos.x(), pos.y());
|
|
||||||
m_downloadListWidget->setWindowState(windowState() & Qt::WindowState::WindowActive);
|
|
||||||
m_downloadListWidget->activateWindow();
|
|
||||||
m_downloadListWidget->show();
|
|
||||||
m_downloadListWidget->raise();
|
|
||||||
}
|
|
||||||
m_isDownloadListWidgetVisible = m_downloadListWidget->isVisible();
|
|
||||||
QWidget::mouseReleaseEvent(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProgressButton::mouseDoubleClickEvent(QMouseEvent *event)
|
|
||||||
{
|
|
||||||
event->accept();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProgressButton::mouseMoveEvent(QMouseEvent *event)
|
|
||||||
{
|
|
||||||
m_mouseMoved = true;
|
|
||||||
QWidget::mouseMoveEvent(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProgressButton::leaveEvent(QEvent *event)
|
void ProgressButton::leaveEvent(QEvent *event)
|
||||||
{
|
{
|
||||||
if (buttonState == state::hover)
|
if (buttonState == state::hover)
|
||||||
@@ -127,68 +135,19 @@ void ProgressButton::leaveEvent(QEvent *event)
|
|||||||
QWidget::leaveEvent(event);
|
QWidget::leaveEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProgressButton::paintEvent(QPaintEvent *event)
|
void ProgressButton::mousePressEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
QPainter painter(this);
|
if (buttonState == state::hover || buttonState == state::normal)
|
||||||
painter.setRenderHint(QPainter::Antialiasing, true);
|
|
||||||
QRect rect = event->rect();
|
|
||||||
|
|
||||||
if (buttonState == state::normal || buttonState == state::hover)
|
|
||||||
{
|
{
|
||||||
int radius = (rect.height() - 6) / 2;
|
widthChangeValue = (this->width() - 6) / 2;
|
||||||
painter.translate(rect.center());
|
update();
|
||||||
painter.setPen(Qt::transparent);
|
|
||||||
painter.setBrush(QColor(buttonState == state::normal ? color : color.darker()));
|
|
||||||
// painter.drawEllipse(QPoint(0, 0), radius, radius);
|
|
||||||
|
|
||||||
// radiu -= 3;
|
|
||||||
painter.setBrush(backColor);
|
|
||||||
painter.drawEllipse(QPoint(0, 0), radius, radius);
|
|
||||||
|
|
||||||
QSvgRenderer m_svgRender;
|
|
||||||
m_svgRender.load(svgPath);
|
|
||||||
m_svgRender.render(&painter, QRectF(-radius / 2, -radius / 2, radius, radius));
|
|
||||||
}
|
|
||||||
else if (buttonState == state::openProgress)
|
|
||||||
{
|
|
||||||
painter.translate(rect.center());
|
|
||||||
int radius = (rect.height() - 6) / 2 - 3;
|
|
||||||
painter.setBrush(backColor);
|
|
||||||
painter.setPen(QPen(backColor, 3));
|
|
||||||
painter.drawEllipse(QPoint(0, 0), radius, radius);
|
|
||||||
|
|
||||||
painter.setPen(QPen(backColor, 3));
|
|
||||||
|
|
||||||
QSvgRenderer m_svgRender;
|
|
||||||
m_svgRender.load(svgPath);
|
|
||||||
m_svgRender.render(&painter, QRectF(-radius / 2, -radius / 2, radius, radius));
|
|
||||||
|
|
||||||
QRect rect = QRect(-radius, -radius,
|
|
||||||
radius * 2, radius * 2);
|
|
||||||
|
|
||||||
painter.setPen(QPen(color.darker(100), 3));
|
|
||||||
qreal angle = progress * 360 / 100 * 1.0;
|
|
||||||
painter.drawArc(rect.adjusted(-3, -3, 3, 3), 90 * 16, -qIntCast(angle * 16));
|
|
||||||
}
|
}
|
||||||
else if (buttonState == state::closeProgress)
|
else if (buttonState == state::closeProgress)
|
||||||
{
|
{
|
||||||
auto radius = (rect.height() - 6) / 2;
|
update();
|
||||||
painter.translate(rect.center());
|
|
||||||
painter.setPen(Qt::transparent);
|
|
||||||
painter.setBrush(QColor(0, 0, 0, 63));
|
|
||||||
painter.drawEllipse(QPoint(0, 0), radius, radius);
|
|
||||||
|
|
||||||
radius -= 3;
|
|
||||||
painter.setBrush(backColor);
|
|
||||||
painter.drawEllipse(QPoint(0, 0), radius, radius);
|
|
||||||
|
|
||||||
painter.setPen(QPen(color, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
|
|
||||||
painter.drawLine(QPoint(-radius / 3, 0),
|
|
||||||
QPoint(-radius / 5, radius / 3));
|
|
||||||
painter.drawLine(QPoint(-radius / 5, radius / 3),
|
|
||||||
QPoint(radius / 4, -radius / 4));
|
|
||||||
}
|
}
|
||||||
QWidget::paintEvent(event);
|
emit clicked();
|
||||||
|
QWidget::mousePressEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProgressButton::operationProcessing()
|
void ProgressButton::operationProcessing()
|
||||||
@@ -197,16 +156,16 @@ void ProgressButton::operationProcessing()
|
|||||||
|
|
||||||
const int RADIUS = 60;
|
const int RADIUS = 60;
|
||||||
WaterDrop::WaterDrop(QWidget *parent)
|
WaterDrop::WaterDrop(QWidget *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent), m_waterDropAnimation(nullptr), m_animationRadius(0)
|
||||||
, m_waterDropAnimation(new QVariantAnimation(this))
|
|
||||||
, m_animationRadius(0)
|
|
||||||
{
|
{
|
||||||
this->setFixedSize(QSize(RADIUS * 2, RADIUS * 2));
|
this->setFixedSize(QSize(RADIUS * 2, RADIUS * 2));
|
||||||
// this->setWindowFlags(Qt::FramelessWindowHint | Qt::Tool);
|
// this->setWindowFlags(Qt::FramelessWindowHint | Qt::Tool);
|
||||||
// this->setAttribute(Qt::WA_TranslucentBackground);
|
// this->setAttribute(Qt::WA_TranslucentBackground);
|
||||||
// this->setAttribute(Qt::WA_DeleteOnClose);
|
// this->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
m_waterDropAnimation = new QVariantAnimation(this);
|
||||||
// m_waterDropAnimation->setEasingCurve(QEasingCurve(static_cast<QEasingCurve::Type>(QRandomGenerator::global()->bounded(40))));
|
// m_waterDropAnimation->setEasingCurve(QEasingCurve(static_cast<QEasingCurve::Type>(QRandomGenerator::global()->bounded(40))));
|
||||||
|
|
||||||
|
connect(m_waterDropAnimation, &QVariantAnimation::finished, this, &WaterDrop::deleteLater);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 把鼠标点击的点转换为圆心点坐标
|
// 把鼠标点击的点转换为圆心点坐标
|
||||||
@@ -232,7 +191,8 @@ void WaterDrop::paintEvent(QPaintEvent *event)
|
|||||||
{
|
{
|
||||||
QPainter painter(this);
|
QPainter painter(this);
|
||||||
painter.setRenderHint(QPainter::Antialiasing);
|
painter.setRenderHint(QPainter::Antialiasing);
|
||||||
QPen pen(QBrush(QColor("#ffff80")), 5.0);
|
QPen pen;
|
||||||
|
pen.setColor(QColor(0xffffff80));
|
||||||
pen.setWidth(5);
|
pen.setWidth(5);
|
||||||
painter.setPen(pen);
|
painter.setPen(pen);
|
||||||
painter.drawEllipse(event->rect().center(), m_animationRadius, m_animationRadius);
|
painter.drawEllipse(event->rect().center(), m_animationRadius, m_animationRadius);
|
||||||
@@ -240,7 +200,7 @@ void WaterDrop::paintEvent(QPaintEvent *event)
|
|||||||
QWidget::paintEvent(event);
|
QWidget::paintEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WaterDrop::onRadiusChanged(const QVariant &value)
|
void WaterDrop::onRadiusChanged(QVariant value)
|
||||||
{
|
{
|
||||||
m_animationRadius = value.toInt();
|
m_animationRadius = value.toInt();
|
||||||
update();
|
update();
|
||||||
|
|||||||
@@ -1,62 +1,53 @@
|
|||||||
#ifndef PROGRESSBUTTON_H
|
#ifndef PROGRESSBUTTON_H
|
||||||
#define PROGRESSBUTTON_H
|
#define PROGRESSBUTTON_H
|
||||||
|
|
||||||
#include <QWidget>
|
|
||||||
#include <QTimer>
|
|
||||||
#include <QVariantAnimation>
|
|
||||||
|
|
||||||
class DownloadListWidget;
|
#include <QtWidgets/QWidget>
|
||||||
|
|
||||||
|
#include <QPaintEvent>
|
||||||
|
|
||||||
|
#include <QTimer>
|
||||||
|
#include <QTimerEvent>
|
||||||
|
#include<QColor>
|
||||||
|
#include <QList>
|
||||||
|
#include <QMouseEvent>
|
||||||
|
|
||||||
|
|
||||||
class ProgressButton : public QWidget
|
class ProgressButton : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ProgressButton(QWidget *parent = nullptr);
|
ProgressButton(QWidget *parent = nullptr);
|
||||||
~ProgressButton() override;
|
|
||||||
|
|
||||||
void setIcon(QString svgPATH);
|
void setIcon(QString svgPATH);
|
||||||
void setBackgroundColor(QColor color);
|
void setBackgroundColor(QColor color);
|
||||||
void setColor(QColor color);
|
void setColor(QColor color);
|
||||||
void setProgress(int progress);
|
void setProgress(int progress);
|
||||||
|
~ProgressButton();
|
||||||
void setDownloadListWidget(DownloadListWidget *widget);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
void mousePressEvent(QMouseEvent *event) override;
|
|
||||||
void mouseReleaseEvent(QMouseEvent *event) override;
|
|
||||||
void mouseDoubleClickEvent(QMouseEvent *event) override;
|
|
||||||
void mouseMoveEvent(QMouseEvent *event) override;
|
|
||||||
void leaveEvent(QEvent *event) override;
|
|
||||||
void paintEvent(QPaintEvent *event) override;
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void startProcessing();
|
void startProcessing();
|
||||||
void clicked();
|
void clicked();
|
||||||
|
|
||||||
private slots:
|
protected:
|
||||||
void operationProcessing();
|
void paintEvent(QPaintEvent *event)override;
|
||||||
|
void leaveEvent(QEvent *event)override;
|
||||||
|
void mousePressEvent(QMouseEvent *event)override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum state
|
enum class state
|
||||||
{
|
{
|
||||||
normal,
|
normal,
|
||||||
hover,
|
hover,
|
||||||
openProgress,
|
openProgress,
|
||||||
closeProgress,
|
closeProgress,
|
||||||
recovery
|
recovery
|
||||||
};
|
}
|
||||||
|
buttonState{state::normal};
|
||||||
DownloadListWidget *m_downloadListWidget = nullptr;
|
|
||||||
|
|
||||||
state buttonState{state::normal};
|
|
||||||
QColor backColor;
|
QColor backColor;
|
||||||
QColor color;
|
QColor color;
|
||||||
QString svgPath;
|
QString svgPath;
|
||||||
int widthChangeValue{0};
|
int widthChangeValue{0};
|
||||||
|
void operationProcessing();
|
||||||
int progress{0};//处理百分比
|
int progress{0};//处理百分比
|
||||||
|
|
||||||
bool m_mouseMoved = false;
|
|
||||||
bool m_isDownloadListWidgetVisible = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class WaterDrop : public QWidget
|
class WaterDrop : public QWidget
|
||||||
@@ -64,19 +55,19 @@ class WaterDrop : public QWidget
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit WaterDrop(QWidget *parent = nullptr);
|
WaterDrop(QWidget *parent = Q_NULLPTR);
|
||||||
void show();
|
void show();
|
||||||
void move(const QPoint &point);
|
void move(const QPoint &point);
|
||||||
|
|
||||||
protected:
|
private:
|
||||||
void paintEvent(QPaintEvent *event);
|
void paintEvent(QPaintEvent *event);
|
||||||
|
void onRadiusChanged(QVariant value);
|
||||||
private slots:
|
|
||||||
void onRadiusChanged(const QVariant &value);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QVariantAnimation *m_waterDropAnimation = nullptr;
|
class QVariantAnimation* m_waterDropAnimation;
|
||||||
int m_animationRadius;
|
int m_animationRadius;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif // PROGRESSBUTTON_H
|
#endif // PROGRESSBUTTON_H
|
||||||
|
|||||||
@@ -1,15 +1,8 @@
|
|||||||
#include "downloadlistwidget.h"
|
#include "downloadlistwidget.h"
|
||||||
#include "ui_downloadlistwidget.h"
|
#include "ui_downloadlistwidget.h"
|
||||||
#include "widgets/common/downloaditem.h"
|
#include <QGraphicsOpacityEffect>
|
||||||
#include "backend/sparkapi.h"
|
#include <QPropertyAnimation>
|
||||||
#include "backend/downloadworker.h"
|
|
||||||
#include "utils/utils.h"
|
|
||||||
#include "application.h"
|
|
||||||
|
|
||||||
#include <QDesktopServices>
|
|
||||||
#include <QtConcurrent>
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
DownloadListWidget::DownloadListWidget(QWidget *parent) : DBlurEffectWidget(parent),
|
DownloadListWidget::DownloadListWidget(QWidget *parent) : DBlurEffectWidget(parent),
|
||||||
ui(new Ui::DownloadListWidget)
|
ui(new Ui::DownloadListWidget)
|
||||||
{
|
{
|
||||||
@@ -63,7 +56,7 @@ DownloadListWidget::~DownloadListWidget()
|
|||||||
{
|
{
|
||||||
downloadController->disconnect();
|
downloadController->disconnect();
|
||||||
downloadController->stopDownload();
|
downloadController->stopDownload();
|
||||||
// 这里没有释放 downloadController,使用懒汉式单例
|
downloadController->deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
clearItem();
|
clearItem();
|
||||||
@@ -72,9 +65,22 @@ DownloadListWidget::~DownloadListWidget()
|
|||||||
|
|
||||||
void DownloadListWidget::clearItem()
|
void DownloadListWidget::clearItem()
|
||||||
{
|
{
|
||||||
|
// QListWidgetItem *item = nullptr;
|
||||||
|
// while ((item = ui->listWidget->takeItem(0)) != nullptr)
|
||||||
|
// {
|
||||||
|
// QWidget *card = ui->listWidget->itemWidget(item);
|
||||||
|
// if (card)
|
||||||
|
// {
|
||||||
|
// card->deleteLater();
|
||||||
|
// card = nullptr;
|
||||||
|
// }
|
||||||
|
// delete item;
|
||||||
|
// item = nullptr;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// ui->listWidget->vScrollBar->scrollTop();
|
||||||
ui->listWidget->clear();
|
ui->listWidget->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
DownloadItem* DownloadListWidget::addItem(QString name, QString fileName, QString pkgName, const QPixmap icon, QString downloadurl)
|
DownloadItem* DownloadListWidget::addItem(QString name, QString fileName, QString pkgName, const QPixmap icon, QString downloadurl)
|
||||||
{
|
{
|
||||||
if (fileName.isEmpty())
|
if (fileName.isEmpty())
|
||||||
@@ -121,18 +127,13 @@ void DownloadListWidget::startRequest(QUrl url, QString fileName)
|
|||||||
isdownload = true;
|
isdownload = true;
|
||||||
downloaditemlist[allDownload - 1]->free = false;
|
downloaditemlist[allDownload - 1]->free = false;
|
||||||
|
|
||||||
// 使用懒汉式单例来存储downloadController
|
|
||||||
if (downloadController == nullptr)
|
|
||||||
{
|
|
||||||
downloadController = new DownloadController; // 并发下载,在第一次点击下载按钮的时候才会初始化
|
|
||||||
}
|
|
||||||
|
|
||||||
if (downloadController)
|
if (downloadController)
|
||||||
{
|
{
|
||||||
downloadController->disconnect();
|
downloadController->disconnect();
|
||||||
downloadController->stopDownload();
|
downloadController->stopDownload();
|
||||||
|
downloadController->deleteLater();
|
||||||
}
|
}
|
||||||
|
downloadController = new DownloadController; // 并发下载,在点击下载按钮的时候才会初始化
|
||||||
connect(downloadController, &DownloadController::downloadProcess, this, &DownloadListWidget::updateDataReadProgress);
|
connect(downloadController, &DownloadController::downloadProcess, this, &DownloadListWidget::updateDataReadProgress);
|
||||||
connect(downloadController, &DownloadController::downloadFinished, this, &DownloadListWidget::httpFinished);
|
connect(downloadController, &DownloadController::downloadFinished, this, &DownloadListWidget::httpFinished);
|
||||||
// connect(downloadController, &DownloadController::errorOccur, this, [=](QString msg){this->sendNotification(msg);});
|
// connect(downloadController, &DownloadController::errorOccur, this, [=](QString msg){this->sendNotification(msg);});
|
||||||
@@ -140,24 +141,11 @@ void DownloadListWidget::startRequest(QUrl url, QString fileName)
|
|||||||
downloadController->startDownload(url.toString());
|
downloadController->startDownload(url.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************
|
|
||||||
* @brief 下载列表完成下载的回调函数
|
|
||||||
* @param
|
|
||||||
* @note 如果正在安装,则在新开的线程空间中等待上一个安装完
|
|
||||||
* @Sample usage:
|
|
||||||
**************************************************************/
|
|
||||||
void DownloadListWidget::httpFinished() // 完成下载
|
void DownloadListWidget::httpFinished() // 完成下载
|
||||||
{
|
{
|
||||||
isdownload = false;
|
isdownload = false;
|
||||||
isBusy = false;
|
isBusy = false;
|
||||||
|
downloaditemlist[nowDownload - 1]->readyInstall();
|
||||||
QtConcurrent::run([=]()
|
|
||||||
{
|
|
||||||
while (downloaditemlist[nowDownload - 1]->readyInstall() == -1)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
downloaditemlist[nowDownload - 1]->free = true;
|
downloaditemlist[nowDownload - 1]->free = true;
|
||||||
emit downloadFinished();
|
emit downloadFinished();
|
||||||
if (nowDownload < allDownload)
|
if (nowDownload < allDownload)
|
||||||
@@ -177,7 +165,6 @@ void DownloadListWidget::httpFinished() // 完成下载
|
|||||||
QString fileName = downloaditemlist[nowDownload - 1]->getName();
|
QString fileName = downloaditemlist[nowDownload - 1]->getName();
|
||||||
startRequest(urList.at(nowDownload - 1), fileName);
|
startRequest(urList.at(nowDownload - 1), fileName);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DownloadListWidget::updateDataReadProgress(QString speedInfo, qint64 bytesRead, qint64 totalBytes)
|
void DownloadListWidget::updateDataReadProgress(QString speedInfo, qint64 bytesRead, qint64 totalBytes)
|
||||||
@@ -208,7 +195,21 @@ void DownloadListWidget::m_move(int x, int y)
|
|||||||
move(x, y);
|
move(x, y);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
bool DownloadListWidget::eventFilter(QObject *watched, QEvent *event)
|
||||||
|
{
|
||||||
|
if (Q_NULLPTR == watched)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (QEvent::ActivationChange == event->type())
|
||||||
|
{
|
||||||
|
if (QApplication::activeWindow() != this)
|
||||||
|
{
|
||||||
|
this->close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return QWidget::eventFilter(watched, event);
|
||||||
|
}
|
||||||
void DownloadListWidget::mouseMoveEvent(QMouseEvent *event)
|
void DownloadListWidget::mouseMoveEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
setGeometry(m_rect);
|
setGeometry(m_rect);
|
||||||
|
|||||||
@@ -1,19 +1,20 @@
|
|||||||
#ifndef DOWNLOADLISTWIDGET_H
|
#ifndef DOWNLOADLISTWIDGET_H
|
||||||
#define DOWNLOADLISTWIDGET_H
|
#define DOWNLOADLISTWIDGET_H
|
||||||
|
|
||||||
#include <DBlurEffectWidget>
|
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
#include <DBlurEffectWidget>
|
||||||
|
#include <QNetworkAccessManager>
|
||||||
|
#include <QDesktopServices>
|
||||||
|
#include "widgets/common/downloaditem.h"
|
||||||
|
#include "backend/sparkapi.h"
|
||||||
|
#include "backend/downloadworker.h"
|
||||||
|
#include "utils/utils.h"
|
||||||
|
DWIDGET_USE_NAMESPACE
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class DownloadListWidget;
|
class DownloadListWidget;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWIDGET_USE_NAMESPACE
|
|
||||||
|
|
||||||
class DownloadItem;
|
|
||||||
class DownloadController;
|
|
||||||
class DownloadListWidget : public DBlurEffectWidget
|
class DownloadListWidget : public DBlurEffectWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@@ -26,10 +27,7 @@ public:
|
|||||||
QList<QUrl> getUrlList();
|
QList<QUrl> getUrlList();
|
||||||
void m_move(int x, int y);
|
void m_move(int x, int y);
|
||||||
explicit DownloadListWidget(QWidget *parent = nullptr);
|
explicit DownloadListWidget(QWidget *parent = nullptr);
|
||||||
~DownloadListWidget() override;
|
~DownloadListWidget();
|
||||||
|
|
||||||
protected:
|
|
||||||
void mouseMoveEvent(QMouseEvent *event) override;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int isdownload = false;
|
int isdownload = false;
|
||||||
@@ -50,13 +48,13 @@ private:
|
|||||||
void clearItem();
|
void clearItem();
|
||||||
QRect m_rect;
|
QRect m_rect;
|
||||||
Ui::DownloadListWidget *ui;
|
Ui::DownloadListWidget *ui;
|
||||||
|
private slots:
|
||||||
|
bool eventFilter(QObject *, QEvent *);
|
||||||
|
void mouseMoveEvent(QMouseEvent *event);
|
||||||
|
void on_pushButton_clicked();
|
||||||
signals:
|
signals:
|
||||||
void downloadFinished();
|
void downloadFinished();
|
||||||
void downloadProgress(int i);
|
void downloadProgress(int i);
|
||||||
|
|
||||||
private slots:
|
|
||||||
void on_pushButton_clicked();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DOWNLOADLISTWIDGET_H
|
#endif // DOWNLOADLISTWIDGET_H
|
||||||
|
|||||||
14
tool/aptss
14
tool/aptss
@@ -8,7 +8,7 @@ mkdir -p /tmp/aptss-conf/
|
|||||||
echo "从服务器获取配置和镜像列表..."
|
echo "从服务器获取配置和镜像列表..."
|
||||||
echo "Getting server and mirror lists..."
|
echo "Getting server and mirror lists..."
|
||||||
echo
|
echo
|
||||||
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
|
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/apt-fast.conf"
|
||||||
chmod -R 755 /tmp/aptss-conf
|
chmod -R 755 /tmp/aptss-conf
|
||||||
|
|
||||||
fi
|
fi
|
||||||
@@ -21,10 +21,10 @@ mkdir -p /tmp/aptss-conf/
|
|||||||
echo "从服务器获取配置和镜像列表..."
|
echo "从服务器获取配置和镜像列表..."
|
||||||
echo "Getting server and mirror lists..."
|
echo "Getting server and mirror lists..."
|
||||||
echo
|
echo
|
||||||
curl --silent -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
|
curl --silent -o /tmp/aptss-conf/apt-fast.conf "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/apt-fast.conf"
|
||||||
chmod -R 755 /tmp/aptss-conf
|
chmod -R 755 /tmp/aptss-conf
|
||||||
|
|
||||||
sudo curl --silent -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore.list"
|
sudo curl --silent -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"
|
||||||
sudo 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 update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
sudo 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 update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||||
|
|
||||||
#只更新星火源
|
#只更新星火源
|
||||||
@@ -69,23 +69,23 @@ mkdir -p /tmp/aptss-conf/
|
|||||||
echo "从服务器获取配置和镜像列表..."
|
echo "从服务器获取配置和镜像列表..."
|
||||||
echo "Getting server and mirror lists..."
|
echo "Getting server and mirror lists..."
|
||||||
echo
|
echo
|
||||||
curl --silent -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
|
curl --silent -o /tmp/aptss-conf/apt-fast.conf "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/apt-fast.conf"
|
||||||
chmod -R 755 /tmp/aptss-conf
|
chmod -R 755 /tmp/aptss-conf
|
||||||
|
|
||||||
sudo curl --silent -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore.list"
|
sudo curl --silent -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"
|
||||||
sudo 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 update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
sudo 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 update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
|
||||||
|
|
||||||
#只更新星火源
|
#只更新星火源
|
||||||
|
|
||||||
elif [ "$1" = "update" ];then
|
elif [ "$1" = "update" ];then
|
||||||
sudo curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore.list"
|
sudo 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 /tmp/aptss-conf/
|
mkdir -p /tmp/aptss-conf/
|
||||||
echo "从服务器获取配置和镜像列表..."
|
echo "从服务器获取配置和镜像列表..."
|
||||||
echo "Getting server and mirror lists..."
|
echo "Getting server and mirror lists..."
|
||||||
echo
|
echo
|
||||||
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
|
curl --progress-bar -o /tmp/aptss-conf/apt-fast.conf "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/apt-fast.conf"
|
||||||
chmod -R 755 /tmp/aptss-conf
|
chmod -R 755 /tmp/aptss-conf
|
||||||
### 额外一份拿来给aptss自动补全用
|
### 额外一份拿来给aptss自动补全用
|
||||||
bwrap --dev-bind / / \
|
bwrap --dev-bind / / \
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ fi
|
|||||||
|
|
||||||
DEBPATH=`realpath $1`
|
DEBPATH=`realpath $1`
|
||||||
|
|
||||||
if [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_Packages" ] && [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ] && [ ! -e "/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_store_Packages" ];then
|
if [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_Packages" ] && [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ];then
|
||||||
echo "接收星火仓库软件信息中..."
|
echo "接收星火仓库软件信息中..."
|
||||||
aptss ssupdate
|
aptss ssupdate
|
||||||
fi
|
fi
|
||||||
@@ -64,12 +64,9 @@ fi
|
|||||||
if [ -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ];then
|
if [ -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ];then
|
||||||
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages"
|
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages"
|
||||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是单目录仓库配置"
|
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是单目录仓库配置"
|
||||||
elif [ -e "/var/lib/apt/lists/d.store.deepinos.org.cn_Packages" ];then
|
else
|
||||||
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_Packages"
|
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_Packages"
|
||||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是根目录仓库配置"
|
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是根目录仓库配置"
|
||||||
else
|
|
||||||
PACKAGES_DATA_PATH="/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_store_Packages"
|
|
||||||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是SDU镜像仓库配置"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,9 +10,9 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="173"/>
|
<location filename="../src/pages/appintopage.cpp" line="171"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="315"/>
|
<location filename="../src/pages/appintopage.cpp" line="313"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="430"/>
|
<location filename="../src/pages/appintopage.cpp" line="428"/>
|
||||||
<source>Download</source>
|
<source>Download</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -175,51 +175,51 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="47"/>
|
<location filename="../src/pages/appintopage.cpp" line="45"/>
|
||||||
<source>Click Open</source>
|
<source>Click Open</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="112"/>
|
<location filename="../src/pages/appintopage.cpp" line="110"/>
|
||||||
<source>Developer Mode Disabled</source>
|
<source>Developer Mode Disabled</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="158"/>
|
<location filename="../src/pages/appintopage.cpp" line="156"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="331"/>
|
<location filename="../src/pages/appintopage.cpp" line="329"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="403"/>
|
<location filename="../src/pages/appintopage.cpp" line="401"/>
|
||||||
<source>Reinstall</source>
|
<source>Reinstall</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="165"/>
|
<location filename="../src/pages/appintopage.cpp" line="163"/>
|
||||||
<source>Upgrade</source>
|
<source>Upgrade</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="320"/>
|
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="379"/>
|
<location filename="../src/pages/appintopage.cpp" line="377"/>
|
||||||
<source>Install</source>
|
<source>Install</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||||
<source>Installing</source>
|
<source>Installing</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
<location filename="../src/pages/appintopage.cpp" line="445"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||||
<source>Uninstall succeeded</source>
|
<source>Uninstall succeeded</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
<location filename="../src/pages/appintopage.cpp" line="445"/>
|
||||||
<source>The URL has been copied to the clipboard</source>
|
<source>The URL has been copied to the clipboard</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -240,12 +240,12 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>DAboutDialog</name>
|
<name>DAboutDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="133"/>
|
<location filename="../src/application.cpp" line="111"/>
|
||||||
<source>Version: %1</source>
|
<source>Version: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="143"/>
|
<location filename="../src/application.cpp" line="118"/>
|
||||||
<source>%1 is released under %2</source>
|
<source>%1 is released under %2</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -299,59 +299,59 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="186"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="197"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="205"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="125"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="104"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="126"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="105"/>
|
||||||
<source>Installing</source>
|
<source>Installing</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="186"/>
|
||||||
<source>Installation complete.</source>
|
<source>Installation complete.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="214"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="187"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="215"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="188"/>
|
||||||
<source>Finish</source>
|
<source>Finish</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="222"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="195"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="197"/>
|
||||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="225"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="198"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="226"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="199"/>
|
||||||
<source>Error happened in dpkg progress , you can try it again</source>
|
<source>Error happened in dpkg progress , you can try it again</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="205"/>
|
||||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="233"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="206"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="234"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="207"/>
|
||||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="144"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="123"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="145"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="124"/>
|
||||||
<source>Download canceled</source>
|
<source>Download canceled</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -452,33 +452,33 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="170"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="165"/>
|
||||||
<source>Submit App</source>
|
<source>Submit App</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="171"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="166"/>
|
||||||
<source>Submit App with client(Recommanded)</source>
|
<source>Submit App with client(Recommanded)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="172"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="167"/>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="173"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="168"/>
|
||||||
<source>APP Upgrade and Install Settings</source>
|
<source>APP Upgrade and Install Settings</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="129"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="127"/>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="224"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="219"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="134"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="132"/>
|
||||||
<source>Search or enter spk://</source>
|
<source>Search or enter spk://</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -486,29 +486,29 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="33"/>
|
<location filename="../src/application.cpp" line="29"/>
|
||||||
<location filename="../src/application.cpp" line="34"/>
|
<location filename="../src/application.cpp" line="30"/>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="109"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="107"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="38"/>
|
<location filename="../src/application.cpp" line="34"/>
|
||||||
<source><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></source>
|
<source><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></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="140"/>
|
<location filename="../src/application.cpp" line="115"/>
|
||||||
<source>Spark Project</source>
|
<source>Spark Project</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/downloadlistwidget.cpp" line="17"/>
|
<location filename="../src/widgets/downloadlistwidget.cpp" line="10"/>
|
||||||
<source>Download list</source>
|
<source>Download list</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="227"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="222"/>
|
||||||
<source>Show MainWindow</source>
|
<source>Show MainWindow</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -619,12 +619,12 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>TitleBarMenu</name>
|
<name>TitleBarMenu</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="228"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="223"/>
|
||||||
<source>About</source>
|
<source>About</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="229"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="224"/>
|
||||||
<source>Exit</source>
|
<source>Exit</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|||||||
@@ -10,9 +10,9 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="173"/>
|
<location filename="../src/pages/appintopage.cpp" line="171"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="315"/>
|
<location filename="../src/pages/appintopage.cpp" line="313"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="430"/>
|
<location filename="../src/pages/appintopage.cpp" line="428"/>
|
||||||
<source>Download</source>
|
<source>Download</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -175,51 +175,51 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="47"/>
|
<location filename="../src/pages/appintopage.cpp" line="45"/>
|
||||||
<source>Click Open</source>
|
<source>Click Open</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="112"/>
|
<location filename="../src/pages/appintopage.cpp" line="110"/>
|
||||||
<source>Developer Mode Disabled</source>
|
<source>Developer Mode Disabled</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="158"/>
|
<location filename="../src/pages/appintopage.cpp" line="156"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="331"/>
|
<location filename="../src/pages/appintopage.cpp" line="329"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="403"/>
|
<location filename="../src/pages/appintopage.cpp" line="401"/>
|
||||||
<source>Reinstall</source>
|
<source>Reinstall</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="165"/>
|
<location filename="../src/pages/appintopage.cpp" line="163"/>
|
||||||
<source>Upgrade</source>
|
<source>Upgrade</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="320"/>
|
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="379"/>
|
<location filename="../src/pages/appintopage.cpp" line="377"/>
|
||||||
<source>Install</source>
|
<source>Install</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||||
<source>Installing</source>
|
<source>Installing</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
<location filename="../src/pages/appintopage.cpp" line="445"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||||
<source>Uninstall succeeded</source>
|
<source>Uninstall succeeded</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
<location filename="../src/pages/appintopage.cpp" line="445"/>
|
||||||
<source>The URL has been copied to the clipboard</source>
|
<source>The URL has been copied to the clipboard</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -240,12 +240,12 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>DAboutDialog</name>
|
<name>DAboutDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="133"/>
|
<location filename="../src/application.cpp" line="111"/>
|
||||||
<source>Version: %1</source>
|
<source>Version: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="143"/>
|
<location filename="../src/application.cpp" line="118"/>
|
||||||
<source>%1 is released under %2</source>
|
<source>%1 is released under %2</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -299,59 +299,59 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="186"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="197"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="205"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="125"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="104"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="126"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="105"/>
|
||||||
<source>Installing</source>
|
<source>Installing</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="186"/>
|
||||||
<source>Installation complete.</source>
|
<source>Installation complete.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="214"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="187"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="215"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="188"/>
|
||||||
<source>Finish</source>
|
<source>Finish</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="222"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="195"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="197"/>
|
||||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="225"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="198"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="226"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="199"/>
|
||||||
<source>Error happened in dpkg progress , you can try it again</source>
|
<source>Error happened in dpkg progress , you can try it again</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="205"/>
|
||||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="233"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="206"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="234"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="207"/>
|
||||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="144"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="123"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="145"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="124"/>
|
||||||
<source>Download canceled</source>
|
<source>Download canceled</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -452,33 +452,33 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="170"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="165"/>
|
||||||
<source>Submit App</source>
|
<source>Submit App</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="171"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="166"/>
|
||||||
<source>Submit App with client(Recommanded)</source>
|
<source>Submit App with client(Recommanded)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="172"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="167"/>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="173"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="168"/>
|
||||||
<source>APP Upgrade and Install Settings</source>
|
<source>APP Upgrade and Install Settings</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="129"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="127"/>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="224"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="219"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="134"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="132"/>
|
||||||
<source>Search or enter spk://</source>
|
<source>Search or enter spk://</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -486,29 +486,29 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="33"/>
|
<location filename="../src/application.cpp" line="29"/>
|
||||||
<location filename="../src/application.cpp" line="34"/>
|
<location filename="../src/application.cpp" line="30"/>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="109"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="107"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="38"/>
|
<location filename="../src/application.cpp" line="34"/>
|
||||||
<source><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></source>
|
<source><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></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="140"/>
|
<location filename="../src/application.cpp" line="115"/>
|
||||||
<source>Spark Project</source>
|
<source>Spark Project</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/downloadlistwidget.cpp" line="17"/>
|
<location filename="../src/widgets/downloadlistwidget.cpp" line="10"/>
|
||||||
<source>Download list</source>
|
<source>Download list</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="227"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="222"/>
|
||||||
<source>Show MainWindow</source>
|
<source>Show MainWindow</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -619,12 +619,12 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>TitleBarMenu</name>
|
<name>TitleBarMenu</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="228"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="223"/>
|
||||||
<source>About</source>
|
<source>About</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="229"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="224"/>
|
||||||
<source>Exit</source>
|
<source>Exit</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|||||||
@@ -10,9 +10,9 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="173"/>
|
<location filename="../src/pages/appintopage.cpp" line="171"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="315"/>
|
<location filename="../src/pages/appintopage.cpp" line="313"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="430"/>
|
<location filename="../src/pages/appintopage.cpp" line="428"/>
|
||||||
<source>Download</source>
|
<source>Download</source>
|
||||||
<translation>下载</translation>
|
<translation>下载</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -175,51 +175,51 @@
|
|||||||
<translation>软件官网</translation>
|
<translation>软件官网</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="47"/>
|
<location filename="../src/pages/appintopage.cpp" line="45"/>
|
||||||
<source>Click Open</source>
|
<source>Click Open</source>
|
||||||
<translation>点击跳转</translation>
|
<translation>点击跳转</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="112"/>
|
<location filename="../src/pages/appintopage.cpp" line="110"/>
|
||||||
<source>Developer Mode Disabled</source>
|
<source>Developer Mode Disabled</source>
|
||||||
<translation>开发者模式未开启</translation>
|
<translation>开发者模式未开启</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="158"/>
|
<location filename="../src/pages/appintopage.cpp" line="156"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="331"/>
|
<location filename="../src/pages/appintopage.cpp" line="329"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="403"/>
|
<location filename="../src/pages/appintopage.cpp" line="401"/>
|
||||||
<source>Reinstall</source>
|
<source>Reinstall</source>
|
||||||
<translation>重新安装</translation>
|
<translation>重新安装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="165"/>
|
<location filename="../src/pages/appintopage.cpp" line="163"/>
|
||||||
<source>Upgrade</source>
|
<source>Upgrade</source>
|
||||||
<translation>升级</translation>
|
<translation>升级</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="320"/>
|
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="379"/>
|
<location filename="../src/pages/appintopage.cpp" line="377"/>
|
||||||
<source>Install</source>
|
<source>Install</source>
|
||||||
<translation>安装</translation>
|
<translation>安装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||||
<source>Installing</source>
|
<source>Installing</source>
|
||||||
<translation>正在安装</translation>
|
<translation>正在安装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
<location filename="../src/pages/appintopage.cpp" line="445"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation>星火应用商店</translation>
|
<translation>星火应用商店</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||||
<source>Uninstall succeeded</source>
|
<source>Uninstall succeeded</source>
|
||||||
<translation>卸载成功</translation>
|
<translation>卸载成功</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
<location filename="../src/pages/appintopage.cpp" line="445"/>
|
||||||
<source>The URL has been copied to the clipboard</source>
|
<source>The URL has been copied to the clipboard</source>
|
||||||
<translation>链接已复制到剪贴板</translation>
|
<translation>链接已复制到剪贴板</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -240,12 +240,12 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>DAboutDialog</name>
|
<name>DAboutDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="133"/>
|
<location filename="../src/application.cpp" line="111"/>
|
||||||
<source>Version: %1</source>
|
<source>Version: %1</source>
|
||||||
<translation>版本:%1</translation>
|
<translation>版本:%1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="143"/>
|
<location filename="../src/application.cpp" line="118"/>
|
||||||
<source>%1 is released under %2</source>
|
<source>%1 is released under %2</source>
|
||||||
<translation>%1遵循%2协议发布</translation>
|
<translation>%1遵循%2协议发布</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -299,59 +299,59 @@
|
|||||||
<translation>下载完成.</translation>
|
<translation>下载完成.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="186"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="197"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="205"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation>星火应用商店</translation>
|
<translation>星火应用商店</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="125"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="104"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="126"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="105"/>
|
||||||
<source>Installing</source>
|
<source>Installing</source>
|
||||||
<translation>正在安装</translation>
|
<translation>正在安装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="186"/>
|
||||||
<source>Installation complete.</source>
|
<source>Installation complete.</source>
|
||||||
<translation>安装完成.</translation>
|
<translation>安装完成.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="214"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="187"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="215"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="188"/>
|
||||||
<source>Finish</source>
|
<source>Finish</source>
|
||||||
<translation>完成</translation>
|
<translation>完成</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="222"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="195"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation>重试</translation>
|
<translation>重试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="197"/>
|
||||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||||
<translation>安装被中止,可重新安装。</translation>
|
<translation>安装被中止,可重新安装。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="225"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="198"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="226"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="199"/>
|
||||||
<source>Error happened in dpkg progress , you can try it again</source>
|
<source>Error happened in dpkg progress , you can try it again</source>
|
||||||
<translation>dpkg出现错误,可重新安装</translation>
|
<translation>dpkg出现错误,可重新安装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="205"/>
|
||||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||||
<translation>dpkg进程被中断,您可重试安装。</translation>
|
<translation>dpkg进程被中断,您可重试安装。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="233"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="206"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="234"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="207"/>
|
||||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||||
<translation>安装被中止,可重新安装</translation>
|
<translation>安装被中止,可重新安装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="144"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="123"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="145"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="124"/>
|
||||||
<source>Download canceled</source>
|
<source>Download canceled</source>
|
||||||
<translation>下载已取消</translation>
|
<translation>下载已取消</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -452,33 +452,33 @@
|
|||||||
<translation>更新</translation>
|
<translation>更新</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="170"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="165"/>
|
||||||
<source>Submit App</source>
|
<source>Submit App</source>
|
||||||
<translation>投递应用</translation>
|
<translation>投递应用</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="171"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="166"/>
|
||||||
<source>Submit App with client(Recommanded)</source>
|
<source>Submit App with client(Recommanded)</source>
|
||||||
<translation>使用本地投稿器投递应用(推荐)</translation>
|
<translation>使用本地投稿器投递应用(推荐)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="172"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="167"/>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>设置</translation>
|
<translation>设置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="173"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="168"/>
|
||||||
<source>APP Upgrade and Install Settings</source>
|
<source>APP Upgrade and Install Settings</source>
|
||||||
<translation>应用更新和安装设置</translation>
|
<translation>应用更新和安装设置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="129"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="127"/>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="224"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="219"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation>星火应用商店</translation>
|
<translation>星火应用商店</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="134"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="132"/>
|
||||||
<source>Search or enter spk://</source>
|
<source>Search or enter spk://</source>
|
||||||
<translation>搜索或打开链接</translation>
|
<translation>搜索或打开链接</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -486,29 +486,29 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="33"/>
|
<location filename="../src/application.cpp" line="29"/>
|
||||||
<location filename="../src/application.cpp" line="34"/>
|
<location filename="../src/application.cpp" line="30"/>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="109"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="107"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation>星火应用商店</translation>
|
<translation>星火应用商店</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="38"/>
|
<location filename="../src/application.cpp" line="34"/>
|
||||||
<source><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></source>
|
<source><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></source>
|
||||||
<translation><span style=' font-size:10pt;font-weight:60;'>一款由社区提供的应用商店</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>星火计划开发者</span></translation>
|
<translation><span style=' font-size:10pt;font-weight:60;'>一款由社区提供的应用商店</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>星火计划开发者</span></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="140"/>
|
<location filename="../src/application.cpp" line="115"/>
|
||||||
<source>Spark Project</source>
|
<source>Spark Project</source>
|
||||||
<translation>星火计划</translation>
|
<translation>星火计划</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/downloadlistwidget.cpp" line="17"/>
|
<location filename="../src/widgets/downloadlistwidget.cpp" line="10"/>
|
||||||
<source>Download list</source>
|
<source>Download list</source>
|
||||||
<translation>下载列表</translation>
|
<translation>下载列表</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="227"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="222"/>
|
||||||
<source>Show MainWindow</source>
|
<source>Show MainWindow</source>
|
||||||
<translation>显示主窗口</translation>
|
<translation>显示主窗口</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -619,12 +619,12 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>TitleBarMenu</name>
|
<name>TitleBarMenu</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="228"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="223"/>
|
||||||
<source>About</source>
|
<source>About</source>
|
||||||
<translation>关于</translation>
|
<translation>关于</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="229"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="224"/>
|
||||||
<source>Exit</source>
|
<source>Exit</source>
|
||||||
<translation>退出</translation>
|
<translation>退出</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|||||||
@@ -10,9 +10,9 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.ui" line="244"/>
|
<location filename="../src/pages/appintopage.ui" line="244"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="173"/>
|
<location filename="../src/pages/appintopage.cpp" line="171"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="315"/>
|
<location filename="../src/pages/appintopage.cpp" line="313"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="430"/>
|
<location filename="../src/pages/appintopage.cpp" line="428"/>
|
||||||
<source>Download</source>
|
<source>Download</source>
|
||||||
<translation>下载</translation>
|
<translation>下载</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -175,51 +175,51 @@
|
|||||||
<translation>软件官网</translation>
|
<translation>软件官网</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="47"/>
|
<location filename="../src/pages/appintopage.cpp" line="45"/>
|
||||||
<source>Click Open</source>
|
<source>Click Open</source>
|
||||||
<translation>点击跳转</translation>
|
<translation>点击跳转</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="112"/>
|
<location filename="../src/pages/appintopage.cpp" line="110"/>
|
||||||
<source>Developer Mode Disabled</source>
|
<source>Developer Mode Disabled</source>
|
||||||
<translation>开发者模式未开启</translation>
|
<translation>开发者模式未开启</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="158"/>
|
<location filename="../src/pages/appintopage.cpp" line="156"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="331"/>
|
<location filename="../src/pages/appintopage.cpp" line="329"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="403"/>
|
<location filename="../src/pages/appintopage.cpp" line="401"/>
|
||||||
<source>Reinstall</source>
|
<source>Reinstall</source>
|
||||||
<translation>重新安裝</translation>
|
<translation>重新安裝</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="165"/>
|
<location filename="../src/pages/appintopage.cpp" line="163"/>
|
||||||
<source>Upgrade</source>
|
<source>Upgrade</source>
|
||||||
<translation>升级</translation>
|
<translation>升级</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="320"/>
|
<location filename="../src/pages/appintopage.cpp" line="318"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="379"/>
|
<location filename="../src/pages/appintopage.cpp" line="377"/>
|
||||||
<source>Install</source>
|
<source>Install</source>
|
||||||
<translation>安装</translation>
|
<translation>安装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="325"/>
|
<location filename="../src/pages/appintopage.cpp" line="323"/>
|
||||||
<source>Installing</source>
|
<source>Installing</source>
|
||||||
<translation>正在安装</translation>
|
<translation>正在安装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
<location filename="../src/pages/appintopage.cpp" line="445"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation>星火应用商店</translation>
|
<translation>星火应用商店</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="434"/>
|
<location filename="../src/pages/appintopage.cpp" line="432"/>
|
||||||
<source>Uninstall succeeded</source>
|
<source>Uninstall succeeded</source>
|
||||||
<translation>卸载成功</translation>
|
<translation>卸载成功</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/pages/appintopage.cpp" line="447"/>
|
<location filename="../src/pages/appintopage.cpp" line="445"/>
|
||||||
<source>The URL has been copied to the clipboard</source>
|
<source>The URL has been copied to the clipboard</source>
|
||||||
<translation>链接已复制到剪贴板</translation>
|
<translation>链接已复制到剪贴板</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -240,12 +240,12 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>DAboutDialog</name>
|
<name>DAboutDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="133"/>
|
<location filename="../src/application.cpp" line="111"/>
|
||||||
<source>Version: %1</source>
|
<source>Version: %1</source>
|
||||||
<translation>版本:%1</translation>
|
<translation>版本:%1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="143"/>
|
<location filename="../src/application.cpp" line="118"/>
|
||||||
<source>%1 is released under %2</source>
|
<source>%1 is released under %2</source>
|
||||||
<translation>%1遵循%2协议发布</translation>
|
<translation>%1遵循%2协议发布</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -299,59 +299,59 @@
|
|||||||
<translation>下載完成.</translation>
|
<translation>下載完成.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="186"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="197"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="205"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation>星火应用商店</translation>
|
<translation>星火应用商店</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="125"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="104"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="126"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="105"/>
|
||||||
<source>Installing</source>
|
<source>Installing</source>
|
||||||
<translation>正在安裝</translation>
|
<translation>正在安裝</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="213"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="186"/>
|
||||||
<source>Installation complete.</source>
|
<source>Installation complete.</source>
|
||||||
<translation>安裝完成.</translation>
|
<translation>安裝完成.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="214"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="187"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="215"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="188"/>
|
||||||
<source>Finish</source>
|
<source>Finish</source>
|
||||||
<translation>完成</translation>
|
<translation>完成</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="222"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="195"/>
|
||||||
<source>Retry</source>
|
<source>Retry</source>
|
||||||
<translation>重试</translation>
|
<translation>重试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="224"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="197"/>
|
||||||
<source>Error happened in dpkg progress , you can try it again.</source>
|
<source>Error happened in dpkg progress , you can try it again.</source>
|
||||||
<translation>安装被中止,可重新安装。</translation>
|
<translation>安装被中止,可重新安装。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="225"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="198"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="226"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="199"/>
|
||||||
<source>Error happened in dpkg progress , you can try it again</source>
|
<source>Error happened in dpkg progress , you can try it again</source>
|
||||||
<translation>dpkg出现错误,可重新安装</translation>
|
<translation>dpkg出现错误,可重新安装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="232"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="205"/>
|
||||||
<source>dpkg progress had been aborted,you can retry installation.</source>
|
<source>dpkg progress had been aborted,you can retry installation.</source>
|
||||||
<translation>dpkg进程被中断,您可重试安装。</translation>
|
<translation>dpkg进程被中断,您可重试安装。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="233"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="206"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="234"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="207"/>
|
||||||
<source>dpkg progress had been aborted,you can retry installation</source>
|
<source>dpkg progress had been aborted,you can retry installation</source>
|
||||||
<translation>安装被中止,可重新安装</translation>
|
<translation>安装被中止,可重新安装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="144"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="123"/>
|
||||||
<location filename="../src/widgets/common/downloaditem.cpp" line="145"/>
|
<location filename="../src/widgets/common/downloaditem.cpp" line="124"/>
|
||||||
<source>Download canceled</source>
|
<source>Download canceled</source>
|
||||||
<translation>下载已取消</translation>
|
<translation>下载已取消</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -452,33 +452,33 @@
|
|||||||
<translation>軟體更新</translation>
|
<translation>軟體更新</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="170"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="165"/>
|
||||||
<source>Submit App</source>
|
<source>Submit App</source>
|
||||||
<translation>上傳軟體</translation>
|
<translation>上傳軟體</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="171"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="166"/>
|
||||||
<source>Submit App with client(Recommanded)</source>
|
<source>Submit App with client(Recommanded)</source>
|
||||||
<translation>從客戶端上傳軟體(推薦的)</translation>
|
<translation>從客戶端上傳軟體(推薦的)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="172"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="167"/>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>設定</translation>
|
<translation>設定</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="173"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="168"/>
|
||||||
<source>APP Upgrade and Install Settings</source>
|
<source>APP Upgrade and Install Settings</source>
|
||||||
<translation>軟體升級 和 安裝設定</translation>
|
<translation>軟體升級 和 安裝設定</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="129"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="127"/>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="224"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="219"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation>星火应用商店</translation>
|
<translation>星火应用商店</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="134"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="132"/>
|
||||||
<source>Search or enter spk://</source>
|
<source>Search or enter spk://</source>
|
||||||
<translation>搜索或打开链接</translation>
|
<translation>搜索或打开链接</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -486,29 +486,29 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="33"/>
|
<location filename="../src/application.cpp" line="29"/>
|
||||||
<location filename="../src/application.cpp" line="34"/>
|
<location filename="../src/application.cpp" line="30"/>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="109"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="107"/>
|
||||||
<source>Spark Store</source>
|
<source>Spark Store</source>
|
||||||
<translation>星火应用商店</translation>
|
<translation>星火应用商店</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="38"/>
|
<location filename="../src/application.cpp" line="34"/>
|
||||||
<source><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></source>
|
<source><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></source>
|
||||||
<translation><span style=' font-size:10pt;font-weight:60;'>一款由社区提供的应用商店</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>星火计划开发者</span></translation>
|
<translation><span style=' font-size:10pt;font-weight:60;'>一款由社区提供的应用商店</span><br/><a href='https://www.spark-app.store/'>https://www.spark-app.store</a><br/><span style=' font-size:12pt;'>星火计划开发者</span></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/application.cpp" line="140"/>
|
<location filename="../src/application.cpp" line="115"/>
|
||||||
<source>Spark Project</source>
|
<source>Spark Project</source>
|
||||||
<translation>星火计划</translation>
|
<translation>星火计划</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/widgets/downloadlistwidget.cpp" line="17"/>
|
<location filename="../src/widgets/downloadlistwidget.cpp" line="10"/>
|
||||||
<source>Download list</source>
|
<source>Download list</source>
|
||||||
<translation>下载列表</translation>
|
<translation>下载列表</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="227"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="222"/>
|
||||||
<source>Show MainWindow</source>
|
<source>Show MainWindow</source>
|
||||||
<translation>显示主窗口</translation>
|
<translation>显示主窗口</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -619,12 +619,12 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>TitleBarMenu</name>
|
<name>TitleBarMenu</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="228"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="223"/>
|
||||||
<source>About</source>
|
<source>About</source>
|
||||||
<translation>关于</translation>
|
<translation>关于</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/mainwindow-dtk.cpp" line="229"/>
|
<location filename="../src/mainwindow-dtk.cpp" line="224"/>
|
||||||
<source>Exit</source>
|
<source>Exit</source>
|
||||||
<translation>退出</translation>
|
<translation>退出</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|||||||
Reference in New Issue
Block a user