fix:恢复UpmGsettings接口获取key值类型的方法getValueType,已解决配置同步问题。

This commit is contained in:
hanhongliang 2024-08-08 13:51:32 +08:00
parent 37eec981ae
commit abe835bf3a
5 changed files with 62 additions and 33 deletions

View File

@ -71,6 +71,7 @@ void UpmCommonDBus::dealSystemStatusChanged(quint32 status)
void UpmCommonDBus::dealUserActiveSignal(bool active)
{
qInfo() << "usd user active signal:" << active;
emit userActiveSignal(active);
}
@ -117,7 +118,7 @@ void UpmCommonDBus::controlLogin1Manager(QString action)
"/org/freedesktop/login1",
"org.freedesktop.login1.Manager",
QDBusConnection::systemBus());
dbusInterface.call(action, true);
dbusInterface.call(action, false);
qInfo() << "system will" << action;
}

View File

@ -99,19 +99,30 @@ bool UpmGsettings::getGsettingsConfig(const QString &configName, QVariant &value
return false;
}
void UpmGsettings::addConfigMonitor(const QString &configName, pSignalFun signalFun)
QVariant::Type UpmGsettings::getValueType(const QString &configName)
{
if (m_qHashValueType.contains(configName)) {
return m_qHashValueType[configName];
}
return QVariant::Invalid;
}
void UpmGsettings::addConfigMonitor(const QString &configName, pSignalFun signalFun, QVariant::Type type)
{
if (m_allPowerKey.contains(configName)) {
m_qHashValue[configName] = m_powerGsettings->get(configName);
m_qHashSignalsFuns[configName] = signalFun;
m_qHashValueType[configName] = type;
qDebug() << "power gsetting:" << configName << "to be monitored!";
} else if (m_allProcessKey.contains(configName)) {
m_qHashValue[configName] = m_processGsettings->get(configName);
m_qHashSignalsFuns[configName] = signalFun;
m_qHashValueType[configName] = type;
qDebug() << "process gsetting:" << configName << "to be monitored!";
} else if (m_allSoftFreezeModeKey.contains(configName)) {
m_qHashValue[configName] = m_softFreezeModeGsettings->get(configName);
m_qHashSignalsFuns[configName] = signalFun;
m_qHashValueType[configName] = type;
qDebug() << "soft freeze mode gsetting:" << configName << "to be monitored!";
} else {
qInfo() << "without this key:" << configName;
@ -121,56 +132,77 @@ void UpmGsettings::addConfigMonitor(const QString &configName, pSignalFun signal
void UpmGsettings::initGsettingsConfig()
{
addConfigMonitor(GSETTINGS_KEY_POWER_POLICY_AC,
&UpmGsettings::powerPolicyAcChanged);
&UpmGsettings::powerPolicyAcChanged,
QVariant::Int);
addConfigMonitor(GSETTINGS_KEY_POWER_POLICY_BATTERY,
&UpmGsettings::powerPolicyBatteryChanged);
&UpmGsettings::powerPolicyBatteryChanged,
QVariant::Int);
addConfigMonitor(GSETTINGS_KEY_POWER_POLICY_BATTERY_BACKUP,
&UpmGsettings::powerPolicyBatteryBackupChanged);
&UpmGsettings::powerPolicyBatteryBackupChanged,
QVariant::Int);
addConfigMonitor(GSETTINGS_KEY_SLEEP_DISPLAY_AC,
&UpmGsettings::sleepDisplayAcChanged);
&UpmGsettings::sleepDisplayAcChanged,
QVariant::Int);
addConfigMonitor(GSETTINGS_KEY_SLEEP_DISPLAY_BATTERY,
&UpmGsettings::sleepDisplayBatteryChanged);
&UpmGsettings::sleepDisplayBatteryChanged,
QVariant::Int);
addConfigMonitor(GSETTINGS_KEY_SLEEP_COMPUTER_AC,
&UpmGsettings::sleepComputerAcChanged);
&UpmGsettings::sleepComputerAcChanged,
QVariant::Int);
addConfigMonitor(GSETTINGS_KEY_SLEEP_COMPUTER_BATTERY,
&UpmGsettings::sleepComputerBatteryChanged);
&UpmGsettings::sleepComputerBatteryChanged,
QVariant::Int);
addConfigMonitor(GSETTINGS_KEY_IDLE_BRIGHTNESS,
&UpmGsettings::idleBrightnessChanged);
&UpmGsettings::idleBrightnessChanged,
QVariant::Int);
addConfigMonitor(GSETTINGS_KEY_IDLE_POWER_POLICY_AUTO,
&UpmGsettings::idlePowerPolicyAutoChanged);
&UpmGsettings::idlePowerPolicyAutoChanged,
QVariant::Bool);
addConfigMonitor(GSETTINGS_KEY_BUTTON_LID_AC,
&UpmGsettings::buttonLidAcChanged);
&UpmGsettings::buttonLidAcChanged,
QVariant::String);
addConfigMonitor(GSETTINGS_KEY_BUTTON_LID_BATTERY,
&UpmGsettings::buttonLidBatteryChanged);
&UpmGsettings::buttonLidBatteryChanged,
QVariant::String);
addConfigMonitor(GSETTINGS_KEY_PERCENTAGE_LOW,
&UpmGsettings::percentageLowChanged);
&UpmGsettings::percentageLowChanged,
QVariant::Int);
//极低电量百分比
addConfigMonitor(GSETTINGS_KEY_PERCENTAGE_ACTION,
&UpmGsettings::percentageActionChanged);
&UpmGsettings::percentageActionChanged,
QVariant::Int);
//极低电量操作
addConfigMonitor(GSETTINGS_KEY_ACTION_CRITICAL_BATTERY,
&UpmGsettings::actionCriticalBatteryChanged);
&UpmGsettings::actionCriticalBatteryChanged,
QVariant::String);
addConfigMonitor(GSETTINGS_KEY_BATTERY_SAVE_SWITCH,
&UpmGsettings::batterySaveSwitchChanged);
&UpmGsettings::batterySaveSwitchChanged,
QVariant::Bool);
addConfigMonitor(GSETTINGS_KEY_LOW_BATTERY_AUTO_SAVE,
&UpmGsettings::lowBatteryAutoSaveChanged);
&UpmGsettings::lowBatteryAutoSaveChanged,
QVariant::Bool);
addConfigMonitor(GSETTINGS_KEY_BATTERY_SAVE_REDUCE_BRIGHTNESS,
&UpmGsettings::batterySaveReduceBrightnessChanged);
&UpmGsettings::batterySaveReduceBrightnessChanged,
QVariant::Bool);
addConfigMonitor(GSETTINGS_KEY_LOW_BATTERY_AUTO_SOFT_FREEZE_MODE,
&UpmGsettings::lowBatteryAutoSoftFreezeModeChanged);
&UpmGsettings::lowBatteryAutoSoftFreezeModeChanged,
QVariant::Bool);
addConfigMonitor(GSETTINGS_KEY_BRIGHTNESS_AC,
&UpmGsettings::brightnessAcChanged);
&UpmGsettings::brightnessAcChanged,
QVariant::Int);
addConfigMonitor(GSETTINGS_KEY_RESOURCE_LIMIT_ENABLED,
&UpmGsettings::resourceLimitEnabledChanged);
&UpmGsettings::resourceLimitEnabledChanged,
QVariant::Bool);
addConfigMonitor(GSETTINGS_KEY_SOFT_FREEZE_MODE_ENABLED,
&UpmGsettings::softFreezeModeEnabledChanged);
&UpmGsettings::softFreezeModeEnabledChanged,
QVariant::Bool);
}

View File

@ -93,9 +93,10 @@ private:
QStringList m_allSoftFreezeModeKey;
QHash<QString, QVariant> m_qHashValue;
QHash<QString, pSignalFun> m_qHashSignalsFuns;
QHash<QString, QVariant::Type> m_qHashValueType;
void initGsettingsConfig();
void addConfigMonitor(const QString &configName, pSignalFun signalFun);
void addConfigMonitor(const QString &configName, pSignalFun signalFun, QVariant::Type type);
signals:
void powerPolicyAcChanged(QVariant);
@ -134,6 +135,7 @@ private slots:
public:
void setGsettingsConfig(const QString &configName, QVariant value);
bool getGsettingsConfig(const QString &configName, QVariant &value);
QVariant::Type getValueType(const QString &configName);
};
#endif // UPM_GSETTINGS_H

View File

@ -91,12 +91,7 @@ void UpmDaemon::dealSystemConfigChanged(const QString userName, const QString ke
return ;
}
QVariant currentValue;
if (false == UpmGsettings::self()->getGsettingsConfig(key, currentValue)) {
qInfo() << "without this system config";
return ;
}
QVariant::Type type = currentValue.type();
QVariant::Type type = UpmGsettings::self()->getValueType(key);
switch (type) {
case QVariant::Int:
UpmGsettings::self()->setGsettingsConfig(key, value.toInt());

View File

@ -182,9 +182,8 @@ void SysdbusRegister::SetAspmPolicy(const int policy)
void SysdbusRegister::SetSystemConfig(const QString userName, const QString key, const QString value)
{
m_powerConfig->updatePowerConfig(key, value);
if (m_userMap.size() > 1) {
emit SystemConfigChanged(userName, key, value);
}
emit SystemConfigChanged(userName, key, value);
}
QString SysdbusRegister::GetSystemConfig(const QString key)