diff --git a/src/common/appmanagercommon.cpp b/src/common/appmanagercommon.cpp index 08aa8c01035bccdbdc520188016f6ccb52fcfe3e..8515ef4c378821a86d1a29635a9fcb74ab530d49 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 e2e21e11a1459b959a2ce2f424d04391cfda94ab..f703fcdc7d15ecd720c09fa8fd96cee90dc4b4b7 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 9b77f6c7165c5f6b4fa69d5e90057f0a48ce0a2d..9b02c6a1fc654116212d69e5b5b6f10f2a50d235 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(); } }