author | zecke <zecke> | 2003-02-21 11:35:52 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-02-21 11:35:52 (UTC) |
commit | 6917879c47d406b6f4ee234f84b89e17265dd0a5 (patch) (side-by-side diff) | |
tree | 8d30ebd64d302cf3e7237154dff7939f2f2aa425 | |
parent | 2d77abb5ff37abf61e04657431d7e0e1f5138d94 (diff) | |
download | opie-6917879c47d406b6f4ee234f84b89e17265dd0a5.zip opie-6917879c47d406b6f4ee234f84b89e17265dd0a5.tar.gz opie-6917879c47d406b6f4ee234f84b89e17265dd0a5.tar.bz2 |
make allday events all bit less fscked up...
Basicly an AllDay Event should be pinned to a day
but Qtopia suffers from a problem when changing
timezones an AllDay event can span two days...
This patch make it at least not span two days..
-rw-r--r-- | library/backend/event.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/library/backend/event.cpp b/library/backend/event.cpp index 0003fe9..d906f19 100644 --- a/library/backend/event.cpp +++ b/library/backend/event.cpp @@ -489,264 +489,261 @@ void Event::setType( Type t ) } /*! Sets the start date and time of the first or only occurance of this event to the date and time \a d. \a d should be in local time. */ void Event::setStart( const QDateTime &d ) { startUTC = TimeConversion::toUTC( d ); } /*! \internal */ void Event::setStart( time_t time ) { startUTC = time; } /*! Sets the end date and time of the first or only occurance of this event to the date and time \a d. \a d should be in local time. */ void Event::setEnd( const QDateTime &d ) { endUTC = TimeConversion::toUTC( d ); } /*! \internal */ void Event::setEnd( time_t time ) { endUTC = time; } /*! \internal */ void Event::setTimeZone( const QString &z ) { tz = z; } /*! \internal */ void Event::setAlarm( bool b, int minutes, SoundTypeChoice s ) { hAlarm = b; aMinutes = minutes; aSound = s; } /*! \internal */ void Event::setRepeat( bool b, const RepeatPattern &p ) { hRepeat = b; pattern = p; } /*! Sets the notes for the event to \a n. */ void Event::setNotes( const QString &n ) { note = n; } /*! Returns the description of the event. */ const QString &Event::description() const { return descript; } /*! Returns the location of the event. */ const QString &Event::location() const { return locat; } // QString Event::category() const // { // return categ; // } /*! \internal */ Event::Type Event::type() const { return typ; } /* QDateTime Event::start() const { return start( TRUE ); } */ /*! \internal */ QDateTime Event::start( bool actual ) const { QDateTime dt = TimeConversion::fromUTC( startUTC ); if ( actual && typ == AllDay ) { QTime t = dt.time(); t.setHMS( 0, 0, 0 ); dt.setTime( t ); } return dt; } /* QDateTime Event::end() const { return end( TRUE ); } */ /*! \internal */ QDateTime Event::end( bool actual ) const { - QDateTime dt = TimeConversion::fromUTC( endUTC ); - + /* small work around... */ if ( actual && typ == AllDay ) { - QTime t = dt.time(); - t.setHMS( 23, 59, 59 ); - dt.setTime( t ); + return QDateTime( TimeConversion::fromUTC( startUTC ).date(), QTime(23, 59, 59 ) ); } - return dt; + return TimeConversion::fromUTC( endUTC ); } /*! \internal */ const QString &Event::timeZone() const { return tz; } /*! \internal */ bool Event::hasAlarm() const { return hAlarm; } /*! \internal */ int Event::alarmTime() const { return aMinutes; } /*! Returns the sound type for the alarm of this event. */ Event::SoundTypeChoice Event::alarmSound() const { return aSound; } /*! \internal */ bool Event::hasRepeat() const { return doRepeat(); } /*! \internal */ const Event::RepeatPattern &Event::repeatPattern() const { return pattern; } /*! \internal */ Event::RepeatPattern &Event::repeatPattern() { return pattern; } /*! Returns the notes for the event. */ const QString &Event::notes() const { return note; } /*! \internal */ bool Event::operator==( const Event &e ) const { if ( uid() && e.uid() == uid() ) return TRUE; return ( e.descript == descript && e.locat == locat && e.categ == categ && e.typ == typ && e.startUTC == startUTC && e.endUTC == endUTC && e.tz == tz && e.hAlarm == hAlarm && e.aMinutes == aMinutes && e.aSound == aSound && e.hRepeat == hRepeat && e.pattern == pattern && e.note == note ); } /*! \internal Appends the contact information to \a buf. */ void Event::save( QString& buf ) { buf += " description=\"" + Qtopia::escapeString(descript) + "\""; if ( !locat.isEmpty() ) buf += " location=\"" + Qtopia::escapeString(locat) + "\""; // save the categoies differently.... QString strCats = idsToString( categories() ); buf += " categories=\"" + Qtopia::escapeString(strCats) + "\""; buf += " uid=\"" + QString::number( uid() ) + "\""; if ( (Type)typ != Normal ) buf += " type=\"AllDay\""; if ( hAlarm ) { buf += " alarm=\"" + QString::number( aMinutes ) + "\" sound=\""; if ( aSound == Event::Loud ) buf += "loud"; else buf += "silent"; buf += "\""; } if ( hRepeat ) write( buf, pattern ); buf += " start=\"" + QString::number( startUTC ) + "\""; buf += " end=\"" + QString::number( endUTC ) + "\""; if ( !note.isEmpty() ) buf += " note=\"" + Qtopia::escapeString( note ) + "\""; buf += customToXml(); } /*! |