12void QQmlMetaObject::resolveGadgetMethodOrPropertyIndex(QMetaObject::Call type,
const QMetaObject **metaObject,
int *index)
17 case QMetaObject::ReadProperty:
18 case QMetaObject::WriteProperty:
19 case QMetaObject::ResetProperty:
20 offset = (*metaObject)->propertyOffset();
21 while (*index < offset) {
22 *metaObject = (*metaObject)->superClass();
23 offset = (*metaObject)->propertyOffset();
26 case QMetaObject::InvokeMetaMethod:
27 offset = (*metaObject)->methodOffset();
28 while (*index < offset) {
29 *metaObject = (*metaObject)->superClass();
30 offset = (*metaObject)->methodOffset();
42QMetaType QQmlMetaObject::methodReturnType(
43 const QQmlPropertyData &data, QString *unknownTypeError)
const
45 Q_ASSERT(_m && data.coreIndex() >= 0);
47 QMetaType type = data.propType();
48 if (!type.isValid()) {
50 type = _m->method(data.coreIndex()).returnMetaType();
53 if (type.flags().testFlag(QMetaType::IsEnumeration))
54 type = type.underlyingType();
59 if (unknownTypeError) {
60 *unknownTypeError = QLatin1String(
"Unknown method return type: ")
61 + QString::fromUtf8(_m->method(data.coreIndex()).typeName());