vcalformat.h
00001 /* 00002 This file is part of libkcal. 00003 00004 Copyright (c) 1998 Preston Brown 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., 59 Temple Place - Suite 330, 00020 Boston, MA 02111-1307, 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 00030 #define _VCAL_VERSION "1.0" 00031 00032 class VObject; 00033 00034 namespace KCal { 00035 00043 class VCalFormat : public CalFormat 00044 { 00045 public: 00046 VCalFormat(); 00047 virtual ~VCalFormat(); 00048 00056 bool load( Calendar *calendar, const QString &fileName ); 00064 bool save(Calendar *,const QString &fileName); 00065 00069 bool fromString( Calendar *, const QString & ); 00073 QString toString( Calendar * ); 00074 00075 protected: 00077 Todo *VTodoToEvent(VObject *vtodo); 00079 Event *VEventToEvent(VObject *vevent); 00081 VObject *eventToVTodo(const Todo *anEvent); 00083 VObject* eventToVEvent(const Event *anEvent); 00084 00086 QString qDateToISO(const QDate &); 00088 QString qDateTimeToISO(const QDateTime &, bool zulu=TRUE); 00091 QDateTime ISOToQDateTime(const QString & dtStr); 00094 QDate ISOToQDate(const QString & dtStr); 00097 void populate(VObject *vcal); 00098 00101 const char *dayFromNum(int day); 00103 int numFromDay(const QString &day); 00104 00105 Attendee::PartStat readStatus(const char *s) const; 00106 QCString writeStatus(Attendee::PartStat status) const; 00107 00108 private: 00109 Calendar *mCalendar; 00110 00111 Event::List mEventsRelate; // events with relations 00112 Todo::List mTodosRelate; // todos with relations 00113 00114 class Private; 00115 Private *d; 00116 }; 00117 00118 } 00119 00120 #endif