Skip to content

Commit

Permalink
Save settings between restarts
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexIII committed Apr 3, 2023
1 parent 30aab48 commit a0e8adc
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 6 deletions.
26 changes: 21 additions & 5 deletions GUI/AppGUI.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ class ThermalMode(Enum):
Custom = 'Custom'
Balanced = 'Balanced'
G_Mode = 'G_Mode'

class SettingsKey(Enum):
Mode = "app/mode"
CPUFanSpeed = "app/fan/cpu/speed"
GPUFanSpeed = "app/fan/gpu/speed"

def errorExit(message: str, message2: str = None) -> None:
alert("Oh-oh", message, message2, QtWidgets.QMessageBox.Icon.Critical)
Expand All @@ -48,7 +53,7 @@ class TCC_GUI(QtWidgets.QWidget):
FAILSAFE_CPU_TEMP = 95
FAILSAFE_GPU_TEMP = 85
APP_NAME = "Thermal Control Center for Dell G15 5515"
APP_VERSION = "1.1.0"
APP_VERSION = "1.2.0"
APP_DESCRIPTION = "This app is an open-source replacement for Alienware Control Center "
APP_URL = "github.com/AlexIII/tcc-g15"

Expand All @@ -59,6 +64,8 @@ def __init__(self, awcc: AWCCThermal):
super().__init__()
self._awcc = awcc

self.settings = QtCore.QSettings(self.APP_URL, "AWCC")

# Set main window props
self.setFixedSize(600, 0)
self.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.WindowMinimizeButtonHint | QtCore.Qt.WindowCloseButtonHint)
Expand Down Expand Up @@ -139,10 +146,6 @@ def onModeChange(val: str):
print(f'Set mode {val}: ' + ('ok' if res else 'fail'))
if not res:
errorExit(f"Failed to set mode {val}", "Program is terminated")
self._thermalGPU.blockSignals(True)
self._thermalGPU.setSpeedSlider()
self._thermalCPU.setSpeedSlider()
self._thermalGPU.blockSignals(False)
updateFanSpeed()

self._modeSwitch.setChecked(ThermalMode.Balanced.value)
Expand Down Expand Up @@ -181,7 +184,20 @@ def updateOutput():
self._thermalGPU.speedSliderChanged(updateFanSpeed)
self._thermalCPU.speedSliderChanged(updateFanSpeed)

# Restore saved settings
savedMode = self.settings.value(SettingsKey.Mode.value)
if savedMode: self._modeSwitch.setChecked(savedMode)
savedSpeed = self.settings.value(SettingsKey.CPUFanSpeed.value)
self._thermalCPU.setSpeedSlider(savedSpeed)
savedSpeed = self.settings.value(SettingsKey.GPUFanSpeed.value)
self._thermalGPU.setSpeedSlider(savedSpeed)

def closeEvent(self, event):
# Save settings
self.settings.setValue(SettingsKey.Mode.value, self._modeSwitch.getChecked())
self.settings.setValue(SettingsKey.CPUFanSpeed.value, self._thermalCPU.getSpeedSlider())
self.settings.setValue(SettingsKey.GPUFanSpeed.value, self._thermalGPU.getSpeedSlider())
# Set mode to Balanced before exit
self._periodicTask.stop()
prevMode = self._modeSwitch.getChecked()
self._modeSwitch.setChecked(ThermalMode.Balanced.value)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ If this alternative works out for you, you can safely remove from your PC:
I'll implement these things if the project receives sufficient number of stars*

- ✔️ Minimize to tray (10x ⭐)
- Save settings between restarts (20x ⭐)
- ✔️ Save settings between restarts (20x ⭐)
- Autorun on system startup option (30x ⭐)
- "Target temperature mode" - automatically control the fans to maintain user-specified GPU/CPU temperature (40x ⭐)
- Proper Windows installer (50x ⭐)
Expand Down

0 comments on commit a0e8adc

Please sign in to comment.