192 #ifndef MKCAL_EXTENDEDCALENDAR_H
193 #define MKCAL_EXTENDEDCALENDAR_H
197 #include <KCalendarCore/MemoryCalendar>
202 class ExtendedStorage;
209 class MKCAL_EXPORT ExtendedCalendar :
public KCalendarCore::MemoryCalendar,
210 public ExtendedStorageObserver
217 enum IncidenceSortField {
218 IncidenceSortUnsorted,
229 typedef QSharedPointer<ExtendedCalendar> Ptr;
235 explicit ExtendedCalendar(
const QTimeZone &timeZone);
241 explicit ExtendedCalendar(
const QByteArray &timeZoneId);
287 KCalendarCore::Incidence::Ptr dissociateSingleOccurrence(
const KCalendarCore::Incidence::Ptr &incidence,
288 const QDateTime &dateTime);
294 bool addIncidence(
const KCalendarCore::Incidence::Ptr &incidence);
305 bool addIncidence(
const KCalendarCore::Incidence::Ptr &incidence,
const QString ¬ebookUid);
311 bool deleteIncidence(
const KCalendarCore::Incidence::Ptr &incidence);
319 bool addEvent(
const KCalendarCore::Event::Ptr &event);
330 bool addEvent(
const KCalendarCore::Event::Ptr &event,
const QString ¬ebookUid);
340 bool deleteEvent(
const KCalendarCore::Event::Ptr &event);
346 QDate nextEventsDate(
const QDate &,
const QTimeZone ×pec = QTimeZone());
352 QDate previousEventsDate(
const QDate &,
const QTimeZone ×pec = QTimeZone());
361 bool addTodo(
const KCalendarCore::Todo::Ptr &todo);
372 bool addTodo(
const KCalendarCore::Todo::Ptr &todo,
const QString ¬ebookUid);
381 bool deleteTodo(
const KCalendarCore::Todo::Ptr &todo);
389 bool addJournal(
const KCalendarCore::Journal::Ptr &journal);
400 bool addJournal(
const KCalendarCore::Journal::Ptr &journal,
const QString ¬ebookUid);
409 bool deleteJournal(
const KCalendarCore::Journal::Ptr &journal);
411 using KCalendarCore::Calendar::rawJournals;
425 KCalendarCore::Journal::List rawJournals(
426 const QDate &start,
const QDate &end,
427 const QTimeZone ×pec = QTimeZone(),
428 bool inclusive =
false)
const;
435 void incidenceUpdate(
const QString &uid,
const QDateTime &recurrenceId);
442 void incidenceUpdated(
const QString &uid,
const QDateTime &recurrenceId);
452 QStringList attendees();
460 KCalendarCore::Incidence::List attendeeIncidences(
const QString &email);
467 KCalendarCore::Incidence::List geoIncidences();
478 KCalendarCore::Incidence::List geoIncidences(
float geoLatitude,
float geoLongitude,
479 float diffLatitude,
float diffLongitude);
489 virtual KCalendarCore::Incidence::List incidences(
const QDate &date,
490 const QList<KCalendarCore::Incidence::IncidenceType> &types);
496 void deleteAllIncidences();
507 static KCalendarCore::Incidence::List sortIncidences(
508 KCalendarCore::Incidence::List *list,
509 IncidenceSortField sortField = IncidenceSortDate,
510 KCalendarCore::SortDirection sortDirection = KCalendarCore::SortDirectionAscending);
517 typedef struct ExpandedIncidenceValidity {
520 } ExpandedIncidenceValidity;
528 typedef QPair<ExpandedIncidenceValidity, KCalendarCore::Incidence::Ptr> ExpandedIncidence;
533 typedef QVector<ExpandedIncidence> ExpandedIncidenceList;
534 typedef QVectorIterator<ExpandedIncidence> ExpandedIncidenceIterator;
553 ExpandedIncidenceList expandRecurrences(KCalendarCore::Incidence::List *list,
554 const QDateTime &start,
555 const QDateTime &end,
556 int maxExpand = 1000,
557 bool *expandLimitHit = 0);
565 ExpandedIncidenceList rawExpandedEvents(
const QDate &start,
const QDate &end,
566 bool startInclusive =
false,
bool endInclusive =
false,
567 const QTimeZone &timeZone = QTimeZone())
const;
593 ExpandedIncidenceList expandMultiDay(
const ExpandedIncidenceList &list,
594 const QDate &startDate,
595 const QDate &endDate,
596 int maxExpand = 1000,
598 bool *expandLimitHit = 0);
600 using KCalendarCore::Calendar::incidences;
611 KCalendarCore::Incidence::List incidences(
const QDate &start,
const QDate &end);
622 static QSharedPointer<ExtendedStorage> defaultStorage(
const ExtendedCalendar::Ptr
635 KCalendarCore::Todo::List uncompletedTodos(
bool hasDate,
int hasGeo);
646 KCalendarCore::Todo::List completedTodos(
bool hasDate,
int hasGeo,
647 const QDateTime &start,
const QDateTime &end);
657 KCalendarCore::Incidence::List incidences(
bool hasDate,
const QDateTime &start,
658 const QDateTime &end);
668 KCalendarCore::Incidence::List geoIncidences(
bool hasDate,
const QDateTime &start,
669 const QDateTime &end);
678 KCalendarCore::Incidence::List unreadInvitationIncidences(
679 const KCalendarCore::Person &person = KCalendarCore::Person());
689 KCalendarCore::Incidence::List oldInvitationIncidences(
const QDateTime &start,
690 const QDateTime &end);
701 KCalendarCore::Incidence::List contactIncidences(
const KCalendarCore::Person &person,
702 const QDateTime &start,
const QDateTime &end);
704 using KCalendarCore::Calendar::journals;
713 KCalendarCore::Journal::List journals(
const QDate &start,
const QDate &end);
726 KCalendarCore::Incidence::List addIncidences(KCalendarCore::Incidence::List *list,
727 const QString ¬ebookUid,
728 bool duplicateRemovalEnabled =
true);
736 int eventCount(
const QString ¬ebookUid = QString());
744 int todoCount(
const QString ¬ebookUid = QString());
752 int journalCount(
const QString ¬ebookUid = QString());
760 virtual void storageModified(ExtendedStorage *storage,
const QString &info);
761 virtual void storageProgress(ExtendedStorage *storage,
const QString &info);
762 virtual void storageFinished(ExtendedStorage *storage,
bool error,
const QString &info);
767 Q_DISABLE_COPY(ExtendedCalendar)
validity dtEnd
Definition: extendedcalendar.cpp:990
This file is part of the API for handling calendar data and defines the ExtendedStorageObserver to be...
#define MKCAL_EXPORT
Definition: mkcal_export.h:27
#define MKCAL_HIDE
Definition: mkcal_export.h:31
Definition: extendedstorage.h:47