diff options
Diffstat (limited to 'src/qml/qml/qqmlaccessors_p.h')
-rw-r--r-- | src/qml/qml/qqmlaccessors_p.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/qml/qml/qqmlaccessors_p.h b/src/qml/qml/qqmlaccessors_p.h index 55562a5307..e98663adfe 100644 --- a/src/qml/qml/qqmlaccessors_p.h +++ b/src/qml/qml/qqmlaccessors_p.h @@ -102,11 +102,15 @@ class QQmlNotifier; } \ } while (false); -#define QML_PRIVATE_ACCESSOR(clazz, cpptype, name, variable) \ +#define QML_PRIVATE_ACCESSOR(clazz, cpptype, name, variable, setter) \ static void clazz ## _ ## name ## Read(QObject *o, void *rv) \ { \ clazz ## Private *d = clazz ## Private::get(static_cast<clazz *>(o)); \ *static_cast<cpptype *>(rv) = d->variable; \ + } \ + static void clazz ## _ ## name ## Write(QObject *o, void *rv) \ + { \ + static_cast<clazz *>(o)->setter(*static_cast<cpptype *>(rv)); \ } #define QML_PROPERTY_NAME(name) #name, sizeof #name - 1 @@ -115,6 +119,7 @@ class QQmlAccessors { public: void (*read)(QObject *object, void *output); + void (*write)(QObject *object, void *output); void (*notifier)(QObject *object, QQmlNotifier **notifier); }; |