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: