From 2e765455f558736f2f11fef6a24361f509cef67d Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 7 Dec 2015 00:05:23 +0530 Subject: [PATCH] Bulk metadata edit: Allow changing the series index increment when force numbering a series --- src/calibre/gui2/dialogs/metadata_bulk.py | 12 +++++++----- src/calibre/gui2/dialogs/metadata_bulk.ui | 23 +++++++++++++++++++++-- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index a778a67797..b125d1eeb5 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -55,7 +55,7 @@ def get_cover_data(stream, ext): # {{{ # }}} Settings = namedtuple('Settings', 'remove_all remove add au aus do_aus rating pub do_series do_autonumber do_remove_format ' - 'remove_format do_swap_ta do_remove_conv do_auto_author series do_series_restart series_start_value ' + 'remove_format do_swap_ta do_remove_conv do_auto_author series do_series_restart series_start_value series_increment ' 'do_title_case cover_action clear_series clear_pub pubdate adddate do_title_sort languages clear_languages restore_original comments') null = object() @@ -253,7 +253,7 @@ class MyBlockingBusy(QDialog): # {{{ else: def next_series_num(bid, i): if args.do_series_restart: - return sval + i + return sval + (i * args.series_increment) next_num = _get_next_series_num_for_list(sorted(sval.itervalues()), unwrap=False) sval[bid] = next_num return next_num @@ -918,14 +918,15 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog): self.remove_tags.update_items_cache(self.db.all_tags()) def auto_number_changed(self, state): + self.series_start_number.setEnabled(bool(state)) + self.series_increment.setEnabled(bool(state)) if state: self.series_numbering_restarts.setEnabled(True) - self.series_start_number.setEnabled(True) else: self.series_numbering_restarts.setEnabled(False) self.series_numbering_restarts.setChecked(False) - self.series_start_number.setEnabled(False) self.series_start_number.setValue(1.0) + self.series_increment.setValue(1.0) def reject(self): self.save_state() @@ -969,6 +970,7 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog): do_autonumber = self.autonumber_series.isChecked() do_series_restart = self.series_numbering_restarts.isChecked() series_start_value = self.series_start_number.value() + series_increment = self.series_increment.value() do_remove_format = self.remove_format.currentIndex() > -1 remove_format = unicode(self.remove_format.currentText()) do_swap_ta = self.swap_title_and_author.isChecked() @@ -1000,7 +1002,7 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog): args = Settings(remove_all, remove, add, au, aus, do_aus, rating, pub, do_series, do_autonumber, do_remove_format, remove_format, do_swap_ta, do_remove_conv, do_auto_author, series, do_series_restart, - series_start_value, do_title_case, cover_action, clear_series, clear_pub, + series_start_value, series_increment, do_title_case, cover_action, clear_series, clear_pub, pubdate, adddate, do_title_sort, languages, clear_languages, restore_original, self.comments) diff --git a/src/calibre/gui2/dialogs/metadata_bulk.ui b/src/calibre/gui2/dialogs/metadata_bulk.ui index e54e27c28b..4c9b7f6657 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.ui +++ b/src/calibre/gui2/dialogs/metadata_bulk.ui @@ -401,6 +401,25 @@ from the value in the box + + + + false + + + The amount by which to increment the series number for successive books. Only applicable when using force series numbers. + + + + + + + 0.010000000000000 + + + 1.000000000000000 + + + @@ -1173,8 +1192,8 @@ not multiple and the destination field is multiple 0 0 - 212 - 66 + 922 + 244