From cb890fc374983cb6c64b3819cfa6d91a92ba02d0 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 12 Jan 2009 08:04:19 -0800 Subject: [PATCH] IGN:Stability enhancements --- src/calibre/gui2/main.py | 3 +++ src/calibre/library/database2.py | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index 97ad934eeb..1bb252e97d 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -889,6 +889,9 @@ class Main(MainWindow, Ui_MainWindow): ids = [id for id in ids if self.library_view.model().db.has_id(id)] files = [self.library_view.model().db.format(id, prefs['output_format'], index_is_id=True, as_file=True) for id in ids] files = [f for f in files if f is not None] + if not files: + dynamic.set('news_to_be_synced', set([])) + return metadata = self.library_view.model().get_metadata(ids, rows_are_ids=True) names = [] for mi in metadata: diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index d3cefa47fa..e39736baf6 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -217,7 +217,11 @@ class ResultCache(SearchQueryParser): return self.index(id) def has_id(self, id): - return self._data[id] is not None + try: + return self._data[id] is not None + except IndexError: + pass + return False def refresh_ids(self, conn, ids): for id in ids: