void OrganizerItemTimeStampTransform::transformToDetailL(const CCalEntry& entry, QOrganizerItem *item) { QOrganizerItemTimestamp timeStamp = item->detail<QOrganizerItemTimestamp>(); timeStamp.setCreated(toQDateTimeL(entry.DTStampL())); timeStamp.setLastModified(toQDateTimeL(entry.LastModifiedDateL())); item->saveDetail(&timeStamp); }
void OrganizerItemTransform::addTodoPostSaveDetails(QOrganizerItem *item, CTodo *ctodo) { // Priority int tempint = ctodo->getPriority(); if (tempint != -1) { QOrganizerItemPriority priority = item->detail<QOrganizerItemPriority>(); priority.setPriority(static_cast<QOrganizerItemPriority::Priority>(tempint)); // assume that the saved priority is vCal compliant. item->saveDetail(&priority); } // Date start QDateTime tempdt = QDateTime::fromTime_t(ctodo->getDateStart()); if (!tempdt.isNull()) { QOrganizerTodoTime todoTime = item->detail<QOrganizerTodoTime>(); todoTime.setStartDateTime(tempdt); item->saveDetail(&todoTime); } // Due tempdt = QDateTime::fromTime_t(ctodo->getDue()); if (!tempdt.isNull()) { QOrganizerTodoTime todoTime = item->detail<QOrganizerTodoTime>(); todoTime.setDueDateTime(tempdt); item->saveDetail(&todoTime); } // Completed time tempdt = QDateTime::fromTime_t(ctodo->getCompleted()); if (!tempdt.isNull()) { QOrganizerTodoProgress todoProgress = item->detail<QOrganizerTodoProgress>(); todoProgress.setFinishedDateTime(tempdt); item->saveDetail(&todoProgress); } // Percent complete tempint = ctodo->getPercentComplete(); if (!tempdt.isNull()) { QOrganizerTodoProgress todoProgress = item->detail<QOrganizerTodoProgress>(); todoProgress.setPercentageComplete(tempint); item->saveDetail(&todoProgress); } // Status QOrganizerTodoProgress todoProgress = item->detail<QOrganizerTodoProgress>(); todoProgress.setStatus(static_cast<QOrganizerTodoProgress::Status>(ctodo->getStatus())); item->saveDetail(&todoProgress); // Timestamps time_t createdTime = ctodo->getCreatedTime(); time_t lastModifiedTime = ctodo->getLastModified(); if (createdTime || lastModifiedTime) { QOrganizerItemTimestamp timeStamps = item->detail<QOrganizerItemTimestamp>(); timeStamps.setCreated(QDateTime::fromTime_t(createdTime)); timeStamps.setLastModified(QDateTime::fromTime_t(lastModifiedTime)); item->saveDetail(&timeStamps); } }
void OrganizerItemTimeStampTransform::transformToEntryL(const QOrganizerItem& item, CCalEntry* entry) { QOrganizerItemTimestamp timeStamp = item.detail<QOrganizerItemTimestamp>(); if (!timeStamp.created().isNull() && timeStamp.created().isValid()) { // This is an old entry. entry->SetDTStampL(toTCalTimeL(timeStamp.created())); } else { // This is new entry. Generate creation time. TCalTime dtstamp; TTime currentUtcTime; currentUtcTime.UniversalTime(); dtstamp.SetTimeUtcL(currentUtcTime); entry->SetDTStampL(dtstamp); } // NOTE: modified timestamp is automatically set by symbian calendar server }
void OrganizerItemTransform::addEventPostSaveDetails(QOrganizerItem *item, CEvent *cevent) { // Priority int tempint = cevent->getPriority(); if (tempint != -1) { QOrganizerItemPriority priority = item->detail<QOrganizerItemPriority>(); priority.setPriority(static_cast<QOrganizerItemPriority::Priority>(tempint)); // assume that the saved priority is vCal compliant. item->saveDetail(&priority); } // Start time QDateTime tempdt = QDateTime::fromTime_t(cevent->getDateStart()); if (!tempdt.isNull()) { QOrganizerEventTime eventTime = item->detail<QOrganizerEventTime>(); eventTime.setStartDateTime(tempdt); item->saveDetail(&eventTime); } // End time tempdt = QDateTime::fromTime_t(cevent->getDateEnd()); if (!tempdt.isNull()) { QOrganizerEventTime eventTime = item->detail<QOrganizerEventTime>(); eventTime.setEndDateTime(tempdt); item->saveDetail(&eventTime); } // Recurrence m_recTransformer.transformToQrecurrence(cevent->getRecurrence()); QOrganizerItemRecurrence recurrence = item->detail<QOrganizerItemRecurrence>(); recurrence.setRecurrenceRules(m_recTransformer.recurrenceRules()); recurrence.setExceptionRules(m_recTransformer.exceptionRules()); recurrence.setRecurrenceDates(m_recTransformer.recurrenceDates()); recurrence.setExceptionDates(m_recTransformer.exceptionDates()); item->saveDetail(&recurrence); // Timestamps time_t createdTime = cevent->getCreatedTime(); time_t lastModifiedTime = cevent->getLastModified(); if (createdTime || lastModifiedTime) { QOrganizerItemTimestamp timeStamps = item->detail<QOrganizerItemTimestamp>(); timeStamps.setCreated(QDateTime::fromTime_t(createdTime)); timeStamps.setLastModified(QDateTime::fromTime_t(lastModifiedTime)); item->saveDetail(&timeStamps); } }
void OrganizerItemTransform::addJournalPostSaveDetails(QOrganizerItem *item, CJournal *cjournal) { // Journal time QDateTime tempdt = QDateTime::fromTime_t(cjournal->getDateStart()); if (!tempdt.isNull()) { QOrganizerJournalTime journalTime = item->detail<QOrganizerJournalTime>(); journalTime.setEntryDateTime(tempdt); item->saveDetail(&journalTime); } // Timestamps time_t createdTime = cjournal->getCreatedTime(); time_t lastModifiedTime = cjournal->getLastModified(); if (createdTime || lastModifiedTime) { QOrganizerItemTimestamp timeStamps = item->detail<QOrganizerItemTimestamp>(); timeStamps.setCreated(QDateTime::fromTime_t(createdTime)); timeStamps.setLastModified(QDateTime::fromTime_t(lastModifiedTime)); item->saveDetail(&timeStamps); } }
void OrganizerItemTransform::fillInCommonCComponentDetails(QOrganizerItem *item, CComponent *component, bool setId) { if (item) { // Summary QString tempstr = QString::fromStdString(component->getSummary()); if (!tempstr.isEmpty()) item->setDisplayLabel(tempstr); // Description tempstr = QString::fromStdString(component->getDescription()); if (!tempstr.isEmpty()) item->setDescription(tempstr); // Location tempstr = QString::fromStdString(component->getLocation()); if(!tempstr.isEmpty()) { QOrganizerItemLocation il = item->detail<QOrganizerItemLocation>(); il.setLabel(tempstr); item->saveDetail(&il); } // Timestamps time_t createdTime = component->getCreatedTime(); time_t lastModifiedTime = component->getLastModified(); if (createdTime || lastModifiedTime) { QOrganizerItemTimestamp timeStamps = item->detail<QOrganizerItemTimestamp>(); timeStamps.setCreated(QDateTime::fromTime_t(createdTime)); timeStamps.setLastModified(QDateTime::fromTime_t(lastModifiedTime)); item->saveDetail(&timeStamps); } // GUid QOrganizerItemGuid ig = item->detail<QOrganizerItemGuid>(); tempstr = QString::fromStdString(component->getGUid()); if(!tempstr.isEmpty()) ig.setGuid(tempstr); item->saveDetail(&ig); // Set component ID if (setId) { QString idString = QString::fromStdString(component->getId()); item->setId(QOrganizerItemId(new QOrganizerItemMaemo5EngineId(idString.toUInt()))); } else { item->setId(QOrganizerItemId()); } // Set comments CComponentDetails *componentDetails = dynamic_cast<CComponentDetails*>(component); if (componentDetails) { string comments = componentDetails->getComments(); if (!comments.empty()) { QStringList commentList = QString::fromStdString(comments).split('\n', QString::SkipEmptyParts); foreach(const QString comment, commentList) item->addComment(comment); } } // Reminder (alarm) CAlarm *alarm = component->getAlarm(); if (alarm) { // TODO: Only visual remainders are supported QOrganizerItemVisualReminder reminder = item->detail<QOrganizerItemVisualReminder>(); reminder.setRepetition(alarm->getRepeat(), reminder.repetitionDelay()); // Alarm time and messages can't be read with CAlarm, // read them straight from the alarm framework: // Get the cookie std::vector<long> cookies = alarm->getCookie(); if (cookies.size() > 0) { cookie_t cookie = static_cast<cookie_t>(cookies[0]); // only one alarm supported alarm_event_t *eve = 0; if ((eve = alarmd_event_get(cookie)) != 0) { QString message = QString::fromStdString(alarm_event_get_title(eve)); reminder.setMessage(message); time_t alarmTime = alarm_event_get_trigger(eve); alarm_event_delete(eve); QDateTime sTime = QDateTime::fromTime_t(component->getDateStart()); QDateTime aTime = QDateTime::fromTime_t(alarmTime); reminder.setSecondsBeforeStart(aTime.secsTo(sTime)); } } item->saveDetail(&reminder); } }