diff --git a/rpm/nemo-qml-plugin-calendar-qt5.spec b/rpm/nemo-qml-plugin-calendar-qt5.spec index 22d7502..a946a58 100644 --- a/rpm/nemo-qml-plugin-calendar-qt5.spec +++ b/rpm/nemo-qml-plugin-calendar-qt5.spec @@ -1,7 +1,7 @@ Name: nemo-qml-plugin-calendar-qt5 Summary: Calendar plugin for Nemo Mobile -Version: 0.5.10 +Version: 0.5.17 Release: 1 Group: System/Libraries License: BSD diff --git a/src/calendardata.h b/src/calendardata.h index 4044cdb..594c2df 100644 --- a/src/calendardata.h +++ b/src/calendardata.h @@ -43,6 +43,7 @@ struct Event { CalendarEvent::Secrecy secrecy; QString calendarUid; CalendarEvent::Response ownerStatus = CalendarEvent::ResponseUnspecified; + CalendarEvent::SyncFailure syncFailure = CalendarEvent::NoSyncFailure; bool operator==(const Event& other) const { diff --git a/src/calendarevent.cpp b/src/calendarevent.cpp index cafa0e5..a0c26cc 100644 --- a/src/calendarevent.cpp +++ b/src/calendarevent.cpp @@ -176,6 +176,11 @@ CalendarEvent::Secrecy CalendarEvent::secrecy() const return mManager->getEvent(mUniqueId, mRecurrenceId).secrecy; } +CalendarEvent::SyncFailure CalendarEvent::syncFailure() const +{ + return mManager->getEvent(mUniqueId, mRecurrenceId).syncFailure; +} + CalendarEvent::Response CalendarEvent::ownerStatus() const { return mManager->getEvent(mUniqueId, mRecurrenceId).ownerStatus; diff --git a/src/calendarevent.h b/src/calendarevent.h index 3c606a4..d8f6bf9 100644 --- a/src/calendarevent.h +++ b/src/calendarevent.h @@ -68,6 +68,7 @@ class CalendarEvent : public QObject Q_PROPERTY(QString calendarUid READ calendarUid NOTIFY calendarUidChanged) Q_PROPERTY(QString location READ location NOTIFY locationChanged) Q_PROPERTY(CalendarEvent::Secrecy secrecy READ secrecy NOTIFY secrecyChanged) + Q_PROPERTY(CalendarEvent::SyncFailure syncFailure READ syncFailure NOTIFY syncFailureChanged) Q_PROPERTY(CalendarEvent::Response ownerStatus READ ownerStatus NOTIFY ownerStatusChanged) Q_PROPERTY(bool rsvp READ rsvp NOTIFY rsvpChanged) Q_PROPERTY(bool externalInvitation READ externalInvitation NOTIFY externalInvitationChanged) @@ -121,6 +122,14 @@ class CalendarEvent : public QObject ResponseDecline }; + enum SyncFailure { + NoSyncFailure, + UploadFailure, + UpdateFailure, + DeleteFailure + }; + Q_ENUM(SyncFailure) + CalendarEvent(CalendarManager *manager, const QString &uid, const KDateTime &recurrenceId); ~CalendarEvent(); @@ -146,6 +155,7 @@ class CalendarEvent : public QObject KDateTime recurrenceId() const; QString recurrenceIdString() const; Secrecy secrecy() const; + SyncFailure syncFailure() const; Response ownerStatus() const; bool rsvp() const; bool externalInvitation() const; @@ -173,6 +183,7 @@ private slots: void hasRecurEndDateChanged(); void recurWeeklyDaysChanged(); void secrecyChanged(); + void syncFailureChanged(); void ownerStatusChanged(); void rsvpChanged(); void externalInvitationChanged(); diff --git a/src/calendarworker.cpp b/src/calendarworker.cpp index ce88e7f..8c38145 100644 --- a/src/calendarworker.cpp +++ b/src/calendarworker.cpp @@ -815,6 +815,14 @@ CalendarData::Event CalendarWorker::createEventStruct(const KCalCore::Event::Ptr event.readOnly = mStorage->notebook(event.calendarUid)->isReadOnly(); event.recur = CalendarUtils::convertRecurrence(e); event.recurWeeklyDays = CalendarUtils::convertDayPositions(e); + const QString &syncFailure = e->customProperty("VOLATILE", "SYNC-FAILURE"); + if (syncFailure.compare("upload", Qt::CaseInsensitive) == 0) { + event.syncFailure = CalendarEvent::UploadFailure; + } else if (syncFailure.compare("update", Qt::CaseInsensitive) == 0) { + event.syncFailure = CalendarEvent::UpdateFailure; + } else if (syncFailure.compare("delete", Qt::CaseInsensitive) == 0) { + event.syncFailure = CalendarEvent::DeleteFailure; + } bool externalInvitation = false; const QString &calendarOwnerEmail = getNotebookAddress(e);