mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
Bulk metadata edit: Fix clearing of series and publishers
Bulk metadata edit: Only clear series if the clear series checkbox is checked. Also add a clear checkbox for publishers, so that publishers can be removed. Fixes #1245058 [Calibre is deleting Series field even when it's not being modified](https://bugs.launchpad.net/calibre/+bug/1245058)
This commit is contained in:
parent
059e28e867
commit
b50168bbe9
@ -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):
|
||||
|
@ -662,6 +662,16 @@ as that of the first selected book.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QCheckBox" name="clear_pub">
|
||||
<property name="toolTip">
|
||||
<string>If checked, the publisher will be cleared</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Clear pub</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab">
|
||||
|
Loading…
x
Reference in New Issue
Block a user