Files
gotify-tray-customized/gotify_tray/database/settings.py
2022-04-05 12:54:24 +02:00

42 lines
1.1 KiB
Python

import pickle
from typing import Any
from .default_settings import DEFAULT_SETTINGS
from PyQt6 import QtCore
class Settings(QtCore.QSettings):
def value(self, key: str, defaultValue: Any = None, type: Any = None) -> Any:
if type:
return super().value(
key, defaultValue=defaultValue or DEFAULT_SETTINGS.get(key), type=type
)
else:
return super().value(
key, defaultValue=defaultValue or DEFAULT_SETTINGS.get(key)
)
def export(self, path: str):
data = {
key: self.value(key)
for key in self.allKeys()
if not ( # skip settings that might not translate well between platforms
isinstance(self.value(key), QtCore.QByteArray)
or key == "settings/export_path"
or key == "message/last_id"
)
}
with open(path, "wb") as f:
pickle.dump(data, f)
def load(self, path: str):
self.clear()
with open(path, "rb") as f:
data = pickle.load(f)
for key in data:
self.setValue(key, data[key])