mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
Sort is_multiple composite columns when displaying them in the book list
This commit is contained in:
parent
7c9b460f52
commit
167d44f234
@ -683,15 +683,25 @@ class BooksModel(QAbstractTableModel): # {{{
|
|||||||
def func(idx):
|
def func(idx):
|
||||||
return by if fffunc(field_obj, idfunc(idx)) else bb
|
return by if fffunc(field_obj, idfunc(idx)) else bb
|
||||||
elif dt in {'text', 'comments', 'composite', 'enumeration'}:
|
elif dt in {'text', 'comments', 'composite', 'enumeration'}:
|
||||||
if m['is_multiple'] and not field_obj.is_composite:
|
if m['is_multiple']:
|
||||||
jv = m['is_multiple']['list_to_ui']
|
jv = m['is_multiple']['list_to_ui']
|
||||||
do_sort = '&' not in jv
|
do_sort = '&' not in jv
|
||||||
if do_sort:
|
if field_obj.is_composite:
|
||||||
def func(idx):
|
if do_sort:
|
||||||
return QVariant(jv.join(sorted(fffunc(field_obj, idfunc(idx), default_value=()), key=sort_key)))
|
sv = m['is_multiple']['cache_to_list']
|
||||||
|
def func(idx):
|
||||||
|
val = fffunc(field_obj, idfunc(idx), default_value='') or ''
|
||||||
|
return QVariant(jv.join(sorted((x.strip() for x in val.split(sv)), key=sort_key)))
|
||||||
|
else:
|
||||||
|
def func(idx):
|
||||||
|
return QVariant(fffunc(field_obj, idfunc(idx), default_value=''))
|
||||||
else:
|
else:
|
||||||
def func(idx):
|
if do_sort:
|
||||||
return QVariant(jv.join(fffunc(field_obj, idfunc(idx), default_value=())))
|
def func(idx):
|
||||||
|
return QVariant(jv.join(sorted(fffunc(field_obj, idfunc(idx), default_value=()), key=sort_key)))
|
||||||
|
else:
|
||||||
|
def func(idx):
|
||||||
|
return QVariant(jv.join(fffunc(field_obj, idfunc(idx), default_value=())))
|
||||||
else:
|
else:
|
||||||
if dt in {'text', 'composite', 'enumeration'} and m['display'].get('use_decorations', False):
|
if dt in {'text', 'composite', 'enumeration'} and m['display'].get('use_decorations', False):
|
||||||
def func(idx):
|
def func(idx):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user