diff --git a/src/libprs500/gui2/dialogs/metadata_bulk.py b/src/libprs500/gui2/dialogs/metadata_bulk.py
index 6de33221bb..959893141d 100644
--- a/src/libprs500/gui2/dialogs/metadata_bulk.py
+++ b/src/libprs500/gui2/dialogs/metadata_bulk.py
@@ -65,6 +65,10 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog):
if tags:
tags = tags.split(',')
self.db.set_tags(id, tags, append=True)
+ remove_tags = qstring_to_unicode(self.remove_tags.text()).strip()
+ if remove_tags:
+ remove_tags = [i.strip() for i in remove_tags.split(',')]
+ self.db.unapply_tags(id, remove_tags)
if self.write_series:
self.db.set_series(id, qstring_to_unicode(self.series.currentText()))
self.changed = True
diff --git a/src/libprs500/gui2/dialogs/metadata_bulk.ui b/src/libprs500/gui2/dialogs/metadata_bulk.ui
index 0e2f57f3cf..a93df2be76 100644
--- a/src/libprs500/gui2/dialogs/metadata_bulk.ui
+++ b/src/libprs500/gui2/dialogs/metadata_bulk.ui
@@ -6,7 +6,7 @@
0
0
461
- 342
+ 387
@@ -154,6 +154,23 @@
-
+
+
+ &Remove tags:
+
+
+ remove_tags
+
+
+
+ -
+
+
+ Comma separated list of tags to remove from the books.
+
+
+
+ -
&Series:
@@ -169,7 +186,7 @@
- -
+
-
List of known series. You can add new series.
diff --git a/src/libprs500/library/database.py b/src/libprs500/library/database.py
index 816aa0d16e..980989a585 100644
--- a/src/libprs500/library/database.py
+++ b/src/libprs500/library/database.py
@@ -1085,6 +1085,13 @@ ALTER TABLE books ADD COLUMN isbn TEXT DEFAULT "" COLLATE NOCASE;
for tag in tags:
self.delete_tag(tag)
+ def unapply_tags(self, book_id, tags):
+ for tag in tags:
+ id = self.conn.execute('SELECT id FROM tags WHERE name=?', (tag,)).fetchone()
+ if id:
+ self.conn.execute('DELETE FROM books_tags_link WHERE tag=? AND book=?', (id[0], book_id))
+ self.conn.commit()
+
def set_tags(self, id, tags, append=False):
'''
@param tags: list of strings