summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorMilian Wolff <milian.wolff@kdab.com>2013-02-14 17:15:02 +0100
committerPierre Rossi <pierre.rossi@gmail.com>2013-11-01 13:57:47 +0100
commite2b0f3d094123f0e1d76c2f8b7c4dcd13897cb70 (patch)
treeeb676c1e1d461df1482ef51038a57eeeea3b1ecd /examples
parentc7e878cd16487c39589fcaf099921307ba169545 (diff)
downloadqtwebchannel-e2b0f3d094123f0e1d76c2f8b7c4dcd13897cb70.tar.gz
Fix method invocation and signal submission with multiple arguments.
Change-Id: I52a3fc53ba0c76489ffdc0634cfaff5b1c1e02a4 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/qtobject/qml/qtobject/index.html42
-rw-r--r--examples/qtobject/testobject.cpp8
-rw-r--r--examples/qtobject/testobject.h4
3 files changed, 37 insertions, 17 deletions
diff --git a/examples/qtobject/qml/qtobject/index.html b/examples/qtobject/qml/qtobject/index.html
index 20d3572..656147e 100644
--- a/examples/qtobject/qml/qtobject/index.html
+++ b/examples/qtobject/qml/qtobject/index.html
@@ -4,8 +4,7 @@
var base = (/[?&]webChannelBaseUrl=([A-Za-z0-9\-:/]+)/.exec(location.search)[1]);
document.write('<script src="' + base + '/webchannel.js/setupWebChannel"><'+'/script>');
document.write('<script src="' + base + '/qobject.js"><'+'/script>');
- window.output = function(x)
- {
+ window.output = function(x) {
document.querySelector("#out").innerHTML += x + "\n";
}
window.onload = function() {
@@ -17,28 +16,37 @@
</head>
<body>
<p>TestObject 1:
- <a href="#" onclick="testObject1.debugMe('Debugging!', function(result) { output(result); })">invoke method</a>
- <a href="#" onclick="testObject1.prop1(function(value) { output(value); })">Get property 1</a>
- <a href="#" onclick="testObject1.prop1 = 'Different property'; testObject1.prop1(function(value) { output(value); })">Set property 1</a>
- <a href="#" onclick="testObject1.prop2(function(value) { output(value); })">Get property 2</a>
- <a href="#" onclick="testObject1.prop2 = 'Different property'; testObject1.prop2(function(value) { output(value); })">Set property 2</a>
+ <a href="#" onclick="testObject1.debugMe('Debugging!', function(result) { output(result); })">method 1</a>
+ <a href="#" onclick="testObject1.manyArgs(1, 0.5, 'asdf', function(result) { output(result); })">method 2</a>
+ <a href="#" onclick="testObject1.prop1(function(value) { output(value); })">Get prop1</a>
+ <a href="#" onclick="testObject1.prop1 = 'Different property'; testObject1.prop1(function(value) { output(value); })">Set prop1</a>
+ <a href="#" onclick="testObject1.prop2(function(value) { output(value); })">Get prop2</a>
+ <a href="#" onclick="testObject1.prop2 = 'Different property'; testObject1.prop2(function(value) { output(value); })">Set prop2</a>
<a href="#" onclick="testObject1.timeout.connect(function() { output('timeout 1'); }); testObject1.startTimer(1000);">Timer</a>
+ <a href="#" onclick="testObject1.sig1.connect(function(a, b, c) { output('1 sig1:'+a+b+c); });">Connect1</a>
+ <a href="#" onclick="testObject1.sig2.connect(function() { output('1 sig 2'); });">Connect2</a>
</p>
<p>TestObject 2:
- <a href="#" onclick="testObject2.debugMe('Debugging!', function(result) { output(result); })">invoke method</a>
- <a href="#" onclick="testObject2.prop1(function(value) { output(value); })">Get property 1</a>
- <a href="#" onclick="testObject2.prop1 = 'Different property'; testObject2.prop1(function(value) { output(value); })">Set property 1</a>
- <a href="#" onclick="testObject2.prop2(function(value) { output(value); })">Get property 2</a>
- <a href="#" onclick="testObject2.prop2 = 'Different property'; testObject2.prop2(function(value) { output(value); })">Set property 2</a>
+ <a href="#" onclick="testObject2.debugMe('Debugging!', function(result) { output(result); })">method 1</a>
+ <a href="#" onclick="testObject2.manyArgs(1, 0.5, 'asdf', function(result) { output(result); })">method 2</a>
+ <a href="#" onclick="testObject2.prop1(function(value) { output(value); })">Get prop1</a>
+ <a href="#" onclick="testObject2.prop1 = 'Different property'; testObject2.prop1(function(value) { output(value); })">Set prop1</a>
+ <a href="#" onclick="testObject2.prop2(function(value) { output(value); })">Get prop2</a>
+ <a href="#" onclick="testObject2.prop2 = 'Different property'; testObject2.prop2(function(value) { output(value); })">Set prop2</a>
<a href="#" onclick="testObject2.timeout.connect(function() { output('timeout 2'); }); testObject2.startTimer(1000);">Timer</a>
+ <a href="#" onclick="testObject2.sig1.connect(function(a, b, c) { output('2 sig1:'+a+b+c); });">Connect1</a>
+ <a href="#" onclick="testObject2.sig2.connect(function() { output('2 sig 2'); });">Connect2</a>
</p>
<p>TestObject 3:
- <a href="#" onclick="testObject3.debugMe('Debugging!', function(result) { output(result); })">invoke method</a>
- <a href="#" onclick="testObject3.prop1(function(value) { output(value); })">Get property 1</a>
- <a href="#" onclick="testObject3.prop1 = 'Different property'; testObject3.prop1(function(value) { output(value); })">Set property 1</a>
- <a href="#" onclick="testObject3.prop2(function(value) { output(value); })">Get property 2</a>
- <a href="#" onclick="testObject3.prop2 = 'Different property'; testObject3.prop2(function(value) { output(value); })">Set property 2</a>
+ <a href="#" onclick="testObject3.debugMe('Debugging!', function(result) { output(result); })">method 1</a>
+ <a href="#" onclick="testObject3.manyArgs(1, 0.5, 'asdf', function(result) { output(result); })">method 2</a>
+ <a href="#" onclick="testObject3.prop1(function(value) { output(value); })">Get prop1</a>
+ <a href="#" onclick="testObject3.prop1 = 'Different property'; testObject3.prop1(function(value) { output(value); })">Set prop1</a>
+ <a href="#" onclick="testObject3.prop2(function(value) { output(value); })">Get prop2</a>
+ <a href="#" onclick="testObject3.prop2 = 'Different property'; testObject3.prop2(function(value) { output(value); })">Set prop2</a>
<a href="#" onclick="testObject3.timeout.connect(function() { output('timeout 3'); }); testObject3.startTimer(1000);">Timer</a>
+ <a href="#" onclick="testObject3.sig1.connect(function(a, b, c) { output('3 sig1:'+a+b+c); });">Connect1</a>
+ <a href="#" onclick="testObject3.sig2.connect(function() { console.log(arguments); output('3 sig 2'); });">Connect2</a>
</p>
<br/>
<textarea id="out" style="height:80%; width: 80%"></textarea>
diff --git a/examples/qtobject/testobject.cpp b/examples/qtobject/testobject.cpp
index 260f1f6..4bcd92f 100644
--- a/examples/qtobject/testobject.cpp
+++ b/examples/qtobject/testobject.cpp
@@ -17,10 +17,18 @@ void TestObject::setProp1(const QString& s)
{
p1 = s;
qWarning() << __func__ << p1;
+ emit sig1(1, 0.5, QStringLiteral("asdf"));
}
void TestObject::setProp2(const QString& s)
{
p2 = s;
qWarning() << __func__ << p2;
+ emit sig2();
+}
+
+QString TestObject::manyArgs(int a, float b, const QString& c) const
+{
+ qDebug() << a << b << c;
+ return c;
}
diff --git a/examples/qtobject/testobject.h b/examples/qtobject/testobject.h
index fe5043d..39dc608 100644
--- a/examples/qtobject/testobject.h
+++ b/examples/qtobject/testobject.h
@@ -19,6 +19,8 @@ public:
signals:
void timeout();
+ void sig1(int a, float b, const QString& c);
+ void sig2();
public slots:
void startTimer(int millis)
@@ -28,6 +30,8 @@ public slots:
QString debugMe(const QString& data);
+ QString manyArgs(int a, float b, const QString& c) const;
+
private:
QString p1;
QString p2;