diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index f4eb5f50a0..6bdcb215fd 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -16,6 +16,7 @@ from qt.core import ( QDialogButtonBox, QFont, QGridLayout, + QIcon, QInputDialog, QLabel, QLineEdit, @@ -644,6 +645,10 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): self.button_transform_authors.clicked.connect(self.transform_authors) self.button_transform_publishers.clicked.connect(self.transform_publishers) self.tag_map_rules = self.author_map_rules = self.publisher_map_rules = () + tuple(map(lambda b: (b.clicked.connect(self.clear_transform_rules_for), b.setIcon(QIcon.ic('clear_left.png')), b.setToolTip(_( + 'Clear the rules'))), + (self.button_clear_tags_rules, self.button_clear_authors_rules, self.button_clear_publishers_rules) + )) self.update_transform_labels() self.central_widget.setCurrentIndex(tab) self.exec() @@ -657,6 +662,19 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): f(self.label_transform_tags, len(self.tag_map_rules)) f(self.label_transform_authors, len(self.author_map_rules)) f(self.label_transform_publishers, len(self.publisher_map_rules)) + self.button_clear_tags_rules.setVisible(bool(self.tag_map_rules)) + self.button_clear_authors_rules.setVisible(bool(self.author_map_rules)) + self.button_clear_publishers_rules.setVisible(bool(self.publisher_map_rules)) + + def clear_transform_rules_for(self): + n = self.sender().objectName() + if 'tags' in n: + self.tag_map_rules = () + elif 'authors' in n: + self.author_map_rules = () + elif 'publisher' in n: + self.publisher_map_rules = () + self.update_transform_labels() def _change_transform_rules(self, RulesDialog, which): d = RulesDialog(self) diff --git a/src/calibre/gui2/dialogs/metadata_bulk.ui b/src/calibre/gui2/dialogs/metadata_bulk.ui index 7aff2dd06f..73190767b6 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.ui +++ b/src/calibre/gui2/dialogs/metadata_bulk.ui @@ -1344,7 +1344,13 @@ not multiple and the destination field is multiple - + + + + + + ... + @@ -1372,7 +1378,13 @@ not multiple and the destination field is multiple - + + + + + + ... + @@ -1400,7 +1412,13 @@ not multiple and the destination field is multiple - + + + + + + ... +