192#ifndef MKCAL_EXTENDEDCALENDAR_H
193#define MKCAL_EXTENDEDCALENDAR_H
197#include <KCalendarCore/MemoryCalendar>
201class ExtendedStorage;
208class MKCAL_EXPORT ExtendedCalendar :
public KCalendarCore::MemoryCalendar
215 enum IncidenceSortField {
216 IncidenceSortUnsorted,
227 typedef QSharedPointer<ExtendedCalendar> Ptr;
233 explicit ExtendedCalendar(
const QTimeZone &timeZone);
239 explicit ExtendedCalendar(
const QByteArray &timeZoneId);
285 KCalendarCore::Incidence::Ptr dissociateSingleOccurrence(
const KCalendarCore::Incidence::Ptr &incidence,
286 const QDateTime &dateTime);
292 bool addIncidence(
const KCalendarCore::Incidence::Ptr &incidence);
303 bool addIncidence(
const KCalendarCore::Incidence::Ptr &incidence,
const QString ¬ebookUid);
309 bool deleteIncidence(
const KCalendarCore::Incidence::Ptr &incidence);
317 bool addEvent(
const KCalendarCore::Event::Ptr &event);
328 bool addEvent(
const KCalendarCore::Event::Ptr &event,
const QString ¬ebookUid);
338 bool deleteEvent(
const KCalendarCore::Event::Ptr &event);
344 QDate nextEventsDate(
const QDate &,
const QTimeZone ×pec = QTimeZone());
350 QDate previousEventsDate(
const QDate &,
const QTimeZone ×pec = QTimeZone());
359 bool addTodo(
const KCalendarCore::Todo::Ptr &todo);
370 bool addTodo(
const KCalendarCore::Todo::Ptr &todo,
const QString ¬ebookUid);
379 bool deleteTodo(
const KCalendarCore::Todo::Ptr &todo);
387 bool addJournal(
const KCalendarCore::Journal::Ptr &journal);
398 bool addJournal(
const KCalendarCore::Journal::Ptr &journal,
const QString ¬ebookUid);
407 bool deleteJournal(
const KCalendarCore::Journal::Ptr &journal);
409 using KCalendarCore::Calendar::rawJournals;
423 KCalendarCore::Journal::List rawJournals(
424 const QDate &start,
const QDate &end,
425 const QTimeZone ×pec = QTimeZone(),
426 bool inclusive =
false)
const;
433 void incidenceUpdate(
const QString &uid,
const QDateTime &recurrenceId);
440 void incidenceUpdated(
const QString &uid,
const QDateTime &recurrenceId);
450 QStringList attendees();
458 KCalendarCore::Incidence::List attendeeIncidences(
const QString &email);
465 KCalendarCore::Incidence::List geoIncidences();
476 KCalendarCore::Incidence::List geoIncidences(
float geoLatitude,
float geoLongitude,
477 float diffLatitude,
float diffLongitude);
487 virtual KCalendarCore::Incidence::List incidences(
const QDate &date,
488 const QList<KCalendarCore::Incidence::IncidenceType> &types);
494 void deleteAllIncidences();
505 static KCalendarCore::Incidence::List sortIncidences(
506 KCalendarCore::Incidence::List *list,
507 IncidenceSortField sortField = IncidenceSortDate,
508 KCalendarCore::SortDirection sortDirection = KCalendarCore::SortDirectionAscending);
515 typedef struct ExpandedIncidenceValidity {
518 } ExpandedIncidenceValidity;
526 typedef QPair<ExpandedIncidenceValidity, KCalendarCore::Incidence::Ptr> ExpandedIncidence;
531 typedef QVector<ExpandedIncidence> ExpandedIncidenceList;
532 typedef QVectorIterator<ExpandedIncidence> ExpandedIncidenceIterator;
551 ExpandedIncidenceList expandRecurrences(KCalendarCore::Incidence::List *list,
552 const QDateTime &start,
553 const QDateTime &end,
554 int maxExpand = 1000,
555 bool *expandLimitHit = 0);
581 ExpandedIncidenceList expandMultiDay(
const ExpandedIncidenceList &list,
582 const QDate &startDate,
583 const QDate &endDate,
584 int maxExpand = 1000,
586 bool *expandLimitHit = 0);
588 using KCalendarCore::Calendar::incidences;
599 KCalendarCore::Incidence::List incidences(
const QDate &start,
const QDate &end);
610 static QSharedPointer<ExtendedStorage> defaultStorage(
const ExtendedCalendar::Ptr
623 KCalendarCore::Todo::List uncompletedTodos(
bool hasDate,
int hasGeo);
634 KCalendarCore::Todo::List completedTodos(
bool hasDate,
int hasGeo,
635 const QDateTime &start,
const QDateTime &end);
645 KCalendarCore::Incidence::List incidences(
bool hasDate,
const QDateTime &start,
646 const QDateTime &end);
656 KCalendarCore::Incidence::List geoIncidences(
bool hasDate,
const QDateTime &start,
657 const QDateTime &end);
666 KCalendarCore::Incidence::List unreadInvitationIncidences(
667 const KCalendarCore::Person &person = KCalendarCore::Person());
677 KCalendarCore::Incidence::List oldInvitationIncidences(
const QDateTime &start,
678 const QDateTime &end);
689 KCalendarCore::Incidence::List contactIncidences(
const KCalendarCore::Person &person,
690 const QDateTime &start,
const QDateTime &end);
692 using KCalendarCore::Calendar::journals;
701 KCalendarCore::Journal::List journals(
const QDate &start,
const QDate &end);
714 KCalendarCore::Incidence::List addIncidences(KCalendarCore::Incidence::List *list,
715 const QString ¬ebookUid,
716 bool duplicateRemovalEnabled =
true);
724 int eventCount(
const QString ¬ebookUid = QString());
732 int todoCount(
const QString ¬ebookUid = QString());
740 int journalCount(
const QString ¬ebookUid = QString());
744 Q_DISABLE_COPY(ExtendedCalendar)
#define MKCAL_EXPORT
Definition mkcal_export.h:27
#define MKCAL_HIDE
Definition mkcal_export.h:31
Definition extendedstorage.h:49