import/export/reset settings

This commit is contained in:
dries.k
2022-04-04 15:44:46 +02:00
parent c591ebf09c
commit b622a0fe58
11 changed files with 252 additions and 80 deletions

View File

@@ -1,3 +1,4 @@
import pickle
from typing import Any
from .default_settings import DEFAULT_SETTINGS
@@ -8,6 +9,32 @@ 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)
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))
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"
)
}
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])