-rw-r--r-- | libkcal/vcalformat.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/libkcal/vcalformat.cpp b/libkcal/vcalformat.cpp index 9307f12..0ebd7d1 100644 --- a/libkcal/vcalformat.cpp +++ b/libkcal/vcalformat.cpp @@ -30,4 +30,5 @@ #include <kdebug.h> +#include <kglobal.h> #include <kmessagebox.h> #include <kiconloader.h> @@ -47,4 +48,5 @@ VCalFormat::VCalFormat() { mCalendar = 0; + useLocalTime = false; } @@ -167,7 +169,10 @@ bool VCalFormat::fromString( Calendar *calendar, const QString &text ) } -QString VCalFormat::eventToString( Event * event, Calendar *calendar) +QString VCalFormat::eventToString( Event * event, Calendar *calendar, bool useLocal) { + if ( !event ) return QString::null; + bool useL = useLocalTime; + useLocalTime = useLocal; mCalendar = calendar; VObject *vevent = eventToVEvent( event ); @@ -175,9 +180,13 @@ QString VCalFormat::eventToString( Event * event, Calendar *calendar) QString result( buf ); cleanVObject( vevent ); + useLocalTime = useL; return result; } -QString VCalFormat::todoToString( Todo * todo, Calendar *calendar ) +QString VCalFormat::todoToString( Todo * todo, Calendar *calendar, bool useLocal ) { + if ( !todo ) return QString::null; + bool useL = useLocalTime; + useLocalTime = useLocal; mCalendar = calendar; VObject *vevent = eventToVTodo( todo ); @@ -185,4 +194,5 @@ QString VCalFormat::todoToString( Todo * todo, Calendar *calendar ) QString result( buf ); cleanVObject( vevent ); + useLocalTime = useL; return result; } @@ -1435,7 +1445,6 @@ QString VCalFormat::qDateTimeToISO(const QDateTime &qdt, bool zulu) ASSERT(qdt.date().isValid()); ASSERT(qdt.time().isValid()); - if (zulu) { - QDateTime tmpDT(qdt); - tmpDT = tmpDT.addSecs(60*(-mCalendar->getTimeZone())); // correct to GMT. + if (zulu && !useLocalTime ) { + QDateTime tmpDT = qdt.addSecs ( -KGlobal::locale()->localTimeOffset( qdt )*60); tmpStr.sprintf("%.2d%.2d%.2dT%.2d%.2d%.2dZ", tmpDT.date().year(), tmpDT.date().month(), |