summaryrefslogtreecommitdiffstats
path: root/kresources/kolab/kcal/event.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kresources/kolab/kcal/event.cpp')
-rw-r--r--kresources/kolab/kcal/event.cpp223
1 files changed, 0 insertions, 223 deletions
diff --git a/kresources/kolab/kcal/event.cpp b/kresources/kolab/kcal/event.cpp
deleted file mode 100644
index c15c567d..00000000
--- a/kresources/kolab/kcal/event.cpp
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- This file is part of the kolab resource - the implementation of the
- Kolab storage format. See www.kolab.org for documentation on this.
-
- Copyright (c) 2004 Bo Thorsen <bo@sonofthor.dk>
-
- 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.
-
- In addition, as a special exception, the copyright holders give
- permission to link the code of this program with any edition of
- the TQt library by Trolltech AS, Norway (or with modified versions
- of TQt that use the same license as TQt), and distribute linked
- combinations including the two. You must obey the GNU General
- Public License in all respects for all of the code used other than
- TQt. If you modify this file, you may extend this exception to
- your version of the file, but you are not obligated to do so. If
- you do not wish to do so, delete this exception statement from
- your version.
-*/
-
-#include "event.h"
-
-#include <libkcal/event.h>
-#include <kdebug.h>
-
-using namespace Kolab;
-
-
-KCal::Event* Event::xmlToEvent( const TQString& xml, const TQString& tz, KCal::ResourceKolab* res,
- const TQString& subResource, TQ_UINT32 sernum )
-{
- Event event( res, subResource, sernum, tz );
- event.load( xml );
- KCal::Event* kcalEvent = new KCal::Event();
- event.saveTo( kcalEvent );
- return kcalEvent;
-}
-
-TQString Event::eventToXML( KCal::Event* kcalEvent, const TQString& tz )
-{
- Event event( 0, TQString(), 0, tz, kcalEvent );
- return event.saveXML();
-}
-
-Event::Event( KCal::ResourceKolab *res, const TQString &subResource, TQ_UINT32 sernum,
- const TQString& tz, KCal::Event* event )
- : Incidence( res, subResource, sernum, tz ),
- mShowTimeAs( KCal::Event::Opaque ), mHasEndDate( false )
-{
- if ( event )
- setFields( event );
-}
-
-Event::~Event()
-{
-}
-
-void Event::setTransparency( KCal::Event::Transparency transparency )
-{
- mShowTimeAs = transparency;
-}
-
-KCal::Event::Transparency Event::transparency() const
-{
- return mShowTimeAs;
-}
-
-void Event::setEndDate( const TQDateTime& date )
-{
- mEndDate = date;
- mHasEndDate = true;
- if ( mFloatingStatus == AllDay )
- kdDebug() << "ERROR: Time on end date but no time on the event\n";
- mFloatingStatus = HasTime;
-}
-
-void Event::setEndDate( const TQDate& date )
-{
- mEndDate = date;
- mHasEndDate = true;
- if ( mFloatingStatus == HasTime )
- kdDebug() << "ERROR: No time on end date but time on the event\n";
- mFloatingStatus = AllDay;
-}
-
-void Event::setEndDate( const TQString& endDate )
-{
- if ( endDate.length() > 10 )
- // This is a date + time
- setEndDate( stringToDateTime( endDate ) );
- else
- // This is only a date
- setEndDate( stringToDate( endDate ) );
-}
-
-TQDateTime Event::endDate() const
-{
- return mEndDate;
-}
-
-bool Event::loadAttribute( TQDomElement& element )
-{
- // This method doesn't handle the color-label tag yet
- TQString tagName = element.tagName();
-
- if ( tagName == "show-time-as" ) {
- // TODO: Support tentative and outofoffice
- if ( element.text() == "free" )
- setTransparency( KCal::Event::Transparent );
- else
- setTransparency( KCal::Event::Opaque );
- } else if ( tagName == "end-date" )
- setEndDate( element.text() );
- else
- return Incidence::loadAttribute( element );
-
- // We handled this
- return true;
-}
-
-bool Event::saveAttributes( TQDomElement& element ) const
-{
- // Save the base class elements
- Incidence::saveAttributes( element );
-
- // TODO: Support tentative and outofoffice
- if ( transparency() == KCal::Event::Transparent )
- writeString( element, "show-time-as", "free" );
- else
- writeString( element, "show-time-as", "busy" );
- if ( mHasEndDate ) {
- if ( mFloatingStatus == HasTime )
- writeString( element, "end-date", dateTimeToString( endDate() ) );
- else
- writeString( element, "end-date", dateToString( endDate().date() ) );
- }
-
- return true;
-}
-
-
-bool Event::loadXML( const TQDomDocument& document )
-{
- TQDomElement top = document.documentElement();
-
- if ( top.tagName() != "event" ) {
- tqWarning( "XML error: Top tag was %s instead of the expected event",
- top.tagName().ascii() );
- return false;
- }
-
- for ( TQDomNode n = top.firstChild(); !n.isNull(); n = n.nextSibling() ) {
- if ( n.isComment() )
- continue;
- if ( n.isElement() ) {
- TQDomElement e = n.toElement();
- loadAttribute( e );
- } else
- kdDebug() << "Node is not a comment or an element???" << endl;
- }
-
- loadAttachments();
- return true;
-}
-
-TQString Event::saveXML() const
-{
- TQDomDocument document = domTree();
- TQDomElement element = document.createElement( "event" );
- element.setAttribute( "version", "1.0" );
- saveAttributes( element );
- document.appendChild( element );
- return document.toString();
-}
-
-void Event::setFields( const KCal::Event* event )
-{
- Incidence::setFields( event );
-
- // note: if hasEndDate() is false and hasDuration() is true
- // dtEnd() returns start+duration
- if ( event->hasEndDate() || event->hasDuration() ) {
- if ( event->doesFloat() ) {
- // This is a floating event. Don't timezone move this one
- mFloatingStatus = AllDay;
- setEndDate( event->dtEnd().date() );
- } else {
- mFloatingStatus = HasTime;
- setEndDate( localToUTC( event->dtEnd() ) );
- }
- } else {
- mHasEndDate = false;
- }
- setTransparency( event->transparency() );
-}
-
-void Event::saveTo( KCal::Event* event )
-{
- Incidence::saveTo( event );
-
- event->setHasEndDate( mHasEndDate );
- if ( mHasEndDate ) {
- if ( mFloatingStatus == AllDay )
- // This is a floating event. Don't timezone move this one
- event->setDtEnd( endDate() );
- else
- event->setDtEnd( utcToLocal( endDate() ) );
- }
- event->setTransparency( transparency() );
-}