diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2014-03-18 18:32:39 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-20 09:00:08 +0100 |
commit | ca417f2aa2a8264f8818bf8dd2df98981b21867b (patch) | |
tree | 6f89cb40d0f573a8bb01dbcf57b654ad9bf5da64 /src/webengine/api/qquickwebengineview.cpp | |
parent | e82487177bbfbf5b6c219d40547706f50b3b73ab (diff) | |
download | qtwebengine-ca417f2aa2a8264f8818bf8dd2df98981b21867b.tar.gz |
Add Quick's navigationHistory
Add QQuickWebEngineHistory and list models providing API for the quick's
navigationHistory.
Change-Id: Ia86c94b120cc5d0b4757fc62386fc7a0dcb3e341
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'src/webengine/api/qquickwebengineview.cpp')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 64c7f337e..58262cd3f 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -43,6 +43,7 @@ #include "qquickwebengineview_p_p.h" #include "javascript_dialog_controller.h" +#include "qquickwebenginehistory_p.h" #include "qquickwebengineloadrequest_p.h" #include "qquickwebenginenewviewrequest_p.h" #include "render_widget_host_view_qt_delegate_quick.h" @@ -67,6 +68,7 @@ QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate() : adapter(new WebContentsAdapter(qApp->property("QQuickWebEngineView_DisableHardwareAcceleration").toBool() ? SoftwareRenderingMode : HardwareAccelerationMode)) , e(new QQuickWebEngineViewExperimental(this)) , v(new QQuickWebEngineViewport(this)) + , m_history(new QQuickWebEngineHistory(this)) , contextMenuExtraItems(0) , loadProgress(0) , inspectable(false) @@ -359,6 +361,8 @@ QQuickWebEngineView::QQuickWebEngineView(QQuickItem *parent) d->e->q_ptr = this; d->adapter->initialize(d); + QObject::connect(this, &QQuickWebEngineView::loadingChanged, d->m_history.data(), &QQuickWebEngineHistory::reset); + this->setFocus(true); this->setActiveFocusOnTab(true); this->setFlag(QQuickItem::ItemIsFocusScope); @@ -514,6 +518,29 @@ void QQuickWebEngineViewExperimental::runJavaScript(const QString &script, const d_ptr->adapter->runJavaScript(script, /*xPath=*/QString()); } +QQuickWebEngineHistory *QQuickWebEngineViewExperimental::navigationHistory() const +{ + return d_ptr->m_history.data(); +} + +void QQuickWebEngineViewExperimental::goBackTo(int index) +{ + int count = d_ptr->adapter->currentNavigationEntryIndex(); + if (index < 0 || index >= count) + return; + + d_ptr->adapter->navigateToIndex(count - 1 - index); +} + +void QQuickWebEngineViewExperimental::goForwardTo(int index) +{ + int count = d_ptr->adapter->navigationEntryCount() - d_ptr->adapter->currentNavigationEntryIndex() - 1; + if (index < 0 || index >= count) + return; + + d_ptr->adapter->navigateToIndex(d_ptr->adapter->currentNavigationEntryIndex() + 1 + index); +} + void QQuickWebEngineView::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { QQuickItem::geometryChanged(newGeometry, oldGeometry); |