diff options
author | Eike Ziller <eike.ziller@qt.io> | 2019-09-04 14:20:34 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2019-09-13 06:48:02 +0000 |
commit | f5d6eb564bca45989a0feeb793b5b5a00d41501d (patch) | |
tree | c922e4aba9addcc20de85a965957f20f1212d123 /src/plugins/help | |
parent | b6c227714664aa6024f1390c0deaf692c6e05ef6 (diff) | |
download | qt-creator-f5d6eb564bca45989a0feeb793b5b5a00d41501d.tar.gz |
Help: Fix font point sizes with litehtml
Change-Id: Ia2d7434ed965b00075747c0bdd43d90a236b99dd
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/help')
-rw-r--r-- | src/plugins/help/qlitehtml/container_qpainter.cpp | 8 | ||||
-rw-r--r-- | src/plugins/help/qlitehtml/container_qpainter.h | 3 | ||||
-rw-r--r-- | src/plugins/help/qlitehtml/qlitehtmlwidget.cpp | 1 |
3 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/help/qlitehtml/container_qpainter.cpp b/src/plugins/help/qlitehtml/container_qpainter.cpp index 3249bb4c30..aa44428750 100644 --- a/src/plugins/help/qlitehtml/container_qpainter.cpp +++ b/src/plugins/help/qlitehtml/container_qpainter.cpp @@ -505,7 +505,8 @@ void DocumentContainer::draw_text(litehtml::uint_ptr hdc, int DocumentContainer::pt_to_px(int pt) { - return pt; + // magic factor of 11/12 to account for differences to webengine/webkit + return m_paintDevice->physicalDpiY() * pt * 11 / m_paintDevice->logicalDpiY() / 12; } int DocumentContainer::get_default_font_size() const @@ -847,6 +848,11 @@ void DocumentContainer::get_language(litehtml::tstring &language, litehtml::tstr Q_UNUSED(culture) } +void DocumentContainer::setPaintDevice(QPaintDevice *paintDevice) +{ + m_paintDevice = paintDevice; +} + void DocumentContainer::setScrollPosition(const QPoint &pos) { m_scrollPosition = pos; diff --git a/src/plugins/help/qlitehtml/container_qpainter.h b/src/plugins/help/qlitehtml/container_qpainter.h index a1f935550f..0d2c0425e0 100644 --- a/src/plugins/help/qlitehtml/container_qpainter.h +++ b/src/plugins/help/qlitehtml/container_qpainter.h @@ -29,6 +29,7 @@ #include <QFont> #include <QHash> +#include <QPaintDevice> #include <QPixmap> #include <QRect> #include <QString> @@ -120,6 +121,7 @@ public: void get_media_features(litehtml::media_features &media) const override; void get_language(litehtml::tstring &language, litehtml::tstring &culture) const override; + void setPaintDevice(QPaintDevice *paintDevice); void setDocument(const QByteArray &data, litehtml::context *context); litehtml::document::ptr document() const; void setScrollPosition(const QPoint &pos); @@ -166,6 +168,7 @@ private: QUrl resolveUrl(const QString &url, const QString &baseUrl) const; void drawSelection(QPainter *painter, const QRect &clip) const; + QPaintDevice *m_paintDevice = nullptr; litehtml::document::ptr m_document; QString m_baseUrl; QRect m_clientRect; diff --git a/src/plugins/help/qlitehtml/qlitehtmlwidget.cpp b/src/plugins/help/qlitehtml/qlitehtmlwidget.cpp index 63f4916c1c..bcb6356759 100644 --- a/src/plugins/help/qlitehtml/qlitehtmlwidget.cpp +++ b/src/plugins/help/qlitehtml/qlitehtmlwidget.cpp @@ -422,6 +422,7 @@ QUrl QLiteHtmlWidget::url() const void QLiteHtmlWidget::setHtml(const QString &content) { + d->documentContainer.setPaintDevice(viewport()); d->documentContainer.setDocument(content.toUtf8(), &d->context); verticalScrollBar()->setValue(0); horizontalScrollBar()->setValue(0); |