Compare commits

..

7 Commits

Author SHA1 Message Date
3c37842468 修复翻译缺失的问题
Signed-off-by: gfdgd_xi <3025613752@qq.com>
2025-08-29 18:11:46 +08:00
86a34ba98d 修复翻译文件缺失的问题
Signed-off-by: gfdgd_xi <3025613752@qq.com>
2025-08-29 13:06:58 +08:00
459c68bad2 添加编译依赖 cmake
Signed-off-by: gfdgd_xi <3025613752@qq.com>
2025-08-29 12:48:50 +08:00
32f983e2cc 使用 qt6 进行构建
Signed-off-by: gfdgd_xi <3025613752@qq.com>
2025-08-29 12:38:44 +08:00
e0b30c6af7 新增qt6适配 2025-05-24 19:47:59 +08:00
bed4c66530 修改项目地址 2024-10-13 10:56:58 +08:00
f4f8ffc863 修复无法在系统助手正常显示图标的问题 2024-10-13 10:38:44 +08:00
19 changed files with 134 additions and 121 deletions

2
.gitignore vendored

@ -72,3 +72,5 @@ CMakeLists.txt.user*
# Visual Studio Code # Visual Studio Code
.vscode .vscode
build/

91
CMakeLists.txt Normal file

@ -0,0 +1,91 @@
cmake_minimum_required(VERSION 3.16)
project(gxde-kernel-manager VERSION 1.0 LANGUAGES C CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Set up AUTOMOC and some sensible defaults for runtime execution
# When using Qt 6.3, you can replace the code block below with
# qt_standard_project_setup()
set(CMAKE_AUTOMOC ON)
include(GNUInstallDirs)
set(CMAKE_AUTOUIC ON)
find_package(QT NAMES Qt6 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Gui Network)
find_package(Qt${QT_VERSION_MAJOR} OPTIONAL_COMPONENTS Widgets)
qt_add_executable(gxde-kernel-manager WIN32 MACOSX_BUNDLE
aboutwindow.cpp aboutwindow.h aboutwindow.ui
aptpkginfo.cpp aptpkginfo.h
kernelinformation.cpp kernelinformation.h
kernelinformationdialog.cpp kernelinformationdialog.h kernelinformationdialog.ui
kernelinstaller.cpp kernelinstaller.h kernelinstaller.ui
main.cpp
mainwindow.cpp mainwindow.h mainwindow.ui
programinfo.cpp programinfo.h
)
target_link_libraries(gxde-kernel-manager PRIVATE
Qt::Core
Qt::Gui
Qt::Network
)
# generate qm
execute_process(COMMAND bash "translate_generation.sh"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
# Resources:
set(Resource_resource_files
"Donate/Alipay.jpg"
"Donate/QQ.png"
"Donate/Wechat.png"
"Donate/advertisement0.jpg"
"data/new/en_US.html"
"data/new/zh_CN.html"
"data/version"
"icon/dialog-apply.svg"
"icon/dialog-cancel.svg"
"icon/dialog-error.svg"
"icon/dialog-information.svg"
"icon/dialog-ok.svg"
"icon/dialog-question.svg"
"icon/dialog-warning.svg"
"icon/gxde-kernel-manager.svg"
"icon/icon1.png"
"icon/tux.png"
"shell/kernel-installer-reconfigure-template.sh"
"shell/kernel-installer-remove-template.sh"
"shell/kernel-installer-root-loader-template.sh"
"shell/kernel-installer-template.sh"
"shell/kernel-installer-update-template.sh"
"shell/kernel-installer-upgrade-template.sh"
"translations/gxde-kernel-manager_zh_CN.qm"
)
qt_add_resources(gxde-kernel-manager "Resource"
PREFIX
"/"
FILES
${Resource_resource_files}
)
if((QT_VERSION_MAJOR GREATER 4))
target_link_libraries(gxde-kernel-manager PRIVATE
Qt::Widgets
)
endif()
if(UNIX AND NOT MACOS)
target_link_libraries(gxde-kernel-manager PRIVATE
qtermwidget6
)
endif()
install(TARGETS gxde-kernel-manager
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
# Consider using qt_generate_deploy_app_script() for app deployment if
# the project can use Qt 6.3. In that case rerun qmake2cmake with
# --min-qt-version=6.3.

@ -1,4 +1,4 @@
<p width=100px align="center"><img width=40% src="icon/icon.svg"></p> <p width=100px align="center"><img width=40% src="icon/gxde-kernel-manager.svg"></p>
<h1 align="center">GXDE 内核管理器 1.1.1</h1> <h1 align="center">GXDE 内核管理器 1.1.1</h1>
<hr> <hr>
<a href='https://gitee.com/GXDE-OS/gxde-kernel-manager/stargazers'><img src='https://gitee.com/GXDE-OS/gxde-kernel-manager/badge/star.svg?theme=dark' alt='star'></img></a> <a href='https://gitee.com/GXDE-OS/gxde-kernel-manager/stargazers'><img src='https://gitee.com/GXDE-OS/gxde-kernel-manager/badge/star.svg?theme=dark' alt='star'></img></a>
@ -99,4 +99,4 @@ dpkg-buildpackage -b -us
支付宝官方活动,扫描获得支付红包! 支付宝官方活动,扫描获得支付红包!
<p><img src="Donate/advertisement0.jpg" width="250" ></p> <p><img src="Donate/advertisement0.jpg" width="250" ></p>
# ©2023Now gfdgd xi # ©2023Now gfdgd xi

@ -9,7 +9,7 @@
<file>icon/dialog-ok.svg</file> <file>icon/dialog-ok.svg</file>
<file>icon/dialog-question.svg</file> <file>icon/dialog-question.svg</file>
<file>icon/dialog-warning.svg</file> <file>icon/dialog-warning.svg</file>
<file>icon/icon.svg</file> <file>icon/gxde-kernel-manager.svg</file>
<file>shell/kernel-installer-remove-template.sh</file> <file>shell/kernel-installer-remove-template.sh</file>
<file>translation/gxde-kernel-manager_zh_CN.qm</file> <file>translation/gxde-kernel-manager_zh_CN.qm</file>
<file>shell/kernel-installer-reconfigure-template.sh</file> <file>shell/kernel-installer-reconfigure-template.sh</file>

@ -20,14 +20,13 @@ AboutWindow::AboutWindow(QWidget *parent) :
info += tr("Built Time: ") + QString(__DATE__) + " " + __TIME__ + "\n"; info += tr("Built Time: ") + QString(__DATE__) + " " + __TIME__ + "\n";
info += tr("QQ Group: 881201853") + "\n"; info += tr("QQ Group: 881201853") + "\n";
info += "</pre>"; info += "</pre>";
info += "<hr/>"; /*info += "<hr/>";
info += ProgramInfo::updateInfo(); info += ProgramInfo::updateInfo();
info += "<hr/>"; info += "<hr/>";*/
info += "<h3>" + tr("Website") + "</h3>"; info += "<h3>" + tr("Website") + "</h3>";
info += "<p>Gitee: <a href='https://gitee.com/GXDE-OS/gxde-kernel-manager'>https://gitee.com/GXDE-OS/gxde-kernel-manager</a></p>"; info += "<p>Gitee: <a href='https://gitee.com/GXDE-OS/gxde-kernel-manager'>https://gitee.com/GXDE-OS/gxde-kernel-manager</a></p>";
info += "<p>Github: <a href='https://github.com/GXDE-OS/gxde-kernel-manager'>https://github.com/GXDE-OS/gxde-kernel-manager</a></p>"; info += "<p>Github: <a href='https://github.com/GXDE-OS/gxde-kernel-manager'>https://github.com/GXDE-OS/gxde-kernel-manager</a></p>";
info += "<p>Sourceforge: <a href='https://sourceforge.net/projects/gxde-kernel-manager/'>https://sourceforge.net/projects/gxde-kernel-manager/</a></p>"; info += "<p>GXDE Homepage: <a href='https://www.gxde.top'>https://www.gxde.top</a></p>";
info += "<p>GXDE Homepage: <a href='https://gxde.gfdgdxi.top'>https://gxde.gfdgdxi.top</a></p>";
info += "<hr/>\n"; info += "<hr/>\n";
info += "<h1>©2023" + QDateTime::currentDateTime().toString("yyyy") + " gfdgd xi</h1>\n"; info += "<h1>©2023" + QDateTime::currentDateTime().toString("yyyy") + " gfdgd xi</h1>\n";
ui->textBrowser->setHtml(info); ui->textBrowser->setHtml(info);
@ -46,6 +45,6 @@ void AboutWindow::on_m_closeButton_clicked()
void AboutWindow::on_m_logoShower_linkActivated(const QString &link) void AboutWindow::on_m_logoShower_linkActivated(const QString &link)
{ {
ui->m_logoShower->setText("<html><head/><body><p><a href='https://gxde.gfdgdxi.top'><img width=128 src=\":/icon/icon1.png\"/></a></p></body></html>"); ui->m_logoShower->setText("<html><head/><body><p><a href='https://www.gxde.org'><img width=128 src=\":/icon/icon1.png\"/></a></p></body></html>");
} }

@ -15,14 +15,14 @@
</property> </property>
<property name="windowIcon"> <property name="windowIcon">
<iconset resource="Resource.qrc"> <iconset resource="Resource.qrc">
<normaloff>:/icon/icon.svg</normaloff>:/icon/icon.svg</iconset> <normaloff>:/icon/gxde-kernel-manager.svg</normaloff>:/icon/gxde-kernel-manager.svg</iconset>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>
<widget class="QLabel" name="m_logoShower"> <widget class="QLabel" name="m_logoShower">
<property name="text"> <property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href='https://gxde.gfdgdxi.top'&gt;&lt;img width=128 src=&quot;:/icon/icon.svg&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href='https://www.gxde.org'&gt;&lt;img width=128 src=&quot;:/icon/gxde-kernel-manager.svg&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>

@ -169,7 +169,7 @@ void AptPkgInfo::SetPkgName(QString pkgName)
QString AptPkgInfo::GetPkgInfo(QString pkgName) const QString AptPkgInfo::GetPkgInfo(QString pkgName) const
{ {
if(pkgName == NULL) { if(pkgName == "") {
pkgName = this->pkgName; pkgName = this->pkgName;
} }
QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); QProcessEnvironment env = QProcessEnvironment::systemEnvironment();

@ -1 +1 @@
1.1.1 1.3.0

19
debian/changelog vendored

@ -1,17 +1,6 @@
gxde-kernel-manager (1.2.1) UNRELEASED; urgency=medium gxde-kernel-manager (1.3.1) UNRELEASED; urgency=medium
* ※1、支持从 apt 源读取内核数据并显示安装 * 使用 qt6 进行构建
* ※2、支持只显示与当前系统相同架构的内核 * 修复翻译缺失的问题
* ※3、下载/更新内核时支持调用 aptss 提升下载速度
* ※4、新增卸载所有内核时的窗口警告
* 5、优化表格显示效果
* 6、支持显示内核描述和版本
* ※1. Support getting kernel data from apt database. -- gfdgd_xi <3025613752@qq.com> Fri, 29 Aug 2025 18:11:26 +0800
* ※2. Support showing only kernels that are the same as the local system architecture.
* ※3. Support using aptss to download packages faster.
* ※4. Show a warning message box when removing all kernels.
* 5. Optimize the effect of the kernels table.
* 6. Support showing kernel descriptions and versions.
-- gfdgd_xi <3025613752@qq.com> Sun, 13 Oct 2024 10:27:40 +0800

12
debian/control vendored

@ -5,11 +5,13 @@ Maintainer: gfdgd_xi <3025613752@qq.com>
Rules-Requires-Root: no Rules-Requires-Root: no
Build-Depends: Build-Depends:
debhelper-compat (= 10), debhelper-compat (= 10),
qtbase5-dev, qt6-base-dev,
qtbase5-dev-tools, qt6-base-dev-tools,
qtbase5-private-dev, qt6-base-private-dev,
libqtermwidget5-1-dev | libqtermwidget5-0-dev, qt6-tools-dev-tools,
qttools5-dev-tools qt6-5compat-dev,
cmake,
libqtermwidget-dev | libqtermwidget5-1-dev | libqtermwidget5-0-dev,
Standards-Version: 4.6.2 Standards-Version: 4.6.2
Homepage: https://gitee.com/GXDE-OS/gxde-kernel-manager Homepage: https://gitee.com/GXDE-OS/gxde-kernel-manager
Vcs-Git: https://gitee.com/GXDE-OS/gxde-kernel-manager.git Vcs-Git: https://gitee.com/GXDE-OS/gxde-kernel-manager.git

@ -5,6 +5,6 @@ Name[zh_CN]=GXDE 内核管理器
Comment=GXDE Kernel Manager Comment=GXDE Kernel Manager
Comment[zh_CN]=GXDE Comment[zh_CN]=GXDE
Type=Application Type=Application
Exec=bash /opt/apps/gxde-kernel-manager/gxde-kernel-manager-runner.sh Exec=gxde-kernel-manager
Icon=/opt/apps/gxde-kernel-manager/icon.svg Icon=gxde-kernel-manager
Categories=System Categories=System

@ -1,82 +0,0 @@
QT += core gui network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++17
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
aboutwindow.cpp \
aptpkginfo.cpp \
kernelinformation.cpp \
kernelinformationdialog.cpp \
kernelinstaller.cpp \
main.cpp \
mainwindow.cpp \
programinfo.cpp
HEADERS += \
aboutwindow.h \
aptpkginfo.h \
kernelinformation.h \
kernelinformationdialog.h \
kernelinstaller.h \
mainwindow.h \
programinfo.h
FORMS += \
aboutwindow.ui \
kernelinformationdialog.ui \
kernelinstaller.ui \
mainwindow.ui
# 更新翻译
system(lrelease translation/gxde-kernel-manager_zh_CN.ts translation/gxde-kernel-manager_zh_CN.qm)
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
unix:!macx: LIBS += -lqtermwidget5
# 使用 GXDE 系统源里含有的内核
#aptsource.path = /etc/apt/sources.list.d/
#aptsource.files = $$PWD/AptSources/gxde-kernel-manager.list
aptsourcegpg.path = /etc/apt/trusted.gpg.d/
aptsourcegpg.files = $$PWD/AptSources/gxde-kernel-manager.gpg
debiandesktop.path = /usr/share/applications/
debiandesktop.files = $$PWD/gxde-kernel-manager.desktop
#uosdesktop.path = /opt/apps/gxde-kernel-manager/entries/applications
#uosdesktop.files = $$PWD/gxde-kernel-manager.desktop
icon.path = /usr/share/icons/
icon.files = $$PWD/icon/icon.svg
#icon.path = /opt/apps/gxde-kernel-manager/
#icon.files = $$PWD/icon/icon.svg
# GXDE 下不需要该脚本
#targetrunner.path = /opt/apps/gxde-kernel-manager/
#targetrunner.files = $$PWD/gxde-kernel-manager-runner.sh
#libinclude.path = /opt/apps/gxde-kernel-manager/
#libinclude.files = $$PWD/lib
#target.path = /opt/apps/gxde-kernel-manager/
target.path = /usr/bin
sysbro.path = /usr/share/GXDE/gxde-system-assistant/tool-extensions
sysbro.files = $$PWD/gxde-kernel-manager.desktop
#INSTALLS += aptsourcegpg aptsource target debiandesktop uosdesktop icon targetrunner
INSTALLS += target icon sysbro
TRANSLATIONS += translation/gxde-kernel-manager_zh_CN.ts
RESOURCES += \
Resource.qrc

Before

(image error) Size: 32 KiB

After

(image error) Size: 32 KiB

@ -3,7 +3,8 @@
#include <QMainWindow> #include <QMainWindow>
#include <qtermwidget5/qtermwidget.h> //#include <qtermwidget5/qtermwidget.h>
#include <qtermwidget6/qtermwidget.h>
namespace Ui { namespace Ui {
class KernelInstaller; class KernelInstaller;

@ -15,7 +15,7 @@
</property> </property>
<property name="windowIcon"> <property name="windowIcon">
<iconset resource="Resource.qrc"> <iconset resource="Resource.qrc">
<normaloff>:/icon/icon.svg</normaloff>:/icon/icon.svg</iconset> <normaloff>:/icon/gxde-kernel-manager.svg</normaloff>:/icon/gxde-kernel-manager.svg</iconset>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">

@ -14,7 +14,7 @@ int main(int argc, char *argv[])
QApplication a(argc, argv); QApplication a(argc, argv);
QTranslator translator; QTranslator translator;
if(ProgramInfo::systemLANG() == ProgramInfo::LANG::zh_CN) { if(ProgramInfo::systemLANG() == ProgramInfo::LANG::zh_CN) {
translator.load(":/translation/gxde-kernel-manager_zh_CN.qm"); translator.load(":/translations/gxde-kernel-manager_zh_CN.qm");
} }
a.installTranslator(&translator); a.installTranslator(&translator);
#ifdef __linux__ #ifdef __linux__

@ -15,7 +15,7 @@
</property> </property>
<property name="windowIcon"> <property name="windowIcon">
<iconset resource="Resource.qrc"> <iconset resource="Resource.qrc">
<normaloff>:/icon/icon.svg</normaloff>:/icon/icon.svg</iconset> <normaloff>:/icon/gxde-kernel-manager.svg</normaloff>:/icon/gxde-kernel-manager.svg</iconset>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">

11
translate_generation.sh Executable file

@ -0,0 +1,11 @@
#!/bin/bash
# this file is used to auto-generate .qm file from .ts file.
# author: shibowen at linuxdeepin.com
ts_list=(`ls translations/*.ts`)
for ts in "${ts_list[@]}"
do
printf "\nprocess ${ts}\n"
/usr/lib/qt6/bin/lrelease "${ts}"
done

@ -10,7 +10,7 @@
</message> </message>
<message> <message>
<location filename="../aboutwindow.ui" line="25"/> <location filename="../aboutwindow.ui" line="25"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&apos;https://gxde.gfdgdxi.top&apos;&gt;&lt;img width=128 src=&quot;:/icon/icon.svg&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&apos;https://www.gxde.org&apos;&gt;&lt;img width=128 src=&quot;:/icon/gxde-kernel-manager.svg&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>