diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index 84f5a1a2c9..f1f76eb89b 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -522,6 +522,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, # {{{ def shutdown(self, write_settings=True): + self.library_view.model().db.clean() for action in self.iactions.values(): if not action.shutting_down(): return diff --git a/src/calibre/library/cli.py b/src/calibre/library/cli.py index ea42fe5998..c17911cc3a 100644 --- a/src/calibre/library/cli.py +++ b/src/calibre/library/cli.py @@ -324,6 +324,7 @@ def do_remove(db, ids): db.delete_book(y) send_message() + db.clean() def remove_option_parser(): return get_parser(_( @@ -449,6 +450,7 @@ def command_show_metadata(args, dbpath): def do_set_metadata(db, id, stream): mi = OPF(stream) db.set_metadata(id, mi) + db.clean() do_show_metadata(db, id, False) send_message() diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index 93c42ea342..23ec60d320 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -332,7 +332,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): for prop in ('author_sort', 'authors', 'comment', 'comments', 'isbn', 'publisher', 'rating', 'series', 'series_index', 'tags', - 'title', 'timestamp', 'uuid', 'pubdate'): + 'title', 'timestamp', 'uuid', 'pubdate', 'ondevice'): setattr(self, prop, functools.partial(get_property, loc=self.FIELD_MAP['comments' if prop == 'comment' else prop])) setattr(self, 'title_sort', functools.partial(get_property,