mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Respect series nunmbering increment tweak when bulk editing series
This commit is contained in:
parent
5727ff9fa4
commit
67b7aa8d11
@ -1170,7 +1170,7 @@ class Cache(object):
|
||||
self._update_last_modified(tuple(formats_map.iterkeys()))
|
||||
|
||||
@read_api
|
||||
def get_next_series_num_for(self, series, field='series'):
|
||||
def get_next_series_num_for(self, series, field='series', current_indices=False):
|
||||
books = ()
|
||||
sf = self.fields[field]
|
||||
if series:
|
||||
@ -1180,6 +1180,8 @@ class Cache(object):
|
||||
books = book_ids
|
||||
break
|
||||
series_indices = sorted(self._field_for(sf.index_field.name, book_id) for book_id in books)
|
||||
if current_indices:
|
||||
return series_indices
|
||||
return _get_next_series_num_for_list(tuple(series_indices), unwrap=False)
|
||||
|
||||
@read_api
|
||||
|
@ -27,7 +27,7 @@ from calibre.utils.config import prefs, tweaks
|
||||
from calibre.utils.magick.draw import identify_data
|
||||
from calibre.utils.date import qt_to_dt
|
||||
from calibre.ptempfile import SpooledTemporaryFile
|
||||
from calibre.db import SPOOL_SIZE
|
||||
from calibre.db import SPOOL_SIZE, _get_next_series_num_for_list
|
||||
|
||||
def get_cover_data(stream, ext): # {{{
|
||||
from calibre.ebooks.metadata.meta import get_metadata
|
||||
@ -237,8 +237,15 @@ class MyBlockingBusyNew(QDialog):
|
||||
if not args.series:
|
||||
cache.set_field('series_index', {bid:1.0 for bid in self.ids})
|
||||
else:
|
||||
sval = args.series_start_value if args.do_series_restart else cache.get_next_series_num_for(args.series)
|
||||
smap = {bid:((sval + i) if args.do_autonumber else 1.0) for i, bid in enumerate(self.ids)}
|
||||
sval = args.series_start_value if args.do_series_restart else list(cache.get_next_series_num_for(args.series, current_indices=True))
|
||||
def next_series_num(i):
|
||||
if args.do_series_restart:
|
||||
return sval + i
|
||||
next_num = _get_next_series_num_for_list(sval, unwrap=False)
|
||||
sval.append(next_num)
|
||||
return next_num
|
||||
|
||||
smap = {bid:next_series_num(i) for i, bid in enumerate(self.ids)}
|
||||
if args.do_autonumber or tweaks['series_index_auto_increment'] != 'no_change':
|
||||
cache.set_field('series_index', smap)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user