Merge pull request  from shenmo/develop/qt6
This commit is contained in:
shenmo 2024-06-21 02:45:22 +00:00 committed by Gitee
commit 1d8cca19c0
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
29 changed files with 292 additions and 260 deletions

23
.gitignore vendored

@ -6,6 +6,7 @@
*.la
*.lai
*.so
*.so.*
*.dll
*.dylib
@ -28,13 +29,12 @@ ui_*.h
*.jsc
Makefile*
*build-*
*.qm
*.prl
# Qt unit tests
target_wrapper.*
# Qt qm files
translations/*.qm
# QtCreator
*.autosave
@ -44,13 +44,22 @@ translations/*.qm
# QtCreator CMake
CMakeLists.txt.user*
build
# Debian dpkg-buildpackage
# QtCreator 4.8< compilation database
compile_commands.json
# QtCreator local machine specific files for imported projects
*creator.user*
*_qmlcache.qrc
# debian
debian/*.debhelper*
debian/files
debian/*.substvars
debian/spark-store
.vscode/*
src/spark-store
# Others
build
obj-*
.vscode

43
CMakeLists.txt Normal file

@ -0,0 +1,43 @@
cmake_minimum_required(VERSION 3.12)
project(spark-store)
if(NOT DEFINED VERSION)
set(VERSION 4.0.0)
endif()
add_compile_definitions(APP_VERSION="${VERSION}")
execute_process(
COMMAND git symbolic-ref --short -q HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE BRANCH
)
string(STRIP "${BRANCH}" BRANCH)
add_compile_definitions(APP_BRANCH="${BRANCH}")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(AUTOMOC_COMPILER_PREDEFINES ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall")
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "sw_64")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mieee")
endif ()
if (NOT ${CMAKE_BUILD_TYPE} MATCHES "Debug")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
endif ()
add_compile_definitions(QT_MESSAGELOGCONTEXT)
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX /usr)
endif()
include(GNUInstallDirs)
add_subdirectory(src)
add_subdirectory(translations)

@ -2,7 +2,9 @@
[![star](https://gitee.com/spark-store-project/spark-store/badge/star.svg?theme=gvp)](https://gitee.com/spark-store-project/spark-store/stargazers) [![fork](https://gitee.com/spark-store-project/spark-store/badge/fork.svg?theme=gvp)](https://gitee.com/spark-store-project/spark-store/members)
https://gitee.com/spark-store-project/spark-store/
https://gitcode.com/spark-store-project/spark-store/
https://github.com/spark-store-project/spark-store/
## 简介

70
debian/changelog vendored

@ -1,32 +1,41 @@
spark-store (4.2.14) stable; urgency=medium
* Adapt to Qt6 and Dtk6
-- zty199 <46324746+zty199@users.noreply.github.com> Thu, 21 Jun 2024 01:50:40 +0800
spark-store (4.2.13) stable; urgency=medium
* 未经测试文案修改
* 龙芯平台并入主线
* 修复:更新过程中中断无法再次启动更新检查
* 调整:提高超时时长,适应较差的网络环境
* 未经测试文案修改
* 龙芯平台并入主线
* 修复:更新过程中中断无法再次启动更新检查
* 调整:提高超时时长,适应较差的网络环境
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.12.1) stable; urgency=medium
* 修复:龙芯自动--no-sandbox
* 修复:龙芯自动 --no-sandbox
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.12) stable; urgency=medium
* 修复:飞腾部分设备上白屏的问题
* 修复:下载开始时长时等待(降低链接超时时长)
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.11) stable; urgency=medium
* 修复:判断是否安装状态错误
* 修改:部分组件重构提升清晰度
* 修复v23下部分应用图标失效
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
@ -36,7 +45,7 @@ spark-store (4.2.10) stable; urgency=medium
* 修复:发行版统计信息
* 修复Gitee反馈链接错误
* 修复ACE下无法安装,支持ACE下软件更新
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
@ -47,24 +56,27 @@ spark-store (4.2.9) stable; urgency=medium
* 修复:容器内无限等待
* 新增:高分屏截图支持
* 新增:更新界面支持显示软件名称
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.8.1) stable; urgency=medium
* 修复A2D应用释放无效的Desktop到桌面上
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.8) stable; urgency=medium
* 修复在aptss上锁时支持等待释放锁而不是直接报错退出
* 调整:下载安装按钮文案修改
* 优化 KDE 深色模式支持实现方式
* 新增ssinstall现在会自动创建desktop文件
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.7.3) stable; urgency=medium
* 修复aptss现在会正确地透传错误码而不是exit 0
@ -73,18 +85,16 @@ spark-store (4.2.7.3) stable; urgency=medium
* 修复在终端中打开的icon过大导致无法投稿到UOS
* 修复v23下编译出错
* 薪怎:支持崩溃日志收集系统
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.7.2) stable; urgency=medium
* 新增:内置在终端打开功能
* 调整散列验证更改为使用sha512
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.7.1) stable; urgency=medium
@ -93,7 +103,7 @@ spark-store (4.2.7.1) stable; urgency=medium
* 新增在aptss的特定操作时添加了提示
* 新增在aptss提示加粗
* 调整ssinstall验证支持使用cdn.d.获取
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
@ -102,7 +112,7 @@ spark-store (4.2.7) stable; urgency=medium
* 修复:更新星火商店后禁止更新提醒的配置失效
* 新增:支持在设置中关闭平台不兼容提示
* 调整:更改了下载量统计的方式,减少漏数
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
@ -112,49 +122,49 @@ spark-store (4.2.6.6) stable; urgency=medium
* 修复dpkg阻塞出现漏掉的安装失败现在在安装后检测是否安装
* 修复UOS专业版上安装成功仍然显示失败的问题方式忽略E:等消息,仅检查脚本报错
* 调整卸载应用时采用autopurge以一并卸载依赖
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6.5) stable; urgency=medium
* 调整ssaudit安装结束时会提示安装结束
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6.4) stable; urgency=medium
* 修复:关于页面的入口过时
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6.3) stable; urgency=medium
* 修复:部分下载统计线路失效
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6.2) stable; urgency=medium
* 新增支持arm架构搜索
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6.1) stable; urgency=medium
* 修复mint下更新检测不正常
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
spark-store (4.2.6) stable; urgency=medium
* 修复:截图加载失败时点击闪退
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
@ -162,7 +172,7 @@ spark-store (4.2.5.1) stable; urgency=medium
* 调整重写了spark-dstore-patch速度提升尤其对机械硬盘下
* 调整优化了aptss源文件同步策略
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
@ -171,7 +181,7 @@ spark-store (4.2.5) stable; urgency=medium
* 修复ssinstall在文件不存在时仍然报安装成功
* 修复删除不再需要的依赖libc6-dev
* 在aarch64架构安装时也启用32位支持
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800
@ -180,7 +190,7 @@ spark-store (4.2.4) stable; urgency=medium
* 修复ssinstall校验失败的时候仍然提示安装成功
* 新增ssinstall可以自动刷新ssupdate以防止仓库更新中导致的安装校验失败
* 修复:在不受支持的平台安装应用时弹出提示不正确
-- shenmo <shenmo@spark-app.store> Sun, 5 Mar 2022 11:45:14 +0800

43
debian/control vendored

@ -3,48 +3,31 @@ Maintainer: shenmo <shenmo@spark-app.store>
Section: utils
Priority: optional
Build-Depends:
debhelper (>= 9),
cmake,
debhelper (>= 11),
pkg-config,
qtchooser (>= 55-gc9562a1-1~) | qt5-default,
qtbase5-dev,
libqt5core5a,
libqt5gui5,
libqt5widgets5,
libqt5network5,
libqt5concurrent5,
libdtkcore-dev(>=5.0),
libdtkgui-dev(>=5.0),
libdtkwidget-dev(>=5.0),
libqt5svg5-dev,
qttools5-private-dev,
qtwebengine5-dev,
qtwayland5,
qtwayland5-dev-tools,
gcc,
g++
qtchooser (>= 55-gc9562a1-1~),
qt6-base-dev,
qt6-svg-dev,
qt6-tools-dev,
qt6-webengine-dev,
libdtkcommon-dev,
libdtk6core-dev,
libdtk6gui-dev,
libdtk6widget-dev
Standards-Version: 4.0.0
Homepage: https://www.spark-app.store/
Package: spark-store
Architecture: any
Provides: spark-store-console-in-container
Depends:${shlibs:Depends}, ${misc:Depends},
libqt5core5a,
libqt5gui5,
libqt5widgets5,
libqt5network5,
libqt5concurrent5,
qtwayland5,
libdtkcore5,
libdtkgui5,
libdtkwidget5,
Depends: ${shlibs:Depends}, ${misc:Depends},
dde-qt6integration,
curl,
openssl,
dde-qt5integration,
aria2,
gnupg,
zenity,
policykit-1,
libnotify-bin,
desktop-file-utils,
dpkg-dev

33
debian/rules vendored

@ -1,9 +1,14 @@
#!/usr/bin/make -f
export QT_SELECT = qt5
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
include /usr/share/dpkg/default.mk
export QT_SELECT = qt6
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DEB_CFLAGS ?= $(shell dpkg-buildflags --get CFLAGS)
DEB_CPPFLAGS ?= $(shell dpkg-buildflags --get CPPFLAGS)
DEB_CXXFLAGS ?= $(shell dpkg-buildflags --get CXXFLAGS)
DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
@ -16,24 +21,14 @@ SOURCE_DATE_EPOCH := $(shell date +%s)
%:
dh $@ --parallel
override_dh_auto_clean:
rm -rf $(CURDIR)/build-$(DEB_HOST_MULTIARCH)
override_dh_auto_configure:
mkdir -p $(CURDIR)/build-$(DEB_HOST_MULTIARCH)
dh_auto_configure -- \
-DVERSION=$(DEB_VERSION_UPSTREAM) \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS="$(DEB_CFLAGS) $(DEB_CPPFLAGS)" \
-DCMAKE_CXX_FLAGS="$(DEB_CXXFLAGS) $(DEB_CPPFLAGS)"
qmake BUILD_VERSION=$(DEB_VERSION_UPSTREAM) spark-store-project.pro \
-spec linux-g++ CONFIG+=force_debug_info \
-o $(CURDIR)/build-$(DEB_HOST_MULTIARCH)/
override_dh_auto_build:
make -C $(CURDIR)/build-$(DEB_HOST_MULTIARCH) -j$(JOBS)
override_dh_auto_install:
make -C $(CURDIR)/build-$(DEB_HOST_MULTIARCH) install \
INSTALL_ROOT=$(CURDIR)/debian/spark-store
# Ignore the dpkg-shlibdeps: warning (it uses none of the library's symbols)
# Qt Mutidedia lib will ref to network libraray.
#Ignore the dpkg-shlibdeps: warning (it uses none of the library's symbols)
#Qt Mutidedia lib will ref to network libraray.
override_dh_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--warnings=0

@ -2,7 +2,6 @@
case "$1" in
configure)
case `arch` in
x86_64)
echo "Enabling i386 arch..."
@ -12,7 +11,8 @@ case "$1" in
aarch64)
echo "Will not enable armhf since 4271"
;;
loongarch64)
loongarch64)
echo "Nope we DO NOT WANT ABI1 now"
dpkg --remove-architecture loongarch64
;;
@ -42,7 +42,7 @@ case "$1" in
ln -s -f /opt/durapps/spark-store/bin/aptss /usr/bin/aptss
# 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
# Install key
@ -52,11 +52,9 @@ case "$1" in
cp -f /tmp/spark-store-install/spark-store.asc.gpg /etc/apt/trusted.gpg.d/spark-store.gpg
# Start upgrade detect service
systemctl daemon-reload
systemctl enable spark-update-notifier
systemctl start spark-update-notifier
systemctl enable spark-update-notifier --now || true
# Update certain caches
@ -73,7 +71,6 @@ case "$1" in
;;
triggered)
spark-dstore-patch
spark-dstore-patch
;;
esac

@ -1,4 +1,5 @@
#!/bin/bash
#检测网络链接畅通
function network-check()
{
@ -23,6 +24,5 @@ function network-check()
}
#network-check
echo "不再检测网络"
#echo "不再检测网络"

@ -12,6 +12,7 @@ function notify-send()
}
if [ "$1" = "remove" -o "$1" = "purge" ] ; then
echo "$1"
echo "卸载操作,进行配置清理"
@ -32,20 +33,16 @@ if [ "$1" = "remove" -o "$1" = "purge" ] ; then
# Remove residual symbol links to stop upgrade detect
rm -f /etc/xdg/autostart/spark-update-notifier.desktop
# Remove config files
for username in `ls /home`
do
echo /home/$username
if [ -d /home/$username/.config/spark-union/spark-store ]
then
rm -rf /home/$username/.config/spark-union/spark-store
fi
done
for username in `ls /home`; do
echo /home/$username
if [ -d /home/$username/.config/spark-union/spark-store ]; then
rm -rf /home/$username/.config/spark-union/spark-store
fi
done
# Shutdown services
systemctl stop spark-update-notifier
# Stop update detect service
systemctl disable spark-update-notifier
systemctl disable spark-update-notifier --now || true
# Clean the auto install polkit file if exist
rm -f /usr/share/polkit-1/actions/store.spark-app.ssinstall.policy
@ -53,13 +50,13 @@ for username in `ls /home`
# 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
if [ ! -z "`pidof spark-store`" ] ; then
echo "关闭已有 spark-store.."
notify-send "正在升级星火商店" "请在升级结束后重启星火商店" -i spark-store
killall spark-store
fi
fi

@ -8,10 +8,9 @@ TARGET = spark-store
TEMPLATE = subdirs
#CONFIG += ordered
CONFIG += wayland-compositor
SUBDIRS += \
src/spark-store.pro
src/$${TARGET}.pro
# https://wiki.debian.org/Hardening
QMAKE_CFLAGS *= $(shell dpkg-buildflags --get CFLAGS)
@ -27,32 +26,31 @@ CONFIG(release, debug | release) {
# Rules for deployment
tool.files += tool/*
tool.path = /opt/durapps/$${TARGET}/bin
tool.path = /opt/durapps/$${TARGET}/bin/
qm.files += translations/*.qm
qm.path = /usr/share/spark-store/translations
qm.path = /usr/share/$${TARGET}/translations/
#preferences.files += pkg/etc/apt/preferences.d/sparkstore
#preferences.path = /etc/apt/preferences.d
#preferences.path = /etc/apt/preferences.d/
#sourceslist.files += pkg/etc/apt/sources.list.d/sparkstore.list
#sourceslist.path = /etc/apt/sources.list.d
#sourceslist.path = /etc/apt/sources.list.d/
bash_completion.files += pkg/usr/share/bash-completion/completions/aptss
bash_completion.path = /usr/share/bash-completion/completions
bash_completion.path = /usr/share/bash-completion/completions/
desktop.files += pkg/usr/share/applications/*.desktop
desktop.path = /usr/share/applications
desktop.path = /usr/share/applications/
service.files += pkg/usr/lib/systemd/system/spark-update-notifier.service
service.path = /usr/lib/systemd/system/
service.path = /lib/systemd/system/
polkit-1.files += pkg/usr/share/polkit-1/actions/store.spark-app.ss-do-upgrade-worker.policy
polkit-1.path = /usr/share/polkit-1/actions/
icon.files += pkg/usr/share/icons/hicolor/scalable/apps/*.svg
icon.files += pkg/usr/share/icons/hicolor/scalable/apps/*.png
icon.path = /usr/share/icons/hicolor/scalable/apps
icon.files += pkg/usr/share/icons
icon.path = /usr/share/
ssinstall-transhell.files += pkg/usr/share/ssinstall/transhell
ssinstall-transhell.path = /usr/share/ssinstall/
@ -61,7 +59,7 @@ aptss-transhell.files += pkg/usr/share/aptss/transhell
aptss-transhell.path = /usr/share/aptss/
tmp.files += pkg/tmp/spark-store-install/feedback.sh
tmp.path = /tmp/spark-store-install
tmp.path = /tmp/spark-store-install/
INSTALLS += \
tool \
@ -75,4 +73,3 @@ INSTALLS += \
service \
bash_completion \
polkit-1
# 暂时不添加

40
src/CMakeLists.txt Normal file

@ -0,0 +1,40 @@
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets Concurrent Network Svg WebEngineWidgets)
find_package(Dtk6 REQUIRED COMPONENTS Core Gui Widget)
include(src.cmake)
add_executable(${PROJECT_NAME} ${HEADERS} ${SOURCES} ${QRC_FILE})
target_include_directories(${PROJECT_NAME} PUBLIC
Qt6::Core
Qt6::Gui
Qt6::Widgets
Qt6::Concurrent
Qt6::Network
Qt6::Svg
Qt6::WebEngineWidgets
Dtk6::Core
Dtk6::Gui
Dtk6::Widget
)
target_link_libraries(${PROJECT_NAME} PRIVATE
Qt6::Core
Qt6::Gui
Qt6::Widgets
Qt6::Concurrent
Qt6::Network
Qt6::Svg
Qt6::WebEngineWidgets
Dtk6::Core
Dtk6::Gui
Dtk6::Widget
)
install(TARGETS ${PROJECT_NAME} DESTINATION /opt/durapps/${PROJECT_NAME}/bin)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/tool/ DESTINATION /opt/durapps/${PROJECT_NAME}/bin USE_SOURCE_PERMISSIONS)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/pkg/${CMAKE_INSTALL_SYSCONFDIR}/aptss DESTINATION ${CMAKE_INSTALL_SYSCONFDIR} USE_SOURCE_PERMISSIONS)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/pkg/lib/ DESTINATION /lib USE_SOURCE_PERMISSIONS)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/pkg/tmp/ DESTINATION /tmp USE_SOURCE_PERMISSIONS)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/pkg/usr/ DESTINATION ${CMAKE_INSTALL_PREFIX} USE_SOURCE_PERMISSIONS)

@ -25,7 +25,6 @@ Application::Application(int &argc, char **argv)
if (!DPlatformWindowHandle::pluginVersion().isEmpty()) {
setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true);
}
setAttribute(Qt::AA_UseHighDpiPixmaps);
setQuitOnLastWindowClosed(false); // 启用托盘图标时,关闭窗口程序仍然运行

@ -12,7 +12,6 @@
#include <execinfo.h>
#include <DSysInfo>
#include <DApplicationSettings>
#include <DWidgetUtil>
#include <QDate>
@ -146,13 +145,10 @@ int main(int argc, char *argv[])
// 浏览器开启 GPU 支持
// qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-features=UseModernMediaControls");
// qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-web-security");
#ifdef __sw_64__
#if defined (__sw_64__) || defined (__loongarch__)
qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--no-sandbox");
#endif
#ifdef __loongarch__
qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--no-sandbox");
#endif
/**
* NOTE: https://zhuanlan.zhihu.com/p/550285855
* wayland QtWebEngine 退 QWidget
@ -162,15 +158,6 @@ int main(int argc, char *argv[])
DApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);
}
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
// 开启 Hidpi 支持
qDebug() << "Enable HiDPI Support.";
DApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
DApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
#endif
// 强制使用 DTK 平台插件
QVector<char *> fakeArgs(argc + 2);
fakeArgs[0] = argv[0];
@ -192,8 +179,6 @@ int main(int argc, char *argv[])
return -1;
}
DApplicationSettings settings; // 定义 DApplicationSettings自动保存主题设置
MainWindow w;
a.setMainWindow(&w); // 设置应用程序主窗口,用于初始化关于对话框
// 让打开时界面显示在正中

@ -134,7 +134,7 @@ void SettingsPage::on_pushButton_updateServer_clicked()
ui->comboBox_server->setCurrentIndex(0); });
}
void SettingsPage::on_comboBox_server_currentIndexChanged(const QString &arg1)
void SettingsPage::on_comboBox_server_currentTextChanged(const QString &arg1)
{
SparkAPI::setServerUrl(arg1); // 服务器信息更新
qDebug() << arg1;

@ -22,7 +22,7 @@ public:
private slots:
void on_pushButton_updateServer_clicked();
void on_comboBox_server_currentIndexChanged(const QString &arg1);
void on_comboBox_server_currentTextChanged(const QString &arg1);
void on_pushButton_updateApt_clicked();

18
src/src.cmake Normal file

@ -0,0 +1,18 @@
include_directories(backend)
include_directories(dbus)
include_directories(pages)
include_directories(utils)
include_directories(widgets)
# https://cmake.org/cmake/help/v3.12/command/file.html#glob-recurse
file(GLOB_RECURSE HEADERS CONFIGURE_DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/*.h"
"${CMAKE_CURRENT_SOURCE_DIR}/*.hpp"
)
file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/*.ui"
)
qt6_add_resources(QRC_FILE ${CMAKE_CURRENT_SOURCE_DIR}/assets/assets.qrc)

@ -41,8 +41,7 @@ QString HttpRequest::postRequest(QString url, QString jsondata)
QEventLoop eventLoop;
connect(naManager, SIGNAL(finished(QNetworkReply *)), &eventLoop, SLOT(quit()));
eventLoop.exec();
QTextCodec *codec = QTextCodec::codecForName("utf8");
QString strReply = codec->toUnicode(reply->readAll());
QString strReply(reply->readAll());
reply->deleteLater();
return strReply;
}

@ -6,7 +6,6 @@
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QEventLoop>
#include <QTextCodec>
class HttpRequest : public QObject
{
Q_OBJECT

@ -17,7 +17,7 @@ big_image::big_image(DBlurEffectWidget *parent) : DBlurEffectWidget(parent),
QHBoxLayout *layout = new QHBoxLayout;
setLayout(layout);
layout->addWidget(m_image);
layout->setMargin(0);
layout->setContentsMargins(0, 0, 0, 0);
// Make sure the image has a parent so that it will be freed.
m_image->setParent(this);

@ -158,7 +158,7 @@ void DownloadItem::on_pushButton_3_clicked()
output_w->setMinimumHeight(600);
output_w->setAttribute(Qt::WA_TranslucentBackground);
output_w->setTitle(ui->label->text());
output_w->layout()->setMargin(20);
output_w->layout()->setContentsMargins(20, 20, 20, 20);
output_w->layout()->addWidget(textbrowser);
output_w->show();
}
@ -198,7 +198,7 @@ void DownloadItem::slotAsyncInstall(int t)
for (int i = 0; i < everyOut.size(); i++)
{
tempOutput = everyOut[i];
if (everyOut[i].left(2) == tempOutput.contains("OMG-IT-GOES-WRONG"))
if (tempOutput.contains("OMG-IT-GOES-WRONG"))
{
haveError = true;
}

@ -1,9 +1,5 @@
#!/bin/bash
enumAppInfoList() {
appInfoList=()
apps="/opt/apps"
@ -13,6 +9,7 @@ enumAppInfoList() {
done
echo "${appInfoList[@]}"
}
linkDir() {
ensureTargetDir() {
targetFile=$1
@ -26,17 +23,14 @@ linkDir() {
targetDir=$(dirname "$target")
find "$source" -type f | while read sourceFile; do
targetFile="$targetDir/${sourceFile#$sourceDir/}"
ensureTargetDir "$targetFile"
sourceFile=$(realpath --relative-to="$(dirname $targetFile)" "$sourceFile" )
if [ ! -e ${targetFile} ];then
ln -sv "$sourceFile" "$targetFile"
sourceFile=$(realpath --relative-to="$(dirname $targetFile)" "$sourceFile" )
if [ ! -e ${targetFile} ];then
ln -sv "$sourceFile" "$targetFile"
fi
done
}
linkApp() {
appID=$1
appEntriesDir="/opt/apps/$appID/entries"
@ -63,33 +57,29 @@ linkApp() {
done
}
function exec_uos_package_link(){
for app in $(enumAppInfoList); do
linkApp "$app" &
done
wait
function exec_uos_package_link() {
for app in $(enumAppInfoList); do
linkApp "$app" &
done
wait
}
function exec_v23_icon_link(){
# Fix v23 broken icon
if [ ! -d "/usr/share/icons/hicolor/scalable/apps" ];then
mkdir -p /usr/share/icons/hicolor/scalable/apps
fi
# Fix v23 broken icon
if [ ! -d "/usr/share/icons/hicolor/scalable/apps" ]; then
mkdir -p /usr/share/icons/hicolor/scalable/apps
fi
for icon_root_icon_path in $(ls /usr/share/icons/*.png /usr/share/icons/*.svg 2>/dev/null)
do
target_icon_path=/usr/share/icons/hicolor/scalable/apps/$(basename ${icon_root_icon_path})
if [ ! -e ${target_icon_path} ];then
ln -sv $(realpath --relative-to=/usr/share/icons/hicolor/scalable/apps ${icon_root_icon_path}) /usr/share/icons/hicolor/scalable/apps
fi
done
for icon_root_icon_path in $(ls /usr/share/icons/*.png /usr/share/icons/*.svg /usr/share/icons/*.xpm 2>/dev/null); do
target_icon_path=/usr/share/icons/hicolor/scalable/apps/$(basename ${icon_root_icon_path})
if [ ! -e ${target_icon_path} ]; then
ln -sv $(realpath --relative-to=/usr/share/icons/hicolor/scalable/apps ${icon_root_icon_path}) /usr/share/icons/hicolor/scalable/apps
fi
done
}
function exec_link_clean(){
# remove broken links in /usr/share
# remove broken links in /usr/share
find /usr/share/applications -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/share/icons -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/share/mime/packages -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
@ -103,24 +93,22 @@ function exec_link_clean(){
find /usr/share/polkit-1/actions -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /usr/share/fonts -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
find /etc/fonts/conf.d -xtype l -exec echo '{} is invalid now and going to be cleaned' \; -exec unlink {} \; 2>/dev/null &
}
function exec_uos_package_update(){
function exec_uos_package_update() {
update-icon-caches /usr/share/icons/* > /dev/null 2>&1 &
update-desktop-database -q > /dev/null 2>&1 &
update-mime-database -V /usr/share/mime > /dev/null 2>&1 &
glib-compile-schemas /usr/share/glib-2.0/schemas/ > /dev/null 2>&1 &
}
#########################################################################################
echo "----------------Running Spark DStore Patch----------------"
if [ ! -e /usr/bin/deepin-app-store-tool ];then
# execute linkApp function for each app and print output
exec_uos_package_link
if [ ! -e /usr/bin/deepin-app-store-tool ]; then
# execute linkApp function for each app and print output
exec_uos_package_link
fi
exec_v23_icon_link
exec_link_clean
wait

@ -0,0 +1,19 @@
# Have to disable cleaning for this folder because cmake deletes .ts files upon clean
# Not sure what else wont clean up / dirty workaround of Qt bug
# @ref https://bugreports.qt.io/browse/QTBUG-41736
# @ref https://stackoverflow.com/a/24245615/1917249
set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM TRUE)
find_package(Qt6 REQUIRED COMPONENTS LinguistTools)
# Update ts files and release qm files only in Release build
file(GLOB TS_FILES "*.ts")
if (NOT ${CMAKE_BUILD_TYPE} MATCHES "Debug")
set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION ${CMAKE_CURRENT_SOURCE_DIR})
qt6_create_translation(QM_FILES ${CMAKE_SOURCE_DIR}/src ${TS_FILES} OPTIONS -no-obsolete)
# https://stackoverflow.com/questions/70665191/cmake-does-not-generate-ts-files
add_custom_target(${PROJECT_NAME}_translations DEPENDS ${TS_FILES} ${QM_FILES})
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_translations)
endif ()
install(FILES ${QM_FILES} DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/translations)

@ -269,12 +269,12 @@
<context>
<name>DAboutDialog</name>
<message>
<location filename="../src/application.cpp" line="142"/>
<location filename="../src/application.cpp" line="141"/>
<source>Version: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/application.cpp" line="152"/>
<location filename="../src/application.cpp" line="151"/>
<source>%1 is released under %2</source>
<translation type="unfinished"></translation>
</message>
@ -515,19 +515,19 @@
<context>
<name>QObject</name>
<message>
<location filename="../src/application.cpp" line="35"/>
<location filename="../src/application.cpp" line="36"/>
<location filename="../src/application.cpp" line="37"/>
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
<source>Spark Store</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/application.cpp" line="41"/>
<location filename="../src/application.cpp" line="40"/>
<source>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;An appstore powered by community&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;Spark developers&lt;/span&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/application.cpp" line="149"/>
<location filename="../src/application.cpp" line="148"/>
<source>Spark Project</source>
<translation type="unfinished"></translation>
</message>

@ -236,22 +236,6 @@
<source>The current application does not support or tested on current platform, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The current application does not support deepin, there may be problems</source>
<translation type="vanished">La aplicación actual no admite deepin, puede haber problemas</translation>
</message>
<message>
<source>The current application does not support UOS, there may be problems</source>
<translation type="vanished">La aplicación actual no admite uos, puede haber problemas</translation>
</message>
<message>
<source>The current application does not support Ubuntu, there may be problems</source>
<translation type="vanished">La aplicación actual no admite ubuntu, puede haber problemas</translation>
</message>
<message>
<source>The current application does not support current platform, there may be problems</source>
<translation type="vanished">La aplicación actual no admite la Plataforma actual, puede haber problemas</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="536"/>
@ -285,12 +269,12 @@
<context>
<name>DAboutDialog</name>
<message>
<location filename="../src/application.cpp" line="142"/>
<location filename="../src/application.cpp" line="141"/>
<source>Version: %1</source>
<translation>Versión %1</translation>
</message>
<message>
<location filename="../src/application.cpp" line="152"/>
<location filename="../src/application.cpp" line="151"/>
<source>%1 is released under %2</source>
<translation>%1 publicado bajo %2</translation>
</message>
@ -531,19 +515,19 @@
<context>
<name>QObject</name>
<message>
<location filename="../src/application.cpp" line="35"/>
<location filename="../src/application.cpp" line="36"/>
<location filename="../src/application.cpp" line="37"/>
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
<source>Spark Store</source>
<translation>SPARK Store</translation>
</message>
<message>
<location filename="../src/application.cpp" line="41"/>
<location filename="../src/application.cpp" line="40"/>
<source>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;An appstore powered by community&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;Spark developers&lt;/span&gt;</source>
<translation>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;An appstore powered by community&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;Spark developers&lt;/span&gt;</translation>
</message>
<message>
<location filename="../src/application.cpp" line="149"/>
<location filename="../src/application.cpp" line="148"/>
<source>Spark Project</source>
<translation>Proyecto spark</translation>
</message>

@ -236,22 +236,6 @@
<source>The current application does not support or tested on current platform, there may be problems</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The current application does not support deepin, there may be problems</source>
<translation type="vanished">L&apos;application actuelle ne supporte pas deepin, il peut y avoir un problème</translation>
</message>
<message>
<source>The current application does not support UOS, there may be problems</source>
<translation type="vanished">L&apos;application actuelle ne prend pas en charge uos, il peut y avoir un problème</translation>
</message>
<message>
<source>The current application does not support Ubuntu, there may be problems</source>
<translation type="vanished">L&apos;application actuelle ne supporte pas Ubuntu, il peut y avoir un problème</translation>
</message>
<message>
<source>The current application does not support current platform, there may be problems</source>
<translation type="vanished">L&apos;application actuelle ne prend pas en charge la plate - forme actuelle, il peut y avoir un problème</translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="536"/>
@ -285,12 +269,12 @@
<context>
<name>DAboutDialog</name>
<message>
<location filename="../src/application.cpp" line="142"/>
<location filename="../src/application.cpp" line="141"/>
<source>Version: %1</source>
<translation>Version: %1</translation>
</message>
<message>
<location filename="../src/application.cpp" line="152"/>
<location filename="../src/application.cpp" line="151"/>
<source>%1 is released under %2</source>
<translation>%1 publié sous %2</translation>
</message>
@ -531,19 +515,19 @@
<context>
<name>QObject</name>
<message>
<location filename="../src/application.cpp" line="35"/>
<location filename="../src/application.cpp" line="36"/>
<location filename="../src/application.cpp" line="37"/>
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
<source>Spark Store</source>
<translation>Le Spark store</translation>
</message>
<message>
<location filename="../src/application.cpp" line="41"/>
<location filename="../src/application.cpp" line="40"/>
<source>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;An appstore powered by community&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;Spark developers&lt;/span&gt;</source>
<translation>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;An appstore powered by community&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;Spark developers&lt;/span&gt;</translation>
</message>
<message>
<location filename="../src/application.cpp" line="149"/>
<location filename="../src/application.cpp" line="148"/>
<source>Spark Project</source>
<translation>Le projet Spark</translation>
</message>

@ -236,22 +236,6 @@
<source>The current application does not support or tested on current platform, there may be problems</source>
<translation></translation>
</message>
<message>
<source>The current application does not support deepin, there may be problems</source>
<translation type="vanished">deepin</translation>
</message>
<message>
<source>The current application does not support UOS, there may be problems</source>
<translation type="vanished">UOS</translation>
</message>
<message>
<source>The current application does not support Ubuntu, there may be problems</source>
<translation type="vanished">Ubuntu</translation>
</message>
<message>
<source>The current application does not support current platform, there may be problems</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/pages/appintopage.cpp" line="521"/>
<location filename="../src/pages/appintopage.cpp" line="536"/>
@ -285,12 +269,12 @@
<context>
<name>DAboutDialog</name>
<message>
<location filename="../src/application.cpp" line="142"/>
<location filename="../src/application.cpp" line="141"/>
<source>Version: %1</source>
<translation>%1</translation>
</message>
<message>
<location filename="../src/application.cpp" line="152"/>
<location filename="../src/application.cpp" line="151"/>
<source>%1 is released under %2</source>
<translation>%1%2</translation>
</message>
@ -531,19 +515,19 @@
<context>
<name>QObject</name>
<message>
<location filename="../src/application.cpp" line="35"/>
<location filename="../src/application.cpp" line="36"/>
<location filename="../src/application.cpp" line="37"/>
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
<source>Spark Store</source>
<translation></translation>
</message>
<message>
<location filename="../src/application.cpp" line="41"/>
<location filename="../src/application.cpp" line="40"/>
<source>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;An appstore powered by community&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;Spark developers&lt;/span&gt;</source>
<translation>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;星火计划开发者&lt;/span&gt;</translation>
</message>
<message>
<location filename="../src/application.cpp" line="149"/>
<location filename="../src/application.cpp" line="148"/>
<source>Spark Project</source>
<translation></translation>
</message>

@ -269,12 +269,12 @@
<context>
<name>DAboutDialog</name>
<message>
<location filename="../src/application.cpp" line="142"/>
<location filename="../src/application.cpp" line="141"/>
<source>Version: %1</source>
<translation>%1</translation>
</message>
<message>
<location filename="../src/application.cpp" line="152"/>
<location filename="../src/application.cpp" line="151"/>
<source>%1 is released under %2</source>
<translation>%1%2</translation>
</message>
@ -515,19 +515,19 @@
<context>
<name>QObject</name>
<message>
<location filename="../src/application.cpp" line="35"/>
<location filename="../src/application.cpp" line="36"/>
<location filename="../src/application.cpp" line="37"/>
<location filename="../src/mainwindow-dtk.cpp" line="126"/>
<source>Spark Store</source>
<translation></translation>
</message>
<message>
<location filename="../src/application.cpp" line="41"/>
<location filename="../src/application.cpp" line="40"/>
<source>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;An appstore powered by community&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;Spark developers&lt;/span&gt;</source>
<translation>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;星火计划开发者&lt;/span&gt;</translation>
</message>
<message>
<location filename="../src/application.cpp" line="149"/>
<location filename="../src/application.cpp" line="148"/>
<source>Spark Project</source>
<translation></translation>
</message>