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()))
|
self._update_last_modified(tuple(formats_map.iterkeys()))
|
||||||
|
|
||||||
@read_api
|
@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 = ()
|
books = ()
|
||||||
sf = self.fields[field]
|
sf = self.fields[field]
|
||||||
if series:
|
if series:
|
||||||
@ -1180,6 +1180,8 @@ class Cache(object):
|
|||||||
books = book_ids
|
books = book_ids
|
||||||
break
|
break
|
||||||
series_indices = sorted(self._field_for(sf.index_field.name, book_id) for book_id in books)
|
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)
|
return _get_next_series_num_for_list(tuple(series_indices), unwrap=False)
|
||||||
|
|
||||||
@read_api
|
@read_api
|
||||||
|
@ -27,7 +27,7 @@ from calibre.utils.config import prefs, tweaks
|
|||||||
from calibre.utils.magick.draw import identify_data
|
from calibre.utils.magick.draw import identify_data
|
||||||
from calibre.utils.date import qt_to_dt
|
from calibre.utils.date import qt_to_dt
|
||||||
from calibre.ptempfile import SpooledTemporaryFile
|
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): # {{{
|
def get_cover_data(stream, ext): # {{{
|
||||||
from calibre.ebooks.metadata.meta import get_metadata
|
from calibre.ebooks.metadata.meta import get_metadata
|
||||||
@ -237,8 +237,15 @@ class MyBlockingBusyNew(QDialog):
|
|||||||
if not args.series:
|
if not args.series:
|
||||||
cache.set_field('series_index', {bid:1.0 for bid in self.ids})
|
cache.set_field('series_index', {bid:1.0 for bid in self.ids})
|
||||||
else:
|
else:
|
||||||
sval = args.series_start_value if args.do_series_restart else cache.get_next_series_num_for(args.series)
|
sval = args.series_start_value if args.do_series_restart else list(cache.get_next_series_num_for(args.series, current_indices=True))
|
||||||
smap = {bid:((sval + i) if args.do_autonumber else 1.0) for i, bid in enumerate(self.ids)}
|
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':
|
if args.do_autonumber or tweaks['series_index_auto_increment'] != 'no_change':
|
||||||
cache.set_field('series_index', smap)
|
cache.set_field('series_index', smap)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user