korganizer Library API Documentation

freebusymanager.h

00001 /* 00002 This file is part of the Groupware/KOrganizer integration. 00003 00004 Requires the Qt and KDE widget libraries, available at no cost at 00005 http://www.trolltech.com and http://www.kde.org respectively 00006 00007 Copyright (c) 2002-2004 Klarälvdalens Datakonsult AB 00008 <info@klaralvdalens-datakonsult.se> 00009 00010 This program is free software; you can redistribute it and/or modify 00011 it under the terms of the GNU General Public License as published by 00012 the Free Software Foundation; either version 2 of the License, or 00013 (at your option) any later version. 00014 00015 This program is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 GNU General Public License for more details. 00019 00020 You should have received a copy of the GNU General Public License 00021 along with this program; if not, write to the Free Software 00022 Foundation, Inc., 59 Temple Place - Suite 330, Boston, 00023 MA 02111-1307, USA. 00024 00025 In addition, as a special exception, the copyright holders give 00026 permission to link the code of this program with any edition of 00027 the Qt library by Trolltech AS, Norway (or with modified versions 00028 of Qt that use the same license as Qt), and distribute linked 00029 combinations including the two. You must obey the GNU General 00030 Public License in all respects for all of the code used other than 00031 Qt. If you modify this file, you may extend this exception to 00032 your version of the file, but you are not obligated to do so. If 00033 you do not wish to do so, delete this exception statement from 00034 your version. 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 *, const QString &email ); 00111 00115 KURL freeBusyUrl( const QString &email ); 00116 00120 QString freeBusyDir(); 00121 00122 public slots: 00123 // When something changed in the calendar, we get this called 00124 void slotPerhapsUploadFB(); 00125 00126 signals: 00130 void freeBusyRetrieved( KCal::FreeBusy *, const QString &email ); 00131 00132 protected: 00133 void timerEvent( QTimerEvent* ); 00134 00138 QString ownerFreeBusyAsString(); 00139 00143 KCal::FreeBusy *ownerFreeBusy(); 00144 00148 QString freeBusyToIcal( KCal::FreeBusy * ); 00149 00150 protected slots: 00151 bool processRetrieveQueue(); 00152 00153 private slots: 00154 void slotUploadFreeBusyResult( KIO::Job * ); 00155 00156 private: 00157 KCal::Calendar *mCalendar; 00158 KCal::ICalFormat mFormat; 00159 00160 QStringList mRetrieveQueue; 00161 00162 // Free/Busy uploading 00163 QDateTime mNextUploadTime; 00164 int mTimerID; 00165 bool mUploadingFreeBusy; 00166 }; 00167 00168 #endif
KDE Logo
This file is part of the documentation for korganizer Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Oct 21 19:46:56 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003