mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add Select default and Set as default buttons to Configure metadata download screen to allow a user defined subset of fields to quickly restore to
This commit is contained in:
parent
cf8e89aed5
commit
388f2a0131
@ -21,6 +21,7 @@ from calibre.ebooks.metadata import check_isbn
|
||||
msprefs = JSONConfig('metadata_sources/global.json')
|
||||
msprefs.defaults['txt_comments'] = False
|
||||
msprefs.defaults['ignore_fields'] = []
|
||||
msprefs.defaults['user_default_ignore_fields'] = []
|
||||
msprefs.defaults['max_tags'] = 20
|
||||
msprefs.defaults['wait_after_first_identify_result'] = 30 # seconds
|
||||
msprefs.defaults['wait_after_first_cover_result'] = 60 # seconds
|
||||
|
@ -224,6 +224,20 @@ class FieldsModel(QAbstractListModel): # {{{
|
||||
Qt.Unchecked])
|
||||
msprefs['ignore_fields'] = list(ignored_fields.union(changed))
|
||||
|
||||
def user_default_state(self, field):
|
||||
return (Qt.Unchecked if field in msprefs.get('user_default_ignore_fields',[])
|
||||
else Qt.Checked)
|
||||
|
||||
def select_user_defaults(self):
|
||||
self.overrides = dict([(f, self.user_default_state(f)) for f in self.fields])
|
||||
self.reset()
|
||||
|
||||
def commit_user_defaults(self):
|
||||
default_ignored_fields = set([x for x in msprefs['user_default_ignore_fields'] if x not in
|
||||
self.overrides])
|
||||
changed = set([k for k, v in self.overrides.iteritems() if v ==
|
||||
Qt.Unchecked])
|
||||
msprefs['user_default_ignore_fields'] = list(default_ignored_fields.union(changed))
|
||||
|
||||
# }}}
|
||||
|
||||
@ -286,6 +300,9 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
||||
self.select_all_button.clicked.connect(self.changed_signal)
|
||||
self.clear_all_button.clicked.connect(self.fields_model.clear_all)
|
||||
self.clear_all_button.clicked.connect(self.changed_signal)
|
||||
self.select_default_button.clicked.connect(self.fields_model.select_user_defaults)
|
||||
self.select_default_button.clicked.connect(self.changed_signal)
|
||||
self.set_as_default_button.clicked.connect(self.fields_model.commit_user_defaults)
|
||||
|
||||
def configure_plugin(self):
|
||||
for index in self.sources_view.selectionModel().selectedRows():
|
||||
|
@ -102,6 +102,20 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QPushButton" name="select_default_button">
|
||||
<property name="text">
|
||||
<string>&Select default</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QPushButton" name="set_as_default_button">
|
||||
<property name="text">
|
||||
<string>&Set as default</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
Loading…
x
Reference in New Issue
Block a user