00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef KCAL_RESOURCECALENDAR_H
00025
#define KCAL_RESOURCECALENDAR_H
00026
00027
#include <qstring.h>
00028
#include <qdatetime.h>
00029
#include <qptrlist.h>
00030
00031
#include <kconfig.h>
00032
00033
#include "alarm.h"
00034
#include "todo.h"
00035
#include "event.h"
00036
#include "journal.h"
00037
00038
#include <kresources/resource.h>
00039
#include <kresources/manager.h>
00040
#include <kabc/lock.h>
00041
00042
namespace KCal {
00043
00044
class CalFormat;
00045
00053 class ResourceCalendar :
public KRES::Resource
00054 {
00055 Q_OBJECT
00056
public:
00057
ResourceCalendar(
const KConfig * );
00058
virtual ~
ResourceCalendar();
00059
00060
virtual void writeConfig( KConfig* config );
00061
00078
virtual bool load() = 0;
00079
00091
virtual bool save() = 0;
00092
00097 virtual bool isSaving() {
return false; }
00098
00102
virtual KABC::Lock *
lock() = 0;
00103
00107
virtual bool addIncidence(
Incidence * );
00108
00112
virtual bool addEvent(
Event *event ) = 0;
00113
00117
virtual void deleteEvent(
Event * ) = 0;
00118
00122
virtual Event *event(
const QString &uid ) = 0;
00123
00128
virtual Event::List rawEvents() = 0;
00129
00134
virtual Event::List rawEventsForDate(
const QDate &date,
00135
bool sorted =
false ) = 0;
00136
00140
virtual Event::List rawEventsForDate(
const QDateTime &qdt ) = 0;
00141
00146
virtual Event::List rawEvents(
const QDate &start,
const QDate &end,
00147
bool inclusive =
false ) = 0;
00148
00149 signals:
00153
void resourceChanged(
ResourceCalendar * );
00158
void resourceLoaded(
ResourceCalendar * );
00163
void resourceSaved(
ResourceCalendar * );
00164
00165
public:
00169
virtual bool addTodo(
Todo *todo ) = 0;
00173
virtual void deleteTodo(
Todo * ) = 0;
00179
virtual Todo *todo(
const QString &uid ) = 0;
00183
virtual Todo::List rawTodos() = 0;
00187
virtual Todo::List todos(
const QDate &date ) = 0;
00188
00189
00193
virtual bool addJournal(
Journal * ) = 0;
00194
00198
virtual void deleteJournal(
Journal * ) = 0;
00199
00203
virtual Journal *journal(
const QDate & ) = 0;
00204
00208
virtual Journal *journal(
const QString &uid ) = 0;
00209
00213
virtual Journal::List journals() = 0;
00214
00215
00219
virtual Alarm::List alarms(
const QDateTime &from,
00220
const QDateTime &to ) = 0;
00221
00225
virtual Alarm::List alarmsTo(
const QDateTime &to ) = 0;
00226
00227
00233
virtual void update(
IncidenceBase *incidence ) = 0;
00234
00236
Incidence::List rawIncidences();
00237
00241
virtual void setTimeZoneId(
const QString &tzid ) = 0;
00242
00243
private:
00244
class Private;
00245 Private *d;
00246 };
00247
00248
typedef KRES::Manager<ResourceCalendar> CalendarResourceManager;
00249
00250 }
00251
00252
#endif