yhkylin-backup-tools/kybackup/gsettingswrapper.cpp

59 lines
2.6 KiB
C++
Raw Normal View History

2021-09-16 16:05:46 +08:00
/**
* @brief 使
*/
#include "gsettingswrapper.h"
#include <QIcon>
#include <QLabel>
2022-02-15 16:51:03 +08:00
#include "globalsignals.h"
#include "globalbackupinfo.h"
#include "../common/mydefine.h"
2021-09-16 16:05:46 +08:00
2022-02-15 16:51:03 +08:00
GSettingsWrapper::GSettingsWrapper(token)
{
2022-02-21 11:04:44 +08:00
m_isDarkTheme = false;
2022-02-15 16:51:03 +08:00
if (QGSettings::isSchemaInstalled(ORG_UKUI_STYLE)) {
m_pGsettingThemeData = new QGSettings(ORG_UKUI_STYLE);
2022-02-21 11:04:44 +08:00
QString themeStyleCurr = this->m_pGsettingThemeData->get(STYLE_NAME).toString();
if (STYLE_NAME_VALUE_DARK == themeStyleCurr || STYLE_NAME_VALUE_BLACK == themeStyleCurr) {
// 深色主题
m_isDarkTheme = true;
} else if (STYLE_NAME_VALUE_DEFAULT == themeStyleCurr || STYLE_NAME_VALUE_LIGHT == themeStyleCurr || STYLE_NAME_VALUE_WHITE == themeStyleCurr) {
// 浅色主题
m_isDarkTheme = false;
}
QObject::connect(m_pGsettingThemeData, &QGSettings::changed, [=](const QString &key) {
// 主题变更
if (key == STYLE_NAME) {
QString themeStyle = this->m_pGsettingThemeData->get(STYLE_NAME).toString();
if (STYLE_NAME_VALUE_DARK == themeStyle || STYLE_NAME_VALUE_BLACK == themeStyle) {
m_isDarkTheme = true;
// 深色主题
emit GlobelBackupInfo::inst().getGlobalSignals()->styleNameChanged(true);
} else if (STYLE_NAME_VALUE_DEFAULT == themeStyle || STYLE_NAME_VALUE_LIGHT == themeStyle || STYLE_NAME_VALUE_WHITE == themeStyle) {
m_isDarkTheme = false;
// 浅色主题
emit GlobelBackupInfo::inst().getGlobalSignals()->styleNameChanged(false);
}
2022-03-02 11:24:54 +08:00
} else if (key == ICON_THEME_NAME) {
// 图标变更
emit GlobelBackupInfo::inst().getGlobalSignals()->themeIconChanged();
2022-03-08 09:56:06 +08:00
} else if ("systemFont" == key || "systemFontSize" == key) {
// 字体大小或字体类型发生变化
int fontSize = m_pGsettingThemeData->get("system-font-size").toInt();
emit GlobelBackupInfo::inst().getGlobalSignals()->fontChanged(fontSize);
} else if (key == COLOR_QT_KEY) {
// 强调色变化
emit GlobelBackupInfo::inst().getGlobalSignals()->themeColorChanged();
2022-02-21 11:04:44 +08:00
}
});
2022-02-15 16:51:03 +08:00
}
}
GSettingsWrapper::~GSettingsWrapper()
{
delete m_pGsettingThemeData;
}
2021-09-16 16:05:46 +08:00