diff --git a/src/attachment.h b/src/attachment.h --- a/src/attachment.h +++ b/src/attachment.h @@ -59,6 +59,17 @@ */ class KCALCORE_EXPORT Attachment { + Q_GADGET + Q_PROPERTY(bool isEmpty READ isEmpty) + Q_PROPERTY(QString uri READ uri WRITE setUri) + Q_PROPERTY(bool isUri READ isUri) + Q_PROPERTY(bool isBinary READ isBinary) + Q_PROPERTY(int size READ size) + Q_PROPERTY(QString mimeType READ mimeType WRITE setMimeType) + Q_PROPERTY(bool showInline READ showInline WRITE setShowInline) + Q_PROPERTY(QString label READ label WRITE setLabel) + Q_PROPERTY(bool isLocal READ isLocal WRITE setLocal) + public: /** List of attachments. diff --git a/src/attendee.h b/src/attendee.h --- a/src/attendee.h +++ b/src/attendee.h @@ -57,6 +57,19 @@ */ class KCALCORE_EXPORT Attendee { + Q_GADGET + Q_PROPERTY(bool isNull READ isNull) + Q_PROPERTY(QString name READ name WRITE setName) + Q_PROPERTY(QString fullName READ fullName) + Q_PROPERTY(QString email READ email WRITE setEmail) + Q_PROPERTY(Role role READ role WRITE setRole) + Q_PROPERTY(QString uid READ uid WRITE setUid) + Q_PROPERTY(PartStat status READ status WRITE setStatus) + Q_PROPERTY(CuType cuType READ cuType WRITE setCuType) + Q_PROPERTY(bool rsvp READ RSVP WRITE setRSVP) + Q_PROPERTY(QString delegate READ delegate WRITE setDelegate) + Q_PROPERTY(QString delegator READ delegator WRITE setDelegator) + public: /** The different types of participant status. @@ -72,6 +85,7 @@ InProcess, /**< To-do in process of being completed */ None }; + Q_ENUM(PartStat) /** The different types of participation roles. @@ -82,6 +96,7 @@ NonParticipant, /**< Non-Participant; copied for information purposes */ Chair /**< Chairperson */ }; + Q_ENUM(Role) /** * The different types of a participant. @@ -100,6 +115,7 @@ * iana-token ; Other IANA-registered */ }; + Q_ENUM(CuType) /** List of attendees. diff --git a/src/incidence.h b/src/incidence.h --- a/src/incidence.h +++ b/src/incidence.h @@ -77,6 +77,8 @@ Q_PROPERTY(int priority READ priority WRITE setPriority) Q_PROPERTY(QDateTime created READ created WRITE setCreated) Q_PROPERTY(KCalCore::Incidence::Secrecy secrecy READ secrecy WRITE setSecrecy) + Q_PROPERTY(KCalCore::Incidence::Status status READ status WRITE setStatus) + Q_PROPERTY(QVariantList attachments READ attachmentsVariant) public: /** @@ -95,6 +97,7 @@ StatusFinal, /**< journal is final */ StatusX /**< a non-standard status string */ }; + Q_ENUM(Status) /** The different types of incidence access classifications. @@ -848,6 +851,8 @@ */ Incidence &operator=(const Incidence &other); + Q_DECL_HIDDEN QVariantList attachmentsVariant() const; + //@cond PRIVATE class Private; Private *const d; diff --git a/src/incidence.cpp b/src/incidence.cpp --- a/src/incidence.cpp +++ b/src/incidence.cpp @@ -1157,3 +1157,11 @@ d->mRelatedToUid.insert(static_cast(it.key()), it.value()); } } + +QVariantList Incidence::attachmentsVariant() const +{ + QVariantList l; + l.reserve(d->mAttachments.size()); + std::transform(d->mAttachments.begin(), d->mAttachments.end(), std::back_inserter(l), [](const Attachment &att) { return QVariant::fromValue(att); }); + return l; +} diff --git a/src/incidencebase.h b/src/incidencebase.h --- a/src/incidencebase.h +++ b/src/incidencebase.h @@ -114,6 +114,7 @@ Q_PROPERTY(QDateTime dtStart READ dtStart WRITE setDtStart) Q_PROPERTY(bool allDay READ allDay WRITE setAllDay) Q_PROPERTY(KCalCore::Person organizer READ organizer WRITE setOrganizer) + Q_PROPERTY(QVariantList attendees READ attendeesVariant) public: /** @@ -749,6 +750,8 @@ //@cond PRIVATE class Private; Private *const d; + + Q_DECL_HIDDEN QVariantList attendeesVariant() const; //@endcond friend KCALCORE_EXPORT QDataStream &operator<<(QDataStream &stream, const KCalCore::IncidenceBase::Ptr &); diff --git a/src/incidencebase.cpp b/src/incidencebase.cpp --- a/src/incidencebase.cpp +++ b/src/incidencebase.cpp @@ -732,3 +732,11 @@ IncidenceBase::IncidenceObserver::~IncidenceObserver() { } + +QVariantList IncidenceBase::attendeesVariant() const +{ + QVariantList l; + l.reserve(d->mAttendees.size()); + std::transform(d->mAttendees.begin(), d->mAttendees.end(), std::back_inserter(l), [](const Attendee &a) { return QVariant::fromValue(a); }); + return l; +}