aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlmetaobject_p.h
Commit message (Collapse)AuthorAgeFilesLines
* QQmlConnections: Allow connections to C++-defined methodsUlf Hermann2023-11-291-7/+94
| | | | | | | | | | | | | | | | | | | | With qmltc you can produce classes derived from QQmlConnections with handler methods that should still receive the signals. Introduce a new helper class QQmlConnectionSlotDispatcher that enables connections to a C++ method inside a QQmlConnections, in the same way as QQmlBoundSignal does for Javascript functions. Change QQmlConnectionsPrivate::boundsignals to allow for C++ slots using QQmlConnectionSlotDispatcher. This allows usage of Connections QML elements when they are compiled to C++ via qmltc. Pick-to: 6.6 6.5 Fixes: QTBUG-119084 Change-Id: I05d78a45a703630f43d37337268d0a3df341e7d3 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Clean up QQmlMetaObject::canConvert()Ulf Hermann2023-02-161-1/+5
| | | | | | | | | | | I don't see how the previous implementation makes any sense. It seems to be a remnant of a time when QMetaObject::inherits() didn't work reliably. Task-number: QTBUG-94807 Change-Id: I9b7a25aa641185c263ddc6d91553400259e4a311 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Use SPDX license identifiersLucie Gérard2022-06-111-38/+2
| | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use const QQmlPropertyCache wherever possibleUlf Hermann2022-03-141-2/+2
| | | | | | | | We're not supposed to modify property caches after they've been created. Task-number: QTBUG-73271 Change-Id: I0ab8ed6750508fa4e28931995142f56cd5fa3061 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Clean up PropertyCache life cycleUlf Hermann2021-11-091-2/+2
| | | | | | | | | | | | | We generally want to use QQmlRefPointer for it, rather than manually calling addref() and release() all over the place. Also, we can completely inline its ctor and drop an unused member. Also, do not keep property caches of dynamic meta objects in type registry. The dynamic metaobjects will change, and the outdated property caches will eventually be retrieved. Change-Id: I8042c85b32f3031b554f97a35c1545a3412d2acb Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Clean up some includesUlf Hermann2021-11-051-2/+1
| | | | | | | | | We should not include qqmlglobal_p.h just for the export macros as that pulls in a number of other things. Rather, include qtqmlglobal_p.h for that. Change-Id: Iecb60ef676dd880c0d94360ccef6517ef1ec73bf Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Rename qflagpointer_p.h to qbipointer_p.hFabian Kosmale2021-11-031-1/+0
| | | | | | | | | QFlagPointer has been moved to qtbase. As a drive-by, remove includes of qbipointer_p.h which are no longer needed and add them where the type is actually used. Change-Id: I067864e6c082dcbd422deb79812ea7c36412caba Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QV4QObjectWrapper: Store the whole signalFabian Kosmale2021-04-011-2/+2
| | | | | | | | | | | | | | | | | | | | | 90be89d771425044a84e9e79e4e668e065acc825 changed the connection logic to actually pass the receiver to connect in order to fix disconnect cleanup. However, we omitted to change QObjectSlotDispatcher::impl accordingly. The previous logic was: - store the index of the signal in signalIndex - In impl, in the call case, we would get passed the emitting object (sic!) as the receiver parameter. Then we would use the object and the signal index to obtain the QMetaMethod. - From the QMetaMethod, we could get the signal's number of parameters. After the aforementioned change, that does not work anymore: The receiver is now the actual receiver of the signal, thus we get the wrong method, and potentially the wrong number of parameters. To fix this, we now store the complete QMetaMethod of the signal. Pick-to: 6.1 Change-Id: I868c51edf24a61d14eaf958ed7942da27f54a5c3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Engine: Cleanup method argument passingFabian Kosmale2021-03-041-4/+14
| | | | | | | | | | | | Instead of arguments around as a pointer to [argc, metaTypeId1, metaTypeId12, ...] pass argc and a pointer to [QMetaType1, QMetaType2] around. Moreover, make use of the fact that we now carry the metatype instead of only the id in a few places, to avoid id -> metatype lookups. Task-number: QTBUG-82931 Change-Id: Ib00e4d793727f85f3358a8162d1aac972daab3d3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QML engine internals: Do not require mutable QObject pointerFabian Kosmale2021-02-281-2/+2
| | | | | | | | | | All we need is to get the meta-object from the object. This also works with a const pointer, which is helpful for const-correctness in the FSM framework. Pick-to: 6.1 Change-Id: Ie554fe81e67bced5f74c844c72e7f9b0df7ded58 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQmlMetaObject::methodReturnType: provide metatypeFabian Kosmale2021-02-191-1/+1
| | | | | | Task-number: QTBUG-82931 Change-Id: Ifbaf32d1c4af5064d94ec379fcb1667ce1c0502c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Get rid of the QQmlStaticMetaObjectLars Knoll2020-11-261-0/+2
| | | | | | | | This can easily be folded into it's parent classes. Task-number: QTBUG-82931 Change-Id: I92e490b35c29aacdff3557d0b6318b1dd43e7bbc Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Make QQmlMetaObject independent of the property cacheLars Knoll2020-11-261-36/+12
| | | | | | | | | Don't store a pointer to the property cache in QQmlMetaObject anymore, instead always use the QMetaObject. Task-number: QTBUG-82931 Change-Id: I792b84c93c84a625ece2022bdbc9176250c8a409 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QML: Split propertyCache into multiple filesUlf Hermann2019-02-011-0/+187
I want to be able to read the code. Change-Id: I063143ff63b0a476d783c892e1d328e7f5133fab Reviewed-by: Lars Knoll <lars.knoll@qt.io>