45 lines
2.6 KiB
Python
45 lines
2.6 KiB
Python
from PyQt5.QtCore import QSettings
|
|
|
|
|
|
class SettingsManager:
|
|
def __init__(self, company="FinnSoft", application="KeyPresser"):
|
|
self.settings = QSettings(company, application)
|
|
|
|
def save_settings(self, widget):
|
|
"""Save current settings from the main widget"""
|
|
self.settings.setValue("spaceCheckBox", widget.spaceCheckBox.isChecked())
|
|
self.settings.setValue("spaceIntervalLineEdit", widget.spaceIntervalLineEdit.text())
|
|
self.settings.setValue("mouseCheckBox", widget.mouseCheckBox.isChecked())
|
|
self.settings.setValue("mouseIntervalLineEdit", widget.mouseIntervalLineEdit.text())
|
|
self.settings.setValue("modeIndex", widget.modeComboBox.currentIndex())
|
|
self.settings.setValue("attachThread", widget.attachThreadCheckBox.isChecked())
|
|
self.settings.setValue("hotkeyIndex", widget.hotkeyComboBox.currentIndex())
|
|
|
|
for i in range(10):
|
|
self.settings.setValue(f"keyCheckBox{i}", widget.keyCheckBoxes[i].isChecked())
|
|
self.settings.setValue(f"keyCombo{i}", widget.keyCombos[i].currentIndex())
|
|
self.settings.setValue(f"intervalLineEdit{i}", widget.intervalLineEdits[i].text())
|
|
|
|
def load_settings(self, widget):
|
|
"""Load saved settings into the main widget"""
|
|
widget.mouseCheckBox.setChecked(self.settings.value("mouseCheckBox", False, type=bool))
|
|
widget.mouseIntervalLineEdit.setText(self.settings.value("mouseIntervalLineEdit", "1000"))
|
|
widget.spaceCheckBox.setChecked(self.settings.value("spaceCheckBox", False, type=bool))
|
|
widget.spaceIntervalLineEdit.setText(self.settings.value("spaceIntervalLineEdit", "1000"))
|
|
|
|
mode_index = self.settings.value("modeIndex", 0, type=int)
|
|
if 0 <= mode_index < widget.modeComboBox.count():
|
|
widget.modeComboBox.setCurrentIndex(mode_index)
|
|
|
|
widget.attachThreadCheckBox.setChecked(self.settings.value("attachThread", True, type=bool))
|
|
|
|
for i in range(10):
|
|
widget.keyCheckBoxes[i].setChecked(self.settings.value(f"keyCheckBox{i}", False, type=bool))
|
|
combo_index = self.settings.value(f"keyCombo{i}", 0, type=int)
|
|
if 0 <= combo_index < widget.keyCombos[i].count():
|
|
widget.keyCombos[i].setCurrentIndex(combo_index)
|
|
widget.intervalLineEdits[i].setText(self.settings.value(f"intervalLineEdit{i}", "1000"))
|
|
|
|
hotkey_index = self.settings.value("hotkeyIndex", 47, type=int) # Default to Home key
|
|
if 0 <= hotkey_index < widget.hotkeyComboBox.count():
|
|
widget.hotkeyComboBox.setCurrentIndex(hotkey_index) |