diff options
author | Milian Wolff <milian.wolff@kdab.com> | 2013-02-15 14:18:30 +0100 |
---|---|---|
committer | Pierre Rossi <pierre.rossi@gmail.com> | 2013-11-01 13:57:47 +0100 |
commit | de3a5ef9f8385acda21bff363f84e6d9236d11f0 (patch) | |
tree | 5be531718c557fd6b440a3f43460ea02bf6e51f7 | |
parent | e2b0f3d094123f0e1d76c2f8b7c4dcd13897cb70 (diff) | |
download | qtwebchannel-de3a5ef9f8385acda21bff363f84e6d9236d11f0.tar.gz |
Add a callback for when the QObject integration is setup.
This shows an issue with consecutive signal connections due to some error
in the socket communication. WebSockets should resolve this.
Change-Id: I091d70e5e7498abdcc449eeca8dfe171d1ce0287
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
-rw-r--r-- | examples/qtobject/qml/qtobject/index.html | 15 | ||||
-rw-r--r-- | src/qobject.js | 5 |
2 files changed, 12 insertions, 8 deletions
diff --git a/examples/qtobject/qml/qtobject/index.html b/examples/qtobject/qml/qtobject/index.html index 656147e..c5e2800 100644 --- a/examples/qtobject/qml/qtobject/index.html +++ b/examples/qtobject/qml/qtobject/index.html @@ -9,7 +9,14 @@ } window.onload = function() { setupWebChannel(function(webChannel) { - setupQObjectWebChannel(webChannel); + setupQObjectWebChannel(webChannel, function() { + testObject1.sig1.connect(function(a, b, c) { output("1 sig1" + a + b + c); }); + testObject1.sig2.connect(function() { output("1 sig2"); }); + testObject2.sig1.connect(function(a, b, c) { output("2 sig1" + a + b + c); }); + testObject2.sig2.connect(function() { output("2 sig2"); }); + testObject3.sig1.connect(function(a, b, c) { output("3 sig1" + a + b + c); }); + testObject3.sig2.connect(function() { output("3 sig2"); }); + }); }); } </script> @@ -23,8 +30,6 @@ <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); })">method 1</a> @@ -34,8 +39,6 @@ <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); })">method 1</a> @@ -45,8 +48,6 @@ <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/src/qobject.js b/src/qobject.js index 56c35a0..c3f5822 100644 --- a/src/qobject.js +++ b/src/qobject.js @@ -98,7 +98,7 @@ function QObject(name, data, webChannel) { } } -window.setupQObjectWebChannel = function(webChannel) { +window.setupQObjectWebChannel = function(webChannel, doneCallback) { webChannel.subscribe( "Qt.signal", function(payload) { @@ -119,5 +119,8 @@ window.setupQObjectWebChannel = function(webChannel) { window[objectName] = object; } } + if (doneCallback) { + doneCallback(); + } }); }; |