|
|
|
@ -219,6 +219,7 @@ options_templates.update(options_section(('ui', "User interface"), {
|
|
|
|
class Options:
|
|
|
|
class Options:
|
|
|
|
data = None
|
|
|
|
data = None
|
|
|
|
data_labels = options_templates
|
|
|
|
data_labels = options_templates
|
|
|
|
|
|
|
|
typemap = {int: float}
|
|
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
def __init__(self):
|
|
|
|
self.data = {k: v.default for k, v in self.data_labels.items()}
|
|
|
|
self.data = {k: v.default for k, v in self.data_labels.items()}
|
|
|
|
@ -244,25 +245,23 @@ class Options:
|
|
|
|
with open(filename, "w", encoding="utf8") as file:
|
|
|
|
with open(filename, "w", encoding="utf8") as file:
|
|
|
|
json.dump(self.data, file)
|
|
|
|
json.dump(self.data, file)
|
|
|
|
|
|
|
|
|
|
|
|
def load(self, filename):
|
|
|
|
def same_type(self, x, y):
|
|
|
|
with open(filename, "r", encoding="utf8") as file:
|
|
|
|
if x is None or y is None:
|
|
|
|
self.data = json.load(file)
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
typemap = {int: float}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def same_type(x, y):
|
|
|
|
type_x = self.typemap.get(type(x), type(x))
|
|
|
|
if x is None or y is None:
|
|
|
|
type_y = self.typemap.get(type(y), type(y))
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
type_x = typemap.get(type(x), type(x))
|
|
|
|
return type_x == type_y
|
|
|
|
type_y = typemap.get(type(y), type(y))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return type_x == type_y
|
|
|
|
def load(self, filename):
|
|
|
|
|
|
|
|
with open(filename, "r", encoding="utf8") as file:
|
|
|
|
|
|
|
|
self.data = json.load(file)
|
|
|
|
|
|
|
|
|
|
|
|
bad_settings = 0
|
|
|
|
bad_settings = 0
|
|
|
|
for k, v in self.data.items():
|
|
|
|
for k, v in self.data.items():
|
|
|
|
info = self.data_labels.get(k, None)
|
|
|
|
info = self.data_labels.get(k, None)
|
|
|
|
if info is not None and not same_type(info.default, v):
|
|
|
|
if info is not None and not self.same_type(info.default, v):
|
|
|
|
print(f"Warning: bad setting value: {k}: {v} ({type(v).__name__}; expected {type(info.default).__name__})", file=sys.stderr)
|
|
|
|
print(f"Warning: bad setting value: {k}: {v} ({type(v).__name__}; expected {type(info.default).__name__})", file=sys.stderr)
|
|
|
|
bad_settings += 1
|
|
|
|
bad_settings += 1
|
|
|
|
|
|
|
|
|
|
|
|
|