aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2023-08-04 15:18:29 +0200
committerEike Ziller <eike.ziller@qt.io>2023-08-23 10:23:50 +0000
commitb8f6617f22a7bd0bf3da2e75d1613e1346b974f0 (patch)
tree82925bbe6304685dbe088ce9a223f83814d7e033
parentf05f78ef33225823d348ee18f2fa464e95024dd2 (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.cpp11
-rw-r--r--src/container_qpainter.h2
-rw-r--r--src/container_qpainter_p.h1
-rw-r--r--src/qlitehtmlwidget.cpp9
-rw-r--r--src/qlitehtmlwidget.h1
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);