diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2014-07-30 16:10:26 +0200 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2014-08-07 17:08:29 +0200 |
commit | 5c89832668288db79ed0c79d3dda68af62285d18 (patch) | |
tree | 0d12b5bc2322f034ddbf01beb36716c5f980ec0a /src | |
parent | adcb7979a5f7193d1b8c6b87c0f2c92cfa80a316 (diff) |
Add findText to Quick API
Change-Id: Ic0de45c1fe2a5537d61ad446c96fe8fda7c30966
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 24 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p_p.h | 10 |
2 files changed, 33 insertions, 1 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 2678832a7..352c3dcf2 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -554,6 +554,14 @@ void QQuickWebEngineViewPrivate::didRunJavaScript(quint64 requestId, const QVari callback.call(args); } +void QQuickWebEngineViewPrivate::didFindText(quint64 requestId, int matchCount) +{ + QJSValue callback = m_callbacks.take(requestId); + QJSValueList args; + args.append(QJSValue(matchCount)); + callback.call(args); +} + bool QQuickWebEngineView::isLoading() const { Q_D(const QQuickWebEngineView); @@ -637,6 +645,22 @@ QQmlComponent *QQuickWebEngineViewExperimental::extraContextMenuEntriesComponent return d_ptr->contextMenuExtraItems; } +void QQuickWebEngineViewExperimental::findText(const QString &subString, FindFlags options, const QJSValue &callback) +{ + if (subString.isEmpty()) { + d_ptr->adapter->stopFinding(); + if (!callback.isUndefined()) { + QJSValueList args; + args.append(QJSValue(0)); + const_cast<QJSValue&>(callback).call(args); + } + } else { + quint64 requestId = d_ptr->adapter->findText(subString, options & FindCaseSensitively, options & FindBackward); + if (!callback.isUndefined()) + d_ptr->m_callbacks.insert(requestId, callback); + } +} + QQuickWebEngineHistory *QQuickWebEngineViewExperimental::navigationHistory() const { return d_ptr->m_history.data(); diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index 280133856..831e91a0b 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -87,6 +87,7 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineViewExperimental : public QObjec Q_PROPERTY(bool isFullScreen READ isFullScreen WRITE setIsFullScreen NOTIFY isFullScreenChanged) Q_PROPERTY(QQuickWebEngineHistory *navigationHistory READ navigationHistory CONSTANT FINAL) Q_ENUMS(Feature) + Q_FLAGS(FindFlags) public: enum Feature { @@ -95,6 +96,12 @@ public: MediaAudioVideoDevices }; + enum FindFlag { + FindBackward = 1, + FindCaseSensitively = 2, + }; + Q_DECLARE_FLAGS(FindFlags, FindFlag) + bool inspectable() const; void setInspectable(bool); void setIsFullScreen(bool fullscreen); @@ -107,6 +114,7 @@ public: public Q_SLOTS: void goBackTo(int index); void goForwardTo(int index); + void findText(const QString&, FindFlags, const QJSValue & = QJSValue()); void grantFeaturePermission(const QUrl &securityOrigin, Feature, bool granted); Q_SIGNALS: @@ -165,7 +173,7 @@ public: virtual void didRunJavaScript(quint64, const QVariant&) Q_DECL_OVERRIDE; virtual void didFetchDocumentMarkup(quint64, const QString&) Q_DECL_OVERRIDE { } virtual void didFetchDocumentInnerText(quint64, const QString&) Q_DECL_OVERRIDE { } - virtual void didFindText(quint64, int) Q_DECL_OVERRIDE { } + virtual void didFindText(quint64, int) Q_DECL_OVERRIDE; virtual void passOnFocus(bool reverse) Q_DECL_OVERRIDE; virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE; virtual void authenticationRequired(const QUrl&, const QString&, bool, const QString&, QString*, QString*) Q_DECL_OVERRIDE { } |