calendar.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef KCAL_CALENDAR_H
00023
#define KCAL_CALENDAR_H
00024
00025
#include <qobject.h>
00026
#include <qstring.h>
00027
#include <qdatetime.h>
00028
#include <qptrlist.h>
00029
#include <qdict.h>
00030
00031
#include "customproperties.h"
00032
#include "event.h"
00033
#include "todo.h"
00034
#include "journal.h"
00035
#include "kcalversion.h"
00036
00037
#define _TIME_ZONE "-0500"
00038
00039
class KConfig;
00040
00041
namespace KCal {
00042
00043
class CalFilter;
00044
00061 class Calendar :
public QObject,
public CustomProperties,
00062
public IncidenceBase::Observer
00063 {
00064 Q_OBJECT
00065
public:
00066
Calendar();
00067
Calendar(
const QString &
timeZoneId);
00068
virtual ~
Calendar();
00069
00073
virtual void close() = 0;
00074
00078
virtual void save() = 0;
00079
00080
virtual bool isSaving() {
return false; }
00081
00085
const QString &
getOwner()
const;
00089
void setOwner(
const QString &os );
00093
const QString &
getEmail();
00097
void setEmail(
const QString & );
00098
00103
void setTimeZoneId(
const QString & );
00107
QString timeZoneId()
const;
00111
void setLocalTime();
00115
bool isLocalTime()
const;
00116
00122
virtual bool addIncidence(
Incidence * );
00128
virtual bool deleteIncidence(
Incidence * );
00132
virtual Incidence::List incidences();
00133
virtual Incidence::List incidences(
const QDate &qdt );
00134
00138
virtual Incidence::List rawIncidences();
00139
00143
QStringList incidenceCategories();
00144
00151
virtual bool addEvent(
Event *anEvent ) = 0;
00155
virtual void deleteEvent(
Event * ) = 0;
00159
virtual Event *
event(
const QString &UniqueStr ) = 0;
00165
Event::List events(
const QDate &date,
bool sorted =
false );
00170
Event::List events(
const QDateTime &qdt );
00176
Event::List events(
const QDate &start,
const QDate &end,
00177
bool inclusive =
false);
00181
virtual Event::List events();
00185
virtual Event::List rawEvents() = 0;
00186
00192
virtual bool addTodo(
Todo *
todo ) = 0;
00196
virtual void deleteTodo(
Todo * ) = 0;
00200
virtual Todo::List todos();
00205
virtual Todo *
todo(
const QString &uid ) = 0;
00209
virtual Todo::List todos(
const QDate &date );
00213
virtual Todo::List rawTodos() = 0;
00217
virtual Todo::List rawTodosForDate(
const QDate &date ) = 0;
00218
00224
virtual bool addJournal(
Journal * ) = 0;
00228
virtual void deleteJournal(
Journal * ) = 0;
00232
virtual Journal *
journal(
const QDate & ) = 0;
00236
virtual Journal *
journal(
const QString &UID ) = 0;
00240
virtual Journal::List journals() = 0;
00241
00242
00247
Incidence *
incidence(
const QString &UID );
00248
00252
virtual void setupRelations(
Incidence * );
00256
virtual void removeRelations(
Incidence * );
00257
00262
void setFilter(
CalFilter * );
00266
CalFilter *
filter();
00267
00271
virtual Alarm::List alarms(
const QDateTime &from,
00272
const QDateTime &to ) = 0;
00273
00274
class Observer {
00275
public:
00276
virtual void calendarModified(
bool,
Calendar * ) {};
00277
00278
virtual void calendarIncidenceAdded(
Incidence * ) {}
00279
virtual void calendarIncidenceChanged(
Incidence * ) {}
00280
virtual void calendarIncidenceDeleted(
Incidence * ) {}
00281 };
00282
00283
void registerObserver( Observer * );
00284
void unregisterObserver( Observer * );
00285
00286
void setModified(
bool );
00287
00292
void setLoadedProductId(
const QString & );
00297
QString loadedProductId();
00298
00302
static Incidence::List mergeIncidenceList(
const Event::List &,
00303
const Todo::List &,
00304
const Journal::List & );
00305
00306
virtual bool beginChange(
Incidence * );
00307
virtual bool endChange(
Incidence * );
00308
00316
Incidence *
dissociateOccurrence(
Incidence *incidence,
QDate date,
00317
bool single =
true );
00318
00319 signals:
00320
void calendarChanged();
00321
void calendarSaved();
00322
void calendarLoaded();
00323
00324
public:
00328
virtual Event::List rawEventsForDate(
const QDateTime &qdt ) = 0;
00332
virtual Event::List rawEventsForDate(
const QDate &date,
00333
bool sorted =
false ) = 0;
00338
virtual Event::List rawEvents(
const QDate &start,
const QDate &end,
00339
bool inclusive =
false ) = 0;
00340
protected:
00344 virtual void doSetTimeZoneId(
const QString & ) {}
00345
00346
void notifyIncidenceAdded(
Incidence * );
00347
void notifyIncidenceChanged(
Incidence * );
00348
void notifyIncidenceDeleted(
Incidence * );
00349
00350
void setObserversEnabled(
bool enabled );
00351
00352
private:
00353
void init();
00354
00355
QString mOwner;
00356
QString mOwnerEmail;
00357
int mTimeZone;
00358
bool mLocalTime;
00359
00360
CalFilter *mFilter;
00361
CalFilter *mDefaultFilter;
00362
00363
QString mTimeZoneId;
00364
00365
QPtrList<Observer> mObservers;
00366
bool mNewObserver;
00367
bool mObserversEnabled;
00368
00369
bool mModified;
00370
00371
QString mLoadedProductId;
00372
00373
00374
QDict<Incidence> mOrphans;
00375
QDict<Incidence> mOrphanUids;
00376
00377
class Private;
00378 Private *d;
00379 };
00380
00381 }
00382
00383
#endif
This file is part of the documentation for libkcal Library Version 3.3.0.