| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We used to convert the QJsonValue arguments to QVariants, which
then failed to call a C++ function which expected on of the three
QJson data types, i.e. QJsonValue, QJsonObject or QJsonArray. Instead,
we now detect these three cases and manually convert the QJsonValue
as needed.
[ChangeLog] C++ functions taking arguments of type QJsonValue,
QJsonArray or QJsonObject can now be called via the Qt WebChannel.
Change-Id: I94e0c8937ca35e2ecd3554f7ddf2d4e5a3328570
Task-number: QTBUG-48198
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
| |
it's done centrally now.
Change-Id: I0922b2083b594cdf61f4606fe17c9c61c0d4683a
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
|
|
|
|
| |
Change-Id: I73f3738a4ba90af8bc8572edecda56bec7d1f60b
|
|
|
|
|
|
|
| |
Examples in binary packages now directly match the install path.
Change-Id: I06c85e42d312bd6a1e1ae619330676b717b6ccbd
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
|
|
|
|
|
| |
Change-Id: Ic3979ec70b7ddf7d01d0873c00b7739c5f0ef3c9
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
|
|
|
|
|
| |
Change-Id: Iccf9f6e0e9358ba42576fb67a0b356c7414d911e
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
|
|
|
|
|
| |
Change-Id: I509dbfd09d64d8b2a3e9ff17893e99d78a9186f8
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
This was requested by Jani, even though only minor improvements have
been made to Qt WebChannel.
Change-Id: I601d6cc05711556d899b2459cba45f1b48d2aa3a
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
| |
... or equivalent.
QtBase 5.6 headers already compile that way, so let the other
modules follow suit.
Change-Id: I972f844bd5845f4d7d88a14ff1b358c8c2b2643d
Task-number: QTBUG-45291
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
|
|
|
|
|
|
|
|
| |
this fixes static builds by ensuring that all dependencies are exported.
Task-number: QTBUG-51071
Change-Id: Ibf63974f6b989abb6c7967a74ff770af09bab114
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
|
|\
| |
| |
| | |
Change-Id: Iafa14f898762ae1134a6c9b97afaad44af621cbe
|
| |
| |
| |
| |
| | |
Change-Id: I34bcf2e4a2d66c9cb126c2edae79a45064b82a67
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
|
|/
|
|
| |
Change-Id: I7c7c1a8702698b9b37752eaa7cb5d676857b9be8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/webchannel/qmetaobjectpublisher.cpp
src/webchannel/webchannel.pro
Change-Id: Ia573d780424399a8fa6e5a809148c888b223446a
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| |/
| |
| | |
Change-Id: Idcdb6378bb72a87af378d747e01401e5ea4e6f7f
|
| |
| |
| |
| |
| |
| |
| | |
LGPLv3 refers to it but does not include it in its body.
Change-Id: Ib056b47dde3341ef9a52ffff13eed18cf3504738
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| | |
When we build without qml module we cannot use QJSValue in
qmetaobjectpublisher
Change-Id: I79d06d8cc6d43fdad57cbab17ebc1756444a7311
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: Ia5b809f6aeaa29c6acd6f45b696da285fe06b5f2
|
| |
| |
| |
| | |
Change-Id: Ifbc3cf81b3e260c54351406d1a2815e3110de89d
|
| |
| |
| |
| |
| |
| | |
Change-Id: I047ec612d73227925dd55436920adda20bfcb7f6
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
Change-Id: I7616cd4cde8d4be615a566e6992233485e5c2403
|
| | |
| | |
| | |
| | | |
Change-Id: I146ebe43f06b4492487298b086b79ff6ff611629
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ib45c48613c687fdfcafd121ed9d4932cbc116799
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|/ /
| |
| |
| | |
Change-Id: I61e5bc4b85f9456b0e3f0084027104d6ace56e70
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Change-Id: If89108e0788406443c6314db1c120819430b63ef
|
| |
| |
| |
| |
| | |
Change-Id: I4aff7f943394724446d969a6c4e89c067a9a37b4
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
examples/webchannel/webchannel.pro
Change-Id: Ia768202d177a24ae90358b5d88621a5fa88f9002
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| | |
Change-Id: I1358cab3e60158b7b21b38907f872a0a7a007e71
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|