| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
Change-Id: I59e920204d60b5c50970f6ea07b9f919bf6f0d52
|
| |\
| | |
| | |
| | | |
Change-Id: I8cf29b833517fe3429e33229d223ddf1c8314e7f
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QUrl with address => 31 characters were failing because the socket
connection was disconnecting while being used and causing a segfault.
This re-enable tests affected to increase coverage, however, Another
ticket for the root cause of this bug will be issued.
Fixes: QTBUG-61552
Task-number: QTBUG-77462
Change-Id: I0fdba6a018e7cea85cef9de154ad80565f6d0601
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
BC file added and also global/global.cfg that enables the creation of
the bc files.
Change-Id: Ifddf37a15b0d67d3257d0bb4d204d4e55bedd2e5
Reviewed-by: Sergio Ahumada <sahumada@texla.cl>
|
|\| |
| | |
| | |
| | | |
Change-Id: I217f6c3ce5d90f02868b9b075445a42b3a9c250e
|
| |\|
| | |
| | |
| | | |
Change-Id: I99b94598f677ccba5d21069240b8b83bf5f15d18
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It seems fetchAndWait() takes between 10s to 14s on the CI/Qemu,
increase timeout from 15s to 25s.
Similar thing was done in 6eb36c47776e5f4c300f43fd191429af0664b3e5 before.
Task-number: QTBUG-63152
Task-number: QTBUG-76807
Change-Id: I06fc395d1a8b6c00cb66758e104250c553d59d26
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
|\| |
| | |
| | |
| | | |
Change-Id: I665f4de4ed90f91f4287af1bd55b51f852e70799
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
Change-Id: Ia376610d1350e3d22edc3714f90e593691a5095d
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ief4af43c6e158f7a3eda09700f3027c5f04050c5
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Found while eradicating Q_FOREACH loops.
Calling QVector::remove() in a loop makes the operation have
quadratic complexity. Fix by using std::remove_if + lambda, which is
linear.
Change-Id: I1390d4cf3e562aa9ade06097aed4098404310b1f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
All these are relatively easily verified to be safe: They clearly
don't modify the container they iterate over, are already const or
trivially marked as such.
In QRegistrySource::removeServer(), merge with an adjacent loop.
In tst_modelview.cpp, replaced a loop over QHash::keys() + QHash::op[]
with an STL-style loop and it.key()/it.value().
In tst_signature.cpp, replaced a QStringList with a C array of
QLatin1Strings, saving a qAsConst call.
Add some reserve() as a drive-by.
Change-Id: Ibf09371ca8b58437834734c3bab997527219c823
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QLatin1Literal is an undocumented and deprecated typedef
for QLatin1String, just use the original.
Just follow qtbase 45373c19243aea335897ba0f371a1dd53ae8f079.
Change-Id: I03c144f405e11b77460f7a8e5eff089952ecc64b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I8145201d011f0bb138ac1ac9738047edda23fb80
|
| |\|
| | |
| | |
| | | |
Change-Id: I75bde54fcc6c8380269a54a5a2ca0f42c34a519c
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This includes making sure typed class enums get the right size. This also
fixes other enums that were incorrectly tested as variants.
Change-Id: Ie330ceee91fe4192a11405a4e231f1750247cd5e
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The previous logic for sending/receiving the Q_GADGET definition used a
custom GadgetsData type on both sides (a QByteArray for name and a QList
of name/type pairs for each member). This isn't really needed on the
send side, we just need the QMetaObject for the class. This simplifies
the logic on the send side, as we no longer need to copy data around and
merge duplicate types, and it allows extension to getting enums.
On the receive side, we do need to copy the data. In particular, there
can be nested types, where one POD includes another or an enum from
another type. It is easier to extend the class if it doesn't need to
support the send operation as well.
On the send side, we now have serializeGadgets() which takes the pointers
for gadget metaobjects as well as the list of needed QMetaEnum types.
Using these, it constructs the list of necessary types to serialize and
marshalls those.
On the receive side, there is registerGadgets which uses the extended
GadgetData struct (now including the data needed to create dynamic
QMetaEnums) to create metaObjects and register the required types.
Change-Id: I80ceff39131c7a2cdcfe592f338ea98f72e76874
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is the first step in getting use_enum working. Since Qt types are
already declared, we just need to register them get support into QtRO.
Change-Id: I9b1b52f3012fa066acede921db338a755295d8d7
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This addresses two larger issues with enums and several smaller fixes.
First, unlike the recent fix for properties, we need to register enums for
queued connections to work and get signal/slot updates over QtRO to work.
This change adds said registration.
Second, enums are identified with the class they are defined in, so passing
updates through a dynamic object requires converting the typenames. The
templated enableRemoting methods become interesting here, as the class
name depends on the type passed as a template parameter. This change also
updates the repc output so enums are properly resolved via the templates.
Smaller fixes include updates to some tests and several places where enums
were converted to/from int. Note: we need (and have always needed) to
convert enums to ints, since the class name is passed as part of the
variant serialization which cannot be changed without major digging into
qvariant and QDataStream serialization internals.
Change-Id: I0a77f85df6a400a7a44394a05c9c2401bee4e4a8
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes the following compilation error:
qtremoteobjects/tests/auto/integration_external/server/main.cpp: In lambda function:
qtremoteobjects/tests/auto/integration_external/server/main.cpp:51:53: error: cannot convert ‘QTcpSocket*’ to ‘QIODevice*’
51 | this->srcNode.addHostSideConnection(conn);
| ^~~~
| |
| QTcpSocket*
Change-Id: I148cf8e4e5cbbad1947d7cab975242dcf589c59e
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Additionally include the forgotten header to fix compilation failures
when building without OpenSSL.
Change-Id: Ib761d36f676e54ede6a5c4b56bb332d6ed464b4c
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
tst_proxy.cpp:224:33: warning: ‘static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = int]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
tst_proxy.cpp:224:82: warning: ‘static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = int]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
tst_proxy.cpp:225:33: warning: ‘static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = int]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
tst_proxy.cpp:225:66: warning: ‘static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = int]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
tst_proxy.cpp:293:33: warning: ‘static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = int]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
tst_proxy.cpp:293:82: warning: ‘static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = int]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
tst_proxy.cpp:294:33: warning: ‘static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = int]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
tst_proxy.cpp:294:66: warning: ‘static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = int]’ is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
tst_modelview.cpp:210:48: warning: ‘QModelIndex QModelIndex::child(int, int) const’ is deprecated: Use QAbstractItemModel::index [-Wdeprecated-declarations]
tst_modelview.cpp:210:74: warning: ‘QModelIndex QModelIndex::child(int, int) const’ is deprecated: Use QAbstractItemModel::index [-Wdeprecated-declarations]
Change-Id: I888769aaf9fce97595711bc92cfdfb57150c536d
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
|
|\|
| |
| |
| | |
Change-Id: Idcef361153ac1f2af9f56619dbfb1227c0d407d7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A slot with return values returns a PendingCall object on the replica. If
such a replica is used in a proxy, a client would get an invalid QVariant
as the reply. This was because the proxy would try to return the pending-
call, not wait for the slot return from the original source. This change
fixes that issue.
Change-Id: I1a25ed49ce51729dde4fa4593845946041493ea1
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/remoteobjects/doc/src/remoteobjects-index.qdoc
Change-Id: Ibbfe308272d71c1906ff7ae382b85629b3d679a7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These worked with repc generated types, but can fail when going to dynamic
types (such as going through a proxy).
This also makes two changes to help with this change:
It adds a #define to dump what is sent for dynamic type info for
initialization (for debugging the protocol itself) and changes the repc
regexes so that a single character enum name can be used (previously the
parsing would fail if the unless the name was at least two characters).
Change-Id: Ied7219c60a901ef0cb00e06ef44001c6d077af89
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This required adding additional checks for QVariants that contain custom
types like PODs.
Change-Id: I5d77a07741000975ce8c5936688eab1af068dd6f
Fixes: QTBUG-75056
Fixes: QTBUG-74084
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the server goes away, we must unproxy the objects. Otherwise if the
server returns we will end up attempting to reproxy the same objects.
As a side effect the proxy_multprocess autotest becomes more stable.
Change-Id: I9f3f0c9e4aa40790da7a999273badb141beacd62
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds new tests for checking that the proxy (which uses dynamic
replicas to avoid needing to include headers for all proxied types) works
correctly over multiple processes.
This found several edge cases not seen in the earlier (single process)
proxy auto tests.
1) When sending a new sub class to a dynamic replica, the properties need
to be stored in a separate QByteArray and extracted after the metatype
info (for both classes and gadgets) is processed.
2) When the templated acquire is used, the metatype information needs to
be added to the dynamicTypeManager.
3) There is an edge case where the DynamicApiMap for a null object could
not be built correctly. In this case, it needed to be regenerated once
a valid object was available for the Replica sub-class.
4) There were several edge cases where the typeName needed to be updated.
[ChangeLog][Important Behavior Changes] Qt Remote Objects uses an internal
protocol to pass data between processes and/or devices. The same protocol
version needs to be used on all sides. The version was bumped from 1.2 to
1.3 in this release, fixing potential crashes (see QTBUG-75017). If there
is a mismatch, the connecting node will output a warning and the host node
will not send any data.
Change-Id: I7af50f16ed370351eb0692d5f4b983848846b504
Fixes: QTBUG-75017
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|/
|
|
|
| |
Change-Id: I06f289126d20130161d406dbc498e1bb1832926e
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
| |
Using AllowExternalRegistration with a QtRO schema (local, tcp, qnx) does
not support overriding the url, so should not be supported.
Change-Id: I36108a26fcb992bfeb07632eb88c2156e38ccadc
Fixes: QTBUG-73962
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The nominal case for a QObject pointer is to emit a change when the
value changes, i.e. changing the pointer or setting to nullptr. No
signal is emitted when the value is set to the same value again.
However, if the server is restarted, it doesn't know what previous
values were sent and will send the current values. An edge-case, where
the pointer was set to nullptr and nullptr is received again, wasn't
properly handled in QtRO before this fix.
Change-Id: I11443d69476c5b6fecda11e38919542de8a24eb1
Fixes: QTBUG-74221
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
| |
Change-Id: I55cfc9bcf96b573a8d614d8fe11a9ad73615a525
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|\
| |
| |
| | |
Change-Id: Id2c39f3460be34cec92e65ab94753772ae295340
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Even if a QAIM property is nullptr, we still need to treat it as a
model.
Task-number: QTBUG-71987
Change-Id: Iea8b3bfda88c564c561a7ab6ed293fd0540f5de4
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The QRemoteObjectSourceIo constructor that accepted a host address
attempted to start listening on that address. This could result in an
invalid state with no way to propagate the error.
Change-Id: I80c103122794b164788702ba5c37fd10080e9ecd
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|/
|
|
|
|
|
|
| |
Use 'msvc' instead of 'win32-mscv*' and remove check for Windows CE as it
is no longer supported.
Change-Id: I1b7415740119b59b77c4beff5171d75e1a7768de
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: I3342507fa2ea69f753f1f062c233211fad4791ff
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
| |
Change-Id: I370e462780e25b788afc599f03ef2189e41d6476
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
| |
Change-Id: I58ad45eaa767b4b011eaf2df2686dc0de4ed5f44
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Keep "import QtQml.RemoteObjects 1.0" for compatibility.
[ChangeLog][QML] Updated import statement to better
match typical module pattern. From QML "import QtRemoteObjects 5.12"
should now be used.
Change-Id: I0224e387b5bea3be5907485e4fca505f2fb3fb3e
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
| |
Change-Id: I6ed6a125669a4d3537b5e7266d1afe152cfb79f1
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|\
| |
| |
| | |
Change-Id: Ia8536328b6ea1c25923e40b473be54045375d31f
|
| |
| |
| |
| |
| | |
Change-Id: Ie3fd6a57559604aea231aad7936ffbaf9cdce185
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds the APIs that will be necessary to create SSL sockets flexibly
(and outside of QtRO) and pass them in. The integration tests are extended
to show everything works if the tcp/ip connection is created outside QtRO.
The Registry is supported by allowing an "external schema" to be set as the
HostNode's url, which is then used by the registry as the address for any
remoted() source objects. The client Node calls registerExternalSchema()
with a std::function callback that can create the client-side QIODevice
given the registry provided url.
Change-Id: I0f2d0ea270771e096a787134ef87d537769045f6
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|\|
| |
| |
| | |
Change-Id: I3d60648e678cb98e7348d472d0b389327c28b9c9
|
| |
| |
| |
| |
| | |
Change-Id: I39f457b3ac573095dcbc95b0d63c67476e683110
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Add support for "standalone" comments in the file or class definition.
Task-number: QTBUG-68976
Change-Id: Ie59af56daf76bba84292aa6a095a5e105861a41e
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix multiline ENUM/POD handling, and allow tabs in parameter lists, to
address a couple of reported bugs.
This will allow multiline Signal/Slot/Prop parameter lists as well. The
enum handling already was set up for multiline processing, the issue was
actually (at least for the test provided) in having whitespace before the
'}' completing the enum. We allow whitespace before '{' and '}' now, too.
Task-number: QTBUG-68975
Task-number: QTBUG-67770
Change-Id: Ic362a3050ba6a6b646bdb9dc8cf28f2f2902b611
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a refactoring only, it doesn't change the tests (except for two
minor fixes), but the refactoring will help in adding support for SSL (in
future changesets).
The two minor fixes were to
1) Not call connectToNode in persistRestoreTest (there is no Host in this
test)
2) Not call enableRemoting twice on the same object in namedObjectTest
Change-Id: If61d144ae39a29b0c5f7145a7f27055b5d25cc48
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|