From 4e57d27a574fdea9fd9f4f1a2b9eb51c6daed5ba Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Sat, 3 Sep 2022 16:32:34 -0500 Subject: [PATCH] Tweak Calibre Cover options layouts, texts and defaults to be more rational for new users. --- calibre-plugin/config.py | 56 +++++++++++++++++++++------------------- calibre-plugin/prefs.py | 10 +++---- 2 files changed, 35 insertions(+), 31 deletions(-) diff --git a/calibre-plugin/config.py b/calibre-plugin/config.py index ef71f7ae..46182690 100644 --- a/calibre-plugin/config.py +++ b/calibre-plugin/config.py @@ -1036,15 +1036,17 @@ class CalibreCoverTab(QWidget): horz.addWidget(self.updatecalcover) self.l.addLayout(horz) - self.covernewonly = QCheckBox(_("Set Covers Only for New Books"),self) - self.covernewonly.setToolTip(_("Set a Calibre cover only for new books, never for updated books.")) + self.covernewonly = QCheckBox(_("Set Calibre Cover Only for New Books"),self) + self.covernewonly.setToolTip(_("Set the Calibre cover from EPUB only for new\nbooks, not updates to existing books.")) self.covernewonly.setChecked(prefs['covernewonly']) - self.l.addWidget(self.covernewonly) + horz = QHBoxLayout() + horz.addItem(QtGui.QSpacerItem(20, 1)) + horz.addWidget(self.covernewonly) + self.l.addLayout(horz) self.l.addSpacing(5) tooltip = _("Generate a Calibre book cover image when Calibre metadata is updated.
" - "Defaults to 'Yes, Always' for backward compatibility and because %(gc)s(Plugin)" - " will only run if configured for Default or site.")%no_trans + "Note that %(gc)s(Plugin) will only run if there is a %(gc)s setting configured below for Default or the appropriate site.")%no_trans horz = QHBoxLayout() label = QLabel(_('Generate Calibre Cover:')) label.setToolTip(tooltip) @@ -1052,13 +1054,7 @@ class CalibreCoverTab(QWidget): self.gencalcover = QComboBox(self) for i in gencalcover_order: self.gencalcover.addItem(i) - # back compat. If has own value, use. - # if prefs['gencalcover']: self.gencalcover.setCurrentIndex(self.gencalcover.findText(prefs_save_options[prefs['gencalcover']])) - # elif prefs['gencover']: # doesn't have own val, set YES if old value set. - # self.gencalcover.setCurrentIndex(self.gencalcover.findText(prefs_save_options[SAVE_YES])) - # else: # doesn't have own value, old value not set, NO. - # self.gencalcover.setCurrentIndex(self.gencalcover.findText(prefs_save_options[SAVE_NO])) self.gencalcover.setToolTip(tooltip) label.setBuddy(self.gencalcover) @@ -1066,6 +1062,26 @@ class CalibreCoverTab(QWidget): self.l.addLayout(horz) self.gencalcover.currentIndexChanged.connect(self.endisable_elements) + horz = QHBoxLayout() + horz.addItem(QtGui.QSpacerItem(20, 1)) + vert = QVBoxLayout() + horz.addLayout(vert) + self.l.addLayout(horz) + + self.gcnewonly = QCheckBox(_("Generate Covers Only for New Books")%no_trans,self) + self.gcnewonly.setToolTip(_("Default is to generate a cover any time the calibre metadata is" + " updated.
Used for both Calibre and Plugin generated covers.")) + self.gcnewonly.setChecked(prefs['gcnewonly']) + vert.addWidget(self.gcnewonly) + self.gencov_elements.append(self.gcnewonly) + + self.gc_polish_cover = QCheckBox(_("Inject/update the generated cover inside EPUB"),self) + self.gc_polish_cover.setToolTip(_("Calibre's Polish feature will be used to inject or update the generated" + " cover into the EPUB ebook file.
Used for both Calibre and Plugin generated covers.")) + self.gc_polish_cover.setChecked(prefs['gc_polish_cover']) + vert.addWidget(self.gc_polish_cover) + self.gencov_elements.append(self.gc_polish_cover) + # can't be local or it's destroyed when __init__ is done and # connected things don't fire. self.gencov_rdgrp = QButtonGroup() @@ -1074,7 +1090,9 @@ class CalibreCoverTab(QWidget): self.gencov_gb.setLayout(horz) self.plugin_gen_cover = QRadioButton(_('Plugin %(gc)s')%no_trans,self) - self.plugin_gen_cover.setToolTip(_("Use plugin to create covers. Additional settings are below.")) + self.plugin_gen_cover.setToolTip(_("Use the %(gc)s plugin to create covers.
" + "Requires that you have the the %(gc)s plugin installed.
" + "Additional settings are below."%no_trans)) self.gencov_rdgrp.addButton(self.plugin_gen_cover) # always, new only, when no cover from site, inject yes/no... self.plugin_gen_cover.setChecked(prefs['plugin_gen_cover']) @@ -1096,20 +1114,6 @@ class CalibreCoverTab(QWidget): #self.l.addLayout(horz) self.l.addWidget(self.gencov_gb) - self.gcnewonly = QCheckBox(_("Generate Covers Only for New Books")%no_trans,self) - self.gcnewonly.setToolTip(_("Default is to generate a cover any time the calibre metadata is" - " updated.
Used for both Calibre and Plugin generated covers.")) - self.gcnewonly.setChecked(prefs['gcnewonly']) - self.l.addWidget(self.gcnewonly) - self.gencov_elements.append(self.gcnewonly) - - self.gc_polish_cover = QCheckBox(_("Inject/update the cover inside EPUB"),self) - self.gc_polish_cover.setToolTip(_("Calibre's Polish feature will be used to inject or update the generated" - " cover into the EPUB ebook file.
Used for both Calibre and Plugin generated covers.")) - self.gc_polish_cover.setChecked(prefs['gc_polish_cover']) - self.l.addWidget(self.gc_polish_cover) - self.gencov_elements.append(self.gc_polish_cover) - self.gcp_gb = QGroupBox(_("%(gc)s(Plugin) Settings")%no_trans) topl.addWidget(self.gcp_gb) self.l = QVBoxLayout() diff --git a/calibre-plugin/prefs.py b/calibre-plugin/prefs.py index 98c05242..5eac9311 100644 --- a/calibre-plugin/prefs.py +++ b/calibre-plugin/prefs.py @@ -158,13 +158,13 @@ default_prefs['addtoreadlists'] = False default_prefs['addtolistsonread'] = False default_prefs['autounnew'] = False -default_prefs['covernewonly'] = False default_prefs['updatecalcover'] = SAVE_YES_IF_IMG -default_prefs['gencalcover'] = SAVE_YES +default_prefs['covernewonly'] = False +default_prefs['gencalcover'] = SAVE_YES_UNLESS_IMG default_prefs['updatecover'] = False -default_prefs['calibre_gen_cover'] = False -default_prefs['plugin_gen_cover'] = True -default_prefs['gcnewonly'] = False +default_prefs['calibre_gen_cover'] = True +default_prefs['plugin_gen_cover'] = False +default_prefs['gcnewonly'] = True default_prefs['gc_site_settings'] = {} default_prefs['allow_gc_from_ini'] = True default_prefs['gc_polish_cover'] = False