diff --git a/src/calibre/ebooks/metadata/book/render.py b/src/calibre/ebooks/metadata/book/render.py index 947462ff1d..44ac70bc05 100644 --- a/src/calibre/ebooks/metadata/book/render.py +++ b/src/calibre/ebooks/metadata/book/render.py @@ -69,7 +69,7 @@ def mi_to_html(mi, field_list=None, default_author_link=None, use_roman_numbers= continue if field == 'sort': field = 'title_sort' - if metadata['datatype'] == 'bool': + if metadata['is_custom'] and metadata['datatype'] in {'bool', 'int', 'float'}: isnull = mi.get(field) is None else: isnull = mi.is_null(field) diff --git a/src/calibre/gui2/custom_column_widgets.py b/src/calibre/gui2/custom_column_widgets.py index 69de55df61..c8901fe7d8 100644 --- a/src/calibre/gui2/custom_column_widgets.py +++ b/src/calibre/gui2/custom_column_widgets.py @@ -20,6 +20,7 @@ from calibre.gui2.dialogs.tag_editor import TagEditor from calibre.utils.config import tweaks from calibre.utils.icu import sort_key from calibre.library.comments import comments_to_html +from calibre.gui2.library.delegates import ClearingDoubleSpinBox, ClearingSpinBox class Base(object): @@ -91,7 +92,7 @@ class Int(Base): def setup_ui(self, parent): self.widgets = [QLabel('&'+self.col_metadata['name']+':', parent), - QSpinBox(parent)] + ClearingSpinBox(parent)] w = self.widgets[1] w.setRange(-1000000, 100000000) w.setSpecialValueText(_('Undefined')) @@ -114,7 +115,7 @@ class Float(Int): def setup_ui(self, parent): self.widgets = [QLabel('&'+self.col_metadata['name']+':', parent), - QDoubleSpinBox(parent)] + ClearingDoubleSpinBox(parent)] w = self.widgets[1] w.setRange(-1000000., float(100000000)) w.setDecimals(2)