aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/help
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2021-01-19 13:04:34 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2021-01-19 16:24:11 +0000
commit0fe80892145eaefa7302131ec942fc41b6353259 (patch)
tree501050d2d0d889b54f1ce4368022588b859d01d5 /src/plugins/help
parent291f46386fc4432380f96559e5fef66468d48496 (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.cpp6
-rw-r--r--src/plugins/help/qlitehtml/qlitehtmlwidget.cpp10
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