Herunterladen als
root/samples/example/models/person.h @ f6a3fe0a
9d05e414 | Christian Ehringfeld | #ifndef PERSON_H
|
|
#define PERSON_H
|
|||
#include <QDateTime>
|
|||
#include <QString>
|
|||
#include <QList>
|
|||
#include <QObject>
|
|||
b7446f4c | Christian Ehringfeld | #include "contact.h"
|
|
#include "address.h"
|
|||
9d05e414 | Christian Ehringfeld | #include <QAbstractListModel>
|
|
#include <QDebug>
|
|||
b7446f4c | Christian Ehringfeld | #include "../../entitymanager/src/entity.h"
|
|
9d05e414 | Christian Ehringfeld | ||
b7446f4c | Christian Ehringfeld | using namespace CuteEntityManager;
|
|
class Group;
|
|||
ba6f6521 | Christian Ehringfeld | enum Gender {MALE, FEMALE, UNKNOWNGENDER};
|
|
b7446f4c | Christian Ehringfeld | class Person: public Entity {
|
|
9d05e414 | Christian Ehringfeld | Q_OBJECT
|
|
b7446f4c | Christian Ehringfeld | Q_ENUMS(Gender)
|
|
Q_PROPERTY(QString firstName READ getFirstName WRITE setFirstName)
|
|||
Q_PROPERTY(QString familyName READ getFamilyName WRITE setFamilyName)
|
|||
Q_PROPERTY(QString namePrefix READ getNamePrefix WRITE setNamePrefix)
|
|||
Q_PROPERTY(QString nickName READ getNickName WRITE setNickName)
|
|||
ba6f6521 | Christian Ehringfeld | Q_PROPERTY(QString customPictureFileName READ getCustomPictureFileName WRITE
|
|
b7446f4c | Christian Ehringfeld | setCustomPictureFileName)
|
|
Q_PROPERTY(QDate birthday READ getBirthday WRITE setBirthday)
|
|||
Q_PROPERTY(Gender gender READ getGender WRITE setGender)
|
|||
Q_PROPERTY(QList<QSharedPointer<Group>> groups READ getGroups WRITE setGroups)
|
|||
9d05e414 | Christian Ehringfeld | ||
public:
|
|||
b7446f4c | Christian Ehringfeld | Q_INVOKABLE explicit Person(QObject *parent = 0);
|
|
9d05e414 | Christian Ehringfeld | Person(QString firstName,
|
|
QString familyName,
|
|||
ba6f6521 | Christian Ehringfeld | Gender gender = UNKNOWNGENDER,
|
|
9d05e414 | Christian Ehringfeld | QString customPictureFileName = QString(),
|
|
QString namePrefix = QString(),
|
|||
QString nickName = QString(),
|
|||
QDate birthday = QDate(),
|
|||
QObject *parent = 0);
|
|||
b7446f4c | Christian Ehringfeld | virtual const QHash<QString, CuteEntityManager::Relation> getRelations() const;
|
|
9d05e414 | Christian Ehringfeld | ||
b7446f4c | Christian Ehringfeld | bool isPresent(QDateTime date = QDateTime::currentDateTime());
|
|
QString fullName(NameOrder nameOrder = FAMILY_FIRST_NAME_ORDER) const;
|
|||
9d05e414 | Christian Ehringfeld | ||
b7446f4c | Christian Ehringfeld | QString getFirstName() const;
|
|
void setFirstName(const QString &value);
|
|||
9d05e414 | Christian Ehringfeld | ||
b7446f4c | Christian Ehringfeld | QString getFamilyName() const;
|
|
void setFamilyName(const QString &value);
|
|||
ba6f6521 | Christian Ehringfeld | ||
QString getNamePrefix() const;
|
|||
void setNamePrefix(const QString &value);
|
|||
b7446f4c | Christian Ehringfeld | QString getNickName() const;
|
|
void setNickName(const QString &value);
|
|||
ba6f6521 | Christian Ehringfeld | ||
b7446f4c | Christian Ehringfeld | QDate getBirthday() const;
|
|
void setBirthday(const QDate &value);
|
|||
Gender getGender() const;
|
|||
void setGender(const Gender &value);
|
|||
QString getCustomPictureFileName() const;
|
|||
void setCustomPictureFileName(const QString &value);
|
|||
QList<QSharedPointer<Contact> > getContacts() const;
|
|||
void setContacts(const QList<QSharedPointer<Contact> > &value);
|
|||
QList<QSharedPointer<Address> > getAddresses() const;
|
|||
void setAddresses(const QList<QSharedPointer<Address> > &value);
|
|||
QList<QSharedPointer<Group> > getGroups() const;
|
|||
void setGroups(const QList<QSharedPointer<Group> > &value);
|
|||
void addContact(Contact *contact);
|
|||
void addAddress(Address *address);
|
|||
9d05e414 | Christian Ehringfeld | ||
protected:
|
|||
ba6f6521 | Christian Ehringfeld | QString firstName;
|
|
QString familyName;
|
|||
QString namePrefix;
|
|||
QString nickName;
|
|||
QDate birthday;
|
|||
Gender gender;
|
|||
QString customPictureFileName;
|
|||
b7446f4c | Christian Ehringfeld | QList <QSharedPointer<Contact>> contacts;
|
|
QList <QSharedPointer<Address>>addresses;
|
|||
QList<QSharedPointer<Group>> groups;
|
|||
9d05e414 | Christian Ehringfeld | ||
};
|
|||
ba6f6521 | Christian Ehringfeld | ||
b7446f4c | Christian Ehringfeld | ||
9d05e414 | Christian Ehringfeld | #endif // PERSON_H
|