From 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- libkcal/icalformat.h | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 libkcal/icalformat.h (limited to 'libkcal/icalformat.h') diff --git a/libkcal/icalformat.h b/libkcal/icalformat.h new file mode 100644 index 00000000..b7460006 --- /dev/null +++ b/libkcal/icalformat.h @@ -0,0 +1,147 @@ +/* + This file is part of libkcal. + + Copyright (c) 2001-2003 Cornelius Schumacher + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef KCAL_ICALFORMAT_H +#define KCAL_ICALFORMAT_H + +#include + +#include "scheduler.h" + +#include "calformat.h" +#include + +namespace KCal { + +class ICalFormatImpl; +class FreeBusy; + +/** + This class implements the iCalendar format. It provides methods for + loading/saving/converting iCalendar format data into the internal KOrganizer + representation as Calendar and Events. + + @short iCalendar format implementation +*/ +class LIBKCAL_EXPORT ICalFormat : public CalFormat +{ + public: + ICalFormat(); + virtual ~ICalFormat(); + + /** + Loads a calendar on disk in iCalendar format into calendar. + Returns true if successful, else returns false. Provides more error + information by exception(). + + @param calendar Calendar object to be filled. + @param fileName The name of the calendar file on disk. + */ + bool load( Calendar * calendar, const QString &fileName ); + /** + Writes out the calendar to disk in iCalendar format. Returns true if + successful and false on error. + + @param calendar The Calendar object to be written. + @param fileName The name of the calendar file on disk. + */ + bool save( Calendar * calendar, const QString &fileName ); + + /** + Parse string and populate calendar with that information. + */ + bool fromString( Calendar * calendar, const QString & ); + + /** + Parse string and return first ical component. + */ + Incidence *fromString( const QString & ); + + /** + Return calendar information as string. + */ + QString toString( Calendar * ); + /** + Return incidence as full iCalendar formatted text. + */ + QString toICalString( Incidence * ); + /** + Return incidence as iCalendar formatted text. + */ + QString toString( Incidence * ); + /** + Return recurrence rule as iCalendar formatted text. + */ + QString toString( RecurrenceRule * ); + /** + Parse string and fill recurrence object with + that information + */ + bool fromString ( RecurrenceRule *, const QString& ); + + /** + Create a scheduling message for event @p e using method @p m. + */ + QString createScheduleMessage(IncidenceBase *e,Scheduler::Method m); + /** + Parse scheduling message provided as string @p s. + */ + ScheduleMessage *parseScheduleMessage( Calendar *, const QString &s); + + /** + Parse FREEBUSY object. + */ + FreeBusy *parseFreeBusy( const QString & ); + + /** + Set id of used time zone and whether this time zone is UTC or not. + */ + void setTimeZone( const QString &id, bool utc ); + /** + Return id string of timezone used. + */ + QString timeZoneId() const; + /** + Return true if timezone used is UTC, otherwise return false. + */ + bool utc() const; + + protected: + /** + Parse string and return first ical component of a raw byte array of + a utf8 encoded string. This is an overload used for efficiency reading + to avoid utf8 conversions, which are expensive, when reading from disk. + */ + bool fromRawString( Calendar * calendar, const QCString & ); + void setImplementation( ICalFormatImpl *impl ); + + private: + ICalFormatImpl *mImpl; + + QString mTimeZoneId; + bool mUtc; + + class Private; + Private *d; +}; + +} + +#endif -- cgit v1.2.3