mirror of
				https://gitee.com/spark-store-project/spark-store
				synced 2025-11-04 08:12:21 +08:00 
			
		
		
		
	Merge branch 'Thunder' of gitee.com:spark-store-project/spark-store into dev
Signed-off-by: shenmo <jifengshenmo@outlook.com>
This commit is contained in:
		
						commit
						5b018a4696
					
				
							
								
								
									
										23
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										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
									
								
							
							
						
						
									
										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)
 | 
			
		||||
							
								
								
									
										23
									
								
								debian/control
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								debian/control
									
									
									
									
										vendored
									
									
								
							@ -3,16 +3,18 @@ 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,
 | 
			
		||||
 libqt5svg5-dev,
 | 
			
		||||
 qttools5-dev-tools,
 | 
			
		||||
 qtwebengine5-dev,
 | 
			
		||||
 libdtkcore-dev (>= 5.0),
 | 
			
		||||
 libdtkgui-dev (>= 5.0),
 | 
			
		||||
 libdtkwidget-dev (>= 5.0)
 | 
			
		||||
 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.1.7
 | 
			
		||||
Homepage: https://www.spark-app.store/
 | 
			
		||||
 | 
			
		||||
@ -20,10 +22,11 @@ Package: spark-store
 | 
			
		||||
Architecture: any
 | 
			
		||||
Provides: spark-store-console-in-container
 | 
			
		||||
Depends: ${shlibs:Depends}, ${misc:Depends},
 | 
			
		||||
 dde-qt5integration,
 | 
			
		||||
 dde-qt6integration,
 | 
			
		||||
 curl,
 | 
			
		||||
 openssl,
 | 
			
		||||
 aria2,
 | 
			
		||||
 qtwayland5,
 | 
			
		||||
 gnupg,
 | 
			
		||||
 zenity,
 | 
			
		||||
 policykit-1 | pkexec,
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										33
									
								
								debian/rules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										11
									
								
								debian/spark-store.postinst
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								debian/spark-store.postinst
									
									
									
									
										vendored
									
									
								
							@ -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
 | 
			
		||||
			;;
 | 
			
		||||
@ -51,11 +51,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
 | 
			
		||||
@ -72,7 +70,6 @@ case "$1" in
 | 
			
		||||
	;;
 | 
			
		||||
 | 
			
		||||
	triggered)
 | 
			
		||||
			spark-dstore-patch
 | 
			
		||||
 | 
			
		||||
		spark-dstore-patch
 | 
			
		||||
	;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								debian/spark-store.preinst
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								debian/spark-store.preinst
									
									
									
									
										vendored
									
									
								
							@ -1,4 +1,5 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
#检测网络链接畅通
 | 
			
		||||
function network-check()
 | 
			
		||||
{
 | 
			
		||||
@ -23,6 +24,5 @@ function network-check()
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#network-check
 | 
			
		||||
echo "不再检测网络"
 | 
			
		||||
#echo "不再检测网络"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										25
									
								
								debian/spark-store.prerm
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								debian/spark-store.prerm
									
									
									
									
										vendored
									
									
								
							@ -12,6 +12,7 @@ function notify-send()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if [ "$1" = "remove" -o "$1" = "purge" ] ; then
 | 
			
		||||
 | 
			
		||||
	echo "$1"
 | 
			
		||||
	echo "卸载操作,进行配置清理"
 | 
			
		||||
 | 
			
		||||
@ -32,33 +33,29 @@ 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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	# 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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1 +0,0 @@
 | 
			
		||||
deb [by-hash=force] https://d.store.deepinos.org.cn / 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB  | 
@ -10,7 +10,7 @@ TEMPLATE = subdirs
 | 
			
		||||
CONFIG += ordered
 | 
			
		||||
 | 
			
		||||
SUBDIRS += \
 | 
			
		||||
        src/spark-store.pro
 | 
			
		||||
        src/$${TARGET}.pro
 | 
			
		||||
 | 
			
		||||
# https://wiki.debian.org/Hardening
 | 
			
		||||
QMAKE_CFLAGS   *= $(shell dpkg-buildflags --get CFLAGS)
 | 
			
		||||
@ -26,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/*
 | 
			
		||||
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/
 | 
			
		||||
@ -60,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 \
 | 
			
		||||
@ -74,4 +73,3 @@ INSTALLS += \
 | 
			
		||||
        service \
 | 
			
		||||
        bash_completion \
 | 
			
		||||
        polkit-1 
 | 
			
		||||
#   暂时不添加
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										39
									
								
								src/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								src/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,39 @@
 | 
			
		||||
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/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); // 启用托盘图标时,关闭窗口程序仍然运行
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										17
									
								
								src/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								src/main.cpp
									
									
									
									
									
								
							@ -12,7 +12,6 @@
 | 
			
		||||
#include <execinfo.h>
 | 
			
		||||
 | 
			
		||||
#include <DSysInfo>
 | 
			
		||||
#include <DApplicationSettings>
 | 
			
		||||
 | 
			
		||||
#include <QDate>
 | 
			
		||||
#include <QProcessEnvironment>
 | 
			
		||||
@ -147,13 +146,10 @@ int main(int argc, char *argv[])
 | 
			
		||||
    // qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-web-security");
 | 
			
		||||
    // 全平台软件渲染Webkit
 | 
			
		||||
    qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-gpu");
 | 
			
		||||
#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 时黑屏闪烁
 | 
			
		||||
@ -163,15 +159,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];
 | 
			
		||||
@ -193,8 +180,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
									
								
							
							
						
						
									
										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();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										19
									
								
								translations/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								translations/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							@ -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,6 +515,7 @@
 | 
			
		||||
<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="142"/>
 | 
			
		||||
@ -522,12 +523,12 @@
 | 
			
		||||
        <translation type="unfinished"></translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../src/application.cpp" line="41"/>
 | 
			
		||||
        <location filename="../src/application.cpp" line="40"/>
 | 
			
		||||
        <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>
 | 
			
		||||
    </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>
 | 
			
		||||
 | 
			
		||||
@ -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>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>
 | 
			
		||||
@ -515,6 +515,7 @@
 | 
			
		||||
<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="142"/>
 | 
			
		||||
@ -522,12 +523,12 @@
 | 
			
		||||
        <translation>SPARK Store</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../src/application.cpp" line="41"/>
 | 
			
		||||
        <location filename="../src/application.cpp" line="40"/>
 | 
			
		||||
        <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;'>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></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>
 | 
			
		||||
 | 
			
		||||
@ -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>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>
 | 
			
		||||
@ -515,6 +515,7 @@
 | 
			
		||||
<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="142"/>
 | 
			
		||||
@ -522,12 +523,12 @@
 | 
			
		||||
        <translation>Le Spark store</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../src/application.cpp" line="41"/>
 | 
			
		||||
        <location filename="../src/application.cpp" line="40"/>
 | 
			
		||||
        <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;'>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></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>
 | 
			
		||||
 | 
			
		||||
@ -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,6 +515,7 @@
 | 
			
		||||
<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="142"/>
 | 
			
		||||
@ -522,12 +523,12 @@
 | 
			
		||||
        <translation>星火应用商店</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../src/application.cpp" line="41"/>
 | 
			
		||||
        <location filename="../src/application.cpp" line="40"/>
 | 
			
		||||
        <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>
 | 
			
		||||
    </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="142"/>
 | 
			
		||||
        <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><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>
 | 
			
		||||
    </message>
 | 
			
		||||
    <message>
 | 
			
		||||
        <location filename="../src/application.cpp" line="149"/>
 | 
			
		||||
        <location filename="../src/application.cpp" line="148"/>
 | 
			
		||||
        <source>Spark Project</source>
 | 
			
		||||
        <translation>星火计划</translation>
 | 
			
		||||
    </message>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user