diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py index 64d6f2cbd6..28e2f21d23 100644 --- a/src/calibre/gui2/actions/edit_metadata.py +++ b/src/calibre/gui2/actions/edit_metadata.py @@ -418,7 +418,7 @@ class EditMetadataAction(InterfaceAction): db.set_custom(dest_id, dest_value, num=colnum) if db.field_metadata[key]['datatype'] in \ ('bool', 'int', 'float', 'rating', 'datetime') \ - and not dest_value: + and dest_value is None: db.set_custom(dest_id, src_value, num=colnum) if db.field_metadata[key]['datatype'] == 'series' \ and not dest_value: diff --git a/src/calibre/gui2/library/delegates.py b/src/calibre/gui2/library/delegates.py index b0fdef4c21..a9c71e526b 100644 --- a/src/calibre/gui2/library/delegates.py +++ b/src/calibre/gui2/library/delegates.py @@ -310,6 +310,12 @@ class CcNumberDelegate(QStyledItemDelegate): # {{{ editor.setDecimals(2) return editor + def setModelData(self, editor, model, index): + val = editor.value() + if val == editor.minimum(): + val = None + model.setData(index, QVariant(val), Qt.EditRole) + def setEditorData(self, editor, index): m = index.model() val = m.db.data[index.row()][m.custom_columns[m.column_map[index.column()]]['rec_index']]