mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 18:24:30 -04:00
Add comments to metadata plugboard
This allows modification of comments to add info not displayed on the device as part of the comments/description/synopsis or whatever on the device. It was discussed in https://www.mobileread.com/forums/showthread.php?t=291138. I have been running this since before then with no issues for Kobo devices and save-to-disk. It includes a warning prompt as mangled comments could cause a problem. But, mangled any field could as well.
This commit is contained in:
parent
b559a9bebd
commit
08347f685d
@ -97,7 +97,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
|||||||
|
|
||||||
self.dest_fields = ['',
|
self.dest_fields = ['',
|
||||||
'authors', 'author_sort', 'language', 'publisher',
|
'authors', 'author_sort', 'language', 'publisher',
|
||||||
'tags', 'title', 'title_sort']
|
'tags', 'title', 'title_sort', 'comments']
|
||||||
|
|
||||||
self.source_widgets = []
|
self.source_widgets = []
|
||||||
self.dest_widgets = []
|
self.dest_widgets = []
|
||||||
@ -299,6 +299,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
|||||||
|
|
||||||
def ok_clicked(self):
|
def ok_clicked(self):
|
||||||
pb = []
|
pb = []
|
||||||
|
comments_in_dests = False
|
||||||
for i in range(0, len(self.source_widgets)):
|
for i in range(0, len(self.source_widgets)):
|
||||||
s = unicode(self.source_widgets[i].text())
|
s = unicode(self.source_widgets[i].text())
|
||||||
if s:
|
if s:
|
||||||
@ -312,6 +313,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
|||||||
'<br>'+str(err), show=True)
|
'<br>'+str(err), show=True)
|
||||||
return
|
return
|
||||||
pb.append((s, self.dest_fields[d]))
|
pb.append((s, self.dest_fields[d]))
|
||||||
|
comments_in_dests = comments_in_dests or self.dest_fields[d] == 'comments'
|
||||||
else:
|
else:
|
||||||
error_dialog(self, _('Invalid destination'),
|
error_dialog(self, _('Invalid destination'),
|
||||||
'<p>'+_('The destination field cannot be blank'),
|
'<p>'+_('The destination field cannot be blank'),
|
||||||
@ -325,6 +327,14 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
|||||||
if len(fpb) == 0:
|
if len(fpb) == 0:
|
||||||
del self.current_plugboards[self.current_format]
|
del self.current_plugboards[self.current_format]
|
||||||
else:
|
else:
|
||||||
|
if comments_in_dests and not question_dialog(self.gui, _('Plugboard modifies Comments'),
|
||||||
|
_('The plugboard modifies the comments columns. '
|
||||||
|
'If the comments are set to invalid HTML, it could cause problems on the device. '
|
||||||
|
'Do you wish to save the plugboard?'
|
||||||
|
),
|
||||||
|
skip_dialog_name='plugboard_comments_in_dests'
|
||||||
|
):
|
||||||
|
return
|
||||||
if self.current_format not in self.current_plugboards:
|
if self.current_format not in self.current_plugboards:
|
||||||
self.current_plugboards[self.current_format] = {}
|
self.current_plugboards[self.current_format] = {}
|
||||||
fpb = self.current_plugboards[self.current_format]
|
fpb = self.current_plugboards[self.current_format]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user