From f16d7fb89ff78f16b74fd0dec0e3071f816ad8ac Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 12 Aug 2021 12:12:30 +0530 Subject: [PATCH] Fix #1939538 [Single metadata edit dialog always chages the tags even if not modified](https://bugs.launchpad.net/calibre/+bug/1939538) --- src/calibre/gui2/metadata/basic_widgets.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/metadata/basic_widgets.py b/src/calibre/gui2/metadata/basic_widgets.py index 4591d3bde9..241405f217 100644 --- a/src/calibre/gui2/metadata/basic_widgets.py +++ b/src/calibre/gui2/metadata/basic_widgets.py @@ -1361,7 +1361,8 @@ class RatingEdit(RatingEditor, ToMetadataMixin): # {{{ self.original_val = self.current_val def commit(self, db, id_): - db.set_rating(id_, self.current_val, notify=False, commit=False) + if self.current_val != self.original_val: + db.set_rating(id_, self.current_val, notify=False, commit=False) return True def zero(self): @@ -1441,9 +1442,10 @@ class TagsEdit(EditWithComplete, ToMetadataMixin): # {{{ self.update_items_cache(db.new_api.all_field_names('tags')) def commit(self, db, id_): - self.books_to_refresh |= db.set_tags( - id_, self.current_val, notify=False, commit=False, - allow_case_change=True) + if self.changed: + self.books_to_refresh |= db.set_tags( + id_, self.current_val, notify=False, commit=False, + allow_case_change=True) return True def keyPressEvent(self, ev):