mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
use cloned values from defaults as current value
This commit is contained in:
parent
aeb0fdc473
commit
4fb575d8fe
@ -372,11 +372,14 @@ class UserSessionData(SessionData):
|
|||||||
self.echo_changes = True
|
self.echo_changes = True
|
||||||
|
|
||||||
def defval(self, key):
|
def defval(self, key):
|
||||||
return session_defaults()[key]
|
ans = session_defaults()[key]
|
||||||
|
if ans:
|
||||||
|
ans = window.structuredClone(ans)
|
||||||
|
return ans
|
||||||
|
|
||||||
def get(self, key, defval):
|
def get(self, key, defval):
|
||||||
if defval is undefined:
|
if defval is undefined:
|
||||||
defval = session_defaults()[key]
|
defval = self.defval(key)
|
||||||
return SessionData.get(self, (self.prefix + key), defval)
|
return SessionData.get(self, (self.prefix + key), defval)
|
||||||
|
|
||||||
def get_library_option(self, library_id, key, defval):
|
def get_library_option(self, library_id, key, defval):
|
||||||
@ -384,7 +387,7 @@ class UserSessionData(SessionData):
|
|||||||
return self.get(key, defval)
|
return self.get(key, defval)
|
||||||
lkey = key + '-||-' + library_id
|
lkey = key + '-||-' + library_id
|
||||||
if defval is undefined:
|
if defval is undefined:
|
||||||
defval = session_defaults()[key]
|
defval = self.defval(key)
|
||||||
return self.get(lkey, defval)
|
return self.get(lkey, defval)
|
||||||
|
|
||||||
def set(self, key, value):
|
def set(self, key, value):
|
||||||
|
@ -157,11 +157,17 @@ def manifest_received(key, initial_position, pathtoebook, highlights, book_url,
|
|||||||
xhr.error_html or None)
|
xhr.error_html or None)
|
||||||
|
|
||||||
|
|
||||||
|
def clone(x):
|
||||||
|
if x:
|
||||||
|
x = window.structuredClone(x)
|
||||||
|
return x
|
||||||
|
|
||||||
|
|
||||||
class SessionData:
|
class SessionData:
|
||||||
|
|
||||||
def __init__(self, prefs):
|
def __init__(self, prefs):
|
||||||
defaults = session_defaults()
|
defaults = session_defaults()
|
||||||
self.data = {k: defaults[k] if prefs[k] is undefined else prefs[k] for k in defaults}
|
self.data = {k: clone(defaults[k]) if prefs[k] is undefined else clone(prefs[k]) for k in defaults}
|
||||||
|
|
||||||
def get(self, key, defval):
|
def get(self, key, defval):
|
||||||
ans = self.data[key]
|
ans = self.data[key]
|
||||||
@ -173,7 +179,7 @@ class SessionData:
|
|||||||
|
|
||||||
def set(self, key, val):
|
def set(self, key, val):
|
||||||
if val is None:
|
if val is None:
|
||||||
self.data[key] = session_defaults()[key]
|
self.data[key] = clone(session_defaults()[key])
|
||||||
else:
|
else:
|
||||||
self.data[key] = val
|
self.data[key] = val
|
||||||
to_python.set_session_data(key, val)
|
to_python.set_session_data(key, val)
|
||||||
@ -183,14 +189,14 @@ class SessionData:
|
|||||||
for key in Object.keys(changes):
|
for key in Object.keys(changes):
|
||||||
val = changes[key]
|
val = changes[key]
|
||||||
if val is None:
|
if val is None:
|
||||||
self.data[key] = defaults[key]
|
self.data[key] = clone(defaults[key])
|
||||||
else:
|
else:
|
||||||
self.data[key] = val
|
self.data[key] = val
|
||||||
to_python.set_session_data(changes, None)
|
to_python.set_session_data(changes, None)
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
defaults = session_defaults()
|
defaults = session_defaults()
|
||||||
self.data = {k: defaults[k] for k in defaults}
|
self.data = {k: clone(defaults[k]) for k in defaults}
|
||||||
to_python.set_session_data('*', None)
|
to_python.set_session_data('*', None)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user