192#ifndef MKCAL_EXTENDEDCALENDAR_H
193#define MKCAL_EXTENDEDCALENDAR_H
197#include <KCalendarCore/MemoryCalendar>
202class ExtendedStorage;
209class 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);
583 ExpandedIncidenceList expandMultiDay(
const ExpandedIncidenceList &list,
584 const QDate &startDate,
585 const QDate &endDate,
586 int maxExpand = 1000,
588 bool *expandLimitHit = 0);
590 using KCalendarCore::Calendar::incidences;
601 KCalendarCore::Incidence::List incidences(
const QDate &start,
const QDate &end);
612 static QSharedPointer<ExtendedStorage> defaultStorage(
const ExtendedCalendar::Ptr
625 KCalendarCore::Todo::List uncompletedTodos(
bool hasDate,
int hasGeo);
636 KCalendarCore::Todo::List completedTodos(
bool hasDate,
int hasGeo,
637 const QDateTime &start,
const QDateTime &end);
647 KCalendarCore::Incidence::List incidences(
bool hasDate,
const QDateTime &start,
648 const QDateTime &end);
658 KCalendarCore::Incidence::List geoIncidences(
bool hasDate,
const QDateTime &start,
659 const QDateTime &end);
668 KCalendarCore::Incidence::List unreadInvitationIncidences(
669 const KCalendarCore::Person &person = KCalendarCore::Person());
679 KCalendarCore::Incidence::List oldInvitationIncidences(
const QDateTime &start,
680 const QDateTime &end);
691 KCalendarCore::Incidence::List contactIncidences(
const KCalendarCore::Person &person,
692 const QDateTime &start,
const QDateTime &end);
694 using KCalendarCore::Calendar::journals;
703 KCalendarCore::Journal::List journals(
const QDate &start,
const QDate &end);
716 KCalendarCore::Incidence::List addIncidences(KCalendarCore::Incidence::List *list,
717 const QString ¬ebookUid,
718 bool duplicateRemovalEnabled =
true);
726 int eventCount(
const QString ¬ebookUid = QString());
734 int todoCount(
const QString ¬ebookUid = QString());
742 int journalCount(
const QString ¬ebookUid = QString());
750 virtual void storageModified(ExtendedStorage *storage,
const QString &info);
751 virtual void storageProgress(ExtendedStorage *storage,
const QString &info);
752 virtual void storageFinished(ExtendedStorage *storage,
bool error,
const QString &info);
757 Q_DISABLE_COPY(ExtendedCalendar)
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