diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2021-01-19 13:04:34 +0100 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2021-01-19 16:24:11 +0000 |
commit | 0fe80892145eaefa7302131ec942fc41b6353259 (patch) | |
tree | 501050d2d0d889b54f1ce4368022588b859d01d5 /src/plugins/help | |
parent | 291f46386fc4432380f96559e5fef66468d48496 (diff) |
Force repaint of litehtml help viewer when font changes
Trigger refresh_styles() and parse_styles() on font change.
Change-Id: I3ea667b2d9fb382681ffad2279823500e9e20491
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/plugins/help')
-rw-r--r-- | src/plugins/help/qlitehtml/container_qpainter.cpp | 6 | ||||
-rw-r--r-- | src/plugins/help/qlitehtml/qlitehtmlwidget.cpp | 10 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/plugins/help/qlitehtml/container_qpainter.cpp b/src/plugins/help/qlitehtml/container_qpainter.cpp index 74a8f440a9c..b15bc1fd386 100644 --- a/src/plugins/help/qlitehtml/container_qpainter.cpp +++ b/src/plugins/help/qlitehtml/container_qpainter.cpp @@ -1235,6 +1235,12 @@ void DocumentContainer::setDefaultFont(const QFont &font) { d->m_defaultFont = font; d->m_defaultFontFamilyName = d->m_defaultFont.family().toUtf8(); + // Since font family name and size are read only once, when parsing html, + // we need to trigger the reparse of this info. + if (d->m_document && d->m_document->root()) { + d->m_document->root()->refresh_styles(); + d->m_document->root()->parse_styles(); + } } QFont DocumentContainer::defaultFont() const diff --git a/src/plugins/help/qlitehtml/qlitehtmlwidget.cpp b/src/plugins/help/qlitehtml/qlitehtmlwidget.cpp index 89425930a4e..475c6ca5eb5 100644 --- a/src/plugins/help/qlitehtml/qlitehtmlwidget.cpp +++ b/src/plugins/help/qlitehtml/qlitehtmlwidget.cpp @@ -464,7 +464,7 @@ bool QLiteHtmlWidget::findText(const QString &text, .findText(text, flags, incremental, wrapped, &success, &oldSelection, &newSelection); // scroll to search result position and/or redraw as necessary QRect newSelectionCombined; - for (const QRect &r : newSelection) + for (const QRect &r : qAsConst(newSelection)) newSelectionCombined = newSelectionCombined.united(r); QScrollBar *vBar = verticalScrollBar(); const int top = newSelectionCombined.top(); @@ -475,7 +475,7 @@ bool QLiteHtmlWidget::findText(const QString &text, vBar->setValue(bottom); } else { viewport()->update(fromVirtual(newSelectionCombined.translated(-scrollPosition()))); - for (const QRect &r : oldSelection) + for (const QRect &r : qAsConst(oldSelection)) viewport()->update(fromVirtual(r.translated(-scrollPosition()))); } return success; @@ -483,8 +483,10 @@ bool QLiteHtmlWidget::findText(const QString &text, void QLiteHtmlWidget::setDefaultFont(const QFont &font) { - d->documentContainer.setDefaultFont(font); - render(); + withFixedTextPosition([this, &font] { + d->documentContainer.setDefaultFont(font); + render(); + }); } QFont QLiteHtmlWidget::defaultFont() const |