summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2014-07-30 16:10:26 +0200
committerPeter Varga <pvarga@inf.u-szeged.hu>2014-08-07 17:08:29 +0200
commit5c89832668288db79ed0c79d3dda68af62285d18 (patch)
tree0d12b5bc2322f034ddbf01beb36716c5f980ec0a /src
parentadcb7979a5f7193d1b8c6b87c0f2c92cfa80a316 (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.cpp24
-rw-r--r--src/webengine/api/qquickwebengineview_p_p.h10
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 { }