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 //  kdDebug(5800) << "~Event() " << int( this ) << endl;
00044 }
00045 
00046 Event *Event::clone()
00047 {
00048   kdDebug(5800) << "Event::clone()" << endl;
00049   return new Event(*this);
00050 }
00051 
00052 bool Event::operator==( const Event& e2 ) const
00053 {
00054     return
00055         static_cast<const Incidence&>(*this) == static_cast<const Incidence&>(e2) &&
00056         dtEnd() == e2.dtEnd() &&
00057         hasEndDate() == e2.hasEndDate() &&
00058         transparency() == e2.transparency();
00059 }
00060 
00061 
00062 
00063 void Event::setDtEnd(const QDateTime &dtEnd)
00064 {
00065   if (mReadOnly) return;
00066 
00067   mDtEnd = dtEnd;
00068 
00069   setHasEndDate(true);
00070   setHasDuration(false);
00071 
00072   updated();
00073 }
00074 
00075 QDateTime Event::dtEnd() const
00076 {
00077   if (hasEndDate()) return mDtEnd;
00078   if (hasDuration()) return dtStart().addSecs(duration());
00079 
00080   kdDebug(5800) << "Warning! Event '" << summary()
00081             << "' does have neither end date nor duration." << endl;
00082   return dtStart();
00083 }
00084 
00085 QString Event::dtEndTimeStr() const
00086 {
00087   return KGlobal::locale()->formatTime(mDtEnd.time());
00088 }
00089 
00090 QString Event::dtEndDateStr(bool shortfmt) const
00091 {
00092   return KGlobal::locale()->formatDate(mDtEnd.date(),shortfmt);
00093 }
00094 
00095 QString Event::dtEndStr() const
00096 {
00097   return KGlobal::locale()->formatDateTime(mDtEnd);
00098 }
00099 
00100 void Event::setHasEndDate(bool b)
00101 {
00102   mHasEndDate = b;
00103 }
00104 
00105 bool Event::hasEndDate() const
00106 {
00107   return mHasEndDate;
00108 }
00109 
00110 bool Event::isMultiDay() const
00111 {
00112   bool multi = !(dtStart().date() == dtEnd().date());
00113   return multi;
00114 }
00115 
00116 void Event::setTransparency(Event::Transparency transparency)
00117 {
00118   if (mReadOnly) return;
00119   mTransparency = transparency;
00120   updated();
00121 }
00122 
00123 Event::Transparency Event::transparency() const
00124 {
00125   return mTransparency;
00126 }
00127 
00128 void Event::setDuration(int seconds)
00129 {
00130   setHasEndDate(false);
00131   Incidence::setDuration(seconds);
00132 }
KDE Logo
This file is part of the documentation for libkcal Library Version 3.3.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Mon Apr 4 04:45:02 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003