aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/help
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2019-09-04 14:20:34 +0200
committerEike Ziller <eike.ziller@qt.io>2019-09-13 06:48:02 +0000
commitf5d6eb564bca45989a0feeb793b5b5a00d41501d (patch)
treec922e4aba9addcc20de85a965957f20f1212d123 /src/plugins/help
parentb6c227714664aa6024f1390c0deaf692c6e05ef6 (diff)
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.cpp8
-rw-r--r--src/plugins/help/qlitehtml/container_qpainter.h3
-rw-r--r--src/plugins/help/qlitehtml/qlitehtmlwidget.cpp1
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);