libkcal
event.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <tdeglobal.h>
00023 #include <tdelocale.h>
00024 #include <kdebug.h>
00025
00026 #include "event.h"
00027
00028 using namespace KCal;
00029
00030 Event::Event() :
00031 mHasEndDate( false ), mTransparency( Opaque )
00032 {
00033 }
00034
00035 Event::Event(const Event &e) : Incidence(e)
00036 {
00037 mDtEnd = e.mDtEnd;
00038 mHasEndDate = e.mHasEndDate;
00039 mTransparency = e.mTransparency;
00040 }
00041
00042 Event::~Event()
00043 {
00044
00045 }
00046
00047 Event *Event::clone()
00048 {
00049
00050 return new Event(*this);
00051 }
00052
00053 Event& Event::operator=( const Event &e )
00054 {
00055 Incidence::operator=( e );
00056 mDtEnd = e.mDtEnd;
00057 mHasEndDate = e.mHasEndDate;
00058 mTransparency = e.mTransparency;
00059 return *this;
00060 }
00061
00062 bool Event::operator==( const Event& e2 ) const
00063 {
00064 return
00065 static_cast<const Incidence&>(*this) == static_cast<const Incidence&>(e2) &&
00066 dtEnd() == e2.dtEnd() &&
00067 hasEndDate() == e2.hasEndDate() &&
00068 transparency() == e2.transparency();
00069 }
00070
00071
00072
00073 void Event::setDtEnd(const TQDateTime &dtEnd)
00074 {
00075 if (mReadOnly) return;
00076
00077 mDtEnd = dtEnd;
00078
00079 setHasEndDate(true);
00080 setHasDuration(false);
00081
00082 updated();
00083 }
00084
00085 TQDateTime Event::dtEnd() const
00086 {
00087 if (hasEndDate()) return mDtEnd;
00088 if (hasDuration()) return dtStart().addSecs(duration());
00089
00090
00091
00092 return dtStart();
00093 }
00094
00095 TQDate Event::dateEnd() const
00096 {
00097 if ( doesFloat() ) return dtEnd().date();
00098 else return dtEnd().addSecs(-1).date();
00099 }
00100
00101 TQString Event::dtEndTimeStr() const
00102 {
00103 return TDEGlobal::locale()->formatTime(dtEnd().time());
00104 }
00105
00106 TQString Event::dtEndDateStr(bool shortfmt) const
00107 {
00108 return TDEGlobal::locale()->formatDate(dtEnd().date(),shortfmt);
00109 }
00110
00111 TQString Event::dtEndStr() const
00112 {
00113 return TDEGlobal::locale()->formatDateTime(dtEnd());
00114 }
00115
00116 void Event::setHasEndDate(bool b)
00117 {
00118 mHasEndDate = b;
00119 }
00120
00121 bool Event::hasEndDate() const
00122 {
00123 return mHasEndDate;
00124 }
00125
00126 bool Event::isMultiDay() const
00127 {
00128
00129 TQDateTime start( dtStart() );
00130 TQDateTime end( dtEnd() );
00131 if ( ! doesFloat() ) {
00132 end = end.addSecs(-1);
00133 }
00134 bool multi = ( start.date() != end.date() && start <= end );
00135 return multi;
00136 }
00137
00138 void Event::setTransparency(Event::Transparency transparency)
00139 {
00140 if (mReadOnly) return;
00141 mTransparency = transparency;
00142 updated();
00143 }
00144
00145 Event::Transparency Event::transparency() const
00146 {
00147 return mTransparency;
00148 }
00149
00150 void Event::setDuration(int seconds)
00151 {
00152 setHasEndDate(false);
00153 Incidence::setDuration(seconds);
00154 }
|