korganizer
freebusymanager.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef FREEBUSYMANAGER_H
00037 #define FREEBUSYMANAGER_H
00038
00039 #include <kurl.h>
00040 #include <libkcal/icalformat.h>
00041 #include <libkcal/freebusycache.h>
00042 #include <qstring.h>
00043 #include <qobject.h>
00044
00045 namespace KIO { class Job; }
00046 namespace KCal {
00047 class Calendar;
00048 class FreeBusy;
00049 }
00050 class FreeBusyManager;
00051
00055 class FreeBusyDownloadJob : public QObject
00056 {
00057 Q_OBJECT
00058 public:
00059 FreeBusyDownloadJob( const QString &email, const KURL &url,
00060 FreeBusyManager *manager, const char *name = 0 );
00061
00062 virtual ~FreeBusyDownloadJob();
00063
00064 protected slots:
00065 void slotResult( KIO::Job * );
00066 void slotData( KIO::Job *, const QByteArray &data );
00067
00068 signals:
00069 void freeBusyDownloaded( KCal::FreeBusy *, const QString& );
00070
00071 private:
00072 FreeBusyManager *mManager;
00073 QString mEmail;
00074
00075 QCString mFreeBusyData;
00076 };
00077
00078 class FreeBusyManager : public QObject, public KCal::FreeBusyCache
00079 {
00080 Q_OBJECT
00081 public:
00082 FreeBusyManager( QObject *parent, const char *name );
00083
00084 void setCalendar( KCal::Calendar * );
00085
00087 void publishFreeBusy();
00088
00097 bool retrieveFreeBusy( const QString &email );
00098
00099 void cancelRetrieval();
00100
00101 KCal::FreeBusy *iCalToFreeBusy( const QCString &data );
00102
00106 KCal::FreeBusy *loadFreeBusy( const QString &email );
00110 bool saveFreeBusy( KCal::FreeBusy *freebusy, const KCal::Person &person );
00111
00112
00116 KURL freeBusyUrl( const QString &email );
00117
00121 QString freeBusyDir();
00122
00123 public slots:
00124
00125 void slotPerhapsUploadFB();
00126
00127 signals:
00131 void freeBusyRetrieved( KCal::FreeBusy *, const QString &email );
00132
00133 protected:
00134 void timerEvent( QTimerEvent* );
00135
00139 QString ownerFreeBusyAsString();
00140
00144 KCal::FreeBusy *ownerFreeBusy();
00145
00149 QString freeBusyToIcal( KCal::FreeBusy * );
00150
00151 protected slots:
00152 bool processRetrieveQueue();
00153
00154 private slots:
00155 void slotUploadFreeBusyResult( KIO::Job * );
00156
00157 private:
00158 KCal::Calendar *mCalendar;
00159 KCal::ICalFormat mFormat;
00160
00161 QStringList mRetrieveQueue;
00162
00163
00164 QDateTime mNextUploadTime;
00165 int mTimerID;
00166 bool mUploadingFreeBusy;
00167 };
00168
00169 #endif
|