From 7358ba98c385c27ba4cdce554a7a40b3aa7b247e Mon Sep 17 00:00:00 2001 From: Ahmed AbdelHamid Date: Sun, 28 Dec 2025 17:53:46 +0200 Subject: [PATCH 1/2] fix loading fan mode advances after restart and wake --- src/operate.cpp | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/operate.cpp b/src/operate.cpp index ecaacce..38d50bd 100644 --- a/src/operate.cpp +++ b/src/operate.cpp @@ -391,6 +391,7 @@ void Operate::setUserMode(user_mode userMode) const { fan_mode fanMode = fan_mode::auto_fan_mode; bool superBattery = false; QString userModeStr; + Settings s; switch (userMode) { case user_mode::balanced_mode: @@ -413,6 +414,9 @@ void Operate::setUserMode(user_mode userMode) const { return; } + if (s.isValueExist(settingsGroup + "fanModeAdvanced") && s.getValue(settingsGroup + "fanModeAdvanced").toBool()) + fanMode = fan_mode::advanced_fan_mode; + if (msiEcHelper.hasShiftMode()) { msiEcHelper.setShiftMode(shiftMode); } @@ -540,21 +544,35 @@ void Operate::loadSettings() const { setUsbPowerShareState(s.getValue(settingsGroup + "UsbPowerShare").toBool()); if (s.isValueExist(settingsGroup + "fan1SpeedSettings")) - setFan1SpeedSettings(s.getValueVector(settingsGroup + "fan1SpeedSettings")); + setFan1SpeedSettings(s.getValueVector(settingsGroup + "fan1SpeedSettings")); if (s.isValueExist(settingsGroup + "fan2SpeedSettings")) - setFan2SpeedSettings(s.getValueVector(settingsGroup + "fan2SpeedSettings")); + setFan2SpeedSettings(s.getValueVector(settingsGroup + "fan2SpeedSettings")); if (s.isValueExist(settingsGroup + "fan1TempSettings")) - setFan1TempSettings(s.getValueVector(settingsGroup + "fan1TempSettings")); + setFan1TempSettings(s.getValueVector(settingsGroup + "fan1TempSettings")); if (s.isValueExist(settingsGroup + "fan2TempSettings")) - setFan2TempSettings(s.getValueVector(settingsGroup + "fan2TempSettings")); + setFan2TempSettings(s.getValueVector(settingsGroup + "fan2TempSettings")); if (s.isValueExist(settingsGroup + "fanModeAdvanced")) setFanModeAdvanced(s.getValue(settingsGroup + "fanModeAdvanced").toBool()); } void Operate::handleWakeEvent() const { Settings s; - if (s.isValueExist(settingsGroup + "fanModeAdvanced")) + + // refresh the ec data cache after wakeup + std::ignore = updateEcData(); + + if (s.isValueExist(settingsGroup + "fanModeAdvanced")) { setFanModeAdvanced(s.getValue(settingsGroup + "fanModeAdvanced").toBool()); + + if (s.isValueExist(settingsGroup + "fan1SpeedSettings")) + setFan1SpeedSettings(s.getValueVector(settingsGroup + "fan1SpeedSettings")); + if (s.isValueExist(settingsGroup + "fan2SpeedSettings")) + setFan2SpeedSettings(s.getValueVector(settingsGroup + "fan2SpeedSettings")); + if (s.isValueExist(settingsGroup + "fan1TempSettings")) + setFan1TempSettings(s.getValueVector(settingsGroup + "fan1TempSettings")); + if (s.isValueExist(settingsGroup + "fan2TempSettings")) + setFan2TempSettings(s.getValueVector(settingsGroup + "fan2TempSettings")); + } } int Operate::detectFan1Address() const { From c55fa7fa6ef1052f3ab7703033054099964474b3 Mon Sep 17 00:00:00 2001 From: Ahmed AbdelHamid Date: Sun, 28 Dec 2025 18:07:40 +0200 Subject: [PATCH 2/2] fix wrongly broken indentation --- src/operate.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/operate.cpp b/src/operate.cpp index 38d50bd..a2a0917 100644 --- a/src/operate.cpp +++ b/src/operate.cpp @@ -544,13 +544,13 @@ void Operate::loadSettings() const { setUsbPowerShareState(s.getValue(settingsGroup + "UsbPowerShare").toBool()); if (s.isValueExist(settingsGroup + "fan1SpeedSettings")) - setFan1SpeedSettings(s.getValueVector(settingsGroup + "fan1SpeedSettings")); + setFan1SpeedSettings(s.getValueVector(settingsGroup + "fan1SpeedSettings")); if (s.isValueExist(settingsGroup + "fan2SpeedSettings")) - setFan2SpeedSettings(s.getValueVector(settingsGroup + "fan2SpeedSettings")); + setFan2SpeedSettings(s.getValueVector(settingsGroup + "fan2SpeedSettings")); if (s.isValueExist(settingsGroup + "fan1TempSettings")) - setFan1TempSettings(s.getValueVector(settingsGroup + "fan1TempSettings")); + setFan1TempSettings(s.getValueVector(settingsGroup + "fan1TempSettings")); if (s.isValueExist(settingsGroup + "fan2TempSettings")) - setFan2TempSettings(s.getValueVector(settingsGroup + "fan2TempSettings")); + setFan2TempSettings(s.getValueVector(settingsGroup + "fan2TempSettings")); if (s.isValueExist(settingsGroup + "fanModeAdvanced")) setFanModeAdvanced(s.getValue(settingsGroup + "fanModeAdvanced").toBool()); }