mirror of
https://github.com/RedDeadDepresso/KKAFIO.git
synced 2025-12-22 09:20:02 +00:00
51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
# coding:utf-8
|
|
from PySide6.QtCore import Qt
|
|
from PySide6.QtWidgets import QHBoxLayout, QWidget
|
|
|
|
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, 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
|
|
|
|
self.__initLayout()
|
|
self.__connectSignalToSlot()
|
|
|
|
def __initLayout(self):
|
|
self.layout.addWidget(self.checkBox, alignment=Qt.AlignmentFlag.AlignLeft)
|
|
self.layout.addWidget(self.toolButton, alignment=Qt.AlignmentFlag.AlignRight)
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
|