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