resourcecalendar.h
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
00066
virtual QString infoText()
const;
00067
00087
bool load();
00088
00103
bool save();
00104
00109 virtual bool isSaving() {
return false; }
00110
00114
virtual KABC::Lock *
lock() = 0;
00115
00119
virtual bool addIncidence(
Incidence * );
00120
00124
virtual bool addEvent(
Event *event ) = 0;
00125
00129
virtual void deleteEvent(
Event * ) = 0;
00130
00134
virtual Event *event(
const QString &uid ) = 0;
00135
00140
virtual Event::List rawEvents() = 0;
00141
00146
virtual Event::List rawEventsForDate(
const QDate &date,
00147
bool sorted =
false ) = 0;
00148
00152
virtual Event::List rawEventsForDate(
const QDateTime &qdt ) = 0;
00153
00158
virtual Event::List rawEvents(
const QDate &start,
const QDate &end,
00159
bool inclusive =
false ) = 0;
00160
00161 signals:
00168
void resourceChanged(
ResourceCalendar * );
00169
00174
void resourceLoaded(
ResourceCalendar * );
00179
void resourceSaved(
ResourceCalendar * );
00180
00184
void resourceLoadError(
ResourceCalendar *,
const QString &error );
00188
void resourceSaveError(
ResourceCalendar *,
const QString &error );
00189
00193
void signalSubresourceAdded(
ResourceCalendar *,
const QString& type,
00194
const QString& subresource,
const QString& label );
00195
00196
void signalSubresourceAdded(
ResourceCalendar *,
const QString& type,
00197
const QString& subresource );
00198
00202
void signalSubresourceRemoved(
ResourceCalendar *,
const QString &,
00203
const QString & );
00204
00205
public:
00209
virtual bool addTodo(
Todo *todo ) = 0;
00213
virtual void deleteTodo(
Todo * ) = 0;
00219
virtual Todo *todo(
const QString &uid ) = 0;
00223
virtual Todo::List rawTodos() = 0;
00227
virtual Todo::List rawTodosForDate(
const QDate &date ) = 0;
00228
00229
00233
virtual bool addJournal(
Journal * ) = 0;
00234
00238
virtual void deleteJournal(
Journal * ) = 0;
00239
00243
virtual Journal *journal(
const QDate & ) = 0;
00244
00248
virtual Journal *journal(
const QString &uid ) = 0;
00249
00253
virtual Journal::List journals() = 0;
00254
00255
00259
virtual Alarm::List alarms(
const QDateTime &from,
00260
const QDateTime &to ) = 0;
00261
00265
virtual Alarm::List alarmsTo(
const QDateTime &to ) = 0;
00266
00267
00269
Incidence::List rawIncidences();
00270
00274
virtual void setTimeZoneId(
const QString &tzid ) = 0;
00275
00281 virtual QStringList subresources()
const {
return QStringList(); }
00282
00286 virtual bool subresourceActive(
const QString& )
const {
return true; }
00287
00291 virtual const QString labelForSubresource(
const QString& resource )
const
00292
{
00293
00294
return resource;
00295 };
00296
00297
public slots:
00301
virtual void setSubresourceActive(
const QString &,
bool active );
00302
00303
protected:
00307
virtual bool doLoad() = 0;
00311
virtual bool doSave() = 0;
00312
00316 virtual void addInfoText(
QString & )
const {};
00317
00321
void loadError(
const QString &errorMessage = QString::null );
00325
void saveError(
const QString &errorMessage = QString::null );
00326
00327
private:
00328
bool mReceivedLoadError;
00329
bool mReceivedSaveError;
00330
00331
class Private;
00332 Private *d;
00333 };
00334
00335
typedef KRES::Manager<ResourceCalendar> CalendarResourceManager;
00336
00337 }
00338
00339
#endif
This file is part of the documentation for libkcal Library Version 3.3.0.