KCal::Event* ICalReport::generateEvent(Task* task, ResourceList& resourceList) { KCal::Event *event = new KCal::Event(); QDateTime dt; /* Start-Time of the task */ dt.setTime_t(task->getStart(scenarios[0]), Qt::UTC); event->setDtStart(dt); /* Due-Time of the event -> plan End */ dt.setTime_t(task->getEnd(scenarios[0]) + 1, Qt::UTC); event->setHasEndDate(true); event->setDtEnd(dt); // Make sure that the time is not ignored. event->setFloats(false); /* Description and summary -> project ID */ event->setDescription(task->getNote()); event->setSummary(task->getName()); /* ICal defines priorities between 1..9 where 1 is the highest. TaskJuggler * uses Priority 1 - 1000, 1000 being the highest. So we have to map the * priorities. */ event->setPriority(1 + ((1000 - task->getPriority()) / 100)); /* Resources */ ResourceListIterator rli = task->getBookedResourcesIterator(scenarios[0]); for (; *rli != 0; ++rli) // We only include resources that have not been filtered out. if (resourceList.find(*rli)) event->addAttendee(new KCal::Attendee ((*rli)->getName(), "", false, KCal::Attendee::NeedsAction, KCal::Attendee::ReqParticipant, (*rli)->getId())); return event; }