aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlmetaobject.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QQmlConnections: Allow connections to C++-defined methodsUlf Hermann2023-11-291-38/+0
| | | | | | | | | | | | | | | | | | | | 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>
* QML: Allow some more backing types for enumsFabian Kosmale2023-04-121-2/+2
| | | | | | | | | Task-number: QTBUG-112180 Done-with: Fabian Kosmale <fabian.kosmale@qt.io> Change-Id: I48a2a696d3424ab1d8b9e693a92361a978ad70e9 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QtQml: Clean up QQmlMetaObject::canConvert()Ulf Hermann2023-02-161-22/+0
| | | | | | | | | | | 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>
* QV4QObjectWrapper: Store the whole signalFabian Kosmale2021-04-011-1/+1
| | | | | | | | | | | | | | | | | | | | | 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-9/+7
| | | | | | | | | | | | 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>
* QQmlMetaObject::methodParameterTypes: Get metatype directlyFabian Kosmale2021-02-191-58/+9
| | | | | | | | | | | | | | In Qt 6, we can rely on QMetaMethod::metaType. Moreover, we can skip searching for enumerators. In that case the metatype is necessarily available (as enums cannot be forward declared, the type therefore complete, and moc can generate the metatype already at compile time). The last part also allows us to get rid of the isNamedEnumerator helper methods. Task-number: QTBUG-82931 Change-Id: Ic0c40a8fca8d6303db31e48bf6fb0169fd800f40 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQmlMetaObject::methodReturnType: provide metatypeFabian Kosmale2021-02-191-23/+9
| | | | | | Task-number: QTBUG-82931 Change-Id: Ifbaf32d1c4af5064d94ec379fcb1667ce1c0502c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QML engine: Use QMetaType instead of metatype-id in propertydataFabian Kosmale2020-11-261-7/+7
| | | | | | | | | | | | | | We don't want to convert back and forth between QMetaTypes and ids. This change is the first step towards using QMetaType directly everywhere. By reordering the members of QQmlPropertyData to avoid a gap caused by alignment, we can replace the typeid int with a QMetaType without requiring more space. There are still a few places left using metatype ids, notably the value type logic. Task-number: QTBUG-82931 Change-Id: Ic38f38d10c71ed20655877976c9cb5ee3cbe2d77 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Get rid of the QQmlStaticMetaObjectLars Knoll2020-11-261-0/+7
| | | | | | | | 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-119/+16
| | | | | | | | | 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>
* Avoid various warnings about deprected QMetaType methodsUlf Hermann2020-09-161-6/+6
| | | | | Change-Id: I8f4b2703fdd08ff341904219cec33c321e0511c7 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Adapt to metaobject changesFabian Kosmale2020-06-121-5/+0
| | | | | Change-Id: I31dd544e80b8b2f8745463450a05fa7effafa8cd Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Adapt to the removal of QObject::staticQtMetaObjectOlivier Goffart2020-01-141-7/+1
| | | | | | | | Qt::staticMetaObject should be used instead Change-Id: I1e02884f0b1f07e9c51d065f11bdc51c793b7173 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QML: Split propertyCache into multiple filesUlf Hermann2019-02-011-0/+327
I want to be able to read the code. Change-Id: I063143ff63b0a476d783c892e1d328e7f5133fab Reviewed-by: Lars Knoll <lars.knoll@qt.io>