diff options
Diffstat (limited to 'examples/declarative/extending/binding/person.h')
-rw-r--r-- | examples/declarative/extending/binding/person.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/examples/declarative/extending/binding/person.h b/examples/declarative/extending/binding/person.h new file mode 100644 index 0000000..41513b9 --- /dev/null +++ b/examples/declarative/extending/binding/person.h @@ -0,0 +1,75 @@ +#ifndef PERSON_H +#define PERSON_H + +#include <QObject> +#include <QColor> +#include <qml.h> + +class ShoeDescription : public QObject { +Q_OBJECT +Q_PROPERTY(int size READ size WRITE setSize NOTIFY shoeChanged) +Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY shoeChanged) +Q_PROPERTY(QString brand READ brand WRITE setBrand NOTIFY shoeChanged) +Q_PROPERTY(qreal price READ price WRITE setPrice NOTIFY shoeChanged) +public: + ShoeDescription(QObject *parent = 0); + + int size() const; + void setSize(int); + + QColor color() const; + void setColor(const QColor &); + + QString brand() const; + void setBrand(const QString &); + + qreal price() const; + void setPrice(qreal); +signals: + void shoeChanged(); + +private: + int m_size; + QColor m_color; + QString m_brand; + qreal m_price; +}; +QML_DECLARE_TYPE(ShoeDescription); + +class Person : public QObject { +Q_OBJECT +Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) +// ![0] +Q_PROPERTY(ShoeDescription *shoe READ shoe CONSTANT); +// ![0] +public: + Person(QObject *parent = 0); + + QString name() const; + void setName(const QString &); + + ShoeDescription *shoe(); +signals: + void nameChanged(); + +private: + QString m_name; + ShoeDescription m_shoe; +}; +QML_DECLARE_TYPE(Person); + +class Boy : public Person { +Q_OBJECT +public: + Boy(QObject * parent = 0); +}; +QML_DECLARE_TYPE(Boy); + +class Girl : public Person { +Q_OBJECT +public: + Girl(QObject * parent = 0); +}; +QML_DECLARE_TYPE(Girl); + +#endif // PERSON_H |