calendarresources.hGo to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00031 #ifndef KCAL_CALENDARRESOURCES_H
00032 #define KCAL_CALENDARRESOURCES_H
00033
00034 #include <QtCore/QMap>
00035
00036 #include "calendar.h"
00037 #include "exceptions.h"
00038 #include "resourcecalendar.h"
00039
00040 #include "kcal_export.h"
00041
00042 class QWidget;
00043
00044 namespace KCal {
00045
00057 class KCAL_EXPORT CalendarResources
00058 : public Calendar, public KRES::ManagerObserver<ResourceCalendar>
00059 {
00060 Q_OBJECT
00061 public:
00065 class DestinationPolicy
00066 {
00067 public:
00073 explicit DestinationPolicy( CalendarResourceManager *manager, QWidget *parent = 0 );
00074
00078 virtual ~DestinationPolicy();
00079
00083 virtual QWidget *parent();
00084
00089 virtual void setParent( QWidget *parent );
00090
00095 virtual ResourceCalendar *destination( Incidence *incidence ) = 0;
00096
00101 bool hasCalendarResources();
00102 protected:
00106 CalendarResourceManager *resourceManager();
00107
00108 private:
00109
00110 Q_DISABLE_COPY( DestinationPolicy )
00111 class Private;
00112 Private *d;
00113
00114 };
00115
00119 class StandardDestinationPolicy : public DestinationPolicy
00120 {
00121 public:
00127 explicit StandardDestinationPolicy( CalendarResourceManager *manager, QWidget *parent = 0 );
00128
00132 virtual ~StandardDestinationPolicy();
00133
00138 ResourceCalendar *destination( Incidence *incidence );
00139
00140 private:
00141
00142 Q_DISABLE_COPY( StandardDestinationPolicy )
00143 class Private;
00144 Private *d;
00145
00146 };
00147
00151 class AskDestinationPolicy : public DestinationPolicy
00152 {
00153 public:
00159 explicit AskDestinationPolicy( CalendarResourceManager *manager, QWidget *parent = 0 );
00160
00164 virtual ~AskDestinationPolicy();
00165
00170 ResourceCalendar *destination( Incidence *incidence );
00171 private:
00172
00173 Q_DISABLE_COPY( AskDestinationPolicy )
00174 class Private;
00175 Private *d;
00176
00177 };
00178
00182 class Ticket
00183 {
00184 friend class CalendarResources;
00185
00186 public:
00190 ResourceCalendar *resource() const;
00191
00195 ~Ticket();
00196
00197 private:
00202 Ticket( ResourceCalendar *resource );
00203
00204
00205 Q_DISABLE_COPY( Ticket )
00206 class Private;
00207 Private *d;
00208
00209 };
00210
00221 CalendarResources(
00222 const KDateTime::Spec &timeSpec,
00223 const QString &family = QLatin1String( "calendar" ) );
00224
00234 CalendarResources(
00235 const QString &timeZoneId,
00236 const QString &family = QLatin1String( "calendar" ) );
00237
00241 ~CalendarResources();
00242
00247 void clearException();
00248
00254 ErrorFormat *exception();
00255
00261 void load();
00262
00267 bool reload();
00268
00273 void close();
00274
00288 virtual bool save( Ticket *ticket, Incidence *incidence = 0 );
00289
00294 bool save();
00295
00300 bool isSaving();
00301
00305 CalendarResourceManager *resourceManager() const;
00306
00313 ResourceCalendar *resource( Incidence *incidence );
00314
00323 void readConfig( KConfig *config = 0 );
00324
00329 void setStandardDestinationPolicy();
00330
00335 void setAskDestinationPolicy();
00336
00341 bool hasCalendarResources();
00342
00355 QWidget *dialogParentWidget();
00356
00366 void setDialogParentWidget( QWidget *parent );
00367
00379 Ticket *requestSaveTicket( ResourceCalendar *resource );
00380
00387 virtual void releaseSaveTicket( Ticket *ticket );
00388
00400 void resourceAdded( ResourceCalendar *resource );
00401
00402
00403
00412 bool addIncidence( Incidence *incidence );
00413
00422 bool addIncidence( Incidence *incidence, ResourceCalendar *resource );
00423
00428 bool beginChange( Incidence *incidence );
00429
00434 bool endChange( Incidence *incidence );
00435
00436
00437
00442 bool addEvent( Event *event );
00443
00455 bool addEvent( Event *event, ResourceCalendar *resource );
00456
00461 bool deleteEvent( Event *event );
00462
00467 void deleteAllEvents();
00468
00473 Event::List rawEvents(
00474 EventSortField sortField = EventSortUnsorted,
00475 SortDirection sortDirection = SortDirectionAscending );
00476
00481 Event::List rawEventsForDate( const KDateTime &dt );
00482
00487 Event::List rawEvents( const QDate &start, const QDate &end,
00488 const KDateTime::Spec &timeSpec = KDateTime::Spec(),
00489 bool inclusive = false );
00490
00502 Event::List rawEventsForDate( const QDate &date,
00503 const KDateTime::Spec &timeSpec = KDateTime::Spec(),
00504 EventSortField sortField = EventSortUnsorted,
00505 SortDirection sortDirection = SortDirectionAscending );
00506
00511 Event *event( const QString &uid );
00512
00513
00514
00519 bool addTodo( Todo *todo );
00520
00532 bool addTodo( Todo *todo, ResourceCalendar *resource );
00533
00538 bool deleteTodo( Todo *todo );
00539
00544 void deleteAllTodos();
00545
00550 Todo::List rawTodos( TodoSortField sortField = TodoSortUnsorted,
00551 SortDirection sortDirection = SortDirectionAscending );
00552
00557 Todo::List rawTodosForDate( const QDate &date );
00558
00563 Todo *todo( const QString &uid );
00564
00565
00566
00571 bool addJournal( Journal *journal );
00572
00584 bool addJournal( Journal *journal, ResourceCalendar *resource );
00585
00590 bool deleteJournal( Journal *journal );
00591
00596 void deleteAllJournals();
00597
00602 Journal::List rawJournals(
00603 JournalSortField sortField = JournalSortUnsorted,
00604 SortDirection sortDirection = SortDirectionAscending );
00605
00610 Journal::List rawJournalsForDate( const QDate &date );
00611
00616 Journal *journal( const QString &uid );
00617
00618
00619
00624 Alarm::List alarms( const KDateTime &from, const KDateTime &to );
00625
00633 Alarm::List alarmsTo( const KDateTime &to );
00634
00635 using QObject::event;
00636
00637 Q_SIGNALS:
00644 void signalResourceModified( ResourceCalendar *resource );
00645
00652 void signalResourceAdded( ResourceCalendar *resource );
00653
00660 void signalResourceDeleted( ResourceCalendar *resource );
00661
00666 void signalErrorMessage( const QString &err );
00667
00668 protected:
00673 void connectResource( ResourceCalendar *resource );
00674
00681 void resourceModified( ResourceCalendar *resource );
00682
00688 void resourceDeleted( ResourceCalendar *resource );
00689
00694 virtual void doSetTimeSpec( const KDateTime::Spec &timeSpec );
00695
00703 int incrementChangeCount( ResourceCalendar *resource );
00704
00712 int decrementChangeCount( ResourceCalendar *resource );
00713
00714 protected Q_SLOTS:
00723 void slotLoadError( ResourceCalendar *resource, const QString &err );
00724
00733 void slotSaveError( ResourceCalendar *resource, const QString &err );
00734
00741 void beginAddingIncidences();
00742
00747 void endAddingIncidences();
00748
00749 private:
00750
00751 Q_DISABLE_COPY( CalendarResources )
00752 class Private;
00753 Private *d;
00754
00755 };
00756
00757 }
00758
00759 #endif
|