From 828f47995b29156df50a91165a3e65b2f908aeb2 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 17 Jul 2010 11:40:11 -0600 Subject: [PATCH] When switching libraries update news scheduler since custom recipes are stored in the db --- src/calibre/gui2/dialogs/scheduler.py | 1 + src/calibre/gui2/ui.py | 1 + src/calibre/web/feeds/recipes/model.py | 12 +++++++++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/dialogs/scheduler.py b/src/calibre/gui2/dialogs/scheduler.py index e3381049dd..6032a2db5e 100644 --- a/src/calibre/gui2/dialogs/scheduler.py +++ b/src/calibre/gui2/dialogs/scheduler.py @@ -235,6 +235,7 @@ class Scheduler(QObject): self.oldest = gconf['oldest_news'] self.oldest_timer.start(int(60 * 60000)) self.oldest_check() + self.database_changed = self.recipe_model.database_changed def oldest_check(self): if self.oldest > 0: diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index dd87514a13..72f7202504 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -394,6 +394,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ self.search.clear_to_help() self.book_details.reset_info() self.library_view.model().count_changed() + self.scheduler.database_changed(db) prefs['library_path'] = self.library_path def show_book_info(self, *args): diff --git a/src/calibre/web/feeds/recipes/model.py b/src/calibre/web/feeds/recipes/model.py index 5c355806fa..66c0167bb7 100644 --- a/src/calibre/web/feeds/recipes/model.py +++ b/src/calibre/web/feeds/recipes/model.py @@ -9,7 +9,7 @@ __docformat__ = 'restructuredtext en' import os, copy from PyQt4.Qt import QAbstractItemModel, QVariant, Qt, QColor, QFont, QIcon, \ - QModelIndex, SIGNAL + QModelIndex, SIGNAL, QMetaObject, pyqtSlot from calibre.utils.search_query_parser import SearchQueryParser from calibre.gui2 import NONE @@ -131,6 +131,16 @@ class RecipeModel(QAbstractItemModel, SearchQueryParser): self.scheduler_config = SchedulerConfig() self.do_refresh() + @pyqtSlot() + def do_database_change(self): + self.db = self.newdb + self.newdb = None + self.do_refresh() + + def database_changed(self, db): + self.newdb = db + QMetaObject.invokeMethod(self, 'do_database_change', Qt.QueuedConnection) + def get_builtin_recipe(self, urn, download=True): if download: try: