/
calendardata.h
115 lines (97 loc) · 2.98 KB
/
calendardata.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#ifndef NEMOCALENDARDATA_H
#define NEMOCALENDARDATA_H
#include <QString>
#include <QUrl>
// KCalCore
#include <attendee.h>
#include <KDateTime>
#include "calendarevent.h"
namespace CalendarData {
struct EventOccurrence {
QString eventUid;
KDateTime recurrenceId;
QDateTime startTime;
QDateTime endTime;
QString getId() const
{
return QString("%1-%2").arg(eventUid).arg(startTime.toMSecsSinceEpoch());
}
};
struct Event {
QString displayLabel;
QString description;
KDateTime startTime;
KDateTime endTime;
bool allDay = false;
bool readOnly = false;
bool rsvp = false;
bool externalInvitation = false;
CalendarEvent::Recur recur;
QDate recurEndDate;
CalendarEvent::Days recurWeeklyDays;
int reminder; // seconds; 15 minutes before event = +900, at time of event = 0, no reminder = negative value.
QString uniqueId;
KDateTime recurrenceId;
QString location;
CalendarEvent::Secrecy secrecy;
QString calendarUid;
CalendarEvent::Response ownerStatus = CalendarEvent::ResponseUnspecified;
CalendarEvent::SyncFailure syncFailure = CalendarEvent::NoSyncFailure;
bool operator==(const Event& other) const
{
return uniqueId == other.uniqueId;
}
bool isValid() const
{
return !uniqueId.isEmpty();
}
};
struct Notebook {
QString name;
QString uid;
QString description;
QString color;
QString emailAddress;
int accountId;
QUrl accountIcon;
bool isDefault;
bool readOnly;
bool localCalendar;
bool excluded;
Notebook() : accountId(0), isDefault(false), readOnly(false), localCalendar(false), excluded(false) { }
bool operator==(const Notebook other) const
{
return uid == other.uid && name == other.name && description == other.description
&& color == other.color && emailAddress == other.emailAddress
&& accountId == other.accountId && accountIcon == other.accountIcon
&& isDefault == other.isDefault && readOnly == other.readOnly && localCalendar == other.localCalendar
&& excluded == other.excluded;
}
bool operator!=(const Notebook other) const
{
return !operator==(other);
}
};
typedef QPair<QDate,QDate> Range;
struct Attendee {
bool isOrganizer = false;
QString name;
QString email;
KCalCore::Attendee::Role participationRole = KCalCore::Attendee::OptParticipant;
KCalCore::Attendee::PartStat status = KCalCore::Attendee::None;
bool operator==(const Attendee &other) const {
return isOrganizer == other.isOrganizer
&& name == other.name
&& email == other.email
&& participationRole == other.participationRole
&& status == other.status;
}
};
struct EmailContact {
EmailContact(const QString &aName, const QString &aEmail)
: name(aName), email(aEmail) {}
QString name;
QString email;
};
}
#endif // NEMOCALENDARDATA_H