From 3bf86fad8934f2bfff034573b01ec13088c436f9 Mon Sep 17 00:00:00 2001
From: keke <243768648@qq.com>
Date: Sun, 8 Jun 2025 21:26:35 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=E5=B8=83=E5=B1=80?=
=?UTF-8?q?=EF=BC=8C=E9=80=82=E9=85=8DGXDE=20OS?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
resources/icons/ccc-app-manager_56px.svg | 2 +-
src/appmanagermodel.cpp | 15 +++++++++++++++
src/appmanagermodel.h | 6 ++++++
src/common/appmanagercommon.h | 3 +++
src/mainwindow.cpp | 8 ++++++--
5 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/resources/icons/ccc-app-manager_56px.svg b/resources/icons/ccc-app-manager_56px.svg
index 6fc5f5a..8bbd9ce 100644
--- a/resources/icons/ccc-app-manager_56px.svg
+++ b/resources/icons/ccc-app-manager_56px.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/src/appmanagermodel.cpp b/src/appmanagermodel.cpp
index e3d6cb2..edc1b2a 100644
--- a/src/appmanagermodel.cpp
+++ b/src/appmanagermodel.cpp
@@ -29,6 +29,11 @@ AppManagerModel::~AppManagerModel()
m_appManagerJob = nullptr;
}
+bool AppManagerModel::IsInGxdeOs()
+{
+ return m_osId == GxdeOsId;
+}
+
RunningStatus AppManagerModel::getRunningStatus()
{
return m_appManagerJob->getRunningStatus();
@@ -279,6 +284,8 @@ void AppManagerModel::initData()
m_appManagerJobThread = new QThread;
m_appManagerJob = new AppManagerJob;
m_appManagerJob->moveToThread(m_appManagerJobThread);
+
+ readOsInfo();
}
void AppManagerModel::initConnection()
@@ -333,3 +340,11 @@ void AppManagerModel::postInit()
// 启动线程
m_appManagerJobThread->start();
}
+
+void AppManagerModel::readOsInfo()
+{
+ QSettings readIniSettingMethod("/etc/os-release", QSettings::Format::IniFormat);
+ QTextCodec *textCodec = QTextCodec::codecForName("UTF-8");
+ readIniSettingMethod.setIniCodec(textCodec);
+ m_osId = readIniSettingMethod.value("ID").toString();
+}
diff --git a/src/appmanagermodel.h b/src/appmanagermodel.h
index f10949d..5b0b8da 100644
--- a/src/appmanagermodel.h
+++ b/src/appmanagermodel.h
@@ -8,6 +8,8 @@
#include
#include
#include
+#include
+#include
DCORE_USE_NAMESPACE
@@ -23,6 +25,8 @@ public:
explicit AppManagerModel(QObject *parent = nullptr);
virtual ~AppManagerModel() override;
+ bool IsInGxdeOs();
+
RunningStatus getRunningStatus();
QList getAppInfosList();
@@ -86,8 +90,10 @@ private:
void initData();
void initConnection();
void postInit();
+ void readOsInfo();
private:
AppManagerJob *m_appManagerJob;
QThread *m_appManagerJobThread;
+ QString m_osId;
};
diff --git a/src/common/appmanagercommon.h b/src/common/appmanagercommon.h
index 7caa491..d051abf 100644
--- a/src/common/appmanagercommon.h
+++ b/src/common/appmanagercommon.h
@@ -31,6 +31,9 @@
// 包名格式化字符串
#define PKG_NAME_FORMAT_STR "%1_%2_%3.deb"
+// GXDE OS 识别号
+const QString GxdeOsId = "GXDE";
+
namespace AM {
// 运行状态
enum RunningStatus {
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index a410c1b..41f9fcd 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -32,6 +32,8 @@ MainWindow::MainWindow(QWidget *parent)
// setTitlebarShadowEnabled(false);
setFocusPolicy(Qt::FocusPolicy::ClickFocus);
+ m_appManagerModel = new AppManagerModel(this);
+
QMenuBar *menuBar = this->menuBar();
m_mainMenu = new QMenu(this);
m_mainMenu->setTitle("打开");
@@ -56,7 +58,10 @@ MainWindow::MainWindow(QWidget *parent)
m_centralWidgetBlurBg->lower();
// 判断系统是否是deepin
- m_isDeepin = DSysInfo::isDeepin();
+ m_isDeepin = DSysInfo::isDeepin();
+ if (m_appManagerModel->IsInGxdeOs()) {
+ m_isDeepin = true;
+ }
DFrame *centralWidget = new DFrame(this);
QPalette pa = centralWidget->palette();
@@ -82,7 +87,6 @@ MainWindow::MainWindow(QWidget *parent)
mainLayout->addLayout(contentLayout, 1);
// 应用管理
- m_appManagerModel = new AppManagerModel(this);
m_appManagerWidget = new AppManagerWidget(m_appManagerModel, this);
contentLayout->addWidget(m_appManagerWidget);
--
Gitee