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