mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add an option to optimize the calibre UI for use with large numbers of libraries. With this option, the Quick Switch and Copy to Library menus will remember more than just 25 libraries and the libraries will be sorted alphabetically instead of by most frequently used. Option is under Preferences->Behavior. Fixes #1133691 (feature request: again: sort entries in "quick switch")
This commit is contained in:
parent
6776554115
commit
f3f4bdb023
@ -110,6 +110,7 @@ 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
|
||||
# }}}
|
||||
|
||||
|
@ -16,6 +16,7 @@ from calibre import isbytestring, sanitize_file_name_unicode
|
||||
from calibre.constants import (filesystem_encoding, iswindows,
|
||||
get_portable_base)
|
||||
from calibre.utils.config import prefs
|
||||
from calibre.utils.icu import sort_key
|
||||
from calibre.gui2 import (gprefs, warning_dialog, Dispatcher, error_dialog,
|
||||
question_dialog, info_dialog, open_local_file, choose_dir)
|
||||
from calibre.library.database2 import LibraryDatabase2
|
||||
@ -46,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[25:]:
|
||||
for key in locs[(10000 if gprefs['many_libraries'] else 25):]:
|
||||
self.stats.pop(key)
|
||||
gprefs.set('library_usage_stats', self.stats)
|
||||
|
||||
@ -72,8 +73,10 @@ class LibraryUsageStats(object): # {{{
|
||||
locs = list(self.stats.keys())
|
||||
if lpath in locs:
|
||||
locs.remove(lpath)
|
||||
locs.sort(cmp=lambda x, y: cmp(self.stats[x], self.stats[y]),
|
||||
reverse=True)
|
||||
if gprefs['many_libraries']:
|
||||
locs.sort(key=sort_key)
|
||||
else:
|
||||
locs.sort(key=lambda x: self.stats[x], reverse=True)
|
||||
for loc in locs:
|
||||
yield self.pretty(loc), loc
|
||||
|
||||
|
@ -60,6 +60,7 @@ 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')]
|
||||
|
@ -284,6 +284,18 @@ If not checked, the values can be Yes or No.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QCheckBox" name="opt_many_libraries">
|
||||
<property name="toolTip">
|
||||
<string>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.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Optimize for use with many &libraries (Requires restart)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
|
Loading…
x
Reference in New Issue
Block a user