From b2850f9ed5c4e9ff34713de263721943a5b7f680 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 27 Feb 2013 17:40:22 +0530 Subject: [PATCH] Remove the many libraries preference, instead automatically sort the menus alphabetically if there are more than 10 entries --- src/calibre/gui2/__init__.py | 1 - src/calibre/gui2/actions/choose_library.py | 9 ++++----- src/calibre/gui2/preferences/behavior.py | 1 - src/calibre/gui2/preferences/behavior.ui | 12 ------------ 4 files changed, 4 insertions(+), 19 deletions(-) diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 1c8ce880fe..4a6ff9bb93 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -110,7 +110,6 @@ defs['bd_overlay_cover_size'] = False defs['tags_browser_category_icons'] = {} defs['cover_browser_reflections'] = True defs['extra_row_spacing'] = 0 -defs['many_libraries'] = False del defs # }}} diff --git a/src/calibre/gui2/actions/choose_library.py b/src/calibre/gui2/actions/choose_library.py index 80dae2a917..e291c71d96 100644 --- a/src/calibre/gui2/actions/choose_library.py +++ b/src/calibre/gui2/actions/choose_library.py @@ -47,7 +47,7 @@ class LibraryUsageStats(object): # {{{ locs = list(self.stats.keys()) locs.sort(cmp=lambda x, y: cmp(self.stats[x], self.stats[y]), reverse=True) - for key in locs[(10000 if gprefs['many_libraries'] else 25):]: + for key in locs[500:]: self.stats.pop(key) gprefs.set('library_usage_stats', self.stats) @@ -73,10 +73,9 @@ class LibraryUsageStats(object): # {{{ locs = list(self.stats.keys()) if lpath in locs: locs.remove(lpath) - if gprefs['many_libraries']: - locs.sort(key=sort_key) - else: - locs.sort(key=lambda x: self.stats[x], reverse=True) + limit = 10 + key = sort_key if len(locs) > limit else lambda x:self.stats[x] + locs.sort(key=key, reverse=len(locs)<=limit) for loc in locs: yield self.pretty(loc), loc diff --git a/src/calibre/gui2/preferences/behavior.py b/src/calibre/gui2/preferences/behavior.py index caab2d8dd6..b5070cbdea 100644 --- a/src/calibre/gui2/preferences/behavior.py +++ b/src/calibre/gui2/preferences/behavior.py @@ -60,7 +60,6 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): signal.connect(self.internally_viewed_formats_changed) r('bools_are_tristate', db.prefs, restart_required=True) - r('many_libraries', gprefs, restart_required=True) r = self.register choices = [(_('Default'), 'default'), (_('Compact Metadata'), 'alt1'), (_('All on 1 tab'), 'alt2')] diff --git a/src/calibre/gui2/preferences/behavior.ui b/src/calibre/gui2/preferences/behavior.ui index 533ee96c4d..ffd59d72bb 100644 --- a/src/calibre/gui2/preferences/behavior.ui +++ b/src/calibre/gui2/preferences/behavior.ui @@ -284,18 +284,6 @@ If not checked, the values can be Yes or No. - - - - Optimizes the interface for use with a large number of libraries. calibre will -now remeber unlimited numbers of libraries in its Quick Switch and Copy to Library -menus, and the libraries will be sorted alphabetically. - - - Optimize for use with many &libraries (Requires restart) - - -