Projekt

Allgemein

Profil

Herunterladen als
Herunterladen (2,89 KB) Statistiken
| Zweig: | Revision:
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>
3fd96253 Christian Ehringfeld
#include "enums.h"
b7446f4c Christian Ehringfeld
#include "../../entitymanager/src/entity.h"
9d05e414 Christian Ehringfeld
b7446f4c Christian Ehringfeld
using namespace CuteEntityManager;
class Group;
3fd96253 Christian Ehringfeld
b7446f4c Christian Ehringfeld
class Person: public Entity {
9d05e414 Christian Ehringfeld
Q_OBJECT
b7446f4c Christian Ehringfeld
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)
3fd96253 Christian Ehringfeld
Q_PROPERTY(Enums::Gender gender READ getGender WRITE setGender)
b7446f4c Christian Ehringfeld
Q_PROPERTY(QList<QSharedPointer<Group>> groups READ getGroups WRITE setGroups)
9d05e414 Christian Ehringfeld
public:
b7446f4c Christian Ehringfeld
Q_INVOKABLE explicit Person(QObject *parent = 0);
3fd96253 Christian Ehringfeld
Person(QString firstName, QString familyName, Enums::Gender gender = Enums::Gender::UNKNOWNGENDER,
abb9e8c5 Christian Ehringfeld
QString customPictureFileName = QString(), QString namePrefix = QString(),
QString nickName = QString(), QDate birthday = QDate(), QObject *parent = 0);
9d05e414 Christian Ehringfeld
b7446f4c Christian Ehringfeld
virtual const QHash<QString, CuteEntityManager::Relation> getRelations() const;
9d05e414 Christian Ehringfeld
b7446f4c Christian Ehringfeld
bool isPresent(QDateTime date = QDateTime::currentDateTime());
3fd96253 Christian Ehringfeld
QString fullName(Enums::NameOrder nameOrder = Enums::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);

3fd96253 Christian Ehringfeld
Enums::Gender getGender() const;
void setGender(const Enums::Gender &value);
b7446f4c Christian Ehringfeld
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;
3fd96253 Christian Ehringfeld
Enums::Gender gender;
ba6f6521 Christian Ehringfeld
QString customPictureFileName;
b7446f4c Christian Ehringfeld
QList <QSharedPointer<Contact>> contacts;
abb9e8c5 Christian Ehringfeld
QList <QSharedPointer<Address>> addresses;
QList <QSharedPointer<Group>> groups;
9d05e414 Christian Ehringfeld
};
ba6f6521 Christian Ehringfeld
b7446f4c Christian Ehringfeld
9d05e414 Christian Ehringfeld
#endif // PERSON_H