diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py index 4ab4950179..ac475cb027 100644 --- a/src/calibre/gui2/actions/edit_metadata.py +++ b/src/calibre/gui2/actions/edit_metadata.py @@ -478,6 +478,10 @@ class EditMetadataAction(InterfaceAction): try: set_title = not mi.is_null('title') set_authors = not mi.is_null('authors') + idents = db.get_identifiers(i, index_is_id=True) + if mi.identifiers: + idents.update(mi.identifiers) + mi.identifiers = idents db.set_metadata(i, mi, commit=False, set_title=set_title, set_authors=set_authors, notify=False) self.applied_ids.append(i) diff --git a/src/calibre/gui2/metadata/single.py b/src/calibre/gui2/metadata/single.py index 5c4e241bba..099831ccba 100644 --- a/src/calibre/gui2/metadata/single.py +++ b/src/calibre/gui2/metadata/single.py @@ -336,7 +336,9 @@ class MetadataSingleDialogBase(ResizableDialog): if not mi.is_null('tags'): self.tags.current_val = mi.tags if not mi.is_null('identifiers'): - self.identifiers.current_val = mi.identifiers + current = self.identifiers.current_val + current.update(mi.identifiers) + self.identifiers.current_val = current if not mi.is_null('pubdate'): self.pubdate.current_val = mi.pubdate if not mi.is_null('series') and mi.series.strip():