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
|
||||
|
||||
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):
|
||||
if defval is undefined:
|
||||
defval = session_defaults()[key]
|
||||
defval = self.defval(key)
|
||||
return SessionData.get(self, (self.prefix + key), defval)
|
||||
|
||||
def get_library_option(self, library_id, key, defval):
|
||||
@ -384,7 +387,7 @@ class UserSessionData(SessionData):
|
||||
return self.get(key, defval)
|
||||
lkey = key + '-||-' + library_id
|
||||
if defval is undefined:
|
||||
defval = session_defaults()[key]
|
||||
defval = self.defval(key)
|
||||
return self.get(lkey, defval)
|
||||
|
||||
def set(self, key, value):
|
||||
|
@ -157,11 +157,17 @@ def manifest_received(key, initial_position, pathtoebook, highlights, book_url,
|
||||
xhr.error_html or None)
|
||||
|
||||
|
||||
def clone(x):
|
||||
if x:
|
||||
x = window.structuredClone(x)
|
||||
return x
|
||||
|
||||
|
||||
class SessionData:
|
||||
|
||||
def __init__(self, prefs):
|
||||
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):
|
||||
ans = self.data[key]
|
||||
@ -173,7 +179,7 @@ class SessionData:
|
||||
|
||||
def set(self, key, val):
|
||||
if val is None:
|
||||
self.data[key] = session_defaults()[key]
|
||||
self.data[key] = clone(session_defaults()[key])
|
||||
else:
|
||||
self.data[key] = val
|
||||
to_python.set_session_data(key, val)
|
||||
@ -183,14 +189,14 @@ class SessionData:
|
||||
for key in Object.keys(changes):
|
||||
val = changes[key]
|
||||
if val is None:
|
||||
self.data[key] = defaults[key]
|
||||
self.data[key] = clone(defaults[key])
|
||||
else:
|
||||
self.data[key] = val
|
||||
to_python.set_session_data(changes, None)
|
||||
|
||||
def clear(self):
|
||||
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)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user