| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Added missing call to decodeVariant before informing replicas
Pick-to: 6.7 6.6 6.5 6.2
Change-Id: Ibb83f02fc901390c4ec92de836d9663315ab112c
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When QDoc parses a project, it parses the source code to extract the
user-provided documentation and perform sanity checkings based on the
code itself on it.
When QDoc parses an "\fn" command as part of this process, it tries to
understand, based on its intermediate representation built on the
information extracted from the code-base, which "documentable element"
the "\fn" refers to.
When QDoc performs this "matching" process, it takes into consideration
only a certain amount of information.
For example, no checking is performed over the template declaration of a
callable.
Due to some upcoming documentation, where two callables are
indistinguishable to the current process, as they differ only in their
template declaration, QDoc will start to take into consideration the
template declaration of a callable when matching.
This implies that an "\fn" command should now provide information
parity, with regards to template declaration for callables, with the
code-base so that QDoc can perform the match correctly.
The documentation for some of the members of `QRemoteObjectNode` is not in sync
with the intended target template declaration.
Hence, add the missing information to the relevant "\fn" commands.
Task-number: QTBUG-118080
Change-Id: Ie7420f65980b6a83db107812361b88eebb4212a1
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
examples/remoteobjects/clientapp/doc/src/clientapp.qdoc:
Cannot find file to quote from: clientapp/qml/plugins1.qml
src/remoteobjects/qremoteobjectnode.cpp:
Can't link to 'address'
Mark the module free of documentation warnings and enable doc
testing in the CI.
Change-Id: Ia33991e615e74df54a7cebdfbe0aafe65b0c8cdb
Reviewed-by: Safiyyah Moosa <safiyyah.moosa@qt.io>
Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
As reported by ASAN, there is a memory leak for the
QtROIoDeviceBasePrivate::m_codec object. It seems that the codec was
created in QRemoteObjectNodePrivate::onClientRead(), but never deleted.
Fix it by wrapping the codec into std::unique_ptr.
Pick-to: 6.6 6.5 6.2
Change-Id: I49bc9a8031e657cac064551b51bb0b8082865887
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
Reviewed-by: Øystein Heskestad <oystein.heskestad@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This method must be called before a QRemoteObjectHost object using
the QLocalServer backend starts listening for it to have an effect.
It starts listening during construction when the address argument
is non-empty, otherwise when the address is set via setHostUrl().
Also added another error code QRemoteObjectNode::SocketAccessError
for when the QRemoteobjectNode is not allowed to connect to the
QRemoteObjectHost.
Fixes: QTBUG-72921
Change-Id: I4303b25dbc37d9f4d4eb2bdaeff1ef02089e6b5d
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By adding it to the default build flags via .cmake.conf.
This disables the 3-arg QObject::connect() overload:
QObject::connect(sender, signal, functor)
For details see:
https://lists.qt-project.org/pipermail/development/2023-July/044141.html
Task-number: QTBUG-116296
Change-Id: I34bd090549ec786734d917c466e1345207c29295
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Found by Clang 15:
qremoteobjectnode.cpp:1050:9: warning: variable 'curIndex' set but not used [-Wunused-but-set-variable]
int curIndex = 0;
^
Remove the variable.
Amends 67ac9631dbb26394e6b9981494a0aaf6124284a9.
Pick-to: 6.5 6.4 6.2 5.15
Change-Id: I89b31ed525ebd34ba76853b6b634d77022d4635a
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We've been requiring C++17 since Qt 6.0, and our qAsConst use finally
starts to bother us (QTBUG-99313), so time to port away from it
now.
Since qAsConst has exactly the same semantics as std::as_const (down
to rvalue treatment, constexpr'ness and noexcept'ness), there's really
nothing more to it than a global search-and-replace.
Task-number: QTBUG-99313
Change-Id: Ifc205a53ed6809f98d6cd552de901ea7e90716f5
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a semantic patch using ClangTidyTransformator as in
qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8:
auto QtContainerClass = anyOf(
expr(hasType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))))).bind(o),
expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o));
makeRule(cxxMemberCallExpr(on(QtContainerClass),
callee(cxxMethodDecl(hasAnyName({"count", "length"),
parameterCountIs(0))))),
changeTo(cat(access(o, cat("size"), "()"))),
cat("use 'size()' instead of 'count()/length()'"))
a.k.a qt-port-to-std-compatible-api with config Scope: 'Container',
with the extended set of container classes recognized.
Change-Id: Id816b39977e17712fd078900037efc45f66a0175
Reviewed-by: Sona Kurazyan <kurazyan.sona@gmail.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
License files are organized under LICENSES directory.
Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I315d7ce1d6c6c3497afdfe8b61a113fdc181c935
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
Much more efficient now that setObjectName takes QAnyStringView.
Change-Id: I0d7423f6fb9aa41f1570c21ce948f1b8d0e0ff16
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Calling QRemoteObjectHost::hostUrl() will crash if remoteObjectIO
is nullptr, so check if it's not nullptr before using it.
Fixes: QTBUG-85124
Pick-to: 5.15 6.2 6.3
Done-with: sona.kurazyan@qt.io
Change-Id: I1f73589958ba08d3997193653b57a64a223cd201
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move the implementations of setRegistryUrl() and setHostUrl() virtual
methods to the non-virtual methods in the corresponding private classes
and call them from the constructors. Although in the context of the
current code the virtual method calls were legal and didn't lead to
anything unexpected, but generally it's not recommended (so the
codechecker complains) and can lead to issues in future, for example
when refactoring or changing the code.
Pick-to: 6.2
Task-number: QTBUG-95752
Change-Id: I13b97e3a1e179b0e5ce5bc7e9bbb9f5bb7166ebb
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Extends the QList<*> fix to work with associative containers as well.
Note, this doesn't support enums as keys (to be added in a future commit)
There are two use-cases which should be supported by a fix.
1) Proxy, where the parameter is stored, but then forward to downstream
replicas which can be compiled. In this case, the ransformation needs
to support conversion back to the declared type.
2) Dynamic replicas being used from QML. In this case, the dynamic type
should be made available to QML in a way that is equivalent to the
declared type.
Dynamic storage/QML support are from the type QtROAssociativeContainer.
This class is derived from QVariantMap, but stores a few extra members to
allow forwarding without losing type information.
Over-the-wire transfer is via a new class (QAS_), which stores elements
in a QByteArray based on the valueType, not the container. Since the type
will always be fully known at the source, we can use metatype detection to
separate out the problematic types (an associative container of Q_GADGET
types), and convert those to QAS_ containers for sending.
Note: there is one additional piece needed. When we send the definition
of a dynamic type (needed for the creation of the dynamic metaobject), we
need to change the type of any member or parameter that is a such a
container to QtROAssociativeContainer.
Pick-to: 6.2
Change-Id: Ib50a01b4f9a3ecaa25a5a933feb6ed843e104b15
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This extends the pattern match for enums (NB: w/ backwards compatibility)
to allow generation of class enums as well as typed enums. NB2: I didn't
realize "regular" enums could be typed in C++11, but that is supported as
well.
Pick-to: 6.2
Fixes: QTBUG-74835
Change-Id: I8baf334041ca54eefaf9e81f5dd08d7b57819838
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
|
|
|
|
| |
myInternalHost was not connected to any registry so it could not have
acquired any reverse-proxied objects.
nodeOnRemoteDevice must connect with setRegistryUrl rather than
connectToNode to set up notification in both directions.
Change-Id: I95f01805731fb1f1b7a14d8bd739666b1f6cb424
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt6 fixes the original test case, as it now generates metatype info at
compile time for container classes of all primitive types. `subclass.rep`
was modified to include the type QList<MyPOD> as a property, which did
crash in Qt6, because PODs can have their metaObjects created at runtime,
which do not generate container<POD> metatypes.
There are two use-cases which should be supported by a fix.
1) Proxy, where the parameter is stored, but then forward to downstream
replicas which can be compiled. In this case, transforming to something
that works dynamically should support conversion back to the declared
type.
2) Dynamic replicas being used from QML. In this case, the dynamic type
should be made available to QML in a way that is equivalent to the
declared type.
Dynamic storage and QML support are from the type QtROSequentialContainer.
This class is derived from QVariant list, but stores a few extra members
allow forwarding without losing type information.
Over-the-wire transfer is via a new class (QSQ_), which stores the elements
in a QByteArray based on the valueType, not the container. Since the type
will always be fully known at the source, we can use metatype detection to
separate out the problematic types (a sequential container of Q_GADGET
types), and convert those to QSQ_ containers for sending.
Note: there is one additional piece needed. When we send the definition of
a dynamic type (needed for the creation of the dynamic metaobject), we need
to change the type of any member or parameter that is a such a container
to QtROSequentialContainer.
Pick-to: 6.2
Change-Id: Ie2ca53bcbeb4ca0e38c672b5ce951742f625711a
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The decodeVariant calls were weird in how their parameters were pass by
reference so they could be changed, but without forcing a copy. It is
clearer to pass by rvalue ref, using std::move on the calling side.
This rippled up to calls that called the method, including setProperties
which is part of the repc generated code.
Because of the repc change, this should *not* be picked to Qt5.
Pick-to: 6.2
Change-Id: Ieb1b0620569ad8eb9797edc57cc189d0b426510c
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
|
|
|
|
|
|
|
| |
This is a holdover of QVector -> QList conversion
Change-Id: I8f7677617ad96d3b45e78e44cbbe7fa97a430c79
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are plans to enable the reserve proxy functionality for
QRemoteObjectHost, so remove the comment suggesting to move it out from
its base. Additionally update docs and fix some related pre-existing
issues.
Task-number: QTBUG-94407
Pick-to: 6.2
Change-Id: I60da0580648c2b5536e88193d034ed4cfb8d6f7c
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added QtRO prefix to IoDeviceBase, ServerIoDevice and ClientIoDevice
classes. These classes are exported and can be used externally for
supporting a custom transport by deriving from them and implementing
the virtual methods. Added the prefix also to ExternalIoDevice, to keep
the naming consistent.
Pick-to: 6.2
Change-Id: I64845cff55687a127d2c43de03ecc65ac9bd321b
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
When support for multiple serialization backends is added, IoDeviceBase
shouldn't be aware of the serialization method used (serialization is
handled by the codec), so it should have no QDataStream-specific methods.
Moved the method returning QDataStream to the private part, so that it
can be easily removed later, without breaking SC.
Change-Id: I511306ac520c5b745576f5db31dc22f0eadacc62
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-90687
Change-Id: I6c75b7e4cac09f110c377ebc7ed1d72774ffb765
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Andreas Buhr <andreas.buhr@qt.io>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
|
|
|
|
| |
This is more appropriate than having a separate mapping of connection to
Codec.
Change-Id: I3b54bfb479de04706a3f9563e7a987af91d0282d
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This hides implementation details and allows for different implementations
in the future.
Change-Id: I5502bb040afe502f7b127668cf7ff81ee79f5e89
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
|
|
|
|
| |
The functions don't take a copy, and does not need a QString for
other purposes (e.g. QMap::contains(QString)), so they can be a
QStringView.
Task-number: QTBUG-90907
Change-Id: I05ad4cc4648ecb970a058dd914be76fe8468a446
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Reflowed very long lines.
0 meaning 'nullptr' changed to \nullptr.
Typos fixed.
Task-number: QTBUG-90848
Change-Id: Ieeae60047203dee829adae84c900692aa94a45e3
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Make sure the input QIODevice is valid and the disconnect signal (if
available) is connected.
Task-number: QTBUG-84640
Pick-to: 5.15 5.12
Change-Id: I9e65dc903ce0e92da4f4a1e07fd5d6b66815e2a4
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
|
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-90848
Pick-to: 5.15
Change-Id: I72226f262bfb90c542974aeb9a326f1f4cd2827b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
| |
Change-Id: Ib1229eb973066a7500cb759082a1a3a7ce978bfa
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed the following warnings:
- empty expression statement has no effect; remove unnecessary ';'
- use of old-style cast
- zero as null pointer constant
- other minor things
Change-Id: Ia672f48d2aa87c59354fc93fd19862f1875e13db
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-84469
Task-number: QTBUG-90907
Change-Id: Ifc6f05fb5e17e32ec04b383770080e812c854510
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
| |
Change-Id: I013bd3f3a6e7bb9e2a4ff45a3ca9534048643144
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
| |
Change-Id: If7de5da3e7ad6d345e8b483486bb7177bccbc0df
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
| |
Change-Id: Ica069d9d0fb39043ab44f19aa44d6e080f69b0f8
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Remove no longer used GadgetSaveOperator and GadgetLoadOperator methods and
add GadgetDebugStreamFn method.
Change-Id: I3444c6b67307007330b63e7bf0a2f55a39271312
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-90685
Change-Id: Iba9ee0a28ec0ceeca5ae318204deb14190042533
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
| |
Change-Id: Ic4bfe4ba2173c84c743f4c972db216e6bbd30211
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
|
|
|
|
| |
It had a memory leak that caused the test failure with Qt6 on windows.
Fixes a couple of warnings in the test as well.
Pick-to: 5.15 5.12
Change-Id: I747357d8514bd2c00648b0db3ea3b4aab3c2982f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This addresses the regressions from moving to Qt6's metatype changes. The
underlying changes in QtBase allow for better compile time support for
type generation and automatically clear dynamically generated types based
on reference count.
There are three primary fixes.
1) For Gadgets, the constructor needs to copy the original QVariantList
instance in to the newly constructed value. This is the only way the
types of the variants will be known for the QDataStream `>>` operator
to work.
2) Enum registration needs to occur _before_ the metaobjectbuilder's
toMetaObject() method is called in order for property metaobject's to
be defined.
3) A little surprisingly, it is the id() method on the QMetaType that does
the actual registration, and the object this is called on needs to be
kept around to keep the reference count and prevent unregistration.
Fixes: QTBUG-83333
Task-number: QTBUG-84590
Change-Id: Ie93ff60276177c3c713dd0bd3bfc08a03cf98e07
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|\
| |
| |
| | |
Change-Id: I61c056e5c7d48e20a1ed801c2ca362521af2f190
|
| |\
| | |
| | |
| | | |
Change-Id: I370b0e8037d5481169027fe515328c3cf44c45ea
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I13dc15e75d65e0ec5d2bf08a4f76bfbd4f578a7d
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Port to new QMetaType registration scheme. A number of
test needs to be skipped.
Change-Id: I6fb47c4bf2d2ded7fff0e95dd28d65f8e813c8c1
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-82462
Change-Id: I922bdbd33dff1b7bca68576b10feb5a28d0516cd
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|/
|
|
|
|
|
|
| |
[ChangeLog][QML] Exposed Host to enable remoting of source objects from
QML.
Change-Id: I048fc9418e70590b95502963df540c9741a9f4a3
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|
|
|
|
|
|
|
|
| |
Fix missing return value and parameter documentation, and do other
minor touch-ups.
Fixes: QTBUG-79818
Change-Id: Ic5c818ea68b8d57846133a1236f82e2a1a10b135
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|\
| |
| |
| | |
Change-Id: I5b734d87ffdb798246e16727d916b489d7c23aa9
|
| |
| |
| |
| |
| | |
Change-Id: I241260b53e7faaaf4ea1b6cb7ba6235abe865713
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
|
|\|
| |
| |
| | |
Change-Id: I59e920204d60b5c50970f6ea07b9f919bf6f0d52
|