summaryrefslogtreecommitdiffstats
path: root/src/webengine/api/qquickwebengineview.cpp
diff options
context:
space:
mode:
authorMichael Bruning <michael.bruning@theqtcompany.com>2016-04-15 17:37:04 +0200
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-04-21 07:17:03 +0000
commitd236c5a8a34803bda6115956184398b99dbba408 (patch)
tree5f340555e143fd250db747777180207ee1124dd8 /src/webengine/api/qquickwebengineview.cpp
parent653bf0fa7081505273da5296b8dee8dfb594005c (diff)
Use the temporary zoom factor to set the zoom factor
It turns out that using the temporary zoom factor is meant to set the zoom factor for one certain view, and this is actually what we want. Also added auto tests for this. Task-number: QTBUG-51851 Task-number: QTBUG-51969 Change-Id: I8912cbc25637d3c1681026380a2ab3068a964868 Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com>
Diffstat (limited to 'src/webengine/api/qquickwebengineview.cpp')
-rw-r--r--src/webengine/api/qquickwebengineview.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 3768c3ac6..a9ca47598 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -114,6 +114,7 @@ QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate()
, m_webChannel(0)
, m_dpiScale(1.0)
, m_backgroundColor(Qt::white)
+ , m_defaultZoomFactor(1.0)
{
// The gold standard for mobile web content is 160 dpi, and the devicePixelRatio expected
// is the (possibly quantized) ratio of device dpi to 160 dpi.
@@ -721,6 +722,10 @@ void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContent
Q_FOREACH (QQuickWebEngineScript *script, m_userScripts)
script->d_func()->bind(browserContextAdapter()->userScriptController(), adapter.data());
+ // set the zoomFactor if it had been changed on the old adapter.
+ if (!qFuzzyCompare(adapter->currentZoomFactor(), m_defaultZoomFactor))
+ q->setZoomFactor(m_defaultZoomFactor);
+
// Emit signals for values that might be different from the previous WebContentsAdapter.
emit q->titleChanged();
emit q->urlChanged();
@@ -753,6 +758,7 @@ QQuickWebEngineView::~QQuickWebEngineView()
void QQuickWebEngineViewPrivate::ensureContentsAdapter()
{
+ Q_Q(QQuickWebEngineView);
if (!adapter) {
adapter = new WebContentsAdapter();
adapter->initialize(this);
@@ -765,6 +771,10 @@ void QQuickWebEngineViewPrivate::ensureContentsAdapter()
// push down the page's user scripts
Q_FOREACH (QQuickWebEngineScript *script, m_userScripts)
script->d_func()->bind(browserContextAdapter()->userScriptController(), adapter.data());
+ // set the zoomFactor if it had been changed on the old adapter.
+ if (!qFuzzyCompare(adapter->currentZoomFactor(), m_defaultZoomFactor))
+ q->setZoomFactor(m_defaultZoomFactor);
+
}
}
@@ -856,8 +866,11 @@ void QQuickWebEngineView::stop()
void QQuickWebEngineView::setZoomFactor(qreal arg)
{
Q_D(QQuickWebEngineView);
+ d->m_defaultZoomFactor = arg;
+
if (!d->adapter)
return;
+
qreal oldFactor = d->adapter->currentZoomFactor();
d->adapter->setZoomFactor(arg);
if (qFuzzyCompare(oldFactor, d->adapter->currentZoomFactor()))
@@ -1045,7 +1058,7 @@ qreal QQuickWebEngineView::zoomFactor() const
{
Q_D(const QQuickWebEngineView);
if (!d->adapter)
- return 1.0;
+ return d->m_defaultZoomFactor;
return d->adapter->currentZoomFactor();
}