From 22f4baed8e7087e7c61986001c1e471bfe2b0594 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 28 Feb 2014 08:09:17 +0530 Subject: [PATCH] Fix virtual library names with ampersands in them not being displayed correctly in the virtual library menu and tab bar --- src/calibre/gui2/init.py | 2 +- src/calibre/gui2/search_restriction_mixin.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py index 5747fd2516..69a375f0da 100644 --- a/src/calibre/gui2/init.py +++ b/src/calibre/gui2/init.py @@ -327,7 +327,7 @@ class VLTabs(QTabBar): # {{{ virt_libs = (set(virt_libs) - hidden) | {''} order = {x:i for i, x in enumerate(order)} for i, vl in enumerate(sorted(virt_libs, key=lambda x:(order.get(x, 0), sort_key(x)))): - self.addTab(vl or _('All books')) + self.addTab(vl.replace('&', '&&') or _('All books')) self.setTabData(i, vl) if vl == current_lib: current_idx = i diff --git a/src/calibre/gui2/search_restriction_mixin.py b/src/calibre/gui2/search_restriction_mixin.py index fe5e379691..4b6ef18853 100644 --- a/src/calibre/gui2/search_restriction_mixin.py +++ b/src/calibre/gui2/search_restriction_mixin.py @@ -409,7 +409,7 @@ class SearchRestrictionMixin(object): virt_libs = db.prefs.get('virtual_libraries', {}) for vl in sorted(virt_libs.keys(), key=sort_key): - a = m.addAction(self.checked if vl == current_lib else self.empty, vl) + a = m.addAction(self.checked if vl == current_lib else self.empty, vl.replace('&', '&&')) a.triggered.connect(partial(self.apply_virtual_library, library=vl)) p = QPoint(0, self.virtual_library.height()) @@ -462,7 +462,7 @@ class SearchRestrictionMixin(object): menu.setIcon(self.empty) def add_action(name, search): - a = menu.addAction(name) + a = menu.addAction(name.replace('&', '&&')) a.triggered.connect(partial(handler, name=name)) a.setIcon(self.empty)