Margini alto/basso (Settings.readerMarginV) + applicazione a caldo senza reload: i margini si sovrascrivono via runJavaScript (setProperty !important) sul documento aperto, anteprima live nel dialogo e al ritorno dalle impostazioni

This commit is contained in:
2026-08-13 09:11:38 +02:00
parent fad647cf9e
commit 2652f413a5
7 changed files with 122 additions and 25 deletions
+7 -4
View File
@@ -406,7 +406,7 @@ QVariantList EpubBook::chapterList() const
return list;
}
QString EpubBook::chapterHtml(int index, int fontSizePx, int marginPx) const
QString EpubBook::chapterHtml(int index, int fontSizePx, int marginPx, int marginVerticalPx) const
{
if (index < 0 || index >= m_chapters.size())
return QString();
@@ -415,12 +415,15 @@ QString EpubBook::chapterHtml(int index, int fontSizePx, int marginPx) const
return QString();
QString html = QString::fromUtf8(f.readAll());
// stile di reflow iniettato nel documento: !important vince sui CSS del libro
// stile di reflow iniettato nel documento: !important vince sui CSS del libro.
// I margini si possono aggiornare a caldo via runJavaScript (setProperty con
// 'important' inline), senza ricaricare il capitolo.
const QString style = QStringLiteral(
"<style id=\"cw-font\">html,body{font-size:%1px!important;"
"margin-left:%2px!important;margin-right:%2px!important}"
"margin-left:%2px!important;margin-right:%2px!important;"
"margin-top:%3px!important;margin-bottom:%3px!important}"
"p,div,li,td,blockquote,section{font-size:1em!important}</style>")
.arg(fontSizePx).arg(marginPx);
.arg(fontSizePx).arg(marginPx).arg(marginVerticalPx);
const int headEnd = html.indexOf(QStringLiteral("</head>"), 0, Qt::CaseInsensitive);
if (headEnd >= 0)
html.insert(headEnd, style);