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