| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
The 2 is meaningless.
Task-number: QTBUG-85064
Change-Id: I9f140155d274c691b5eab1285d9b7153f9f93a87
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
The "2" is meaningless and there is a better name available now.
Task-number: QTBUG-85064
Change-Id: I65d26b06712ed7dcf2825f16dffaa6060dd86985
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
| |
Use noquote() for qqmlengine warnings.
Fixes: QTBUG-86595
Change-Id: Ibe161cb164b9fa2511e4bc02237de5d81172e114
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
It makes no sense to have them qqmlengine.cpp.
Change-Id: I138807c7650ec7aef4c6e8833e8bac8a6f179d1c
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
| |
There is no reason to keep it in qqmlengine.cpp as it is declared in
qqml.h.
Change-Id: I0a0261b943c4a3b4333d7161becbd68ad4f1b21e
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The only place where it was still used is QQmlOpenMetaObjecType. The
only effect of QQmlCleanup is that clear() is eventually called by the
engine. In the case of QQmlOpenMetaObjectType the only effect of that
was that the "engine" member was reset. However, the only place where
that member was used was in setCached(), and in that place it was
irrelevant. There is no reason why setCached() should be prohibited when
there is no engine. We may be worried that the property cache assigned
to the open metaobject might go away somehow if there is no engine, but
the cleanup mechanism clearly demonstrates that checking for the engine
on setCached() does not protect against this.
Fixes: QTBUG-90004
Change-Id: I05445eaeb53a64c70de366090ea2ee4aecf2bad8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
Previously errors occurring when parsing QML singletons would just be ignored resulting in a crash.
The errors are now properly printed and the execution is aborted in time.
Fixes: QTBUG-85932
Change-Id: I61cef5f97546ce2e0753bc46c548838a21b1f506
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All the necessary information is contained in the QVariant's metatype,
so we can use that. This removes the need to acquire the data pointer
lock. The method in QQmlEnginePrivate now simply forwards to
QQmlMetaType; in a later commit, all usages of the forwarding functions
from QQmlEnginePrivate will be replaced with the equivalents from
QQmlMetaType, so that they can be removed from QQmlEnginePrivate.
Task-number: QTBUG-88766
Change-Id: Iebcda9b18b4952fff2c7c1aeae210c677c6869b8
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'Q_OBJECT', even in a comment, interferes with automoc.
Prefixing it with a backslash solves the automoc issue,
but documentation looks wrong as content inside \code
is taken verbatim.
Move code snippets to doc/snippets and refer to them
with \snippet commands.
Pick-to: 6.0
Change-Id: Ied7fdf87ef5edd2b237498b91b162c19bf7bc636
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
| |
Change-Id: If3640ef5cbb6df4b199b481410e79e94ea763645
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
| |
That is a noop and produces a warning.
Change-Id: I75787aee66b55522005247524140e3f3a7dd56ba
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-88156
Change-Id: Ic6127c6128b4c7736cb4b5ab8ce51629388b59ca
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
| |
It seems we never stated that singletons can not be extended in our
documentation. Therefore this is technically a bug fix and doesn't need
separate documentation.
Change-Id: I7877289bd5a52ecf709f80ba1975137981ec65f0
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-87037
Change-Id: I1969dba3b6edfaf202a316576674efed481bb1e4
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Also, use that method to capture the uiLanguage notify signal.
Previously the wrong signal was captured. The test still happened to
pass because we manually re-evaluated all bindings when the uiLanguage
property changed. Add a test which avoid that.
Change-Id: I3961b60b365a8705930936f20881421bd4ceffe5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
As you can extend value types with QML_EXTENDED we may as well allow a
factory function in the extended type. Furthermore, if the original type
allows construction from QJSValue, we may just use that. In turn, we can
get rid of the value type providers now.
Change-Id: I9124ea47537eab6c33d7451080ab2fff942eaa7b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This avoids the template explosion and makes the mechanism extendable.
You can now register additional anonymous sequential containers.
Fixes: QTBUG-71574
Task-number: QTBUG-82443
Change-Id: I5b9ed9af1533a3b7df8fc5bb37bbb73b8304e592
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
You can now have an extension object on a value type that offers
additional properties. This is how we model the QtQuick value types. It
allows us to retrieve the extension's metaobject without using the
virtual functions in the value type provider.
As before, this mechanism is still rather dangerous and not fit for
public consumption. It relies on the extension object having exactly the
same layout as the original value type, and it hides any properties the
original value type might expose.
Furthermore we enforce now that gadgets should have lowercase names.
The ones that didn't before are split up into an anonymous value type
and a namespace that contains all the addressable bits.
Task-number: QTBUG-82443
Change-Id: Ic93d6764538d6ccc0774b3c5648eee08ba0939c0
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][QtQml] The functions qmlExecuteDeferred, qmlContext and
qmlEngine are no longer available in the QtQml namespace. Use their
counterparts in the global namespace.
Change-Id: Ife1ea83ca1d474420c9ee697772b7115247cc400
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Those interfaces are always registered in pairs. Add an external
refcount to CompositeMetaTypeIds, and do registration and
de-registration through this class.
Change-Id: I4f3a53ad935a43a734d6506ffc768f507b48ee1f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
| |
Change-Id: I2a983cf8188e88d80d3b7726208d821427eb8f3c
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
They are always created and destroyed together, so grouping
them makes the required memory management of them easier.
Change-Id: Ia1980f31f9bdff6a1accd229bc8380ae153edf67
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][QML] The deprecated functions qmlAttachedPropertiesObjectById
and qmlAttachedPropertiesObject(int *, const QObject *,
const QMetaObject *, bool) have been removed. Use the
qmlAttachedPropertiesObject(QObject *, QQmlAttachedPropertiesFunc, bool)
overload of qmlAttachedPropertiesObject instead.
Change-Id: I6bc8315557733dc2f51b2ffdebeec51873b74b2b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
This is needed in order to remove PySide2's qml type limit.
Change-Id: I331d9e31574a744eb9085222d58ea8a8789e0e31
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Previously, if you registered a module import for a specific version X
of a module, and the user imported the module without specifying a
version, the module import would not be carried out even if X was the
version actually imported.
Change-Id: I853ed6f275501cf4cbd4e5a360985e67b07f3773
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
This is required to remove the ; from the macro with Qt 6.
Task-number: QTBUG-82978
Change-Id: Iead53d18fd790fb2d870d80ef2db79666f0d2392
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
The bit is still left in QQmlData for now; checking which of those flags
are still needed is left as an exercise for later.
Change-Id: I1ed8e634aefa7d61db4f96115cc07e2b81a8fbcc
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Do not append the directory separator if the current path is the root
directory. Otherwise it is treated as a remote path incorrectly and an
empty url is returned as a result.
Change-Id: Icc62114702265e9e1b247624370a78999e564d5f
Task-number: QTBUG-83121
Pick-to: 5.15
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
If a plugin does nothing but load the library that provides the types,
we can skip the plugin loading by linking the library directly. State
that in the qmldir file, and evaluate it when loading the module.
Task-number: QTBUG-84639
Change-Id: I2097237866a50f66c55e4653ad119fe10e18a893
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As noted in QJSEnginePrivate::cache, there can be a race between
calling addRef on the QQmlPropertyCache and another thread derefing and
consequently deleting it. To avoid this, we introduce a doRef flag in
QQmlMetaTypeData::propertyCache, which tells it to ref the the cache.
This fixes the issue, as the QQmlMetaTypeDataPtr in propertyCache() acts
as a mutex.
Fixes: QTBUG-84692
Pick-to: 5.15
Change-Id: I962d28cfd22696aad89a660e41c55f63a8791b44
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-84434
Change-Id: If8f57f00726868a3540c877d07fca761618e4f08
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][QML] The setObjectOwnership and objectOwnership functions
have been moved from QQmlEngine to QJSEngine. This reflects the fact
that they have an effect on objects passed not only to a QQmlEngine, but
also to a QJSEngine. As QQmlEngine is a subclass of QJSEngine, existing
code continues to work.
Fixes: QTBUG-83657
Change-Id: Ib29cdb4a9884e1f1b68fcba64d32b1cb2e5a4297
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|\
| |
| |
| | |
Change-Id: Iafb7061945e011542fbf0f6ebe776f0a4187b0a4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
WebAssembly seem to be missing from the list of reported platform in
QML. Adding it to the list enables writing of work-arounds for
wasm-specific bugs like e.g. QTBUG-83380 also in QML code.
Change-Id: Ifc5966ee0da0e62bfd8d4a029e1a42962686e43c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
d8b49e6b51007d6f0a9faec82a66b95dc7ccf541 in qtbase removed bearer
management in QtNetwork.
Looks like it's an unused include in qqmlengine.cpp.
Change-Id: I9e2c7cf164eb843ab10bb941bd42c2704ec78906
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This class is not a private detail of QQmlContext. And it is incredibly
hard to see who owns what in there. Let's add some civilization ...
We enforce refcounting for QQmlContextData across the code base, with
two exceptions:
1. QQmlContextPrivate may or may not own its QQmlContextData.
2. We may request a QQmlContextData owned by its parent QQmlContextData.
For these two cases we keep flags in QQmlContextData and when the
respective field (m_parent or m_publicContext) is reset, we release()
once.
Furthermore, QQmlContextData and QQmlGuardedContextData are moved to
their own files, in order to de-spaghettify qqmlcontext_p.h and
qqmlcontext.cpp.
When the QQmlEngine is deleted, any QQmlComponents drop their object
creators now, in order to release any context data held by those.
Before, the context data would be deleted, but the object creators would
retain the dangling pointer.
[ChangeLog][QML][Important Behavior Changes] QQmlContext::baseUrl() does
what the documentation says now: It prefers explicitly set baseUrls over
compilation unit URLs. Only if no baseUrl is set, the CU's URL is
returned. It used to prefer the CU's URL.
Change-Id: Ieeb5dcb07b45d891526191321386d5443b8f5738
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Being careful, we can now save primitive values inline. We use the heap
pointer of QV4::Value as either QString* or QV4::Value* for complex
types. We cannot store persistent managed QV4::Value without the double
indirection as those need to be allocated in a special place.
The generic QVariant case is not supported anymore. The only place where
it was actually needed were the stream operators for QJSValue. Those
were fundamentally broken:
* A managed QJSValue saved and loaded from a stream was converted to a
QVariant-type QJSValue
* QVariant-type QJSValues were not callable, could not be objects or
arrays, or any of the special types.
* Cyclic references were forcibly broken when saving to a data stream.
In general the support for saving and loading of managed types to/from
a data stream was so abysmally bad that we don't lose much by dropping
it.
[ChangeLog][QML][Important Behavior Changes] When saving a QJSValue to a
QDataStream only primitive values or strings will be retained. Support
for objects and arrays was incomplete and unreliable already before. It
cannot work correctly as we don't necessarily have a JavaScript heap
when loading a QJSValue from a stream. Therefore, we don't have a proper
place to keep any managed values. Using QVariant to keep them instead is
a bad idea because QVariant cannot represent everything a QJSValue can
contain.
Fixes: QTBUG-75174
Change-Id: I75697670639bca8d4b1668763d7020c4cf871bda
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We may want to have, for example, a QQmlFileSelector and a
component-specific interceptor that chooses a theme or similar.
Also, make the API public. We want to propose this as alternative to
dynamically registering QML files via qmlRegisterType(QUrl, ...).
Change-Id: I4a535d3ea556da6710fde816579ec188b3f57099
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
dependencies.yaml
src/qml/qml/qqmlengine.cpp
Change-Id: I6a73fd1064286f4a2232de85c2ce7f80452d4641
|
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes: QTBUG-82453
Change-Id: I7e5682945a07c3af183becd3947a69568f139d16
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/compiler/qqmlirbuilder_p.h
src/qml/qml/qqmlpropertycachecreator_p.h
src/qmltyperegistrar/qmltypesclassdescription.cpp
src/qmltyperegistrar/qmltypesclassdescription.h
src/qmltyperegistrar/qmltypescreator.cpp
src/quick/items/qquicktext_p.h
src/quick/util/qquickvaluetypes_p.h
Change-Id: Ic209741592e7b85820bf3845722023a190ebc1c5
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is needed in a few places outside of declarative, so this change
restores the loc member in DiagnosticMessage and moves
QQmlJS::AST::SourceLocation into common's QQmlJS namespace/directory.
QQmlError is unaffected and retains only line/column.
Amends d4d197d06279f9257647628f7e1ccc9ec763a6bb
Change-Id: Ifb9d344228e3c6e9e26fc4fe112686f9336ea2b2
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Don't suggest procedural registration of C++ types.
Change-Id: Ib133fa7557f7555222fc55344a29967efc5c1f6f
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
error: static_assert failed due to requirement 'bool(-1 == 1)'
"Required feature settings for file [snip]/qsettings.h not available."
QT_REQUIRE_CONFIG(settings);
Change-Id: I0759f884531179ed5f625f21c5559389aef5c4ad
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/imports/qtqml/plugin.cpp
src/qml/qml/qqml.h
src/qml/qml/qqmlmetatype.cpp
src/qml/qml/qqmlmetatype_p.h
src/qml/qml/qqmltypeloader.cpp
src/qml/types/qqmlbind.cpp
src/quick/items/qquickitemsmodule.cpp
tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
Change-Id: I52548938a582cb6510271ed4bc3a9aa0c3c11df6
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When the QQmlEngine gets destroyed, it unregisters all previously
registered composite types. So far it only removed them from Qt's
metatype system. This is however not enough, as the types also need
to be removed from the global qmlLists datastructure.
We achieve this by calling
QQmlMetaType::unregisterInternalCompositeType.
Task-number: QTBUG-81772
Change-Id: Iba124c890bc4613ffbb110003d74fe3a912f8df6
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Retrieve the major version from the meta object revisions and use them
to register types and generate qmltypes files.
Change-Id: I35da8963457660d1a49ba9063574e1a68057a7ba
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Unfortunately we failed to deprecated it in Qt5, but now we can provide
it inline.
Change-Id: I89e418829ce08e7d0da68e91106ba12a24c8b02a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In many places we carry major and minor versions or revisions that are
loosely coupled to minor versions. As the Qt minor version resets now,
we need to handle these things more systematically. In particular, we
need to add a "major" part to revisions.
QTypeRevision can express the current major/minor pairs more efficiently
and can also be used to add a major version to revisions. This change
does not change the semantics, yet, but only replaces the types.
Change-Id: Ie58ba8114d7e4c6427f0f28716deee71995c0d24
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
dependencies.yaml
Change-Id: Ie3e9dc62031a85e5e81cbdf04694b95159d49fca
|