diff --git a/src/calibre/gui2/preferences/misc.py b/src/calibre/gui2/preferences/misc.py index e749a6fb98..e72a1921ef 100644 --- a/src/calibre/gui2/preferences/misc.py +++ b/src/calibre/gui2/preferences/misc.py @@ -97,6 +97,9 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): db = self.gui.library_view.model().db ids = [id for id in db.data.iterallids()] db.dirtied(ids) + info_dialog(self, _('Backup metadata'), + _('Metadata will be backed up while calibre is running, at the ' + 'rate of 30 books per minute.'), show=True) def debug_device_detection(self, *args): from calibre.gui2.preferences.device_debug import DebugDevice diff --git a/src/calibre/gui2/preferences/misc.ui b/src/calibre/gui2/preferences/misc.ui index 492540901d..adf2a15c16 100644 --- a/src/calibre/gui2/preferences/misc.ui +++ b/src/calibre/gui2/preferences/misc.ui @@ -127,7 +127,7 @@ - Back up metadata of all books (while you are working) + Back up metadata of all books diff --git a/src/calibre/library/caches.py b/src/calibre/library/caches.py index 9d6f87324f..3e7f4d85ee 100644 --- a/src/calibre/library/caches.py +++ b/src/calibre/library/caches.py @@ -75,6 +75,7 @@ class MetadataBackup(Thread): # {{{ # Give the GUI thread a chance to do something. Python threads don't # have priorities, so this thread would naturally keep the processor # until some scheduling event happens. The sleep makes such an event + print 'do one' time.sleep(0.1) try: raw = metadata_to_opf(mi) diff --git a/src/calibre/utils/formatter.py b/src/calibre/utils/formatter.py index 6fed4e157a..f95a6deee5 100644 --- a/src/calibre/utils/formatter.py +++ b/src/calibre/utils/formatter.py @@ -100,7 +100,7 @@ class TemplateFormatter(string.Formatter): val = func[1](self, val) else: val = func[1](self, val, *args) - else: + elif val: val = string.Formatter.format_field(self, val, fmt) if not val: return ''