diff options
author | Pierre Rossi <pierre.rossi@theqtcompany.com> | 2015-02-12 20:17:40 +0100 |
---|---|---|
committer | Pierre Rossi <pierre.rossi@theqtcompany.com> | 2015-02-18 13:17:45 +0000 |
commit | 6717d58192a9e4fb87b4721a34f3715766863851 (patch) | |
tree | 9014acec9ccde3cd2c36a89725ed8bbb215f0d82 /src/webengine/api/qquickwebengineview.cpp | |
parent | 4bac2cb5084c68354e43fb456e4d20d4f70b223a (diff) |
Move navigationHistory out of experimental
Add an offset role to the models.
Implement goBackAndForward that uses this offset.
Also add a complete model, items, that includes current
navigation entry (at offset 0) to allow for the Firefox-style
single menu, and add that one to the nano browser example.
The models are now instantiated lazily as it's unlikely the
three models will be used by the same app.
Change-Id: Ib551738611497c7eb9c501f045cda315968a2ada
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'src/webengine/api/qquickwebengineview.cpp')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 69120daa0..9bcb7d326 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -807,9 +807,10 @@ void QQuickWebEngineViewExperimental::findText(const QString &subString, FindFla } } -QQuickWebEngineHistory *QQuickWebEngineViewExperimental::navigationHistory() const +QQuickWebEngineHistory *QQuickWebEngineView::navigationHistory() const { - return d_ptr->m_history.data(); + Q_D(const QQuickWebEngineView); + return d->m_history.data(); } /*! @@ -874,26 +875,19 @@ void QQuickWebEngineViewExperimental::grantFeaturePermission(const QUrl &securit } } -void QQuickWebEngineViewExperimental::goBackTo(int index) +void QQuickWebEngineView::goBackOrForward(int offset) { - if (!d_ptr->adapter) - return; - int count = d_ptr->adapter->currentNavigationEntryIndex(); - if (index < 0 || index >= count) + Q_D(QQuickWebEngineView); + if (!d->adapter) return; + const int current = d->adapter->currentNavigationEntryIndex(); + const int count = d->adapter->navigationEntryCount(); + const int index = current + offset; - d_ptr->adapter->navigateToIndex(count - 1 - index); -} - -void QQuickWebEngineViewExperimental::goForwardTo(int index) -{ - if (!d_ptr->adapter) - return; - 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); + d->adapter->navigateToIndex(index); } void QQuickWebEngineView::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) |