QDateTime GWConverter::charToQDateTime( const char *str, const QString &timezone ) { if ( !str ) return QDateTime(); QDateTime utc = charToQDateTime( str ); return KPimPrefs::utcToLocalTime( utc, timezone ); }
bool IncidenceConverter::convertFromCalendarItem(ngwt__CalendarItem *item, KCal::Incidence *incidence) { incidence->setCustomProperty("GWRESOURCE", "UID", stringToQString(item->id)); if(item->subject && !item->subject->empty()) incidence->setSummary(stringToQString(item->subject)); kdDebug() << "SUMMARY: " << incidence->summary() << endl; if(item->created) { kdDebug() << "item created at " << item->created << endl; incidence->setCreated(charToQDateTime(item->created, mTimezone)); } if(item->modified != 0) { kdDebug() << "item modified at " << item->created << endl; incidence->setLastModified(charToQDateTime(item->modified, mTimezone)); } getItemDescription(item, incidence); getAttendees(item, incidence); if(item->recurrenceKey) incidence->setCustomProperty("GWRESOURCE", "RECURRENCEKEY", QString::number(*item->recurrenceKey)); /* // This must just be a very early cut at recurrence if ( item->rdate && item->rdate->date ) { std::vector<xsd__date>* dateList = item->rdate->date; std::vector<xsd__date>::const_iterator it; for ( it = dateList->begin(); it != dateList->end(); ++it ) { QDate date = QDate::fromString( s2q( *it ), Qt::ISODate ); if ( date.isValid() ) } } */ /* bool* isRecurring 0; std::string* iCalId 0; */ return true; }
KCal::Event *IncidenceConverter::convertFromAppointment(ngwt__Appointment *appointment) { kdDebug() << "IncidenceConverter::convertFromAppointment()" << endl; if(!appointment) return 0; KCal::Event *event = new KCal::Event(); if(!convertFromCalendarItem(appointment, event)) { delete event; return 0; } if(appointment->allDayEvent && (*appointment->allDayEvent)) { event->setFloats(true); if(appointment->startDay != 0) event->setDtStart(stringToQDate(appointment->startDay).addDays(1)); if(appointment->endDay != 0) event->setDtEnd(stringToQDate(appointment->endDay)); kdDebug() << " all day event." << endl; } else { event->setFloats(false); if(appointment->startDate != 0) { event->setDtStart(charToQDateTime(appointment->startDate, mTimezone)); } if(appointment->endDate != 0) event->setDtEnd(charToQDateTime(appointment->endDate, mTimezone)); } kdDebug() << "start date: " << event->dtStart() << endl; kdDebug() << "end date: " << event->dtEnd() << endl; if(appointment->alarm) { KCal::Alarm *alarm = event->newAlarm(); alarm->setStartOffset(appointment->alarm->__item * -1); alarm->setEnabled(appointment->alarm->enabled); } if(appointment->place) event->setLocation(stringToQString(appointment->place)); if(appointment->acceptLevel) { if(*appointment->acceptLevel == Tentative) event->setTransparency(KCal::Event::Transparent); else event->setTransparency(KCal::Event::Opaque); } return event; }