diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-09-12 14:56:22 +0200 |
---|---|---|
committer | Michael BrĂ¼ning <michael.bruning@qt.io> | 2017-12-06 15:02:13 +0000 |
commit | 481155893fd85b4b0770397375ceaf520fcf9db6 (patch) | |
tree | 84727f5b93c31debe246995b0072ef1b818e3ef1 /src/webengine/api/qquickwebengineview.cpp | |
parent | 1c6cacf3020c0c201cd484ba165126123046e53b (diff) |
Introduce devtools frontend
Makes it possible to use devtools without using the remote-debugger
Task-number: QTBUG-47899
Task-number: QTBUG-50725
Task-number: QTBUG-50766
Change-Id: Id32e13f773372d9917599ebbb64ab4af61bbf1d8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'src/webengine/api/qquickwebengineview.cpp')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 0636d8471..2721039ae 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -823,6 +823,11 @@ void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContent if (m_webChannel) adapter->setWebChannel(m_webChannel, m_webChannelWorld); + if (devToolsView && devToolsView->d_ptr->adapter) + adapter->openDevToolsFrontend(devToolsView->d_ptr->adapter); + else if (inspectedView && inspectedView->d_ptr->adapter) + inspectedView->d_ptr->adapter->openDevToolsFrontend(adapter); + // set initial background color if non-default if (m_backgroundColor != Qt::white) adapter->backgroundColorChanged(); @@ -882,6 +887,8 @@ void QQuickWebEngineViewPrivate::ensureContentsAdapter() adapter->setWebChannel(m_webChannel, m_webChannelWorld); if (explicitUrl.isValid()) adapter->load(explicitUrl); + if (inspectedView) + inspectedView->d_ptr->adapter->openDevToolsFrontend(adapter); // push down the page's user scripts Q_FOREACH (QQuickWebEngineScript *script, m_userScripts) script->d_func()->bind(browserContextAdapter()->userResourceController(), adapter.data()); @@ -1419,6 +1426,54 @@ void QQuickWebEngineView::setWebChannelWorld(uint webChannelWorld) Q_EMIT webChannelWorldChanged(webChannelWorld); } +QQuickWebEngineView *QQuickWebEngineView::inspectedView() const +{ + Q_D(const QQuickWebEngineView); + return d->inspectedView; +} + +void QQuickWebEngineView::setInspectedView(QQuickWebEngineView *view) +{ + Q_D(QQuickWebEngineView); + if (d->inspectedView == view) + return; + QQuickWebEngineView *oldView = d->inspectedView; + d->inspectedView = nullptr; + if (oldView) + oldView->setDevToolsView(nullptr); + d->inspectedView = view; + if (view) + view->setDevToolsView(this); + Q_EMIT inspectedViewChanged(); +} + +QQuickWebEngineView *QQuickWebEngineView::devToolsView() const +{ + Q_D(const QQuickWebEngineView); + return d->devToolsView; +} + +void QQuickWebEngineView::setDevToolsView(QQuickWebEngineView *devToolsView) +{ + Q_D(QQuickWebEngineView); + if (d->devToolsView == devToolsView) + return; + QQuickWebEngineView *oldView = d->devToolsView; + d->devToolsView = nullptr; + if (oldView) + oldView->setInspectedView(nullptr); + d->devToolsView = devToolsView; + if (devToolsView) + devToolsView->setInspectedView(this); + if (d->adapter) { + if (devToolsView) + d->adapter->openDevToolsFrontend(devToolsView->d_ptr->adapter); + else + d->adapter->closeDevToolsFrontend(); + } + Q_EMIT devToolsViewChanged(); +} + void QQuickWebEngineView::grantFeaturePermission(const QUrl &securityOrigin, QQuickWebEngineView::Feature feature, bool granted) { if (!d_ptr->adapter) |