diff --git a/src/calibre/ebooks/metadata/book/render.py b/src/calibre/ebooks/metadata/book/render.py index ec9d71a28d..48a8f43cef 100644 --- a/src/calibre/ebooks/metadata/book/render.py +++ b/src/calibre/ebooks/metadata/book/render.py @@ -320,7 +320,7 @@ def mi_to_html( sidx=fmt_sidx(sidx, use_roman=use_roman_numbers), cls="series_name", series=p(series), href=search_action_with_data(st, series, book_id, field), tt=p(_('Click to see books in this series'))) - val += add_other_link('series', mi.series) + val += add_other_link(field, series) elif metadata['datatype'] == 'datetime': aval = getattr(mi, field) if is_date_undefined(aval): diff --git a/src/calibre/gui2/book_details.py b/src/calibre/gui2/book_details.py index b1a699fc2a..ac0f75fbe6 100644 --- a/src/calibre/gui2/book_details.py +++ b/src/calibre/gui2/book_details.py @@ -451,9 +451,12 @@ def create_copy_links(menu, data=None): library_id = '_hex_-' + library_id.encode('utf-8').hex() book_id = get_gui().library_view.current_id + all_links = [] def link(text, url): def doit(): QApplication.instance().clipboard().setText(url) + nonlocal all_links + all_links.append(url) menu.addAction(QIcon.ic('edit-copy.png'), text, doit) menu.addSeparator() @@ -473,6 +476,13 @@ def create_copy_links(menu, data=None): fmt = fmt.upper() link(_('Link to view {} format of book').format(fmt.upper()), f'calibre://view-book/{library_id}/{book_id}/{fmt}') + if all_links: + menu.addSeparator() + mi = db.new_api.get_proxy_metadata(book_id) + all_links.insert(0, '') + all_links.insert(0, mi.get('title') + ' - ' + ' & '.join(mi.get('authors'))) + link(_('Copy all the above links'), '\n'.join(all_links)) + def details_context_menu_event(view, ev, book_info, add_popup_action=False, edit_metadata=None): url = view.anchorAt(ev.pos())