Exemplo n.º 1
0
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);
    }
}
Exemplo n.º 3
0
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);
        }
    }