From 313367c5b70aae9cd36c8e3dab1357831e213a37 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 20 Apr 2025 09:19:01 +0530 Subject: [PATCH] Fix #2107683 [Remove Id, Modified, Size etc in Book Details gives error](https://bugs.launchpad.net/calibre/+bug/2107683) --- src/calibre/gui2/book_details.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/calibre/gui2/book_details.py b/src/calibre/gui2/book_details.py index ce0661ef5d..eed60358c0 100644 --- a/src/calibre/gui2/book_details.py +++ b/src/calibre/gui2/book_details.py @@ -579,11 +579,13 @@ def add_item_specific_entries(menu, data, book_info, copy_menu, search_menu): v = data.get('original_value') or data.get('value') copy_menu.addAction(QIcon.ic('edit-copy.png'), _('The text: {}').format(v), lambda: QApplication.instance().clipboard().setText(v)) - if field != 'size': - ac = book_info.remove_item_action - ac.data = (field, remove_value, book_id) - ac.setText(_('Remove %s from this book') % escape_for_menu(remove_name or data.get('original_value') or value)) - menu.addAction(ac) + if field not in ('size', 'id', 'last_modified'): + fm = get_gui().current_db.new_api.field_metadata.get(field) or {} + if fm.get('datatype') != 'composite': + ac = book_info.remove_item_action + ac.data = (field, remove_value, book_id) + ac.setText(_('Remove %s from this book') % escape_for_menu(remove_name or data.get('original_value') or value)) + menu.addAction(ac) # See if we need to add a click associated link menu line link_map = get_gui().current_db.new_api.get_all_link_maps_for_book(data.get('book_id', -1)) link = link_map.get(field, {}).get(value)