import/export/reset settings
This commit is contained in:
@@ -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])
|
||||
|
||||
Reference in New Issue
Block a user