diff options
author | Eike Ziller <eike.ziller@qt.io> | 2023-08-04 15:18:29 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2023-08-23 10:23:50 +0000 |
commit | b8f6617f22a7bd0bf3da2e75d1613e1346b974f0 (patch) | |
tree | 82925bbe6304685dbe088ce9a223f83814d7e033 | |
parent | f05f78ef33225823d348ee18f2fa464e95024dd2 (diff) |
Support turning antialiasing of fonts off
Task-number: QTCREATORBUG-12177
Change-Id: Ibac20a6170d42237f1d7409c3ec18ae9af50811c
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
-rw-r--r-- | src/container_qpainter.cpp | 11 | ||||
-rw-r--r-- | src/container_qpainter.h | 2 | ||||
-rw-r--r-- | src/container_qpainter_p.h | 1 | ||||
-rw-r--r-- | src/qlitehtmlwidget.cpp | 9 | ||||
-rw-r--r-- | src/qlitehtmlwidget.h | 1 |
5 files changed, 24 insertions, 0 deletions
diff --git a/src/container_qpainter.cpp b/src/container_qpainter.cpp index f175bce..a3e9350 100644 --- a/src/container_qpainter.cpp +++ b/src/container_qpainter.cpp @@ -462,6 +462,7 @@ litehtml::uint_ptr DocumentContainerPrivate::create_font(const litehtml::tchar_t font->setPixelSize(size); font->setWeight(cssWeightToQtWeight(weight)); font->setStyle(toQFontStyle(italic)); + font->setStyleStrategy(m_antialias ? QFont::PreferAntialias : QFont::NoAntialias); if (decoration == litehtml::font_decoration_underline) font->setUnderline(true); if (decoration == litehtml::font_decoration_overline) @@ -1235,6 +1236,16 @@ QFont DocumentContainer::defaultFont() const return d->m_defaultFont; } +void DocumentContainer::setAntialias(bool on) +{ + d->m_antialias = on; +} + +bool DocumentContainer::antialias() const +{ + return d->m_antialias; +} + void DocumentContainer::setDataCallback(const DocumentContainer::DataCallback &callback) { d->m_dataCallback = callback; diff --git a/src/container_qpainter.h b/src/container_qpainter.h index f2a41d8..5921275 100644 --- a/src/container_qpainter.h +++ b/src/container_qpainter.h @@ -82,6 +82,8 @@ public: // outside API void setDefaultFont(const QFont &font); QFont defaultFont() const; + void setAntialias(bool on); + bool antialias() const; using DataCallback = std::function<QByteArray(QUrl)>; void setDataCallback(const DataCallback &callback); diff --git a/src/container_qpainter_p.h b/src/container_qpainter_p.h index 8fb1e0b..e74705f 100644 --- a/src/container_qpainter_p.h +++ b/src/container_qpainter_p.h @@ -127,6 +127,7 @@ public: // document_container API QString m_caption; QFont m_defaultFont = QFont(sansSerifFont(), 16); QByteArray m_defaultFontFamilyName = m_defaultFont.family().toUtf8(); + bool m_antialias = true; QHash<QUrl, QPixmap> m_pixmaps; Selection m_selection; DocumentContainer::DataCallback m_dataCallback; diff --git a/src/qlitehtmlwidget.cpp b/src/qlitehtmlwidget.cpp index 3449fe5..0354c8e 100644 --- a/src/qlitehtmlwidget.cpp +++ b/src/qlitehtmlwidget.cpp @@ -479,6 +479,15 @@ QFont QLiteHtmlWidget::defaultFont() const return d->documentContainer.defaultFont(); } +void QLiteHtmlWidget::setAntialias(bool on) +{ + withFixedTextPosition([this, on] { + d->documentContainer.setAntialias(on); + // force litehtml to recreate fonts + setHtml(d->html); + }); +} + void QLiteHtmlWidget::scrollToAnchor(const QString &name) { if (!d->documentContainer.hasDocument()) diff --git a/src/qlitehtmlwidget.h b/src/qlitehtmlwidget.h index a86384c..965dfd2 100644 --- a/src/qlitehtmlwidget.h +++ b/src/qlitehtmlwidget.h @@ -36,6 +36,7 @@ public: void setDefaultFont(const QFont &font); QFont defaultFont() const; + void setAntialias(bool on); void scrollToAnchor(const QString &name); |