From 1109b373a120726af7f07008ed8e8e0da110ff56 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Thu, 19 Sep 2013 07:54:44 +0200 Subject: [PATCH 1/2] Fix formatter function "count" to return zero for an empty list --- src/calibre/utils/formatter_functions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/utils/formatter_functions.py b/src/calibre/utils/formatter_functions.py index 8fcc35e3bb..b8ff7b0387 100644 --- a/src/calibre/utils/formatter_functions.py +++ b/src/calibre/utils/formatter_functions.py @@ -589,7 +589,7 @@ class BuiltinCount(BuiltinFormatterFunction): 'uses an ampersand. Examples: {tags:count(,)}, {authors:count(&)}') def evaluate(self, formatter, kwargs, mi, locals, val, sep): - return unicode(len(val.split(sep))) + return unicode(len([v for v in val.split(sep) if v])) class BuiltinListitem(BuiltinFormatterFunction): name = 'list_item' From b075feb3d76b64dc1fba93f1aa4d750e335a14ea Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Thu, 19 Sep 2013 08:04:49 +0200 Subject: [PATCH 2/2] Make an uncomposed icon rule use all the icons from previous composed icon rules. Lets you express things like "compose icon a if XXX, compose icon b if YYY, icon c if ZZZ, icon d if WWW". This will result in categories icons a and b if their conditions match, then appended with one of: c if its condition matches, d if its condition matches, or nothing. --- src/calibre/gui2/library/models.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/calibre/gui2/library/models.py b/src/calibre/gui2/library/models.py index 36bfc97c24..182fd6866d 100644 --- a/src/calibre/gui2/library/models.py +++ b/src/calibre/gui2/library/models.py @@ -94,11 +94,9 @@ class ColumnIcon(object): # {{{ if not rule_icons: continue icon_list = [ic.strip() for ic in rule_icons.split(':')] + icons.extend(icon_list) if icon_list and not kind.endswith('_composed'): - icons = icon_list break - else: - icons.extend(icon_list) if icons: icon_string = ':'.join(icons)