libkcal
vcalformat.h
Go to the documentation of this file.00001 /* 00002 This file is part of libkcal. 00003 00004 Copyright (c) 1998 Preston Brown <pbrown@kde.org> 00005 Copyright (c) 2001-2003 Cornelius Schumacher <schumacher@kde.org> 00006 00007 This library is free software; you can redistribute it and/or 00008 modify it under the terms of the GNU Library General Public 00009 License as published by the Free Software Foundation; either 00010 version 2 of the License, or (at your option) any later version. 00011 00012 This library is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 Library General Public License for more details. 00016 00017 You should have received a copy of the GNU Library General Public License 00018 along with this library; see the file COPYING.LIB. If not, write to 00019 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00020 Boston, MA 02110-1301, USA. 00021 */ 00022 #ifndef KCAL_VCALFORMAT_H 00023 #define KCAL_VCALFORMAT_H 00024 00025 #include "calformat.h" 00026 00027 #include "todo.h" 00028 #include "event.h" 00029 #include "libkcal_export.h" 00030 00031 #define _VCAL_VERSION "1.0" 00032 00033 class VObject; 00034 00035 namespace KCal { 00036 00044 class LIBKCAL_EXPORT VCalFormat : public CalFormat 00045 { 00046 public: 00047 VCalFormat(); 00048 virtual ~VCalFormat(); 00049 00057 bool load( Calendar *calendar, const QString &fileName ); 00065 bool save(Calendar *calendar, const QString &fileName); 00066 00070 bool fromString( Calendar *, const QString & ); 00074 QString toString( Calendar * ); 00075 00076 protected: 00078 Todo *VTodoToEvent(VObject *vtodo); 00080 Event *VEventToEvent(VObject *vevent); 00082 VObject *eventToVTodo(const Todo *anEvent); 00084 VObject* eventToVEvent(const Event *anEvent); 00085 00087 QString qDateToISO(const QDate &); 00089 QString qDateTimeToISO(const QDateTime &, bool zulu=TRUE); 00092 QDateTime ISOToQDateTime(const QString & dtStr); 00095 QDate ISOToQDate(const QString & dtStr); 00098 void populate(VObject *vcal); 00099 00102 const char *dayFromNum(int day); 00104 int numFromDay(const QString &day); 00105 00106 Attendee::PartStat readStatus(const char *s) const; 00107 QCString writeStatus(Attendee::PartStat status) const; 00108 00109 private: 00110 Calendar *mCalendar; 00111 00112 Event::List mEventsRelate; // events with relations 00113 Todo::List mTodosRelate; // todos with relations 00114 00115 class Private; 00116 Private *d; 00117 }; 00118 00119 } 00120 00121 #endif