fix: checkboxes changes saved

This commit is contained in:
RedDeadDepresso
2024-07-24 03:46:19 +01:00
parent 7a6d956c48
commit 977f701eef
14 changed files with 388 additions and 309 deletions

View File

@@ -6,13 +6,16 @@ from qfluentwidgets import ToolButton, CheckBox
from qfluentwidgets.common.icon import FluentIcon as FIF
from app.common.signal_bus import signalBus
from app.common.config import cfg
class NavigationCheckBox(QWidget):
def __init__(self, text, settingGroup) -> None:
def __init__(self, text, configItem, settingGroup) -> None:
super().__init__()
self.layout = QHBoxLayout()
self.checkBox = CheckBox(text)
self.configItem = configItem
self.loadCheckState()
self.toolButton = ToolButton(FIF.SETTING)
self.settingGroup = settingGroup
@@ -25,10 +28,22 @@ class NavigationCheckBox(QWidget):
self.setLayout(self.layout)
def __connectSignalToSlot(self):
self.checkBox.stateChanged.connect(self.saveCheckState)
self.toolButton.clicked.connect(lambda: signalBus.switchToSettingGroup.emit(self.settingGroup))
signalBus.selectAllClicked.connect(lambda: self.checkBox.setChecked(True))
signalBus.clearAllClicked.connect(lambda: self.checkBox.setChecked(False))
def loadCheckState(self):
value = cfg.get(self.configItem)
if value:
self.checkBox.setCheckState(Qt.CheckState.Checked)
else:
self.checkBox.setCheckState(Qt.CheckState.Unchecked)
def saveCheckState(self, state):
isChecked = state > 0
cfg.set(self.configItem, isChecked)