From e63e7cca43e9928a85fe00f30c409dc10e85e9d6 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Thu, 23 Oct 2014 13:16:08 +0200 Subject: [PATCH 1/2] Zero is a valid non-None value for int and float custom columns --- src/calibre/ebooks/metadata/book/render.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/ebooks/metadata/book/render.py b/src/calibre/ebooks/metadata/book/render.py index 947462ff1d..d734e7ed92 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) From d972b647704ce08b67dce3172497e9752e359d4b Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Thu, 23 Oct 2014 14:58:51 +0200 Subject: [PATCH 2/2] Make CTRL-space clear numeric custom fields in metadata edit --- src/calibre/gui2/custom_column_widgets.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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)