summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Sterna <tomek@xiaoka.com>2015-11-27 20:46:29 +0100
committerTomasz Sterna <tomek@xiaoka.com>2015-11-27 20:46:29 +0100
commitf498a49bfebcd2b535fcb54aaa8c0008fb320232 (patch)
tree4fa6bbfa4c8f6faf22bc51170c11fa5621a50767
parent20cab6e9b75642536f8f3f619ed3ffd44cfa6acd (diff)
parent625962e90a0646f48e13fff5e2f88f781c5dd9b5 (diff)
Merge pull request #97 from abranson/master
Add support for onreadystatechange JS callback from XMLHttpRequest
-rw-r--r--daemon/jskitobjects.cpp20
-rw-r--r--daemon/jskitobjects.h4
2 files changed, 24 insertions, 0 deletions
diff --git a/daemon/jskitobjects.cpp b/daemon/jskitobjects.cpp
index d9ef02f..481c077 100644
--- a/daemon/jskitobjects.cpp
+++ b/daemon/jskitobjects.cpp
@@ -413,6 +413,16 @@ void JSKitXMLHttpRequest::setOnload(const QJSValue &value)
_onload = value;
}
+QJSValue JSKitXMLHttpRequest::onreadystatechange() const
+{
+ return _onreadystatechange;
+}
+
+void JSKitXMLHttpRequest::setOnreadystatechange(const QJSValue &value)
+{
+ _onreadystatechange = value;
+}
+
QJSValue JSKitXMLHttpRequest::ontimeout() const
{
return _ontimeout;
@@ -541,6 +551,16 @@ void JSKitXMLHttpRequest::handleReplyFinished()
} else {
qCDebug(l) << "No onload set";
}
+
+ if (_onreadystatechange.isCallable()) {
+ qCDebug(l) << "going to call onreadystatechange handler:" << _onreadystatechange.toString();
+ QJSValue result = _onreadystatechange.callWithInstance(_mgr->engine()->newQObject(this));
+ if (result.isError()) {
+ qCWarning(l) << "JS error on onreadystatechange handler:" << JSKitManager::describeError(result);
+ }
+ } else {
+ qCDebug(l) << "No onreadystatechange set";
+ }
}
void JSKitXMLHttpRequest::handleReplyError(QNetworkReply::NetworkError code)
diff --git a/daemon/jskitobjects.h b/daemon/jskitobjects.h
index 9f5308f..2840a3b 100644
--- a/daemon/jskitobjects.h
+++ b/daemon/jskitobjects.h
@@ -100,6 +100,7 @@ class JSKitXMLHttpRequest : public QObject
Q_PROPERTY(QJSValue onload READ onload WRITE setOnload)
Q_PROPERTY(QJSValue ontimeout READ ontimeout WRITE setOntimeout)
+ Q_PROPERTY(QJSValue onreadystatechange READ onreadystatechange WRITE setOnreadystatechange)
Q_PROPERTY(QJSValue onerror READ onerror WRITE setOnerror)
Q_PROPERTY(uint readyState READ readyState NOTIFY readyStateChanged)
Q_PROPERTY(uint timeout READ timeout WRITE setTimeout)
@@ -128,6 +129,8 @@ public:
QJSValue onload() const;
void setOnload(const QJSValue &value);
+ QJSValue onreadystatechange() const;
+ void setOnreadystatechange(const QJSValue &value);
QJSValue ontimeout() const;
void setOntimeout(const QJSValue &value);
QJSValue onerror() const;
@@ -173,6 +176,7 @@ private:
QJSValue _onload;
QJSValue _ontimeout;
QJSValue _onerror;
+ QJSValue _onreadystatechange;
};
class JSKitGeolocation : public QObject