From b8a2ae8fa5ed31f2efa0e475e9646f5d54ddb102 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Fri, 16 Oct 2020 12:16:23 +0100 Subject: [PATCH] Fix bug 1900099: when bools are set to bistate, checking "show checkmarks" results in all non-bool values being shown as false --- src/calibre/gui2/library/models.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/calibre/gui2/library/models.py b/src/calibre/gui2/library/models.py index 8069716284..6c0aa8f59a 100644 --- a/src/calibre/gui2/library/models.py +++ b/src/calibre/gui2/library/models.py @@ -769,11 +769,21 @@ class BooksModel(QAbstractTableModel): # {{{ bn = self.bool_no_icon by = self.bool_yes_icon - def func(idx): - val = force_to_bool(fffunc(field_obj, idfunc(idx))) - if val is None: - return None if bt else bn - return by if val else bn + if dt != 'bool': + def func(idx): + val = fffunc(field_obj, idfunc(idx)) + if val is None: + return None + val = force_to_bool(val) + if val is None: + return None + return by if val else bn + else: + def func(idx): + val = force_to_bool(fffunc(field_obj, idfunc(idx))) + if val is None: + return None if bt else bn + return by if val else bn elif field == 'size': sz_mult = 1/(1024**2)