mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
Fix #1902413 [[Enhancement] Add ability to copy tag, publisher and author in Book details panel by right-clicking](https://bugs.launchpad.net/calibre/+bug/1902413)
This commit is contained in:
parent
c75d12ffa7
commit
c61b669501
@ -247,6 +247,10 @@ def add_item_specific_entries(menu, data, book_info):
|
|||||||
search_internet_added = False
|
search_internet_added = False
|
||||||
find_action = book_info.find_in_tag_browser_action
|
find_action = book_info.find_in_tag_browser_action
|
||||||
dt = data['type']
|
dt = data['type']
|
||||||
|
|
||||||
|
def add_copy_action(name):
|
||||||
|
menu.addAction(QIcon(I('edit-copy.png')), _('Copy {} to clipboard').format(name), lambda: QApplication.instance().clipboard().setText(name))
|
||||||
|
|
||||||
if dt == 'format':
|
if dt == 'format':
|
||||||
add_format_entries(menu, data, book_info)
|
add_format_entries(menu, data, book_info)
|
||||||
elif dt == 'author':
|
elif dt == 'author':
|
||||||
@ -256,7 +260,7 @@ def add_item_specific_entries(menu, data, book_info):
|
|||||||
ac.current_url = data['url']
|
ac.current_url = data['url']
|
||||||
ac.setText(_('&Copy author link'))
|
ac.setText(_('&Copy author link'))
|
||||||
menu.addAction(ac)
|
menu.addAction(ac)
|
||||||
menu.addAction(init_manage_action(book_info.manage_action, 'authors', author))
|
add_copy_action(author)
|
||||||
init_find_in_tag_browser(menu, find_action, 'authors', author)
|
init_find_in_tag_browser(menu, find_action, 'authors', author)
|
||||||
if hasattr(book_info, 'search_internet'):
|
if hasattr(book_info, 'search_internet'):
|
||||||
menu.sia = sia = create_search_internet_menu(book_info.search_internet, author)
|
menu.sia = sia = create_search_internet_menu(book_info.search_internet, author)
|
||||||
@ -288,6 +292,7 @@ def add_item_specific_entries(menu, data, book_info):
|
|||||||
init_find_in_tag_browser(menu, find_action, field, remove_value)
|
init_find_in_tag_browser(menu, find_action, field, remove_value)
|
||||||
menu.addAction(book_info.edit_identifiers_action)
|
menu.addAction(book_info.edit_identifiers_action)
|
||||||
elif field in ('tags', 'series', 'publisher') or is_category(field):
|
elif field in ('tags', 'series', 'publisher') or is_category(field):
|
||||||
|
add_copy_action(value)
|
||||||
init_find_in_tag_browser(menu, find_action, field, value)
|
init_find_in_tag_browser(menu, find_action, field, value)
|
||||||
menu.addAction(init_manage_action(book_info.manage_action, field, value))
|
menu.addAction(init_manage_action(book_info.manage_action, field, value))
|
||||||
elif field == 'languages':
|
elif field == 'languages':
|
||||||
@ -302,8 +307,8 @@ def add_item_specific_entries(menu, data, book_info):
|
|||||||
|
|
||||||
def details_context_menu_event(view, ev, book_info, add_popup_action=False):
|
def details_context_menu_event(view, ev, book_info, add_popup_action=False):
|
||||||
url = view.anchorAt(ev.pos())
|
url = view.anchorAt(ev.pos())
|
||||||
menu = view.createStandardContextMenu()
|
menu = QMenu(view)
|
||||||
menu.addAction(QIcon(I('edit-copy.png')), _('Copy &all'), partial(copy_all, view))
|
menu.addAction(QIcon(I('edit-copy.png')), _('Copy all book details'), partial(copy_all, view))
|
||||||
search_internet_added = False
|
search_internet_added = False
|
||||||
if url and url.startswith('action:'):
|
if url and url.startswith('action:'):
|
||||||
data = json_loads(from_hex_bytes(url.split(':', 1)[1]))
|
data = json_loads(from_hex_bytes(url.split(':', 1)[1]))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user