libkcal Library API Documentation

event.cpp

00001 /*
00002     This file is part of libkcal.
00003     Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
00004 
00005     This library is free software; you can redistribute it and/or
00006     modify it under the terms of the GNU Library General Public
00007     License as published by the Free Software Foundation; either
00008     version 2 of the License, or (at your option) any later version.
00009 
00010     This library is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013     Library General Public License for more details.
00014 
00015     You should have received a copy of the GNU Library General Public License
00016     along with this library; see the file COPYING.LIB.  If not, write to
00017     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00018     Boston, MA 02111-1307, USA.
00019 */
00020 
00021 #include <kglobal.h>
00022 #include <klocale.h>
00023 #include <kdebug.h>
00024 
00025 #include "event.h"
00026 
00027 using namespace KCal;
00028 
00029 Event::Event() :
00030   mHasEndDate( false ), mTransparency( Opaque )
00031 {
00032 }
00033 
00034 Event::Event(const Event &e) : Incidence(e)
00035 {
00036   mDtEnd = e.mDtEnd;
00037   mHasEndDate = e.mHasEndDate;
00038   mTransparency = e.mTransparency;
00039 }
00040 
00041 Event::~Event()
00042 {
00043 }
00044 
00045 Event *Event::clone()
00046 {
00047   kdDebug(5800) << "Event::clone()" << endl;
00048   return new Event(*this);
00049 }
00050 
00051 bool Event::operator==( const Event& e2 ) const
00052 {
00053     return
00054         static_cast<const Incidence&>(*this) == static_cast<const Incidence&>(e2) &&
00055         dtEnd() == e2.dtEnd() &&
00056         hasEndDate() == e2.hasEndDate() &&
00057         transparency() == e2.transparency();
00058 }
00059 
00060 
00061 
00062 void Event::setDtEnd(const QDateTime &dtEnd)
00063 {
00064   if (mReadOnly) return;
00065 
00066   mDtEnd = dtEnd;
00067 
00068   setHasEndDate(true);
00069   setHasDuration(false);
00070 
00071   updated();
00072 }
00073 
00074 QDateTime Event::dtEnd() const
00075 {
00076   if (hasEndDate()) return mDtEnd;
00077   if (hasDuration()) return dtStart().addSecs(duration());
00078 
00079   kdDebug(5800) << "Warning! Event '" << summary()
00080             << "' does have neither end date nor duration." << endl;
00081   return dtStart();
00082 }
00083 
00084 QString Event::dtEndTimeStr() const
00085 {
00086   return KGlobal::locale()->formatTime(mDtEnd.time());
00087 }
00088 
00089 QString Event::dtEndDateStr(bool shortfmt) const
00090 {
00091   return KGlobal::locale()->formatDate(mDtEnd.date(),shortfmt);
00092 }
00093 
00094 QString Event::dtEndStr() const
00095 {
00096   return KGlobal::locale()->formatDateTime(mDtEnd);
00097 }
00098 
00099 void Event::setHasEndDate(bool b)
00100 {
00101   mHasEndDate = b;
00102 }
00103 
00104 bool Event::hasEndDate() const
00105 {
00106   return mHasEndDate;
00107 }
00108 
00109 bool Event::isMultiDay() const
00110 {
00111   bool multi = !(dtStart().date() == dtEnd().date());
00112   return multi;
00113 }
00114 
00115 void Event::setTransparency(Event::Transparency transparency)
00116 {
00117   if (mReadOnly) return;
00118   mTransparency = transparency;
00119   updated();
00120 }
00121 
00122 Event::Transparency Event::transparency() const
00123 {
00124   return mTransparency;
00125 }
00126 
00127 void Event::setDuration(int seconds)
00128 {
00129   setHasEndDate(false);
00130   Incidence::setDuration(seconds);
00131 }
KDE Logo
This file is part of the documentation for libkcal Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat May 1 11:36:21 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003