From 5993dca2f27d9a6746523eaca7f416aa9bb89c9b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 9 May 2023 16:32:18 +0530 Subject: [PATCH] Book details: Fix formatting of text when copying all book details in narrow mode --- src/calibre/gui2/book_details.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/book_details.py b/src/calibre/gui2/book_details.py index 947bf1b48c..ebcf474fa9 100644 --- a/src/calibre/gui2/book_details.py +++ b/src/calibre/gui2/book_details.py @@ -84,15 +84,22 @@ def copy_all(text_browser): from html5_parser import parse from lxml import etree root = parse(html) - for x in ('table', 'tr', 'tbody'): - for tag in root.iterdescendants(x): - tag.tag = 'div' - for tag in root.iterdescendants('td'): + tables = tuple(root.iterdescendants('table')) + for tag in root.iterdescendants(('table', 'tr', 'tbody')): + tag.tag = 'div' + parent = root + is_vertical = getattr(text_browser, 'vertical', True) + if not is_vertical: + parent = tables[1] + for tag in parent.iterdescendants('td'): tt = etree.tostring(tag, method='text', encoding='unicode') tag.tag = 'span' for child in tuple(tag): tag.remove(child) tag.text = tt.strip() + if not is_vertical: + for tag in root.iterdescendants('td'): + tag.tag = 'div' for tag in root.iterdescendants('a'): tag.attrib.pop('href', None) from calibre.utils.html2text import html2text