From 49c412b02380b06082b19fb5b7260338a59960a8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 16 Mar 2015 17:46:52 +0530 Subject: [PATCH] Replace thread unsafe use of old db.prefs.set API --- src/calibre/gui2/device.py | 2 +- src/calibre/gui2/library/views.py | 2 +- src/calibre/gui2/preferences/plugboard.py | 2 +- src/calibre/gui2/preferences/search.py | 12 ++++++------ src/calibre/gui2/preferences/template_functions.py | 2 +- src/calibre/gui2/search_restriction_mixin.py | 4 ++-- src/calibre/gui2/tag_browser/model.py | 10 +++++----- src/calibre/gui2/tag_browser/ui.py | 8 ++++---- src/calibre/gui2/tag_browser/view.py | 4 ++-- 9 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index fe3da71b72..cfdc1c37e0 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -1360,7 +1360,7 @@ class DeviceMixin(object): # {{{ def fset(self, ids): try: - self.library_view.model().db.prefs.set('news_to_be_synced', + self.library_view.model().db.new_api.set_pref('news_to_be_synced', list(ids)) except: import traceback diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index 866faf6f8c..ddc7cf5e4a 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -489,7 +489,7 @@ class BooksView(QTableView): # {{{ db = getattr(self.model(), 'db', None) name = unicode(self.objectName()) if name and db is not None: - db.prefs.set(name + ' books view state', state) + db.new_api.set_pref(name + ' books view state', state) def save_state(self): # Only save if we have been initialized (set_database called) diff --git a/src/calibre/gui2/preferences/plugboard.py b/src/calibre/gui2/preferences/plugboard.py index 6c367eb0c5..9c287787fc 100644 --- a/src/calibre/gui2/preferences/plugboard.py +++ b/src/calibre/gui2/preferences/plugboard.py @@ -392,7 +392,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self.changed_signal.emit() def commit(self): - self.db.prefs.set('plugboards', self.current_plugboards) + self.db.new_api.set_pref('plugboards', self.current_plugboards) return ConfigWidgetBase.commit(self) def refresh_gui(self, gui): diff --git a/src/calibre/gui2/preferences/search.py b/src/calibre/gui2/preferences/search.py index 5d889ad0f2..8e6da039f5 100644 --- a/src/calibre/gui2/preferences/search.py +++ b/src/calibre/gui2/preferences/search.py @@ -96,7 +96,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self.gst_changed = False if db.prefs.get('grouped_search_make_user_categories', None) is None: - db.prefs.set('grouped_search_make_user_categories', []) + db.new_api.set_pref('grouped_search_make_user_categories', []) r('grouped_search_make_user_categories', db.prefs, setting=CommaSeparatedList) self.muc_changed = False self.opt_grouped_search_make_user_categories.lineEdit().editingFinished.connect( @@ -212,15 +212,15 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): def commit(self): if self.gst_changed: - self.db.prefs.set('grouped_search_terms', self.gst) + self.db.new_api.set_pref('grouped_search_terms', self.gst) self.db.field_metadata.add_grouped_search_terms(self.gst) - self.db.prefs.set('similar_authors_search_key', + self.db.new_api.set_pref('similar_authors_search_key', unicode(self.similar_authors_search_key.currentText())) - self.db.prefs.set('similar_tags_search_key', + self.db.new_api.set_pref('similar_tags_search_key', unicode(self.similar_tags_search_key.currentText())) - self.db.prefs.set('similar_series_search_key', + self.db.new_api.set_pref('similar_series_search_key', unicode(self.similar_series_search_key.currentText())) - self.db.prefs.set('similar_publisher_search_key', + self.db.new_api.set_pref('similar_publisher_search_key', unicode(self.similar_publisher_search_key.currentText())) return ConfigWidgetBase.commit(self) diff --git a/src/calibre/gui2/preferences/template_functions.py b/src/calibre/gui2/preferences/template_functions.py index 7c3809dcab..613d695500 100644 --- a/src/calibre/gui2/preferences/template_functions.py +++ b/src/calibre/gui2/preferences/template_functions.py @@ -223,7 +223,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): for name, cls in self.funcs.iteritems(): if name not in self.builtins: pref_value.append((cls.name, cls.doc, cls.arg_count, cls.program_text)) - self.db.prefs.set('user_template_functions', pref_value) + self.db.new_api.set_pref('user_template_functions', pref_value) load_user_template_functions(self.db.library_id, pref_value) return False diff --git a/src/calibre/gui2/search_restriction_mixin.py b/src/calibre/gui2/search_restriction_mixin.py index 4273d7c6d7..8a7a04ad40 100644 --- a/src/calibre/gui2/search_restriction_mixin.py +++ b/src/calibre/gui2/search_restriction_mixin.py @@ -346,7 +346,7 @@ class SearchRestrictionMixin(object): def add_virtual_library(self, db, name, search): virt_libs = db.prefs.get('virtual_libraries', {}) virt_libs[name] = search - db.prefs.set('virtual_libraries', virt_libs) + db.new_api.set_pref('virtual_libraries', virt_libs) def do_create_edit(self, name=None): db = self.library_view.model().db @@ -490,7 +490,7 @@ class SearchRestrictionMixin(object): db = self.library_view.model().db virt_libs = db.prefs.get('virtual_libraries', {}) virt_libs.pop(name, None) - db.prefs.set('virtual_libraries', virt_libs) + db.new_api.set_pref('virtual_libraries', virt_libs) if reapply and db.data.get_base_restriction_name() == name: self.apply_virtual_library('') self.rebuild_vl_tabs() diff --git a/src/calibre/gui2/tag_browser/model.py b/src/calibre/gui2/tag_browser/model.py index 85998307d6..4b43c8d6cd 100644 --- a/src/calibre/gui2/tag_browser/model.py +++ b/src/calibre/gui2/tag_browser/model.py @@ -732,7 +732,7 @@ class TagsModel(QAbstractItemModel): # {{{ is_uc, dest_key, self.get_node(idx)) - self.db.prefs.set('user_categories', user_cats) + self.db.new_api.set_pref('user_categories', user_cats) self.refresh_required.emit() return True @@ -801,7 +801,7 @@ class TagsModel(QAbstractItemModel): # {{{ cat_contents |= set([(v, column) for v in value]) categories[on_node.category_key[1:]] = [[v, c, 0] for v,c in cat_contents] - self.db.prefs.set('user_categories', categories) + self.db.new_api.set_pref('user_categories', categories) self.refresh_required.emit() def handle_drop(self, on_node, ids): @@ -1072,7 +1072,7 @@ class TagsModel(QAbstractItemModel): # {{{ else: new_contents.append(tup) user_cats[k] = new_contents - self.db.prefs.set('user_categories', user_cats) + self.db.new_api.set_pref('user_categories', user_cats) def delete_item_from_all_user_categories(self, item_name, item_category): ''' @@ -1084,7 +1084,7 @@ class TagsModel(QAbstractItemModel): # {{{ for cat in user_cats.keys(): self.delete_item_from_user_category(cat, item_name, item_category, user_categories=user_cats) - self.db.prefs.set('user_categories', user_cats) + self.db.new_api.set_pref('user_categories', user_cats) def delete_item_from_user_category(self, category, item_name, item_category, user_categories=None): @@ -1098,7 +1098,7 @@ class TagsModel(QAbstractItemModel): # {{{ new_contents.append(tup) user_cats[category] = new_contents if user_categories is None: - self.db.prefs.set('user_categories', user_cats) + self.db.new_api.set_pref('user_categories', user_cats) def headerData(self, *args): return None diff --git a/src/calibre/gui2/tag_browser/ui.py b/src/calibre/gui2/tag_browser/ui.py index 680380a756..1f05a7ba81 100644 --- a/src/calibre/gui2/tag_browser/ui.py +++ b/src/calibre/gui2/tag_browser/ui.py @@ -94,7 +94,7 @@ class TagBrowserMixin(object): # {{{ n = new_name + unicode(i) # Add the new category user_cats[new_cat] = [] - db.prefs.set('user_categories', user_cats) + db.new_api.set_pref('user_categories', user_cats) self.tags_view.recount() m = self.tags_view.model() idx = m.index_for_path(m.find_category_node('@' + new_cat)) @@ -110,7 +110,7 @@ class TagBrowserMixin(object): # {{{ db = self.library_view.model().db d = TagCategories(self, db, on_category) if d.exec_() == d.Accepted: - db.prefs.set('user_categories', d.categories) + db.new_api.set_pref('user_categories', d.categories) db.field_metadata.remove_user_categories() for k in d.categories: db.field_metadata.add_user_category('@' + k, k) @@ -147,7 +147,7 @@ class TagBrowserMixin(object): # {{{ del user_cats[k] elif k.startswith(category_name + '.'): del user_cats[k] - db.prefs.set('user_categories', user_cats) + db.new_api.set_pref('user_categories', user_cats) self.tags_view.recount() def do_del_item_from_user_cat(self, user_cat, item_name, item_category): @@ -192,7 +192,7 @@ class TagBrowserMixin(object): # {{{ add_it = False if add_it: user_cats[dest_category].append([src_name, src_category, 0]) - db.prefs.set('user_categories', user_cats) + db.new_api.set_pref('user_categories', user_cats) self.tags_view.recount() def do_tags_list_edit(self, tag, category): diff --git a/src/calibre/gui2/tag_browser/view.py b/src/calibre/gui2/tag_browser/view.py index 48f0e78ebe..715efb5ce6 100644 --- a/src/calibre/gui2/tag_browser/view.py +++ b/src/calibre/gui2/tag_browser/view.py @@ -208,7 +208,7 @@ class TagsView(QTreeView): # {{{ def user_categories_edited(self, user_cats, nkey): state_map = self.get_state()[1] - self.db.prefs.set('user_categories', user_cats) + self.db.new_api.set_pref('user_categories', user_cats) self._model.rebuild_node_tree(state_map=state_map) p = self._model.find_category_node('@'+nkey) self.show_item_at_path(p) @@ -408,7 +408,7 @@ class TagsView(QTreeView): # {{{ gprefs['tags_browser_partition_method'] = category elif action == 'defaults': self.hidden_categories.clear() - self.db.prefs.set('tag_browser_hidden_categories', list(self.hidden_categories)) + self.db.new_api.set_pref('tag_browser_hidden_categories', list(self.hidden_categories)) if reset_filter_categories: self._model.set_categories_filter(None) self._model.rebuild_node_tree()