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
-
-
+
+
+ -
+
+
+ ...
+
-