summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add the "We mean it" warning to private headersv5.6.0-rc1v5.6.05.6.0Sergio Martins2016-02-095-0/+55
| | | | | Change-Id: I34bcf2e4a2d66c9cb126c2edae79a45064b82a67 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* Example: Add code to copy the JS file from the resource systemVenugopal Shivashankar2016-01-142-3/+9
| | | | | | | | | | | | | | The JS file lives in the src/webchannel directory, and there is a QMake magic in place to copy it to the build directory. But this mechanism fails when the example is run from the Qt binary pkg, which does not include the sources. The JS file must be copied to the build directory either manually or programmatically to run the example. Change-Id: Ib56d9348a8bf1a599e2db5235e0545cd7a8f3bb1 Task-number: QTBUG-46541 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com> Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* Example: Modify JavaScript part of the HTMLVenugopal Shivashankar2016-01-042-2/+4
| | | | | | | | | | | | | | | | | | | | | The baseUrl that is used to connect to a WebSocket server is derived from the query parameters set to the URL. These parameters are ignored by the QDesktopServices::openUrl implementations specific to Windows and OS X. Ubuntu uses the default implementation that retains the query parameters. This means the browser instance will fail to open the local file URL on Ubuntu because it includes the query parameters, so query parameters should never be set. Moreover, the example creates a QWebSocketServer instance, which is available at ws://localhost:12345, so the it is safe to hardcode the address in the JavaScript. The cleaner approach would be to use a URLHandler as described in http://doc.qt.io/qt-5/qdesktopservices.html#url-handlers, but that complicates the example. Change-Id: I5b5df2b7b816ce0bbfb16a85c036ed379616f04a Task-number: QTBUG-46541 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* Doc: Update examplesinstallpath to include the repository namev5.6.0-beta1Topi Reinio2015-10-211-1/+1
| | | | | | | | | | | | | The examplesinstallpath variable in .qdocconf files defines the path under QT_INSTALL_EXAMPLES where examples are found. To match the way examples are packaged in Qt 5.6, prefix the install path with the repository name. Task-number: QTBUG-48736 Change-Id: Iafb0663b319f97d2fa3e8f938e4546ae11eaaa69 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com> Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-10-022-4/+4
|\ | | | | | | | | | | | | | | Conflicts: src/webchannel/qmetaobjectpublisher.cpp src/webchannel/webchannel.pro Change-Id: Ia573d780424399a8fa6e5a809148c888b223446a
| * Compile when QML is disabled5.5Andy Shaw2015-09-292-0/+6
| | | | | | | | | | | | | | | | | | | | Since QJSValue is part of the QML module then it should check if that is available before using it so we add a QT_NO_JSVALUE define to help with this. Task-number: QTBUG-46850 Change-Id: I1974518a5c134dbb8508a46505b43c820a7a700a Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.5' into 5.6v5.6.0-alpha1Liang Qi2015-08-212-0/+688
|\ \ | |/ | | | | Change-Id: Idcdb6378bb72a87af378d747e01401e5ea4e6f7f
| * Add the GPLv3 license textv5.5.15.5.1Thiago Macieira2015-08-132-0/+688
| | | | | | | | | | | | | | LGPLv3 refers to it but does not include it in its body. Change-Id: Ib056b47dde3341ef9a52ffff13eed18cf3504738 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Remove transports when the underlying socket gets disconnectFrank Meerkoetter2015-08-191-0/+2
| | | | | | | | | | | | | | | | | | This will cause the transport to be removed from the "transports" member of the QQmlWebChannel. Otherwise it would linger around eating resources. Thanks to Jannis Voelker for pointing it out. Change-Id: I5aca499dfd0bdefc075fa5717436ab0919ec6ab1 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Fix #include's in public headersPierre Rossi2015-08-192-3/+3
| | | | | | | | | | | | | | | | | | | | | | Uniformly use the <Module/class.h> style, like https://wiki.qt.io/Coding_Conventions mandates. Change-Id: Ia2de5fb5ba4e3229c614c204d43349bd7fcbeaab Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Fix resource leakFrank Meerkoetter2015-08-191-1/+1
| | | | | | | | | | | | | | | | The transport owns the socket and should therefore delete it. Kudos to Jannis Voelker for pointing it out. Change-Id: Ie6df93c92e00ac64bc4c329b68cbc9c6598257ab Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Fix builds without qml moduleJulien Corjon2015-07-242-0/+6
| | | | | | | | | | | | | | | | When we build without qml module we cannot use QJSValue in qmetaobjectpublisher Change-Id: I79d06d8cc6d43fdad57cbab17ebc1756444a7311 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Support subclass property getters and setters.Pierre Rossi2015-07-084-0/+213
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QDialog for instance adds a setter for the modal property already exposed by QWidget. Object.defineProperty requires configurable set to true in order to add that setter at a later stage. Adds some reusable autotest logic with a soft dependency on QJSEngine to test some of the C++/JS integration aspects. Task-number: QTBUG-46548 Change-Id: Ibd49274f7d334c068c4006fb09417abf911c24e9 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Merge remote-tracking branch 'origin/5.5' into devLiang Qi2015-06-292-5/+56
|\ \ | |/ | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Ia5b809f6aeaa29c6acd6f45b696da285fe06b5f2
| * Bump versionOswald Buddenhagen2015-06-291-1/+1
| | | | | | | | Change-Id: Ifbc3cf81b3e260c54351406d1a2815e3110de89d
| * Add changes file for 5.5.0v5.5.0-rc1v5.5.05.5.0Milian Wolff2015-06-111-0/+43
| | | | | | | | | | | | Change-Id: I047ec612d73227925dd55436920adda20bfcb7f6 Reviewed-by: Liang Qi <liang.qi@theqtcompany.com> Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
| * Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-05-250-0/+0
| |\ | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I7616cd4cde8d4be615a566e6992233485e5c2403
| | * Bump version5.4Oswald Buddenhagen2015-04-201-1/+1
| | | | | | | | | | | | Change-Id: I146ebe43f06b4492487298b086b79ff6ff611629
| * | Doc: Added a brief overview about the modulev5.5.0-beta1Venugopal Shivashankar2015-04-201-5/+13
| | | | | | | | | | | | | | | Change-Id: Ib45c48613c687fdfcafd121ed9d4932cbc116799 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | | Fix wrap registered object issueLutz Schönemann2015-05-154-4/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When wrapping a registered object the code generated a new ID for an already known object. That new ID wasn't stored but returned to the client including the objects information. That resulted in a new created object on client side but the remote object (on the server) was not accessible. This patch fixes the issue by just returning the known ID of a known object. Because the client already has a local representation of that object it does not have to unwrap the object description. Change-Id: I31964823c84c84fd7ebce4386865c18fb5518be7 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | | Bump versionOswald Buddenhagen2015-02-241-1/+1
|/ / | | | | | | Change-Id: I61e5bc4b85f9456b0e3f0084027104d6ace56e70
* | Update copyright headersv5.5.0-alpha1Antti Kokko2015-02-1751-306/+298
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: Iebed549451f58a9fbdd86adf5d0340412d7766d7 Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* | Merge branch '5.4' into devMilian Wolff2015-02-0411-119/+230
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This merge required extensive conflict handling because the bug fix in 5.4 to properly wrap and forward QObjects referenced by published objects' properties clashed with some feature additions in dev, namely the client separation logic. All unit test pass for me locally now again. Conflicts: .qmake.conf src/webchannel/qmetaobjectpublisher.cpp tests/auto/qml/tst_webchannel.qml Change-Id: If3d00e13b265c6ab9fb2c38023014f97f8e7779b
| * Bump versionv5.4.25.4.2Oswald Buddenhagen2015-01-161-1/+1
| | | | | | | | Change-Id: If89108e0788406443c6314db1c120819430b63ef
| * Bump version to 5.4.1v5.4.15.4.1Thiago Macieira2014-12-081-1/+1
| | | | | | | | | | Change-Id: I4aff7f943394724446d969a6c4e89c067a9a37b4 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
| * Update plugins.qmltypesKai Koehne2014-12-042-32/+32
| | | | | | | | | | | | | | | | Also adapt the .pro file so that future updates can just be triggered by 'make qmltypes'. Change-Id: Ide120291c89e4e37991e87663b32be03af0e3f88 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
| * Fix crash on signal after deregistrationLutz Schönemann2014-12-034-9/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implemented a remove method in SignalHandler that allows us to remove and disconnect an object from SignalHandler w/o decrementing the connection counter until it hits zero or deleting the object That same functionality was used to remove an object from internal lists when receiving a destroyed signal from an object. In case of deregistering an object we haven't received a destoryed signal but simulated reception of that signal and so that code was not called in that case. Change-Id: Ie20cf628a2de028375f5d29f913682e25ebf8d44 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
| * Fix: Delete objects even when no transport is availableLutz Schönemann2014-12-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | The issue is that objects that get deleted will not be removed from the internal lists. This patch checks for destroyed signals in cases when no transport is available (no connection established). cherry picked from commit 037c67962de3d74669c55a9db456ffd38a28480f Change-Id: I24e345dcbfe88e15031d288eb65abb2c3066d4c0 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
| * Make objects inside properties accessible.Milian Wolff2014-12-024-36/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Similar to the support for factory-methods, we must wrap objects in properties to make them accessible to clients. This patch adds the required code for that. Besides support for simple properties that reference an object, this patch also adds support for list properties that contain objects. The client-side unwrap of properties is delayed until all objects are initialized, as a property might reference another registered object. Change-Id: I9fb90a8eab4c66d2f4231fdb482e0d97d128df3e Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Make the tests less flaky and don't send empty property updates.Milian Wolff2015-01-163-32/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tests have been flaky on the CI. And indeed, running the tests locally under valgrind, which heavily influences the timings, I could reproduce failures on my local machine as well. The failure was due to multiple things, but most notably boils down to intermittend property update noficiations. To reduce that, the myFactory.lastObj property is propagated up. This way, any change to that property won't be propagated to the clients and influence the test. Furthermore, the failing tests are hardened by also checking the server messages, which is crucial to correct the flow of messages. Finally, a bug was found, where an empty property change could be broadcasted to all clients, when only a specific client's object got its properties changed. This is also fixed by this patch now. Change-Id: I2c7ba53253e2841db1a290872dacb097a7b984cf Reviewed-by: Bernd Lamecker <bernd.lamecker@basyskom.com> Reviewed-by: Risto Avila <risto.avila@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Do not broadcast signals or property changes of wrapped qobjectsBernd Lamecker2014-12-196-31/+444
| | | | | | | | | | | | | | | | | | | | | | Signals and property changes caused by dynamically created qobjects (qobjects returned from a method call at runtime) should not be broadcasted to any client but only sent to clients which know these qobjects. Also added testcases for the changes. Change-Id: I9aacfa9e7e9df9314b44c6ba8e7339a2069e3c37 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Separate registered and autoregistered QObjectsSumedha Widyadharma2014-12-155-65/+254
| | | | | | | | | | | | | | | | | | | | | | Currently, a new client gets a list of _all_ registered QObjects, whether they were explicitly registered or not. This leaks internal information which the clients cannot use right away anyway. Change-Id: I4b25a731e9bc2d646f903057b409aecd34dc7f11 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Do not broadcast initialization data to all clients.Milian Wolff2014-12-084-53/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | Instead, send the data as a response to the initialization request message. This simplifies the code and makes it more predictable, as we do not spam all clients with initialization broadcasts anymore. Note that the pending initialization "feature" is removed, but I don't see a need for it anymore. If you want to delay client initialization, do it on the client side. Change-Id: I1ab71fd6c9e809ccb6085f1a3fbac3eb9b2e910b Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-2022-53/+840
|\ \ | |/ | | | | | | | | | | Conflicts: examples/webchannel/webchannel.pro Change-Id: Ia768202d177a24ae90358b5d88621a5fa88f9002
| * Remove obsolete conversion work-around.5.4.0Milian Wolff2014-10-172-19/+1
| | | | | | | | | | | | | | | | | | The conversion from QJSValue to QJsonArray seems to work just fine with Qt 5.4. Originally, this work-around was introduced to fix the QML tests, which still pass without this code now. Change-Id: Id52a5a16ebe25914f01d597778152e0595c9f1f4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Never manually connect to the destroyed signal of any object.Milian Wolff2014-10-172-23/+12
| | | | | | | | | | | | | | | | | | | | The web channel always connects to that signal automatically for internal book-keeping purposes. Thus we do not have to connect to the signal for wrapped objects. This simplifies the tests and reduces the IPC traffic for wrapped objects. Change-Id: Iaf8d9ce0b87874917cdcdf9013e21a53ee36b53a Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
| * Minor optimization: Do not send list of empty enums.Milian Wolff2014-10-171-1/+3
| | | | | | | | | | Change-Id: I1358cab3e60158b7b21b38907f872a0a7a007e71 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
| * Added some more examplesBernd Lamecker2014-10-1618-10/+823
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implemented a C++ Server, providing a chatservice through a simple QObject using QWebChannel and also both a QML and HTML Client to interact with the server. The examples show how to use properties, signals and methods, separated in server and clients. This reverts commit e8c280a15f7822fa5a563388615313858fd90848. The integration issues w.r.t. unconditional usage of the websockets module have been resolved. Change-Id: I4a07646dcd5e6050d3bd6b9bd1c5b07dbc7d7d69 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
| * Revert "Added some more examples"Jani Heikkinen2014-10-1315-634/+8
| | | | | | | | | | | | | | This reverts commit e9ec067e628564e0b065c625dcd7e695857706ac which breaks qt5.git integration Change-Id: I92f23d1c0891ed0e52348ab36b73541027095146 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
| * Added some more examplesBernd Lamecker2014-10-1015-8/+634
| | | | | | | | | | | | | | | | | | | | | | Implemented a C++ Server, providing a chatservice through a simple QObject using QWebChannel and also both a QML and HTML Client to interact with the server. The examples show how to use properties, signals and methods, separated in server and clients. Change-Id: I20c84c2104d0bb599ead1771aad499e59657f83e Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-091-0/+1
|\ \ | |/ | | | | Change-Id: I7179dcfb603cb01a62b66d0860fb57f9ef98d6d8
| * Fix static builds and building of testsSimon Hausmann2014-10-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For static linkage we need to explicitly reference the plugin factory class, to prevent the linker from discarding the symbol. The Qt build system takes care of generating the necessary code for referencing the symbol and linking that reference into the application - see also qt.prf. For the build system to do this automatically, it needs to know the class name, which is stored in the qmldir file. This patch adds the missing class name. The first failure for this was when building the tests/auto/qml test, which specifies an IMPORTPATH that causes the qml import scanner to find the erroneous qmldir file and error out (see qt.prf). However otherwise this error would've appeared when trying to link an app on say iOS for example. Change-Id: Ia28307593e651d038ff1daaea7597f6eb5e40eb1 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Fix: Delete objects even when no transport is availableLutz Schönemann2014-10-061-0/+2
| | | | | | | | | | | | | | | | | | | | The issue is that objects that get deleted will not be removed from the internal lists. This patch checks for destroyed signals in cases when no transport is available (no connection established). Change-Id: I384b9e9dc280887d41bbfa59476400e9d8b1199b Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Added a generic node.js debug client as an exampleSumedha Widyadharma2014-09-195-1/+176
| | | | | | | | | | | | | | | | | | qwclient can connect to any qwebchannel server using a websocket transport. The service can then be used through a REPL. It can, for instance, be used with the standalone example server. Change-Id: Ie73d19b0376caf2fcf6ae02ec19a56e27bddfd33 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-09-0253-1379/+927
|\ \ | |/ | | | | Change-Id: Ibbab64e34150e1131fadf37f2e84a0a3f618974f
| * Fixing failing testcasesLutz Schönemann2014-08-261-4/+21
| | | | | | | | | | | | | | | | Some testcases do not consider all messages. These changes make the test wait at specific points until these messages are sent. Change-Id: Ie8f4b9492fefade0be91e7f829824db39d61ddee Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
| * Update license headers and add new licensesJani Heikkinen2014-08-2640-1317/+828
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Furthermore we need to update the sync.profile to not point to the dev branch in order to integrate this patch in the CI. Change-Id: I06b5496b5d865e2da4808532362616429c969658 Reviewed-by: Sergio Ahumada <sahumada@blackberry.com> Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
| * Get rid of setTimeout calls in qwebchannel.js client code.Milian Wolff2014-08-263-27/+8
| | | | | | | | | | | | | | | | | | | | | | | | This was a historic artefact which should not be required anymore. Back then it was added when trying to improve the perceived performance of the webchannel on an embedded device. Nowadays, using the built-in WebKit IPC mechanism instead of WebSockets, paired with the rest of the code cleanup and other changes, it should not be required anymore. Change-Id: I4b2d76d84aaf92e12592a0b2bcf94710b697846e Reviewed-by: Lutz Schönemann <lutz.schoenemann@basyskom.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
| * Doc: Edited links JavaScript API page and other documentation fixes.Jerome Pasion2014-08-234-11/+14
| | | | | | | | | | | | | | | | | | The JavaScript API page is important to the rest of the documentation but there was no link to it. Task-number: QTBUG-40756 Change-Id: Id741a67ac2b57e21da548c2961c622c7516ac8cf Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
| * Doc: Add extensions used by example files to .qdocconfTopi Reinio2014-08-212-2/+3
| | | | | | | | | | | | | | | | | | | | | | As the examples include files with extension that are not included in the global Qt documentation config, add them to the module's .qdocconf to get the files listed in the example documentation pages. Change-Id: Ifc3bf473b67d6acc795ce3f951f0c5269d69b69c Task-number: QTBUG-40831 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>