aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlaccessors_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/qqmlaccessors_p.h')
-rw-r--r--src/qml/qml/qqmlaccessors_p.h7
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);
};