-rw-r--r-- | libkcal/attachment.cpp | 38 | ||||
-rw-r--r-- | libkcal/attachment.h | 71 | ||||
-rw-r--r-- | libkcal/icalformatimpl.cpp | 4 | ||||
-rw-r--r-- | libkcal/incidence.cpp | 12 |
4 files changed, 96 insertions, 29 deletions
diff --git a/libkcal/attachment.cpp b/libkcal/attachment.cpp index 1ead923..520ac95 100644 --- a/libkcal/attachment.cpp +++ b/libkcal/attachment.cpp @@ -1,10 +1,11 @@ /* This file is part of libkcal. + Copyright (c) 2002 Michael Brade <brade@kde.org> 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, @@ -17,44 +18,57 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "attachment.h" using namespace KCal; +Attachment::Attachment( const Attachment &attachment) +{ + mMimeType = attachment.mMimeType; + mData = attachment.mData; + mBinary = attachment.mBinary; + mShowInline = attachment.mShowInline; + mLabel = attachment.mLabel; +} + Attachment::Attachment(const QString& uri, const QString& mime) { mMimeType = mime; mData = uri; mBinary = false; + mShowInline = false; + mLabel = QString::null; } Attachment::Attachment(const char *base64, const QString& mime) { mMimeType = mime; mData = QString::fromUtf8(base64); mBinary = true; + mShowInline = false; + mLabel = QString::null; } -bool Attachment::isURI() const +bool Attachment::isUri() const { return !mBinary; } QString Attachment::uri() const { if (!mBinary) return mData; else return QString::null; } -void Attachment::setURI(const QString& uri) +void Attachment::setUri(const QString& uri) { mData = uri; mBinary = false; } bool Attachment::isBinary() const { return mBinary; @@ -79,8 +93,28 @@ QString Attachment::mimeType() const return mMimeType; } void Attachment::setMimeType(const QString& mime) { mMimeType = mime; } +bool Attachment::showInline() const +{ + return mShowInline; +} + +void Attachment::setShowInline( bool showinline ) +{ + mShowInline = showinline; +} + +QString Attachment::label() const +{ + return mLabel; +} + +void Attachment::setLabel( const QString& label ) +{ + mLabel = label; +} + diff --git a/libkcal/attachment.h b/libkcal/attachment.h index cdf2458..5301420 100644 --- a/libkcal/attachment.h +++ b/libkcal/attachment.h @@ -1,10 +1,11 @@ /* This file is part of libkcal. + Copyright (c) 2002 Michael Brade <brade@kde.org> 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, @@ -12,58 +13,82 @@ 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef KCAL_ATTACHMENT_H +#define KCAL_ATTACHMENT_H -#ifndef _ATTACHMENT_H -#define _ATTACHMENT_H -#include <qstring.h> +#include <qstring.h> namespace KCal { /** - * This class represents information related to an attachment. - */ + This class represents information related to an attachment. +*/ class Attachment { -public: + public: + /** - * Create a Reference to some URI. - * @param uri the uri this attachment refers to - * @param mime the mime type of the resource being linked to - */ - Attachment(const QString& uri, const QString& mime = QString::null); + Create a Reference to some URI by copying an existing Attachment. + + @param attachment the attachment to be duplicated + */ + Attachment( const Attachment &attachment ); /** - * Create a binary attachment. - * @param base64 the attachment in base64 format - * @param mime the mime type of the attachment - */ - Attachment(const char *base64, const QString& mime = QString::null); - - /* The VALUE parameter in Cal */ - bool isURI() const; + Create a Reference to some URI. + + @param uri the uri this attachment refers to + @param mime the mime type of the resource being linked to + */ + Attachment( const QString &uri, const QString &mime = QString::null ); + + /** + Create a binary attachment. + + @param base64 the attachment in base64 format + @param mime the mime type of the attachment + */ + Attachment( const char *base64, const QString &mime = QString::null ); + + /* The VALUE parameter in iCal */ + bool isUri() const; QString uri() const; - void setURI(const QString& uri); + void setUri( const QString &uri ); bool isBinary() const; char *data() const; - void setData(const char *base64); + void setData( const char *base64 ); /* The optional FMTTYPE parameter in iCal */ QString mimeType() const; - void setMimeType(const QString& mime); -private: + void setMimeType( const QString &mime ); + + /* The custom X-CONTENT-DISPOSITION parameter, used by OGo etc. */ + bool showInline() const; + void setShowInline( bool showinline ); + + /* The custom X-LABEL parameter to show a human-readable title */ + QString label() const; + void setLabel( const QString &label ); + + private: QString mMimeType; QString mData; bool mBinary; + bool mShowInline; + QString mLabel; + + class Private; + Private *d; }; } #endif diff --git a/libkcal/icalformatimpl.cpp b/libkcal/icalformatimpl.cpp index 53aa039..65eabc8 100644 --- a/libkcal/icalformatimpl.cpp +++ b/libkcal/icalformatimpl.cpp @@ -509,23 +509,23 @@ icalproperty *ICalFormatImpl::writeAttendee(Attendee *attendee) return p; } icalproperty *ICalFormatImpl::writeAttachment(Attachment *att) { #if 0 icalattachtype* attach = icalattachtype_new(); - if (att->isURI()) + if (att->isUri()) icalattachtype_set_url(attach, att->uri().utf8().data()); else icalattachtype_set_base64(attach, att->data(), 0); #endif icalattach *attach; - if (att->isURI()) + if (att->isUri()) attach = icalattach_new_from_url( att->uri().utf8().data()); else attach = icalattach_new_from_data ( (unsigned char *)att->data(), 0, 0); icalproperty *p = icalproperty_new_attach(attach); if (!att->mimeType().isEmpty()) icalproperty_add_parameter(p,icalparameter_new_fmttype(att->mimeType().utf8().data())); if (att->isBinary()) { diff --git a/libkcal/incidence.cpp b/libkcal/incidence.cpp index 549014e..39c14f5 100644 --- a/libkcal/incidence.cpp +++ b/libkcal/incidence.cpp @@ -51,20 +51,27 @@ Incidence::Incidence( const Incidence &i ) : IncidenceBase( i ) // TODO: reenable attributes currently commented out. mRevision = i.mRevision; mCreated = i.mCreated; mDescription = i.mDescription; mSummary = i.mSummary; mCategories = i.mCategories; // Incidence *mRelatedTo; Incidence *mRelatedTo; mRelatedTo = 0; - mRelatedToUid = i.mRelatedToUid; + mRelatedToUid = i.mRelatedToUid; // QPtrList<Incidence> mRelations; QPtrList<Incidence> mRelations; mExDates = i.mExDates; - mAttachments = i.mAttachments; + QPtrListIterator<Attachment> itat( i.mAttachments ); + Attachment *at; + while( (at = itat.current()) ) { + Attachment *a = new Attachment( *at ); + mAttachments.append( a ); + ++itat; + } + mAttachments.setAutoDelete( true ); mResources = i.mResources; mSecrecy = i.mSecrecy; mPriority = i.mPriority; mLocation = i.mLocation; mCancelled = i.mCancelled; mHasStartDate = i.mHasStartDate; QPtrListIterator<Alarm> it( i.mAlarms ); const Alarm *a; @@ -752,16 +759,17 @@ bool Incidence::isAlarmEnabled() const return false; } #include <stdlib.h> Recurrence *Incidence::recurrence() { if ( ! mRecurrence ) { mRecurrence = new Recurrence(this); mRecurrence->setRecurStart( dtStart() ); + mRecurrence->setRecurReadOnly( isReadOnly()); //qDebug("creating new recurence "); //abort(); } return mRecurrence; } void Incidence::setRecurrence( Recurrence * r) { if ( mRecurrence ) |