summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/oevent.cpp
Side-by-side diff
Diffstat (limited to 'libopie2/opiepim/oevent.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/oevent.cpp870
1 files changed, 573 insertions, 297 deletions
diff --git a/libopie2/opiepim/oevent.cpp b/libopie2/opiepim/oevent.cpp
index de5e30b..d9cee2b 100644
--- a/libopie2/opiepim/oevent.cpp
+++ b/libopie2/opiepim/oevent.cpp
@@ -2,3 +2,3 @@
This file is part of the Opie Project
- Copyright (C) Stefan Eilers (Eilers.Stefan@epost.de)
+ Copyright (C) Stefan Eilers <Eilers.Stefan@epost.de>
=. Copyright (C) The Opie Team <opie-devel@handhelds.org>
@@ -28,9 +28,6 @@
*/
-#include <qshared.h>
-#include <qarray.h>
-#include <qpe/palmtopuidgen.h>
-#include <qpe/categories.h>
-#include <qpe/stringutil.h>
+#include "oevent.h"
+/* OPIE */
#include <opie2/orecur.h>
@@ -38,8 +35,15 @@
#include <opie2/opimnotifymanager.h>
+#include <qpe/categories.h>
+#include <qpe/palmtopuidgen.h>
+#include <qpe/stringutil.h>
-#include <opie2/oevent.h>
+/* QT */
+#include <qshared.h>
+#include <qarray.h>
-namespace Opie {
+namespace Opie
+{
-int OCalendarHelper::week( const QDate& date) {
+int OCalendarHelper::week( const QDate& date )
+{
// Calculates the week this date is in within that
@@ -55,3 +59,6 @@ int OCalendarHelper::week( const QDate& date) {
}
-int OCalendarHelper::ocurrence( const QDate& date) {
+
+
+int OCalendarHelper::ocurrence( const QDate& date )
+{
// calculates the number of occurrances of this day of the
@@ -60,6 +67,10 @@ int OCalendarHelper::ocurrence( const QDate& date) {
}
-int OCalendarHelper::dayOfWeek( char day ) {
+
+
+int OCalendarHelper::dayOfWeek( char day )
+{
int dayOfWeek = 1;
char i = ORecur::MON;
- while ( !( i & day ) && i <= ORecur::SUN ) {
+ while ( !( i & day ) && i <= ORecur::SUN )
+ {
i <<= 1;
@@ -69,9 +80,15 @@ int OCalendarHelper::dayOfWeek( char day ) {
}
-int OCalendarHelper::monthDiff( const QDate& first, const QDate& second ) {
+
+
+int OCalendarHelper::monthDiff( const QDate& first, const QDate& second )
+{
return ( second.year() - first.year() ) * 12 +
- second.month() - first.month();
+ second.month() - first.month();
}
-struct OEvent::Data : public QShared {
- Data() : QShared() {
+
+struct OEvent::Data : public QShared
+{
+ Data() : QShared()
+ {
child = 0;
@@ -82,3 +99,4 @@ struct OEvent::Data : public QShared {
}
- ~Data() {
+ ~Data()
+ {
delete manager;
@@ -94,3 +112,3 @@ struct OEvent::Data : public QShared {
QDateTime end;
- bool isAllDay : 1;
+bool isAllDay : 1;
QString timezone;
@@ -100,8 +118,12 @@ struct OEvent::Data : public QShared {
+
OEvent::OEvent( int uid )
- : OPimRecord( uid ) {
+ : OPimRecord( uid )
+{
data = new Data;
}
-OEvent::OEvent( const OEvent& ev)
- : OPimRecord( ev ), data( ev.data )
+
+
+OEvent::OEvent( const OEvent& ev )
+ : OPimRecord( ev ), data( ev.data )
{
@@ -110,12 +132,16 @@ OEvent::OEvent( const OEvent& ev)
+
OEvent::OEvent( const QMap<int, QString> map )
- : OPimRecord( 0 )
+ : OPimRecord( 0 )
{
- data = new Data;
+ data = new Data;
- fromMap( map );
+ fromMap( map );
}
-OEvent::~OEvent() {
- if ( data->deref() ) {
+
+OEvent::~OEvent()
+{
+ if ( data->deref() )
+ {
delete data;
@@ -124,4 +150,7 @@ OEvent::~OEvent() {
}
-OEvent& OEvent::operator=( const OEvent& ev) {
- if ( this == &ev ) return *this;
+
+
+OEvent& OEvent::operator=( const OEvent& ev )
+{
+ if ( this == &ev ) return * this;
@@ -135,6 +164,12 @@ OEvent& OEvent::operator=( const OEvent& ev) {
}
-QString OEvent::description()const {
+
+
+QString OEvent::description() const
+{
return data->description;
}
-void OEvent::setDescription( const QString& description ) {
+
+
+void OEvent::setDescription( const QString& description )
+{
changeOrModify();
@@ -142,3 +177,6 @@ void OEvent::setDescription( const QString& description ) {
}
-void OEvent::setLocation( const QString& loc ) {
+
+
+void OEvent::setLocation( const QString& loc )
+{
changeOrModify();
@@ -146,6 +184,12 @@ void OEvent::setLocation( const QString& loc ) {
}
-QString OEvent::location()const {
+
+
+QString OEvent::location() const
+{
return data->location;
}
-OPimNotifyManager &OEvent::notifiers()const {
+
+
+OPimNotifyManager &OEvent::notifiers() const
+{
// I hope we can skip the changeOrModify here
@@ -153,3 +197,3 @@ OPimNotifyManager &OEvent::notifiers()const {
// and OPimNotify is shared too
- if (!data->manager )
+ if ( !data->manager )
data->manager = new OPimNotifyManager;
@@ -158,7 +202,10 @@ OPimNotifyManager &OEvent::notifiers()const {
}
-bool OEvent::hasNotifiers()const {
- if (!data->manager )
+
+
+bool OEvent::hasNotifiers() const
+{
+ if ( !data->manager )
return false;
- if (data->manager->reminders().isEmpty() &&
- data->manager->alarms().isEmpty() )
+ if ( data->manager->reminders().isEmpty() &&
+ data->manager->alarms().isEmpty() )
return false;
@@ -167,4 +214,7 @@ bool OEvent::hasNotifiers()const {
}
-ORecur OEvent::recurrence()const {
- if (!data->recur)
+
+
+ORecur OEvent::recurrence() const
+{
+ if ( !data->recur )
data->recur = new ORecur;
@@ -173,6 +223,9 @@ ORecur OEvent::recurrence()const {
}
-void OEvent::setRecurrence( const ORecur& rec) {
+
+
+void OEvent::setRecurrence( const ORecur& rec )
+{
changeOrModify();
- if (data->recur )
- (*data->recur) = rec;
+ if ( data->recur )
+ ( *data->recur ) = rec;
else
@@ -180,10 +233,19 @@ void OEvent::setRecurrence( const ORecur& rec) {
}
-bool OEvent::hasRecurrence()const {
- if (!data->recur ) return false;
+
+
+bool OEvent::hasRecurrence() const
+{
+ if ( !data->recur ) return false;
return data->recur->doesRecur();
}
-QString OEvent::note()const {
+
+
+QString OEvent::note() const
+{
return data->note;
}
-void OEvent::setNote( const QString& note ) {
+
+
+void OEvent::setNote( const QString& note )
+{
changeOrModify();
@@ -191,6 +253,12 @@ void OEvent::setNote( const QString& note ) {
}
-QDateTime OEvent::createdDateTime()const {
+
+
+QDateTime OEvent::createdDateTime() const
+{
return data->created;
}
-void OEvent::setCreatedDateTime( const QDateTime& time ) {
+
+
+void OEvent::setCreatedDateTime( const QDateTime& time )
+{
changeOrModify();
@@ -198,15 +266,24 @@ void OEvent::setCreatedDateTime( const QDateTime& time ) {
}
-QDateTime OEvent::startDateTime()const {
+
+
+QDateTime OEvent::startDateTime() const
+{
if ( data->isAllDay )
- return QDateTime( data->start.date(), QTime(0, 0, 0 ) );
+ return QDateTime( data->start.date(), QTime( 0, 0, 0 ) );
return data->start;
}
-QDateTime OEvent::startDateTimeInZone()const {
+
+
+QDateTime OEvent::startDateTimeInZone() const
+{
/* if no timezone, or all day event or if the current and this timeZone match... */
- if (data->timezone.isEmpty() || data->isAllDay || data->timezone == OTimeZone::current().timeZone() ) return startDateTime();
+ if ( data->timezone.isEmpty() || data->isAllDay || data->timezone == OTimeZone::current().timeZone() ) return startDateTime();
- OTimeZone zone(data->timezone );
+ OTimeZone zone( data->timezone );
return zone.toDateTime( data->start, OTimeZone::current() );
}
-void OEvent::setStartDateTime( const QDateTime& dt ) {
+
+
+void OEvent::setStartDateTime( const QDateTime& dt )
+{
changeOrModify();
@@ -214,3 +291,6 @@ void OEvent::setStartDateTime( const QDateTime& dt ) {
}
-QDateTime OEvent::endDateTime()const {
+
+
+QDateTime OEvent::endDateTime() const
+{
/*
@@ -220,28 +300,46 @@ QDateTime OEvent::endDateTime()const {
if ( data->isAllDay )
- return QDateTime( data->start.date(), QTime(23, 59, 59 ) );
+ return QDateTime( data->start.date(), QTime( 23, 59, 59 ) );
return data->end;
}
-QDateTime OEvent::endDateTimeInZone()const {
+
+
+QDateTime OEvent::endDateTimeInZone() const
+{
/* if no timezone, or all day event or if the current and this timeZone match... */
- if (data->timezone.isEmpty() || data->isAllDay || data->timezone == OTimeZone::current().timeZone() ) return endDateTime();
+ if ( data->timezone.isEmpty() || data->isAllDay || data->timezone == OTimeZone::current().timeZone() ) return endDateTime();
- OTimeZone zone(data->timezone );
+ OTimeZone zone( data->timezone );
return zone.toDateTime( data->end, OTimeZone::current() );
}
-void OEvent::setEndDateTime( const QDateTime& dt ) {
+
+
+void OEvent::setEndDateTime( const QDateTime& dt )
+{
changeOrModify();
- data->end = dt;
+ data->end = dt;
}
-bool OEvent::isMultipleDay()const {
+
+
+bool OEvent::isMultipleDay() const
+{
return data->end.date().day() - data->start.date().day();
}
-bool OEvent::isAllDay()const {
+
+
+bool OEvent::isAllDay() const
+{
return data->isAllDay;
}
-void OEvent::setAllDay( bool allDay ) {
+
+
+void OEvent::setAllDay( bool allDay )
+{
changeOrModify();
data->isAllDay = allDay;
- if (allDay ) data->timezone = "UTC";
+ if ( allDay ) data->timezone = "UTC";
}
-void OEvent::setTimeZone( const QString& tz ) {
+
+
+void OEvent::setTimeZone( const QString& tz )
+{
changeOrModify();
@@ -249,8 +347,15 @@ void OEvent::setTimeZone( const QString& tz ) {
}
-QString OEvent::timeZone()const {
- if (data->isAllDay ) return QString::fromLatin1("UTC");
+
+
+QString OEvent::timeZone() const
+{
+ if ( data->isAllDay ) return QString::fromLatin1( "UTC" );
return data->timezone;
}
-bool OEvent::match( const QRegExp& re )const {
- if ( re.match( data->description ) != -1 ){
+
+
+bool OEvent::match( const QRegExp& re ) const
+{
+ if ( re.match( data->description ) != -1 )
+ {
setLastHitField( Qtopia::DatebookDescription );
@@ -258,3 +363,4 @@ bool OEvent::match( const QRegExp& re )const {
}
- if ( re.match( data->note ) != -1 ){
+ if ( re.match( data->note ) != -1 )
+ {
setLastHitField( Qtopia::Note );
@@ -262,3 +368,4 @@ bool OEvent::match( const QRegExp& re )const {
}
- if ( re.match( data->location ) != -1 ){
+ if ( re.match( data->location ) != -1 )
+ {
setLastHitField( Qtopia::Location );
@@ -266,3 +373,4 @@ bool OEvent::match( const QRegExp& re )const {
}
- if ( re.match( data->start.toString() ) != -1 ){
+ if ( re.match( data->start.toString() ) != -1 )
+ {
setLastHitField( Qtopia::StartDateTime );
@@ -270,3 +378,4 @@ bool OEvent::match( const QRegExp& re )const {
}
- if ( re.match( data->end.toString() ) != -1 ){
+ if ( re.match( data->end.toString() ) != -1 )
+ {
setLastHitField( Qtopia::EndDateTime );
@@ -276,3 +385,6 @@ bool OEvent::match( const QRegExp& re )const {
}
-QString OEvent::toRichText()const {
+
+
+QString OEvent::toRichText() const
+{
QString text, value;
@@ -281,4 +393,5 @@ QString OEvent::toRichText()const {
text += "<b><h3><img src=\"datebook/DateBook\">";
- if ( !description().isEmpty() ) {
- text += Qtopia::escapeString(description() ).replace(QRegExp( "[\n]"), "" );
+ if ( !description().isEmpty() )
+ {
+ text += Qtopia::escapeString( description() ).replace( QRegExp( "[\n]" ), "" );
}
@@ -287,5 +400,6 @@ QString OEvent::toRichText()const {
// location
- if ( !(value = location()).isEmpty() ) {
+ if ( !( value = location() ).isEmpty() )
+ {
text += "<b>" + QObject::tr( "Location:" ) + "</b> ";
- text += Qtopia::escapeString(value) + "<br>";
+ text += Qtopia::escapeString( value ) + "<br>";
}
@@ -293,3 +407,4 @@ QString OEvent::toRichText()const {
// all day event
- if ( isAllDay() ) {
+ if ( isAllDay() )
+ {
text += "<b><i>" + QObject::tr( "This is an all day event" ) + "</i></b><br>";
@@ -297,3 +412,4 @@ QString OEvent::toRichText()const {
// multiple day event
- else if ( isMultipleDay () ) {
+ else if ( isMultipleDay () )
+ {
text += "<b><i>" + QObject::tr( "This is a multiple day event" ) + "</i></b><br>";
@@ -301,8 +417,10 @@ QString OEvent::toRichText()const {
// start & end times
- else {
+ else
+ {
// start time
- if ( startDateTime().isValid() ) {
- text += "<b>" + QObject::tr( "Start:") + "</b> ";
- text += Qtopia::escapeString(startDateTime().toString() ).
- replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
+ if ( startDateTime().isValid() )
+ {
+ text += "<b>" + QObject::tr( "Start:" ) + "</b> ";
+ text += Qtopia::escapeString( startDateTime().toString() ).
+ replace( QRegExp( "[\n]" ), "<br>" ) + "<br>";
}
@@ -310,6 +428,7 @@ QString OEvent::toRichText()const {
// end time
- if ( endDateTime().isValid() ) {
- text += "<b>" + QObject::tr( "End:") + "</b> ";
- text += Qtopia::escapeString(endDateTime().toString() ).
- replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
+ if ( endDateTime().isValid() )
+ {
+ text += "<b>" + QObject::tr( "End:" ) + "</b> ";
+ text += Qtopia::escapeString( endDateTime().toString() ).
+ replace( QRegExp( "[\n]" ), "<br>" ) + "<br>";
}
@@ -318,6 +437,7 @@ QString OEvent::toRichText()const {
// categories
- if ( categoryNames("Calendar").count() ){
- text += "<b>" + QObject::tr( "Category:") + "</b> ";
- text += categoryNames("Calendar").join(", ");
- text += "<br>";
+ if ( categoryNames( "Calendar" ).count() )
+ {
+ text += "<b>" + QObject::tr( "Category:" ) + "</b> ";
+ text += categoryNames( "Calendar" ).join( ", " );
+ text += "<br>";
}
@@ -325,7 +445,8 @@ QString OEvent::toRichText()const {
//notes
- if ( !note().isEmpty() ) {
- text += "<b>" + QObject::tr( "Note:") + "</b><br>";
+ if ( !note().isEmpty() )
+ {
+ text += "<b>" + QObject::tr( "Note:" ) + "</b><br>";
text += note();
-// text += Qtopia::escapeString(note() ).
-// replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
+ // text += Qtopia::escapeString(note() ).
+ // replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
}
@@ -333,3 +454,6 @@ QString OEvent::toRichText()const {
}
-QString OEvent::toShortText()const {
+
+
+QString OEvent::toShortText() const
+{
QString text;
@@ -348,19 +472,38 @@ QString OEvent::toShortText()const {
}
-QString OEvent::type()const {
- return QString::fromLatin1("OEvent");
+
+
+QString OEvent::type() const
+{
+ return QString::fromLatin1( "OEvent" );
}
-QString OEvent::recordField( int /*id */ )const {
+
+
+QString OEvent::recordField( int /*id */ ) const
+{
return QString::null;
}
-int OEvent::rtti() {
+
+
+int OEvent::rtti()
+{
return OPimResolver::DateBook;
}
-bool OEvent::loadFromStream( QDataStream& ) {
+
+
+bool OEvent::loadFromStream( QDataStream& )
+{
return true;
}
-bool OEvent::saveToStream( QDataStream& )const {
+
+
+bool OEvent::saveToStream( QDataStream& ) const
+{
return true;
}
-void OEvent::changeOrModify() {
- if ( data->count != 1 ) {
+
+
+void OEvent::changeOrModify()
+{
+ if ( data->count != 1 )
+ {
data->deref();
@@ -370,3 +513,3 @@ void OEvent::changeOrModify() {
- if (data->manager )
+ if ( data->manager )
d2->manager = new OPimNotifyManager( *data->manager );
@@ -384,3 +527,4 @@ void OEvent::changeOrModify() {
- if ( data->child ) {
+ if ( data->child )
+ {
d2->child = new QArray<int>( *data->child );
@@ -392,4 +536,8 @@ void OEvent::changeOrModify() {
}
-void OEvent::deref() {
- if ( data->deref() ) {
+
+
+void OEvent::deref()
+{
+ if ( data->deref() )
+ {
delete data;
@@ -403,3 +551,4 @@ void OEvent::deref() {
// Encoding should happen at one place, only ! (eilers)
-QMap<int, QString> OEvent::toMap()const {
+QMap<int, QString> OEvent::toMap() const
+{
QMap<int, QString> retMap;
@@ -407,3 +556,3 @@ QMap<int, QString> OEvent::toMap()const {
retMap.insert( OEvent::FUid, QString::number( uid() ) );
- retMap.insert( OEvent::FCategories, Qtopia::escapeString( Qtopia::Record::idsToString( categories() ) ));
+ retMap.insert( OEvent::FCategories, Qtopia::escapeString( Qtopia::Record::idsToString( categories() ) ) );
retMap.insert( OEvent::FDescription, Qtopia::escapeString( description() ) );
@@ -411,41 +560,46 @@ QMap<int, QString> OEvent::toMap()const {
retMap.insert( OEvent::FType, isAllDay() ? "AllDay" : "" );
- OPimAlarm alarm = notifiers().alarms()[0];
- retMap.insert( OEvent::FAlarm, QString::number( alarm.dateTime().secsTo( startDateTime() ) / 60 ) );
- retMap.insert( OEvent::FSound, (alarm.sound() == OPimAlarm::Loud) ? "loud" : "silent" );
+ OPimAlarm alarm = notifiers().alarms() [ 0 ];
+ retMap.insert( OEvent::FAlarm, QString::number( alarm.dateTime().secsTo( startDateTime() ) / 60 ) );
+ retMap.insert( OEvent::FSound, ( alarm.sound() == OPimAlarm::Loud ) ? "loud" : "silent" );
- OTimeZone zone( timeZone().isEmpty() ? OTimeZone::current() : timeZone() );
- retMap.insert( OEvent::FStart, QString::number( zone.fromUTCDateTime( zone.toDateTime( startDateTime(), OTimeZone::utc() ) ) ) );
- retMap.insert( OEvent::FEnd, QString::number( zone.fromUTCDateTime( zone.toDateTime( endDateTime(), OTimeZone::utc() ) ) ) );
+ OTimeZone zone( timeZone().isEmpty() ? OTimeZone::current() : timeZone() );
+ retMap.insert( OEvent::FStart, QString::number( zone.fromUTCDateTime( zone.toDateTime( startDateTime(), OTimeZone::utc() ) ) ) );
+ retMap.insert( OEvent::FEnd, QString::number( zone.fromUTCDateTime( zone.toDateTime( endDateTime(), OTimeZone::utc() ) ) ) );
retMap.insert( OEvent::FNote, Qtopia::escapeString( note() ) );
retMap.insert( OEvent::FTimeZone, timeZone().isEmpty() ? QString( "None" ) : timeZone() );
- if( parent() )
- retMap.insert( OEvent::FRecParent, QString::number( parent() ) );
- if( children().count() ){
- QArray<int> childr = children();
- QString buf;
- for ( uint i = 0; i < childr.count(); i++ ) {
- if ( i != 0 ) buf += " ";
- buf += QString::number( childr[i] );
- }
- retMap.insert( OEvent::FRecChildren, buf );
- }
-
+ if ( parent() )
+ retMap.insert( OEvent::FRecParent, QString::number( parent() ) );
+ if ( children().count() )
+ {
+ QArray<int> childr = children();
+ QString buf;
+ for ( uint i = 0; i < childr.count(); i++ )
+ {
+ if ( i != 0 ) buf += " ";
+ buf += QString::number( childr[ i ] );
+ }
+ retMap.insert( OEvent::FRecChildren, buf );
+ }
+
// Add recurrence stuff
- if( hasRecurrence() ){
- ORecur recur = recurrence();
- QMap<int, QString> recFields = recur.toMap();
- retMap.insert( OEvent::FRType, recFields[ORecur::RType] );
- retMap.insert( OEvent::FRWeekdays, recFields[ORecur::RWeekdays] );
- retMap.insert( OEvent::FRPosition, recFields[ORecur::RPosition] );
- retMap.insert( OEvent::FRFreq, recFields[ORecur::RFreq] );
- retMap.insert( OEvent::FRHasEndDate, recFields[ORecur::RHasEndDate] );
- retMap.insert( OEvent::FREndDate, recFields[ORecur::EndDate] );
- retMap.insert( OEvent::FRCreated, recFields[ORecur::Created] );
- retMap.insert( OEvent::FRExceptions, recFields[ORecur::Exceptions] );
- } else {
- ORecur recur = recurrence();
- QMap<int, QString> recFields = recur.toMap();
- retMap.insert( OEvent::FRType, recFields[ORecur::RType] );
- }
-
+ if ( hasRecurrence() )
+ {
+ ORecur recur = recurrence();
+ QMap<int, QString> recFields = recur.toMap();
+ retMap.insert( OEvent::FRType, recFields[ ORecur::RType ] );
+ retMap.insert( OEvent::FRWeekdays, recFields[ ORecur::RWeekdays ] );
+ retMap.insert( OEvent::FRPosition, recFields[ ORecur::RPosition ] );
+ retMap.insert( OEvent::FRFreq, recFields[ ORecur::RFreq ] );
+ retMap.insert( OEvent::FRHasEndDate, recFields[ ORecur::RHasEndDate ] );
+ retMap.insert( OEvent::FREndDate, recFields[ ORecur::EndDate ] );
+ retMap.insert( OEvent::FRCreated, recFields[ ORecur::Created ] );
+ retMap.insert( OEvent::FRExceptions, recFields[ ORecur::Exceptions ] );
+ }
+ else
+ {
+ ORecur recur = recurrence();
+ QMap<int, QString> recFields = recur.toMap();
+ retMap.insert( OEvent::FRType, recFields[ ORecur::RType ] );
+ }
+
return retMap;
@@ -453,2 +607,3 @@ QMap<int, QString> OEvent::toMap()const {
+
void OEvent::fromMap( const QMap<int, QString>& map )
@@ -456,82 +611,94 @@ void OEvent::fromMap( const QMap<int, QString>& map )
- // We just want to set the UID if it is really stored.
- if ( !map[OEvent::FUid].isEmpty() )
- setUid( map[OEvent::FUid].toInt() );
-
- setCategories( idsFromString( map[OEvent::FCategories] ) );
- setDescription( map[OEvent::FDescription] );
- setLocation( map[OEvent::FLocation] );
-
- if ( map[OEvent::FType] == "AllDay" )
- setAllDay( true );
- else
- setAllDay( false );
-
- int alarmTime = -1;
- if( !map[OEvent::FAlarm].isEmpty() )
- alarmTime = map[OEvent::FAlarm].toInt();
-
- int sound = ( ( map[OEvent::FSound] == "loud" ) ? OPimAlarm::Loud : OPimAlarm::Silent );
- if ( ( alarmTime != -1 ) ){
- QDateTime dt = startDateTime().addSecs( -1*alarmTime*60 );
- OPimAlarm al( sound , dt );
- notifiers().add( al );
- }
- if ( !map[OEvent::FTimeZone].isEmpty() && ( map[OEvent::FTimeZone] != "None" ) ){
- setTimeZone( map[OEvent::FTimeZone] );
- }
-
- time_t start = (time_t) map[OEvent::FStart].toLong();
- time_t end = (time_t) map[OEvent::FEnd].toLong();
-
- /* AllDay is always in UTC */
- if ( isAllDay() ) {
- OTimeZone utc = OTimeZone::utc();
- setStartDateTime( utc.fromUTCDateTime( start ) );
- setEndDateTime ( utc.fromUTCDateTime( end ) );
- setTimeZone( "UTC"); // make sure it is really utc
- }else {
- /* to current date time */
- // qWarning(" Start is %d", start );
- OTimeZone zone( timeZone().isEmpty() ? OTimeZone::current() : timeZone() );
- QDateTime date = zone.toDateTime( start );
- qWarning(" Start is %s", date.toString().latin1() );
- setStartDateTime( zone.toDateTime( date, OTimeZone::current() ) );
-
- date = zone.toDateTime( end );
- setEndDateTime ( zone.toDateTime( date, OTimeZone::current() ) );
- }
-
- if ( !map[OEvent::FRecParent].isEmpty() )
- setParent( map[OEvent::FRecParent].toInt() );
-
- if ( !map[OEvent::FRecChildren].isEmpty() ){
- QStringList list = QStringList::split(' ', map[OEvent::FRecChildren] );
- for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
- addChild( (*it).toInt() );
- }
- }
-
- // Fill recurrence stuff and put it directly into the ORecur-Object using fromMap..
- if( !map[OEvent::FRType].isEmpty() ){
- QMap<int, QString> recFields;
- recFields.insert( ORecur::RType, map[OEvent::FRType] );
- recFields.insert( ORecur::RWeekdays, map[OEvent::FRWeekdays] );
- recFields.insert( ORecur::RPosition, map[OEvent::FRPosition] );
- recFields.insert( ORecur::RFreq, map[OEvent::FRFreq] );
- recFields.insert( ORecur::RHasEndDate, map[OEvent::FRHasEndDate] );
- recFields.insert( ORecur::EndDate, map[OEvent::FREndDate] );
- recFields.insert( ORecur::Created, map[OEvent::FRCreated] );
- recFields.insert( ORecur::Exceptions, map[OEvent::FRExceptions] );
- ORecur recur( recFields );
- setRecurrence( recur );
- }
-
-}
-
-
-int OEvent::parent()const {
+ // We just want to set the UID if it is really stored.
+ if ( !map[ OEvent::FUid ].isEmpty() )
+ setUid( map[ OEvent::FUid ].toInt() );
+
+ setCategories( idsFromString( map[ OEvent::FCategories ] ) );
+ setDescription( map[ OEvent::FDescription ] );
+ setLocation( map[ OEvent::FLocation ] );
+
+ if ( map[ OEvent::FType ] == "AllDay" )
+ setAllDay( true );
+ else
+ setAllDay( false );
+
+ int alarmTime = -1;
+ if ( !map[ OEvent::FAlarm ].isEmpty() )
+ alarmTime = map[ OEvent::FAlarm ].toInt();
+
+ int sound = ( ( map[ OEvent::FSound ] == "loud" ) ? OPimAlarm::Loud : OPimAlarm::Silent );
+ if ( ( alarmTime != -1 ) )
+ {
+ QDateTime dt = startDateTime().addSecs( -1 * alarmTime * 60 );
+ OPimAlarm al( sound , dt );
+ notifiers().add( al );
+ }
+ if ( !map[ OEvent::FTimeZone ].isEmpty() && ( map[ OEvent::FTimeZone ] != "None" ) )
+ {
+ setTimeZone( map[ OEvent::FTimeZone ] );
+ }
+
+ time_t start = ( time_t ) map[ OEvent::FStart ].toLong();
+ time_t end = ( time_t ) map[ OEvent::FEnd ].toLong();
+
+ /* AllDay is always in UTC */
+ if ( isAllDay() )
+ {
+ OTimeZone utc = OTimeZone::utc();
+ setStartDateTime( utc.fromUTCDateTime( start ) );
+ setEndDateTime ( utc.fromUTCDateTime( end ) );
+ setTimeZone( "UTC" ); // make sure it is really utc
+ }
+ else
+ {
+ /* to current date time */
+ // qWarning(" Start is %d", start );
+ OTimeZone zone( timeZone().isEmpty() ? OTimeZone::current() : timeZone() );
+ QDateTime date = zone.toDateTime( start );
+ qWarning( " Start is %s", date.toString().latin1() );
+ setStartDateTime( zone.toDateTime( date, OTimeZone::current() ) );
+
+ date = zone.toDateTime( end );
+ setEndDateTime ( zone.toDateTime( date, OTimeZone::current() ) );
+ }
+
+ if ( !map[ OEvent::FRecParent ].isEmpty() )
+ setParent( map[ OEvent::FRecParent ].toInt() );
+
+ if ( !map[ OEvent::FRecChildren ].isEmpty() )
+ {
+ QStringList list = QStringList::split( ' ', map[ OEvent::FRecChildren ] );
+ for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it )
+ {
+ addChild( ( *it ).toInt() );
+ }
+ }
+
+ // Fill recurrence stuff and put it directly into the ORecur-Object using fromMap..
+ if ( !map[ OEvent::FRType ].isEmpty() )
+ {
+ QMap<int, QString> recFields;
+ recFields.insert( ORecur::RType, map[ OEvent::FRType ] );
+ recFields.insert( ORecur::RWeekdays, map[ OEvent::FRWeekdays ] );
+ recFields.insert( ORecur::RPosition, map[ OEvent::FRPosition ] );
+ recFields.insert( ORecur::RFreq, map[ OEvent::FRFreq ] );
+ recFields.insert( ORecur::RHasEndDate, map[ OEvent::FRHasEndDate ] );
+ recFields.insert( ORecur::EndDate, map[ OEvent::FREndDate ] );
+ recFields.insert( ORecur::Created, map[ OEvent::FRCreated ] );
+ recFields.insert( ORecur::Exceptions, map[ OEvent::FRExceptions ] );
+ ORecur recur( recFields );
+ setRecurrence( recur );
+ }
+
+}
+
+
+int OEvent::parent() const
+{
return data->parent;
}
-void OEvent::setParent( int uid ) {
+
+
+void OEvent::setParent( int uid )
+{
changeOrModify();
@@ -539,4 +706,7 @@ void OEvent::setParent( int uid ) {
}
-QArray<int> OEvent::children() const{
- if (!data->child) return QArray<int>();
+
+
+QArray<int> OEvent::children() const
+{
+ if ( !data->child ) return QArray<int>();
else
@@ -544,5 +714,8 @@ QArray<int> OEvent::children() const{
}
-void OEvent::setChildren( const QArray<int>& arr ) {
+
+
+void OEvent::setChildren( const QArray<int>& arr )
+{
changeOrModify();
- if (data->child) delete data->child;
+ if ( data->child ) delete data->child;
@@ -551,15 +724,24 @@ void OEvent::setChildren( const QArray<int>& arr ) {
}
-void OEvent::addChild( int uid ) {
+
+
+void OEvent::addChild( int uid )
+{
changeOrModify();
- if (!data->child ) {
- data->child = new QArray<int>(1);
- (*data->child)[0] = uid;
- }else{
+ if ( !data->child )
+ {
+ data->child = new QArray<int>( 1 );
+ ( *data->child ) [ 0 ] = uid;
+ }
+ else
+ {
int count = data->child->count();
data->child->resize( count + 1 );
- (*data->child)[count] = uid;
+ ( *data->child ) [ count ] = uid;
}
}
-void OEvent::removeChild( int uid ) {
- if (!data->child || !data->child->contains( uid ) ) return;
+
+
+void OEvent::removeChild( int uid )
+{
+ if ( !data->child || !data->child->contains( uid ) ) return ;
changeOrModify();
@@ -568,5 +750,7 @@ void OEvent::removeChild( int uid ) {
uint count = data->child->count();
- for ( uint i = 0; i < count; i++ ) {
- if ( (*data->child)[i] != uid ) {
- newAr[j] = (*data->child)[i];
+ for ( uint i = 0; i < count; i++ )
+ {
+ if ( ( *data->child ) [ i ] != uid )
+ {
+ newAr[ j ] = ( *data->child ) [ i ];
j++;
@@ -574,7 +758,10 @@ void OEvent::removeChild( int uid ) {
}
- (*data->child) = newAr;
+ ( *data->child ) = newAr;
}
-struct OEffectiveEvent::Data : public QShared {
- Data() : QShared() {
- }
+
+
+struct OEffectiveEvent::Data : public QShared
+{
+ Data() : QShared()
+ {}
OEvent event;
@@ -583,6 +770,8 @@ struct OEffectiveEvent::Data : public QShared {
QDate startDate, endDate;
- bool dates : 1;
+bool dates : 1;
};
-OEffectiveEvent::OEffectiveEvent() {
+
+OEffectiveEvent::OEffectiveEvent()
+{
data = new Data;
@@ -592,4 +781,7 @@ OEffectiveEvent::OEffectiveEvent() {
}
+
+
OEffectiveEvent::OEffectiveEvent( const OEvent& ev, const QDate& startDate,
- Position pos ) {
+ Position pos )
+{
data = new Data;
@@ -609,3 +801,6 @@ OEffectiveEvent::OEffectiveEvent( const OEvent& ev, const QDate& startDate,
}
-OEffectiveEvent::OEffectiveEvent( const OEffectiveEvent& ev) {
+
+
+OEffectiveEvent::OEffectiveEvent( const OEffectiveEvent& ev )
+{
data = ev.data;
@@ -613,4 +808,8 @@ OEffectiveEvent::OEffectiveEvent( const OEffectiveEvent& ev) {
}
-OEffectiveEvent::~OEffectiveEvent() {
- if ( data->deref() ) {
+
+
+OEffectiveEvent::~OEffectiveEvent()
+{
+ if ( data->deref() )
+ {
delete data;
@@ -619,4 +818,7 @@ OEffectiveEvent::~OEffectiveEvent() {
}
-OEffectiveEvent& OEffectiveEvent::operator=( const OEffectiveEvent& ev ) {
- if ( *this == ev ) return *this;
+
+
+OEffectiveEvent& OEffectiveEvent::operator=( const OEffectiveEvent& ev )
+{
+ if ( *this == ev ) return * this;
@@ -629,3 +831,5 @@ OEffectiveEvent& OEffectiveEvent::operator=( const OEffectiveEvent& ev ) {
-void OEffectiveEvent::setStartTime( const QTime& ti) {
+
+void OEffectiveEvent::setStartTime( const QTime& ti )
+{
changeOrModify();
@@ -633,3 +837,6 @@ void OEffectiveEvent::setStartTime( const QTime& ti) {
}
-void OEffectiveEvent::setEndTime( const QTime& en) {
+
+
+void OEffectiveEvent::setEndTime( const QTime& en )
+{
changeOrModify();
@@ -637,3 +844,6 @@ void OEffectiveEvent::setEndTime( const QTime& en) {
}
-void OEffectiveEvent::setEvent( const OEvent& ev) {
+
+
+void OEffectiveEvent::setEvent( const OEvent& ev )
+{
changeOrModify();
@@ -641,3 +851,6 @@ void OEffectiveEvent::setEvent( const OEvent& ev) {
}
-void OEffectiveEvent::setDate( const QDate& da) {
+
+
+void OEffectiveEvent::setDate( const QDate& da )
+{
changeOrModify();
@@ -645,7 +858,11 @@ void OEffectiveEvent::setDate( const QDate& da) {
}
+
+
void OEffectiveEvent::setEffectiveDates( const QDate& from,
- const QDate& to ) {
- if (!from.isValid() ) {
+ const QDate& to )
+{
+ if ( !from.isValid() )
+ {
data->dates = false;
- return;
+ return ;
}
@@ -655,36 +872,66 @@ void OEffectiveEvent::setEffectiveDates( const QDate& from,
}
-QString OEffectiveEvent::description()const {
+
+
+QString OEffectiveEvent::description() const
+{
return data->event.description();
}
-QString OEffectiveEvent::location()const {
+
+
+QString OEffectiveEvent::location() const
+{
return data->event.location();
}
-QString OEffectiveEvent::note()const {
+
+
+QString OEffectiveEvent::note() const
+{
return data->event.note();
}
-OEvent OEffectiveEvent::event()const {
+
+
+OEvent OEffectiveEvent::event() const
+{
return data->event;
}
-QTime OEffectiveEvent::startTime()const {
+
+
+QTime OEffectiveEvent::startTime() const
+{
return data->start;
}
-QTime OEffectiveEvent::endTime()const {
+
+
+QTime OEffectiveEvent::endTime() const
+{
return data->end;
}
-QDate OEffectiveEvent::date()const {
+
+
+QDate OEffectiveEvent::date() const
+{
return data->date;
}
-int OEffectiveEvent::length()const {
- return (data->end.hour() * 60 - data->start.hour() * 60)
- + QABS(data->start.minute() - data->end.minute() );
+
+
+int OEffectiveEvent::length() const
+{
+ return ( data->end.hour() * 60 - data->start.hour() * 60 )
+ + QABS( data->start.minute() - data->end.minute() );
}
-int OEffectiveEvent::size()const {
+
+
+int OEffectiveEvent::size() const
+{
return ( data->end.hour() - data->start.hour() ) * 3600
- + (data->end.minute() - data->start.minute() * 60
- + data->end.second() - data->start.second() );
+ + ( data->end.minute() - data->start.minute() * 60
+ + data->end.second() - data->start.second() );
}
-QDate OEffectiveEvent::startDate()const {
+
+
+QDate OEffectiveEvent::startDate() const
+{
if ( data->dates )
return data->startDate;
- else if ( data->event.hasRecurrence() ) // single day, since multi-day should have a d pointer
+ else if ( data->event.hasRecurrence() ) // single day, since multi-day should have a d pointer
return data->date;
@@ -693,3 +940,6 @@ QDate OEffectiveEvent::startDate()const {
}
-QDate OEffectiveEvent::endDate()const {
+
+
+QDate OEffectiveEvent::endDate() const
+{
if ( data->dates )
@@ -701,4 +951,8 @@ QDate OEffectiveEvent::endDate()const {
}
-void OEffectiveEvent::deref() {
- if ( data->deref() ) {
+
+
+void OEffectiveEvent::deref()
+{
+ if ( data->deref() )
+ {
delete data;
@@ -707,4 +961,8 @@ void OEffectiveEvent::deref() {
}
-void OEffectiveEvent::changeOrModify() {
- if ( data->count != 1 ) {
+
+
+void OEffectiveEvent::changeOrModify()
+{
+ if ( data->count != 1 )
+ {
data->deref();
@@ -721,27 +979,45 @@ void OEffectiveEvent::changeOrModify() {
}
-bool OEffectiveEvent::operator<( const OEffectiveEvent &e ) const{
+
+
+bool OEffectiveEvent::operator<( const OEffectiveEvent &e ) const
+{
if ( data->date < e.date() )
- return TRUE;
+ return TRUE;
if ( data->date == e.date() )
- return ( startTime() < e.startTime() );
+ return ( startTime() < e.startTime() );
else
- return FALSE;
+ return FALSE;
}
-bool OEffectiveEvent::operator<=( const OEffectiveEvent &e ) const{
- return (data->date <= e.date() );
+
+
+bool OEffectiveEvent::operator<=( const OEffectiveEvent &e ) const
+{
+ return ( data->date <= e.date() );
}
-bool OEffectiveEvent::operator==( const OEffectiveEvent &e ) const {
+
+
+bool OEffectiveEvent::operator==( const OEffectiveEvent &e ) const
+{
return ( date() == e.date()
- && startTime() == e.startTime()
- && endTime()== e.endTime()
- && event() == e.event() );
+ && startTime() == e.startTime()
+ && endTime() == e.endTime()
+ && event() == e.event() );
}
-bool OEffectiveEvent::operator!=( const OEffectiveEvent &e ) const {
- return !(*this == e );
+
+
+bool OEffectiveEvent::operator!=( const OEffectiveEvent &e ) const
+{
+ return !( *this == e );
}
-bool OEffectiveEvent::operator>( const OEffectiveEvent &e ) const {
- return !(*this <= e );
+
+
+bool OEffectiveEvent::operator>( const OEffectiveEvent &e ) const
+{
+ return !( *this <= e );
}
-bool OEffectiveEvent::operator>= ( const OEffectiveEvent &e ) const {
- return !(*this < e);
+
+
+bool OEffectiveEvent::operator>= ( const OEffectiveEvent &e ) const
+{
+ return !( *this < e );
}