chore: make Settings singleton

This commit is contained in:
2023-09-21 11:43:41 +08:00
parent 7a0e476a1d
commit 5abf56ff83
2 changed files with 28 additions and 2 deletions

View File

@ -1,6 +1,8 @@
import sys
from PySide6.QtCore import QFileInfo, QSettings
from PySide6.QtCore import QFileInfo, QSettings, Signal
from .singleton import QObjectSingleton
__all__ = [
"DATABASE_URL",
@ -29,7 +31,9 @@ ANDREAL_FOLDER = "Andreal/AndrealFolder"
ANDREAL_EXECUTABLE = "Andreal/AndrealExecutable"
class Settings(QSettings):
class Settings(QSettings, metaclass=QObjectSingleton):
updated = Signal(str)
def __init__(self, parent=None):
super().__init__(
QFileInfo(sys.argv[0]).dir().absoluteFilePath("arcaea_offline.ini"),
@ -37,6 +41,10 @@ class Settings(QSettings):
parent,
)
def setValue(self, key: str, value) -> None:
super().setValue(key, value)
self.updated.emit(key)
def _strItem(self, key: str) -> str | None:
return self.value(key, None, str)