From d5190d577a261265490fd06e76a8a1c4d405f9d0 Mon Sep 17 00:00:00 2001 From: keke <243768648@qq.com> Date: Fri, 10 Mar 2023 11:00:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=94=B9=E8=8E=B7=E5=8F=96dtk?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E5=9C=86=E8=A7=92=E7=8E=87=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/appmanagercommon.cpp | 15 +++++++++++++++ src/common/appmanagercommon.h | 4 ++++ src/mainwindow.cpp | 10 +++++++--- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/common/appmanagercommon.cpp b/src/common/appmanagercommon.cpp index 08aa8c0..8515ef4 100644 --- a/src/common/appmanagercommon.cpp +++ b/src/common/appmanagercommon.cpp @@ -104,3 +104,18 @@ bool AM::judgePkgIsInstalledFromStr(const QString &str) { return str.contains("installed") && !str.contains("not-installed"); } + +bool AM::isQGSettingsContainsKey(const QGSettings &settings, const QString &key) +{ + const QString simplyfiedKey = QString(key).toLower().remove(".").remove("-").remove("_"); + const QStringList keys = settings.keys(); + for (QStringList::const_iterator cIter = keys.begin(); cIter != keys.end(); ++cIter) { + QString originKey = *cIter; + originKey = originKey.toLower().remove(".").remove("-").remove("_"); + if (originKey == simplyfiedKey) { + return true; + } + } + + return false; +} diff --git a/src/common/appmanagercommon.h b/src/common/appmanagercommon.h index e2e21e1..f703fcd 100644 --- a/src/common/appmanagercommon.h +++ b/src/common/appmanagercommon.h @@ -2,6 +2,8 @@ #include +#include + #define ONLY_SHOW_IN_VALUE_DEEPIN "Deepin" #define X_DEEPIN_VENDOR_STR "deepin" // 应用默认图标 @@ -101,4 +103,6 @@ void popupNormalSysNotify(const QString &summary, const QString &body); QString formatBytes(qint64 input, int prec); // 从状态字符串中判断包是否已安装 bool judgePkgIsInstalledFromStr(const QString &str); +// 判断GSettings中是否包含指定键 +bool isQGSettingsContainsKey(const QGSettings &settings, const QString &key); } // namespace AM diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9b77f6c..9b02c6a 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -6,11 +6,12 @@ #include #include #include + #include #include - #include #include +#include MainWindow::MainWindow(QWidget *parent) : DMainWindow(parent) @@ -20,7 +21,10 @@ MainWindow::MainWindow(QWidget *parent) , m_appManagerWidget(nullptr) { setMinimumSize(500, 300); - resize(1000, 600); + QRect primaryScreenGeometry = qApp->primaryScreen()->geometry(); + int resizedWidth = int(primaryScreenGeometry.width() * 0.7); + int resizedHeight = int(resizedWidth * 3 / 5); + resize(resizedWidth, resizedHeight); // 设置背景 setTitlebarShadowEnabled(false); setFocusPolicy(Qt::FocusPolicy::ClickFocus); @@ -58,7 +62,7 @@ MainWindow::MainWindow(QWidget *parent) int dtkWindowRadius = 8; if (QGSettings::isSchemaInstalled("com.deepin.xsettings")) { QGSettings deepinSettings("com.deepin.xsettings"); - if (deepinSettings.keys().contains("dtk-window-radius")) { + if (AM::isQGSettingsContainsKey(deepinSettings, "dtk-window-radius")) { dtkWindowRadius = deepinSettings.get("dtk-window-radius").toInt(); } } -- Gitee