diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py
index 1bdaacf7ab..37e71a6340 100644
--- a/src/calibre/gui2/dialogs/metadata_bulk.py
+++ b/src/calibre/gui2/dialogs/metadata_bulk.py
@@ -56,7 +56,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 '
- 'do_title_case cover_action clear_series pubdate adddate do_title_sort languages clear_languages restore_original comments')
+ 'do_title_case cover_action clear_series clear_pub pubdate adddate do_title_sort languages clear_languages restore_original comments')
null = object()
class MyBlockingBusy(QDialog): # {{{
@@ -240,6 +240,9 @@ class MyBlockingBusy(QDialog): # {{{
if args.rating != -1:
cache.set_field('rating', {bid:args.rating*2 for bid in self.ids})
+ if args.clear_pub:
+ cache.set_field('publisher', {bid:'' for bid in self.ids})
+
if args.pub:
cache.set_field('publisher', {bid:args.pub for bid in self.ids})
@@ -957,6 +960,7 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog):
pub = unicode(self.publisher.text())
do_series = self.write_series
clear_series = self.clear_series.isChecked()
+ clear_pub = self.clear_pub.isChecked()
series = unicode(self.series.currentText()).strip()
do_autonumber = self.autonumber_series.isChecked()
do_series_restart = self.series_numbering_restarts.isChecked()
@@ -992,7 +996,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,
+ series_start_value, do_title_case, cover_action, clear_series, clear_pub,
pubdate, adddate, do_title_sort, languages, clear_languages,
restore_original, self.comments)
@@ -1023,7 +1027,7 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog):
return QDialog.accept(self)
def series_changed(self, *args):
- self.write_series = True
+ self.write_series = bool(unicode(self.series.currentText()).strip())
self.autonumber_series.setEnabled(True)
def s_r_remove_query(self, *args):
diff --git a/src/calibre/gui2/dialogs/metadata_bulk.ui b/src/calibre/gui2/dialogs/metadata_bulk.ui
index b6e86652e8..33cdf438d6 100644
--- a/src/calibre/gui2/dialogs/metadata_bulk.ui
+++ b/src/calibre/gui2/dialogs/metadata_bulk.ui
@@ -662,6 +662,16 @@ as that of the first selected book.
+ -
+
+
+ If checked, the publisher will be cleared
+
+
+ &Clear pub
+
+
+