diff --git a/src/calibre/gui2/tag_browser/model.py b/src/calibre/gui2/tag_browser/model.py index 89b42950e0..9c73c20bed 100644 --- a/src/calibre/gui2/tag_browser/model.py +++ b/src/calibre/gui2/tag_browser/model.py @@ -11,6 +11,7 @@ __docformat__ = 'restructuredtext en' import traceback, cPickle, copy from itertools import repeat from collections import defaultdict +from functools import partial from PyQt4.Qt import (QAbstractItemModel, QIcon, QVariant, QFont, Qt, QMimeData, QModelIndex, pyqtSignal, QObject) @@ -832,11 +833,9 @@ class TagsModel(QAbstractItemModel): # {{{ if lower(t.name).find(self.filter_categories_by) >= 0] tb_categories = self.db.field_metadata - y = tweaks['tag_browser_category_order'] - deforder = y.get('*', 100) - order = defaultdict(lambda : deforder) - order.update(y) - tb_keys = sorted(tb_categories.iterkeys(), key=order.get) + order = tweaks['tag_browser_category_order'] + defvalue = order.get('*', 100) + tb_keys = sorted(tb_categories.keys(), key=lambda x: order.get(x, defvalue)) for category in tb_keys: if category in data: # The search category can come and go self.row_map.append(category)