| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
qmlcachegen needs to see the qmltypes file for the current project so
that it can query it for C++ types exposed to QML.
This is only relevant when generating C++ code, which qmlcachegen itself
cannot do. However, in order to write a compatible drop-in, we need it.
Also, hide related ignored options from --help in qmlcachegen.
Change-Id: Id2f1b8b1750351c7de8dfe49e4065ef1b29423b7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently there is no public API to transform a QVariant holding a
QQmlListProperty into a QQmlListReference. We cannot pass
QQmlListProperty itself as that is templated. The metatype-based casting
is somewhat evil, but not more so than what we already have in the other
ctor.
Change-Id: I2d56499b1fd188613bc71016cb00ec23081d3cea
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
| |
... a.k.a InternalClass. This is a faster way of creating multiple
similar objects, compared to a sequence of setProperty() calls.
Change-Id: Iecc8c581e50b9062895dae9500ffe2482d88028e
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Consistently never unload plugins on macOS, also remove half-broken
plugins from the map, and always unregister any types in them.
Unloading plugins on macOS is ill-advised as it will actually unmap the
memory, making string data (among other things) inaccessible. We've
already done the same change to qmlClearEnginePlugins().
Change-Id: I8fa40db5c3cd83f12e6d85d0efc3b9679dd4381e
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
If you access a string as an array you get a one-character string of the
index you are asking for.
Change-Id: Ie2ac3243c9e23f37b8904c54d824946646a596eb
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we load the same file multiple times, we can re-use the old mapping.
In fact we may leak memory if we don't. The fact that we have to use a
mutex here is somewhat regrettable, but I haven't found a better way
of serializing access.
Task-number: QTBUG-89659
Pick-to: 5.15
Change-Id: Iaa44ac80faa5e95f30c05e950ab35083a8b0416b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we cannot mprotect() we have to abort the JIT compilation. Delete
RepatchBuffer.h as it is unfixable in that regard. Luckily we don't use
it.
Task-number: QTBUG-89659
Pick-to: 5.15
Change-Id: Ic5ddbdf51b471db4ddeaa75aab48b24c1f7ced56
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
It prevents the compilation unit held by QQmlScriptData from being
released on clearComponentCache(). The comment justifying the
QQmlCleanup has been wrong since we moved away from V8.
Task-number: QTBUG-89659
Pick-to: 5.15
Change-Id: I220561d90f707540e47c76d60a51468ee231ce9a
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Doc Using the Qt Quick Particle System did not contain
links to examples.
Fixes: QTBUG-29378
Pick-to: 6.0
Change-Id: I82e3a3af4925f7c8e58ce6a5c5af57b854cb9e36
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
We need the compilation unit, and a way to retrieve JavaScript metatypes
from it. Also, prepare for cases where we only have a QJSEngine, not a
QQmlEngine, and pass the scope object as part of the AOT context.
Change-Id: Ica81e92c99f3c9b6baffd04db1e0e91603fd2ac7
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
The engine should really always be available if we have a d pointer.
Change-Id: If620e69de07c6d365b45e714bae3ec0fb7eb86ef
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
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>
|
|
|
|
|
|
|
|
|
| |
When removing items from groups actively shown by a model filter a warning
and assert was triggered in the past. This change fixes this behavior.
Fixes: QTBUG-86017
Change-Id: I49b7498a3d03141b654e453a3c35a43fc7ba804a
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Aliases are seriously broken and need a larger overhaul.
This patch at least prevents the application from crashing.
Task-number: QTBUG-89822
Change-Id: Ib6acc5b6f621a902f7f5ce370043986486f3c0d0
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
Otherwise you cannot have multiple targets in the same directory.
Change-Id: Ibf50a4e0752273965e4570527085787cf8060710
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
| |
Removed in dfb36c91b401308f74a5bc635f9a77ba2f9872a0
Change-Id: I56bd239f068e51950cbe8b5d3df6fea92156d7fe
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The existing docs were inherited from
PointerDeviceHandler::acceptedDevices and contained the statement
"By default, this property is set to AllDevices", which is true for many
handlers, but not WheelHandler.
Fixes: QTBUG-89861
Change-Id: I5227037ffbecedc8fdd19750e60c421383ec5581
Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
|
|
|
|
|
| |
Change-Id: Ib675bfaa3fd818ef3e372bc2affd87e0d9d8f480
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
| |
'function' is a separate type in JavaScript and should be treated that
way. Replace the isCallable() method with a new isFunction() to reflect
that, and add an entry to the Type enum.
Change-Id: I09cc28a9edf8aa0380eb9caeb738dfc298a02567
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.0
Change-Id: I1bf34b68ecfa2d6eb8e687a0b12def5e7c96c318
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-85602
Change-Id: I7cdd83c16bec76c8f902c9136fa89decfc1cbd3d
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
| |
Change-Id: I3ce4494e9dddc9bf933793b354dc43494b3c84ef
Fixes: QTBUG-89561
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
| |
As opposed to being local to the item's parent.
Pick-to: 6.0 5.15
Change-Id: Idcf2cdbedcac24a6890ce761c3f2a23f2c7a8dc4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
| |
\code must be closed with \endcode.
Pick-to: 6.0 5.15
Fixes: QTBUG-89738
Change-Id: I0cadb14b6726a6fdc6c3fb773155066d30490e74
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This way any potential logic in the platform plugin that branches
based on the surface type can now distinguish between OpenGL and
D3D based windows.
Fixes: QTBUG-89715
Change-Id: I01e9f8a525280982a9d4a18defb970e8a2fcc362
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
When CMake version >=3.19 is used, qmldir file for qml module
is generated using DEFER CMake call. If find_package of Qml
component was not explicitly called error message is not really obvious.
Add explicit fatal error for this case and point to possible solution.
Fixes: QTBUG-89622
Change-Id: I82fee717478461762deb2d66a1bc347680b48d06
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We quietly recommended calling setAcceptTouchEvents() in the Qt 5.10
release notes in any Item subclass that wants to receive touch events,
and in the docs for setAcceptTouchEvents() itself; but the message about
the impending behavior change might not have been obvious enough.
In Qt 6 it becomes mandatory, so clearer docs will hopefully help to
stave off bogus bug reports.
We also never had a great overview of event handling from an Item's
perspective; now it's a little better.
Followup to ab91e7fa02a562d80fd0747f28a60e00c3b45a01 and
a97759a336c597327cb82eebc9f45c793aec32c9
[ChangeLog][QtQuick][QQuickItem] When subclassing QQuickItem, you
should call setAcceptTouchEvents(true) if you need the item to receive
touch events. It will be required in Qt 6.
Pick-to: 6.0
Pick-to: 5.15
Task-number: QTBUG-87018
Task-number: QTBUG-87082
Change-Id: I1c7a43979e3665778d61949c9d37c1d085ed594b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
| |
Adds qt6_target_enable_qmllint which automatically picks up all QML files
marked for processing by qmlcachegen which then can be checked using a
${TARGETNAME}_qmllint target.
Change-Id: I1d228d3435e6ad2389e9885f55952231c69d38ec
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
| |
We do not allow for prefixes when using declarative QML registration.
Task-number: QTBUG-87221
Change-Id: Ie1ce604390d49601a48217c71ba161f1b5f5e6e0
Reviewed-by: Erik Schilling <ablu.erikschilling@gmail.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Already inspected objects should not be skipped when determining their
properties, as recursive call will always have different base name for
the properties.
Internally we don't need inspectedObjects list at all anymore, but
it's kept to avoid changing API and in case the caller is interested
in inspected objects.
Fixes: QDS-3301
Change-Id: I76198b96d420e2a5ae6b13cfee65df4bce22d8f5
(cherry picked from commit 5e0ba6b797ca7843609fc19d8c4c96f6f26aacd2)
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
|
|
|
|
|
|
|
| |
We need a way to easily get a primitive from a QJSValue.
Change-Id: I91a55d92ffa4ba6139b1e3f2e9308800b7047563
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
| |
The JavaScript engine does this, so we should do the same here.
Change-Id: I011a60bc2c013f19306c843da7a9c22dc80a39cb
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
This is rather handy. Without it, we have to go through either QJSValue
or QJSManagedValue, which causes much greater overhead.
Change-Id: I40e2ecb6e2005f80c8f52b5e9a59028b3984eea4
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A QJSManagedValue is a view on a QJSValue which always knows the engine
the value belongs to. This allows us to implement the JavaScript
semantics of the various QJSValue methods in a much more rigorous way.
[ChangeLog][QtQml] The new QJSManagedValue should be used instead of
QJSValue for manipulating properties and prototypes of JavaScript
values, as well as for calling JavaScript functions.
Change-Id: I9d445ffcf68dfa72dba9bae0818e83c80665ad66
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
We don't want to call into the engine just for adding two numbers.
This implements the most common operators on primitive JavaScript
values. More are to follow in the future.
Change-Id: Id51a5af59a3af9fec78a2d8f293e59e6567e9204
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
If the target of a proxy was extensible, we did not set the
iteratorTarget to its correct value, and thus the ForInIteratorObject
would not be usable.
Pick-to: 6.0 5.15
Fixes: QTBUG-86323
Change-Id: Id1924ac4087bab38c006b8eba92b619b79d36b7a
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
makeWritable() rounds the memory down to the next page boundary. Usually
we include the exception handler this way, unless the offset from the
page boundary is less than the exception handler size. Make it explicit
that we do want the exception handler to be writable, too.
Fixes: QTBUG-89513
Pick-to: 5.15 6.0
Change-Id: I2fb8fb0e1dcc3450b036924463dc1b40d2020c46
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Commit 37fcffa035d55ac00f85f57ce1390fff3be213c6 fixed the issue for
remove rows, but it can also happen with model reset.
Fixes: QTBUG-83352
Pick-to: 6.0 5.15
Change-Id: I0ec1a67e822e4f8fe5b8f87f38dfae1f26b3fab5
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.0
Change-Id: Ie81bc6504cb79fbfe30d552a85016f5acf0ff6f3
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Q_MOVABLE_TYPE was conceived before C++ had move semantics. Now, with
move semantics, its name is misleading. Q_RELOCATABLE_TYPE was
introduced as a synonym to Q_MOVABLE_TYPE. Usage of Q_MOVABLE_TYPE
is discouraged now. This patch replaces all usages of Q_MOVABLE_TYPE
by Q_RELOCATABLE_TYPE in QtDeclarative. As the two are synonymous, this
patch should have no impact on users.
Task-number: QTBUG-86829
Change-Id: I5bb418483a3b06619abb4ff62cf0290a7b3bcd4f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
Adds ${TARGET}_qmllint targets to every qt module using qmlfiles.
You may specify additional import paths by adding them to QML2_IMPORT_PATH.
Change-Id: Icb920756a26c49db5e8edb9c0f691b90af9d5311
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
Reflect that qmlRegisterSingleton can't be used in conjunction with
QML_SINGLETON.
Change-Id: Ie7b2fd4f6fa5cb29806a212c284781799b796a32
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Assume an application which uses a QML singleton (so needs qmldir), and
wants to use declarative type registration. This currently breaks
because we find the qmldir, see that there is no plugin to load, and
thus never search for registration functions.
Requiring the creation of a plugin is rather pointless for an
application which doesn't reuse the QML types; so instead enable this
usecase to work. Note that qmldir + imperative registration did always
work, as the imperative registration code did always run.
Change-Id: Iac40020eb97d602d10eb8c4eecac5195ffeabe14
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
| |
Change-Id: I8fff0ba3e571273c203d4e566dcb604b75a835a8
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The information can be found in the metatype.
Task-number: QTBUG-88766
Change-Id: I6c460e3100057498b17d9ed74d2e85b609a6ab4c
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Use the information from the metatype instead.
Task-number: QTBUG-88765
Task-number: QTBUG-88766
Change-Id: Ie0a748861388e8c36f5f607ccd5aba4d6049b930
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@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>
|
|
|
|
|
|
|
|
| |
Previously it would only disable loading of separate cache files.
Change-Id: Iae92fc03d2e5566ef7dc44a6730b788b7512fd3d
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
And fix up some incorrect qmake project files
Pick-to: 6.0
Change-Id: Ia6d27ac68195635021fe7c4a5f06386a60f3f323
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
Fixes: QTBUG-87266
Change-Id: Iad8c7765b339c5498f541702bbf7df64164f5358
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|