mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 18:24:30 -04:00
Refactor SavedSearchQueries to use the new db API
This commit is contained in:
parent
abcf435b2b
commit
bd000c52f4
@ -37,55 +37,52 @@ class SavedSearchQueries(object):
|
|||||||
def __init__(self, db, _opt_name):
|
def __init__(self, db, _opt_name):
|
||||||
self.opt_name = _opt_name
|
self.opt_name = _opt_name
|
||||||
if db is not None:
|
if db is not None:
|
||||||
self.queries = db.prefs.get(self.opt_name, {})
|
db = db.new_api
|
||||||
|
self._db = weakref.ref(db)
|
||||||
|
self.queries = db.pref(self.opt_name, {})
|
||||||
else:
|
else:
|
||||||
self.queries = {}
|
self.queries = {}
|
||||||
try:
|
|
||||||
self._db = weakref.ref(db)
|
|
||||||
except TypeError:
|
|
||||||
# db could be None
|
|
||||||
self._db = lambda : None
|
self._db = lambda : None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def db(self):
|
def db(self):
|
||||||
return self._db()
|
return self._db()
|
||||||
|
|
||||||
|
def save_queries(self):
|
||||||
|
db = self.db
|
||||||
|
if db is not None:
|
||||||
|
db.set_pref(self.opt_name, self.queries)
|
||||||
|
|
||||||
def force_unicode(self, x):
|
def force_unicode(self, x):
|
||||||
if not isinstance(x, unicode):
|
if not isinstance(x, unicode):
|
||||||
x = x.decode(preferred_encoding, 'replace')
|
x = x.decode(preferred_encoding, 'replace')
|
||||||
return x
|
return x
|
||||||
|
|
||||||
def add(self, name, value):
|
def add(self, name, value):
|
||||||
db = self.db
|
self.queries[self.force_unicode(name)] = self.force_unicode(value).strip()
|
||||||
if db is not None:
|
self.save_queries()
|
||||||
self.queries[self.force_unicode(name)] = self.force_unicode(value).strip()
|
|
||||||
db.prefs[self.opt_name] = self.queries
|
|
||||||
|
|
||||||
def lookup(self, name):
|
def lookup(self, name):
|
||||||
return self.queries.get(self.force_unicode(name), None)
|
return self.queries.get(self.force_unicode(name), None)
|
||||||
|
|
||||||
def delete(self, name):
|
def delete(self, name):
|
||||||
db = self.db
|
self.queries.pop(self.force_unicode(name), False)
|
||||||
if db is not None:
|
self.save_queries()
|
||||||
self.queries.pop(self.force_unicode(name), False)
|
|
||||||
db.prefs[self.opt_name] = self.queries
|
|
||||||
|
|
||||||
def rename(self, old_name, new_name):
|
def rename(self, old_name, new_name):
|
||||||
db = self.db
|
self.queries[self.force_unicode(new_name)] = \
|
||||||
if db is not None:
|
self.queries.get(self.force_unicode(old_name), None)
|
||||||
self.queries[self.force_unicode(new_name)] = \
|
self.queries.pop(self.force_unicode(old_name), False)
|
||||||
self.queries.get(self.force_unicode(old_name), None)
|
self.save_queries()
|
||||||
self.queries.pop(self.force_unicode(old_name), False)
|
|
||||||
db.prefs[self.opt_name] = self.queries
|
|
||||||
|
|
||||||
def set_all(self, smap):
|
def set_all(self, smap):
|
||||||
db = self.db
|
self.queries = smap
|
||||||
if db is not None:
|
self.save_queries()
|
||||||
self.queries = db.prefs[self.opt_name] = smap
|
|
||||||
|
|
||||||
def names(self):
|
def names(self):
|
||||||
return sorted(self.queries.keys(),key=sort_key)
|
return sorted(self.queries.keys(),key=sort_key)
|
||||||
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
Create a global instance of the saved searches. It is global so that the searches
|
Create a global instance of the saved searches. It is global so that the searches
|
||||||
are common across all instances of the parser (devices, library, etc).
|
are common across all instances of the parser (devices, library, etc).
|
||||||
@ -106,6 +103,7 @@ def saved_searches():
|
|||||||
def global_lookup_saved_search(name):
|
def global_lookup_saved_search(name):
|
||||||
return ss.lookup(name)
|
return ss.lookup(name)
|
||||||
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
Parse a search expression into a series of potentially recursive operations.
|
Parse a search expression into a series of potentially recursive operations.
|
||||||
|
|
||||||
@ -811,8 +809,8 @@ def main(args=sys.argv):
|
|||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
sys.exit(main())
|
sys.exit(main())
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user