void OrganizerItemTypeTransform::transformToDetailL(const CCalInstance& instance, QOrganizerItem *itemOccurrence) { QString itemType; CCalEntry &entry = instance.Entry(); TCalRRule rrule; bool isRecurring = entry.GetRRuleL(rrule); bool isExceptional = entry.RecurrenceIdL().TimeUtcL() != Time::NullTTime(); CCalEntry::TType entryType = entry.EntryTypeL(); if (entryType == CCalEntry::ETodo) { if (isRecurring || isExceptional) itemType = QLatin1String(QOrganizerItemType::TypeTodoOccurrence); else itemType = QLatin1String(QOrganizerItemType::TypeTodo); } else if (entryType == CCalEntry::EEvent || entryType == CCalEntry::EAppt || entryType == CCalEntry::EAnniv) { if (isRecurring || isExceptional) itemType = QLatin1String(QOrganizerItemType::TypeEventOccurrence); else itemType = QLatin1String(QOrganizerItemType::TypeEvent); } else User::Leave(KErrUnknown); // unknown type itemOccurrence->setType(itemType); }
void OrganizerTodoTimeTransform::transformToDetailL(const CCalInstance& instance, QOrganizerItem *itemOccurrence) { if (itemOccurrence->type() == QOrganizerItemType::TypeTodo || itemOccurrence->type() == QOrganizerItemType::TypeTodoOccurrence) { TCalTime startTime = instance.StartTimeL(); TCalTime endTime = instance.EndTimeL(); QOrganizerTodoTime range; if (startTime.TimeUtcL() != Time::NullTTime()) range.setStartDateTime(toQDateTimeL(startTime)); if (endTime.TimeUtcL() != Time::NullTTime()) range.setDueDateTime(toQDateTimeL(endTime)); if (!range.isEmpty()) itemOccurrence->saveDetail(&range); } }
// Helper method // Extract all instances given by Guids in iCurrentTestData void CDummyCalendarApp::ExtractInstancesL() { TCalTime startDate; startDate.SetTimeLocalL(iCurrentTestData->iStartDate); TCalTime endDate; endDate.SetTimeLocalL(iCurrentTestData->iEndDate); CalCommon::TCalTimeRange timeRange(startDate, endDate); RPointerArray<CCalInstance> instanceArray; if (iCurrentTestData->iSearchString) { CCalInstanceView::TCalSearchParams searchParams(*iCurrentTestData->iSearchString, iCurrentTestData->iSearchBehaviour); iInstanceView->FindInstanceL(instanceArray, (CalCommon::TCalViewFilter)iCurrentTestData->iFilter, timeRange, searchParams); } else { iInstanceView->FindInstanceL(instanceArray, (CalCommon::TCalViewFilter)iCurrentTestData->iFilter, timeRange); } TBuf<26> startBuf; TBuf<26> endBuf; startDate.TimeLocalL().FormatL(startBuf,KFormatDate()); endDate.TimeLocalL().FormatL(endBuf,KFormatDate()); test.Printf(_L("Checking instances between %S and %S\n"), &startBuf, &endBuf); if (instanceArray.Count() == 0) { test.Printf(_L("No instances found\n")); } else { TInt instanceCount = 0; TTime instTime; TBuf<26> instBuf; while (instanceCount < instanceArray.Count()) { CCalInstance* inst = instanceArray[instanceCount]; CleanupStack::PushL(inst); instTime = inst->Time().TimeLocalL(); instTime.FormatL(instBuf,KFormatDate()); TBuf<62> rptType; TCalRRule rptDef; if (!inst->Entry().GetRRuleL(rptDef)) { rptType.Copy(_L("One off")); } else { switch (rptDef.Type()) { case TCalRRule::EDaily: rptType.Format(_L("Daily every %d days"), rptDef.Interval()); break; case TCalRRule::EWeekly: rptType.Format(_L("Weekly every %d weeks"), rptDef.Interval()); break; case TCalRRule::EMonthly: rptType.Format(_L("MonthlyByDates every %d months"), rptDef.Interval()); break; case TCalRRule::EYearly: rptType.Format(_L("YearlyByDate every %d years"), rptDef.Interval()); break; default: ASSERT(0); break; } } test.Printf(_L("One instance is on %S, %d:%d - %S"), &instBuf, instTime.DateTime().Hour(), instTime.DateTime().Minute(), &rptType); if (iCurrentTestData->iTimes.Find(instTime) == KErrNotFound) { test.Printf(_L("THIS ENTRY WAS NOT EXPECTED\n")); test(0); } instanceCount++; CleanupStack::Pop(inst); } if (iCurrentTestData->iFunction) ASSERT(iCurrentTestData->iFunction->CallBack() == 0); } if (instanceArray.Count() != iCurrentTestData->iTimes.Count()) { test.Printf(_L("Some expected entries were not found!\n")); test(0); } instanceArray.ResetAndDestroy(); }
/** Checks the start, end and time of an instance @param aFetchInstanceArray Array of instances @param aIndex Used to retrieve the correct instance from array @test */ void CTestCalInterimApiTZChange::CheckInstancesTimesL(RPointerArray<CCalInstance>& aFetchInstanceArray, TInt aIndex) { TDateTime startTime; TDateTime endTime; CCalInstance* instance = NULL; GetInstanceDataFromIniFileL(aIndex); if (iIsFloating) { instance = aFetchInstanceArray[aIndex]; startTime = instance->StartTimeL().TimeLocalL().DateTime(); INFO_PRINTF7(_L("Instance Start Date Year: %d, Month: %d, Day: %d, Instance Start Time Hr: %d, Min: %d, Sec: %d "), startTime.Year(), startTime.Month(), startTime.Day(), startTime.Hour(), startTime.Minute(), startTime.Second()); TESTL(instance->StartTimeL().TimeLocalL() == instance->Time().TimeLocalL()); INFO_PRINTF1(_L("Start and Time of instance match")); TESTL(FormatDateTime(iPtrExpectedInstanceStart) == instance->StartTimeL().TimeLocalL()); endTime = instance->EndTimeL().TimeLocalL().DateTime(); INFO_PRINTF7(_L("Instance End Date Year: %d, Month: %d, Day: %d, Instance Start Time Hr: %d, Min: %d, Sec: %d "), endTime.Year(), endTime.Month(), endTime.Day(), endTime.Hour(), endTime.Minute(), endTime.Second()); TESTL(FormatDateTime(iPtrExpectedInstanceEnd) == instance->EndTimeL().TimeLocalL()); TESTL(instance->StartTimeL().TimeMode() == TCalTime::EFloating); // defect stored as fixedutc TESTL(instance->Time().TimeMode() == TCalTime::EFloating); TESTL(instance->EndTimeL().TimeMode() == TCalTime::EFloating); } else { instance = aFetchInstanceArray[aIndex]; startTime = instance->StartTimeL().TimeUtcL().DateTime(); INFO_PRINTF7(_L("Instance Start Date Year: %d, Month: %d, Day: %d, Instance Start Time Hr: %d, Min: %d, Sec: %d "), startTime.Year(), startTime.Month(), startTime.Day(), startTime.Hour(), startTime.Minute(), startTime.Second()); TESTL(instance->StartTimeL().TimeUtcL() == instance->Time().TimeUtcL()); INFO_PRINTF1(_L("Start and Time of instance match")); TESTL(FormatDateTime(iPtrExpectedInstanceStart) == instance->StartTimeL().TimeUtcL()); endTime = instance->EndTimeL().TimeUtcL().DateTime(); INFO_PRINTF7(_L("Instance End Date Year: %d, Month: %d, Day: %d, Instance Start Time Hr: %d, Min: %d, Sec: %d "), endTime.Year(), endTime.Month(), endTime.Day(), endTime.Hour(), endTime.Minute(), endTime.Second()); TESTL(FormatDateTime(iPtrExpectedInstanceEnd) == instance->EndTimeL().TimeUtcL()); TESTL(instance->StartTimeL().TimeMode() == TCalTime::EFixedUtc); TESTL(instance->Time().TimeMode() == TCalTime::EFixedUtc); TESTL(instance->EndTimeL().TimeMode() == TCalTime::EFixedUtc); } }