# HG changeset patch # User hgs # Date 1283258713 -19800 # Node ID 1881ad52dc454a7ed097a5ae975a7f9ee029f502 # Parent a3cb48f6c8894f7c82a0823af84d2653423dba08 201033_03 diff -r a3cb48f6c889 -r 1881ad52dc45 agendainterface/agendautil/bwins/agendainterfaceu.def --- a/agendainterface/agendautil/bwins/agendainterfaceu.def Wed Aug 25 14:02:13 2010 +0530 +++ b/agendainterface/agendautil/bwins/agendainterfaceu.def Tue Aug 31 18:15:13 2010 +0530 @@ -57,124 +57,124 @@ ?lastModifiedDateTime@AgendaEntry@@QBE?AVQDateTime@@XZ @ 56 NONAME ; class QDateTime AgendaEntry::lastModifiedDateTime(void) const ?attendees@AgendaEntry@@QBEABV?$QList@VAgendaAttendee@@@@XZ @ 57 NONAME ; class QList const & AgendaEntry::attendees(void) const ?setInterval@AgendaRepeatRule@@QAEXH@Z @ 58 NONAME ; void AgendaRepeatRule::setInterval(int) - ?store@AgendaUtil@@QAEKAAVAgendaEntry@@W4RecurrenceRange@1@@Z @ 59 NONAME ; unsigned long AgendaUtil::store(class AgendaEntry &, enum AgendaUtil::RecurrenceRange) - ??8AgendaGeoValue@@QBE_NABV0@@Z @ 60 NONAME ; bool AgendaGeoValue::operator==(class AgendaGeoValue const &) const - ?id@AgendaEntry@@QBEKXZ @ 61 NONAME ; unsigned long AgendaEntry::id(void) const - ?setByDay@AgendaRepeatRule@@QAEXABV?$QList@W4Day@AgendaRepeatRule@@@@@Z @ 62 NONAME ; void AgendaRepeatRule::setByDay(class QList const &) - ?setUntil@AgendaRepeatRule@@QAEXABVQDateTime@@@Z @ 63 NONAME ; void AgendaRepeatRule::setUntil(class QDateTime const &) - ?setType@AgendaRepeatRule@@QAEXW4RuleType@1@@Z @ 64 NONAME ; void AgendaRepeatRule::setType(enum AgendaRepeatRule::RuleType) - ?interval@AgendaRepeatRule@@QBEHXZ @ 65 NONAME ; int AgendaRepeatRule::interval(void) const - ?rDates@AgendaEntry@@QBE?AV?$QList@VQDate@@@@XZ @ 66 NONAME ; class QList AgendaEntry::rDates(void) const - ?repeatRuleStart@AgendaRepeatRule@@QBE?AVQDateTime@@XZ @ 67 NONAME ; class QDateTime AgendaRepeatRule::repeatRuleStart(void) const - ??8AgendaAlarm@@QBE_NABV0@@Z @ 68 NONAME ; bool AgendaAlarm::operator==(class AgendaAlarm const &) const - ??0AgendaRepeatRule@@QAE@ABV0@@Z @ 69 NONAME ; AgendaRepeatRule::AgendaRepeatRule(class AgendaRepeatRule const &) - ?setStatus@AgendaAttendee@@QAEXW4StatusType@1@@Z @ 70 NONAME ; void AgendaAttendee::setStatus(enum AgendaAttendee::StatusType) - ?setStatus@AgendaEntry@@QAEXW4Status@1@@Z @ 71 NONAME ; void AgendaEntry::setStatus(enum AgendaEntry::Status) - ?setExtendedCategoryName@AgendaCategory@@QAEXABVQString@@@Z @ 72 NONAME ; void AgendaCategory::setExtendedCategoryName(class QString const &) - ?setDescription@AgendaEntry@@QAEXABVQString@@@Z @ 73 NONAME ; void AgendaEntry::setDescription(class QString const &) - ?recurrenceId@AgendaEntry@@QAE?AVQDateTime@@XZ @ 74 NONAME ; class QDateTime AgendaEntry::recurrenceId(void) - ?until@AgendaRepeatRule@@QBE?AVQDateTime@@XZ @ 75 NONAME ; class QDateTime AgendaRepeatRule::until(void) const - ?setByMonth@AgendaRepeatRule@@QAEXABV?$QList@W4Month@AgendaRepeatRule@@@@@Z @ 76 NONAME ; void AgendaRepeatRule::setByMonth(class QList const &) - ?qt_metacall@AgendaUtil@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 77 NONAME ; int AgendaUtil::qt_metacall(enum QMetaObject::Call, int, void * *) - ?qt_metacast@AgendaUtil@@UAEPAXPBD@Z @ 78 NONAME ; void * AgendaUtil::qt_metacast(char const *) - ?isNull@AgendaRepeatRule@@QBE_NXZ @ 79 NONAME ; bool AgendaRepeatRule::isNull(void) const - ?getStaticMetaObject@AgendaUtil@@SAABUQMetaObject@@XZ @ 80 NONAME ; struct QMetaObject const & AgendaUtil::getStaticMetaObject(void) - ??8AgendaAttendee@@QBE_NABV0@@Z @ 81 NONAME ; bool AgendaAttendee::operator==(class AgendaAttendee const &) const - ?addCategory@AgendaEntry@@QAEXABVAgendaCategory@@@Z @ 82 NONAME ; void AgendaEntry::addCategory(class AgendaCategory const &) - ?setLocation@AgendaEntry@@QAEXABVQString@@@Z @ 83 NONAME ; void AgendaEntry::setLocation(class QString const &) - ?isTimedEntry@AgendaEntry@@QAE_NXZ @ 84 NONAME ; bool AgendaEntry::isTimedEntry(void) - ?favourite@AgendaEntry@@QBEIXZ @ 85 NONAME ; unsigned int AgendaEntry::favourite(void) const - ?entryViewCreationCompleted@AgendaUtil@@IAEXH@Z @ 86 NONAME ; void AgendaUtil::entryViewCreationCompleted(int) - ?durationInSecs@AgendaEntry@@QBEHXZ @ 87 NONAME ; int AgendaEntry::durationInSecs(void) const - ??1AgendaUtil@@UAE@XZ @ 88 NONAME ; AgendaUtil::~AgendaUtil(void) - ?category@AgendaCategory@@QBE?AW4CategoryType@1@XZ @ 89 NONAME ; enum AgendaCategory::CategoryType AgendaCategory::category(void) const - ?entryAdded@AgendaUtil@@IAEXK@Z @ 90 NONAME ; void AgendaUtil::entryAdded(unsigned long) - ?role@AgendaAttendee@@QBE?AW4ParticipantRole@1@XZ @ 91 NONAME ; enum AgendaAttendee::ParticipantRole AgendaAttendee::role(void) const - ?type@AgendaEntry@@QBE?AW4Type@1@XZ @ 92 NONAME ; enum AgendaEntry::Type AgendaEntry::type(void) const - ??0AgendaEntry@@QAE@W4Type@0@@Z @ 93 NONAME ; AgendaEntry::AgendaEntry(enum AgendaEntry::Type) - ?detach@AgendaRepeatRule@@AAEXXZ @ 94 NONAME ; void AgendaRepeatRule::detach(void) - ?error@AgendaUtil@@QBE?AW4Error@1@XZ @ 95 NONAME ; enum AgendaUtil::Error AgendaUtil::error(void) const - ?trUtf8@AgendaUtil@@SA?AVQString@@PBD0@Z @ 96 NONAME ; class QString AgendaUtil::trUtf8(char const *, char const *) - ?status@AgendaEntry@@QBE?AW4Status@1@XZ @ 97 NONAME ; enum AgendaEntry::Status AgendaEntry::status(void) const - ??0AgendaEntry@@QAE@ABV0@@Z @ 98 NONAME ; AgendaEntry::AgendaEntry(class AgendaEntry const &) - ??4AgendaAttendee@@QAEAAV0@ABV0@@Z @ 99 NONAME ; class AgendaAttendee & AgendaAttendee::operator=(class AgendaAttendee const &) - ?address@AgendaAttendee@@QBE?AVQString@@XZ @ 100 NONAME ; class QString AgendaAttendee::address(void) const - ?entryDeleted@AgendaUtil@@IAEXK@Z @ 101 NONAME ; void AgendaUtil::entryDeleted(unsigned long) - ?summary@AgendaEntry@@QBE?AVQString@@XZ @ 102 NONAME ; class QString AgendaEntry::summary(void) const - ?priority@AgendaEntry@@QBEHXZ @ 103 NONAME ; int AgendaEntry::priority(void) const - ?fetchById@AgendaUtil@@QAE?AVAgendaEntry@@K@Z @ 104 NONAME ; class AgendaEntry AgendaUtil::fetchById(unsigned long) - ?setCommonName@AgendaAttendee@@QAEXABVQString@@@Z @ 105 NONAME ; void AgendaAttendee::setCommonName(class QString const &) - ?setMethod@AgendaEntry@@QAEXW4Method@1@@Z @ 106 NONAME ; void AgendaEntry::setMethod(enum AgendaEntry::Method) - ?setRDates@AgendaEntry@@QAEXABV?$QList@VQDate@@@@@Z @ 107 NONAME ; void AgendaEntry::setRDates(class QList const &) - ?parentEntry@AgendaUtil@@QAE?AVAgendaEntry@@AAV2@@Z @ 108 NONAME ; class AgendaEntry AgendaUtil::parentEntry(class AgendaEntry &) - ?addAttendee@AgendaEntry@@QAEXABVAgendaAttendee@@@Z @ 109 NONAME ; void AgendaEntry::addAttendee(class AgendaAttendee const &) - ?setCompleted@AgendaUtil@@QAEXAAVAgendaEntry@@_NAAVQDateTime@@@Z @ 110 NONAME ; void AgendaUtil::setCompleted(class AgendaEntry &, bool, class QDateTime &) - ??0AgendaCategory@@QAE@XZ @ 111 NONAME ; AgendaCategory::AgendaCategory(void) - ?timeOffset@AgendaAlarm@@QBEHXZ @ 112 NONAME ; int AgendaAlarm::timeOffset(void) const - ??0AgendaAttendee@@QAE@XZ @ 113 NONAME ; AgendaAttendee::AgendaAttendee(void) - ?setAlarmSoundName@AgendaAlarm@@QAEXABVQString@@@Z @ 114 NONAME ; void AgendaAlarm::setAlarmSoundName(class QString const &) - ?fetchEntriesInRange@AgendaUtil@@QAE?AV?$QList@VAgendaEntry@@@@VQDateTime@@0W4FilterFlags@1@@Z @ 115 NONAME ; class QList AgendaUtil::fetchEntriesInRange(class QDateTime, class QDateTime, enum AgendaUtil::FilterFlags) - ?detach@AgendaAlarm@@AAEXXZ @ 116 NONAME ; void AgendaAlarm::detach(void) - ?setWeekStart@AgendaRepeatRule@@QAEXW4Day@1@@Z @ 117 NONAME ; void AgendaRepeatRule::setWeekStart(enum AgendaRepeatRule::Day) - ?setFavourite@AgendaEntry@@QAEXI@Z @ 118 NONAME ; void AgendaEntry::setFavourite(unsigned int) - ?setDTStamp@AgendaEntry@@QAEXABVQDateTime@@@Z @ 119 NONAME ; void AgendaEntry::setDTStamp(class QDateTime const &) - ?cloneEntry@AgendaUtil@@QAEKABVAgendaEntry@@W4Type@2@@Z @ 120 NONAME ; unsigned long AgendaUtil::cloneEntry(class AgendaEntry const &, enum AgendaEntry::Type) - ?setRepeatRule@AgendaEntry@@QAEXABVAgendaRepeatRule@@@Z @ 121 NONAME ; void AgendaEntry::setRepeatRule(class AgendaRepeatRule const &) - ?categories@AgendaEntry@@QBEABV?$QList@VAgendaCategory@@@@XZ @ 122 NONAME ; class QList const & AgendaEntry::categories(void) const - ?tr@AgendaUtil@@SA?AVQString@@PBD0@Z @ 123 NONAME ; class QString AgendaUtil::tr(char const *, char const *) - ??4AgendaRepeatRule@@QAEAAV0@ABV0@@Z @ 124 NONAME ; class AgendaRepeatRule & AgendaRepeatRule::operator=(class AgendaRepeatRule const &) - ?setCompletedDateTime@AgendaEntry@@QAEXABVQDateTime@@@Z @ 125 NONAME ; void AgendaEntry::setCompletedDateTime(class QDateTime const &) - ??0AgendaRepeatRule@@QAE@XZ @ 126 NONAME ; AgendaRepeatRule::AgendaRepeatRule(void) - ?dtStamp@AgendaEntry@@QBE?AVQDateTime@@XZ @ 127 NONAME ; class QDateTime AgendaEntry::dtStamp(void) const - ?method@AgendaEntry@@QBE?AW4Method@1@XZ @ 128 NONAME ; enum AgendaEntry::Method AgendaEntry::method(void) const - ?type@AgendaRepeatRule@@QBE?AW4RuleType@1@XZ @ 129 NONAME ; enum AgendaRepeatRule::RuleType AgendaRepeatRule::type(void) const - ??4AgendaGeoValue@@QAEAAV0@ABV0@@Z @ 130 NONAME ; class AgendaGeoValue & AgendaGeoValue::operator=(class AgendaGeoValue const &) - ??0AgendaCategory@@QAE@W4CategoryType@0@@Z @ 131 NONAME ; AgendaCategory::AgendaCategory(enum AgendaCategory::CategoryType) - ?commonName@AgendaAttendee@@QBE?AVQString@@XZ @ 132 NONAME ; class QString AgendaAttendee::commonName(void) const - ?detach@AgendaCategory@@AAEXXZ @ 133 NONAME ; void AgendaCategory::detach(void) - ??0AgendaGeoValue@@QAE@ABV0@@Z @ 134 NONAME ; AgendaGeoValue::AgendaGeoValue(class AgendaGeoValue const &) - ?isWorkdaysRepeatingEntry@AgendaUtil@@SA_NABVAgendaRepeatRule@@@Z @ 135 NONAME ; bool AgendaUtil::isWorkdaysRepeatingEntry(class AgendaRepeatRule const &) - ?setRole@AgendaAttendee@@QAEXW4ParticipantRole@1@@Z @ 136 NONAME ; void AgendaAttendee::setRole(enum AgendaAttendee::ParticipantRole) - ?detach@AgendaAttendee@@AAEXXZ @ 137 NONAME ; void AgendaAttendee::detach(void) - ?getLatLong@AgendaGeoValue@@QBEXAAN0@Z @ 138 NONAME ; void AgendaGeoValue::getLatLong(double &, double &) const - ?maxTime@AgendaUtil@@SA?AVQDateTime@@XZ @ 139 NONAME ; class QDateTime AgendaUtil::maxTime(void) - ?setCategory@AgendaCategory@@QAEXW4CategoryType@1@@Z @ 140 NONAME ; void AgendaCategory::setCategory(enum AgendaCategory::CategoryType) - ?endTime@AgendaEntry@@QBE?AVQDateTime@@XZ @ 141 NONAME ; class QDateTime AgendaEntry::endTime(void) const - ??9AgendaEntry@@QBE_NABV0@@Z @ 142 NONAME ; bool AgendaEntry::operator!=(class AgendaEntry const &) const - ??0AgendaRepeatRule@@QAE@W4RuleType@0@@Z @ 143 NONAME ; AgendaRepeatRule::AgendaRepeatRule(enum AgendaRepeatRule::RuleType) - ??9AgendaCategory@@QBE_NABV0@@Z @ 144 NONAME ; bool AgendaCategory::operator!=(class AgendaCategory const &) const - ??0AgendaAttendee@@QAE@ABV0@@Z @ 145 NONAME ; AgendaAttendee::AgendaAttendee(class AgendaAttendee const &) - ??0AgendaAttendee@@QAE@ABVQString@@@Z @ 146 NONAME ; AgendaAttendee::AgendaAttendee(class QString const &) - ?importvCalendar@AgendaUtil@@QAEHABVQString@@AAVAgendaEntry@@@Z @ 147 NONAME ; int AgendaUtil::importvCalendar(class QString const &, class AgendaEntry &) - ?instanceViewCreationCompleted@AgendaUtil@@IAEXH@Z @ 148 NONAME ; void AgendaUtil::instanceViewCreationCompleted(int) - ??_EAgendaUtil@@UAE@I@Z @ 149 NONAME ; AgendaUtil::~AgendaUtil(unsigned int) - ?setGeoValue@AgendaEntry@@QAEXABVAgendaGeoValue@@@Z @ 150 NONAME ; void AgendaEntry::setGeoValue(class AgendaGeoValue const &) - ?getPreviousInstanceTimes@AgendaUtil@@QAEXAAVAgendaEntry@@AAVQDateTime@@1@Z @ 151 NONAME ; void AgendaUtil::getPreviousInstanceTimes(class AgendaEntry &, class QDateTime &, class QDateTime &) - ?attendees@AgendaEntry@@QAEAAV?$QList@VAgendaAttendee@@@@XZ @ 152 NONAME ; class QList & AgendaEntry::attendees(void) - ?staticMetaObject@AgendaUtil@@2UQMetaObject@@B @ 153 NONAME ; struct QMetaObject const AgendaUtil::staticMetaObject - ?entriesDeleted@AgendaUtil@@IAEXH@Z @ 154 NONAME ; void AgendaUtil::entriesDeleted(int) - ?fetchAllEntries@AgendaUtil@@QAE?AV?$QList@VAgendaEntry@@@@W4FilterFlags@1@@Z @ 155 NONAME ; class QList AgendaUtil::fetchAllEntries(enum AgendaUtil::FilterFlags) - ?setTimeOffset@AgendaAlarm@@QAEXH@Z @ 156 NONAME ; void AgendaAlarm::setTimeOffset(int) - ??0AgendaEntry@@QAE@XZ @ 157 NONAME ; AgendaEntry::AgendaEntry(void) - ?setPriority@AgendaEntry@@QAEXH@Z @ 158 NONAME ; void AgendaEntry::setPriority(int) - ?setType@AgendaEntry@@QAEXW4Type@1@@Z @ 159 NONAME ; void AgendaEntry::setType(enum AgendaEntry::Type) - ?setStartAndEndTime@AgendaEntry@@QAE_NABVQDateTime@@0@Z @ 160 NONAME ; bool AgendaEntry::setStartAndEndTime(class QDateTime const &, class QDateTime const &) - ?deleteEntries@AgendaUtil@@QAEXAAVQDateTime@@0W4FilterFlags@1@@Z @ 161 NONAME ; void AgendaUtil::deleteEntries(class QDateTime &, class QDateTime &, enum AgendaUtil::FilterFlags) - ?metaObject@AgendaUtil@@UBEPBUQMetaObject@@XZ @ 162 NONAME ; struct QMetaObject const * AgendaUtil::metaObject(void) const - ?location@AgendaEntry@@QBE?AVQString@@XZ @ 163 NONAME ; class QString AgendaEntry::location(void) const - ??8AgendaCategory@@QBE_NABV0@@Z @ 164 NONAME ; bool AgendaCategory::operator==(class AgendaCategory const &) const - ??0AgendaCategory@@QAE@ABV0@@Z @ 165 NONAME ; AgendaCategory::AgendaCategory(class AgendaCategory const &) - ??1AgendaGeoValue@@QAE@XZ @ 166 NONAME ; AgendaGeoValue::~AgendaGeoValue(void) - ??4AgendaEntry@@QAEAAV0@ABV0@@Z @ 167 NONAME ; class AgendaEntry & AgendaEntry::operator=(class AgendaEntry const &) - ??_EAgendaCategory@@UAE@I@Z @ 168 NONAME ; AgendaCategory::~AgendaCategory(unsigned int) - ?createEntryIdListForDay@AgendaUtil@@QAE?AV?$QList@VAgendaEntry@@@@VQDateTime@@W4FilterFlags@1@@Z @ 169 NONAME ; class QList AgendaUtil::createEntryIdListForDay(class QDateTime, enum AgendaUtil::FilterFlags) - ?repeatRule@AgendaEntry@@QBE?AVAgendaRepeatRule@@XZ @ 170 NONAME ; class AgendaRepeatRule AgendaEntry::repeatRule(void) const - ??1AgendaCategory@@UAE@XZ @ 171 NONAME ; AgendaCategory::~AgendaCategory(void) - ?deleteEntry@AgendaUtil@@QAE_NK@Z @ 172 NONAME ; bool AgendaUtil::deleteEntry(unsigned long) - ??1AgendaAttendee@@UAE@XZ @ 173 NONAME ; AgendaAttendee::~AgendaAttendee(void) - ?byDay@AgendaRepeatRule@@QBE?AV?$QList@W4Day@AgendaRepeatRule@@@@XZ @ 174 NONAME ; class QList AgendaRepeatRule::byDay(void) const - ?setLatLong@AgendaGeoValue@@QAEXNN@Z @ 175 NONAME ; void AgendaGeoValue::setLatLong(double, double) - ?completedDateTime@AgendaEntry@@QBE?AVQDateTime@@XZ @ 176 NONAME ; class QDateTime AgendaEntry::completedDateTime(void) const - ?setRecurrenceId@AgendaEntry@@QAEXAAVQDateTime@@@Z @ 177 NONAME ; void AgendaEntry::setRecurrenceId(class QDateTime &) + ??8AgendaGeoValue@@QBE_NABV0@@Z @ 59 NONAME ; bool AgendaGeoValue::operator==(class AgendaGeoValue const &) const + ?id@AgendaEntry@@QBEKXZ @ 60 NONAME ; unsigned long AgendaEntry::id(void) const + ?setByDay@AgendaRepeatRule@@QAEXABV?$QList@W4Day@AgendaRepeatRule@@@@@Z @ 61 NONAME ; void AgendaRepeatRule::setByDay(class QList const &) + ?setUntil@AgendaRepeatRule@@QAEXABVQDateTime@@@Z @ 62 NONAME ; void AgendaRepeatRule::setUntil(class QDateTime const &) + ?setType@AgendaRepeatRule@@QAEXW4RuleType@1@@Z @ 63 NONAME ; void AgendaRepeatRule::setType(enum AgendaRepeatRule::RuleType) + ?interval@AgendaRepeatRule@@QBEHXZ @ 64 NONAME ; int AgendaRepeatRule::interval(void) const + ?rDates@AgendaEntry@@QBE?AV?$QList@VQDate@@@@XZ @ 65 NONAME ; class QList AgendaEntry::rDates(void) const + ?repeatRuleStart@AgendaRepeatRule@@QBE?AVQDateTime@@XZ @ 66 NONAME ; class QDateTime AgendaRepeatRule::repeatRuleStart(void) const + ??8AgendaAlarm@@QBE_NABV0@@Z @ 67 NONAME ; bool AgendaAlarm::operator==(class AgendaAlarm const &) const + ??0AgendaRepeatRule@@QAE@ABV0@@Z @ 68 NONAME ; AgendaRepeatRule::AgendaRepeatRule(class AgendaRepeatRule const &) + ?setStatus@AgendaAttendee@@QAEXW4StatusType@1@@Z @ 69 NONAME ; void AgendaAttendee::setStatus(enum AgendaAttendee::StatusType) + ?setStatus@AgendaEntry@@QAEXW4Status@1@@Z @ 70 NONAME ; void AgendaEntry::setStatus(enum AgendaEntry::Status) + ?setExtendedCategoryName@AgendaCategory@@QAEXABVQString@@@Z @ 71 NONAME ; void AgendaCategory::setExtendedCategoryName(class QString const &) + ?setDescription@AgendaEntry@@QAEXABVQString@@@Z @ 72 NONAME ; void AgendaEntry::setDescription(class QString const &) + ?recurrenceId@AgendaEntry@@QAE?AVQDateTime@@XZ @ 73 NONAME ; class QDateTime AgendaEntry::recurrenceId(void) + ?until@AgendaRepeatRule@@QBE?AVQDateTime@@XZ @ 74 NONAME ; class QDateTime AgendaRepeatRule::until(void) const + ?setByMonth@AgendaRepeatRule@@QAEXABV?$QList@W4Month@AgendaRepeatRule@@@@@Z @ 75 NONAME ; void AgendaRepeatRule::setByMonth(class QList const &) + ?qt_metacall@AgendaUtil@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 76 NONAME ; int AgendaUtil::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacast@AgendaUtil@@UAEPAXPBD@Z @ 77 NONAME ; void * AgendaUtil::qt_metacast(char const *) + ?isNull@AgendaRepeatRule@@QBE_NXZ @ 78 NONAME ; bool AgendaRepeatRule::isNull(void) const + ?getStaticMetaObject@AgendaUtil@@SAABUQMetaObject@@XZ @ 79 NONAME ; struct QMetaObject const & AgendaUtil::getStaticMetaObject(void) + ??8AgendaAttendee@@QBE_NABV0@@Z @ 80 NONAME ; bool AgendaAttendee::operator==(class AgendaAttendee const &) const + ?addCategory@AgendaEntry@@QAEXABVAgendaCategory@@@Z @ 81 NONAME ; void AgendaEntry::addCategory(class AgendaCategory const &) + ?setLocation@AgendaEntry@@QAEXABVQString@@@Z @ 82 NONAME ; void AgendaEntry::setLocation(class QString const &) + ?isTimedEntry@AgendaEntry@@QAE_NXZ @ 83 NONAME ; bool AgendaEntry::isTimedEntry(void) + ?favourite@AgendaEntry@@QBEIXZ @ 84 NONAME ; unsigned int AgendaEntry::favourite(void) const + ?entryViewCreationCompleted@AgendaUtil@@IAEXH@Z @ 85 NONAME ; void AgendaUtil::entryViewCreationCompleted(int) + ?durationInSecs@AgendaEntry@@QBEHXZ @ 86 NONAME ; int AgendaEntry::durationInSecs(void) const + ??1AgendaUtil@@UAE@XZ @ 87 NONAME ; AgendaUtil::~AgendaUtil(void) + ?category@AgendaCategory@@QBE?AW4CategoryType@1@XZ @ 88 NONAME ; enum AgendaCategory::CategoryType AgendaCategory::category(void) const + ?entryAdded@AgendaUtil@@IAEXK@Z @ 89 NONAME ; void AgendaUtil::entryAdded(unsigned long) + ?role@AgendaAttendee@@QBE?AW4ParticipantRole@1@XZ @ 90 NONAME ; enum AgendaAttendee::ParticipantRole AgendaAttendee::role(void) const + ?type@AgendaEntry@@QBE?AW4Type@1@XZ @ 91 NONAME ; enum AgendaEntry::Type AgendaEntry::type(void) const + ??0AgendaEntry@@QAE@W4Type@0@@Z @ 92 NONAME ; AgendaEntry::AgendaEntry(enum AgendaEntry::Type) + ?detach@AgendaRepeatRule@@AAEXXZ @ 93 NONAME ; void AgendaRepeatRule::detach(void) + ?error@AgendaUtil@@QBE?AW4Error@1@XZ @ 94 NONAME ; enum AgendaUtil::Error AgendaUtil::error(void) const + ?trUtf8@AgendaUtil@@SA?AVQString@@PBD0@Z @ 95 NONAME ; class QString AgendaUtil::trUtf8(char const *, char const *) + ?status@AgendaEntry@@QBE?AW4Status@1@XZ @ 96 NONAME ; enum AgendaEntry::Status AgendaEntry::status(void) const + ??0AgendaEntry@@QAE@ABV0@@Z @ 97 NONAME ; AgendaEntry::AgendaEntry(class AgendaEntry const &) + ??4AgendaAttendee@@QAEAAV0@ABV0@@Z @ 98 NONAME ; class AgendaAttendee & AgendaAttendee::operator=(class AgendaAttendee const &) + ?address@AgendaAttendee@@QBE?AVQString@@XZ @ 99 NONAME ; class QString AgendaAttendee::address(void) const + ?entryDeleted@AgendaUtil@@IAEXK@Z @ 100 NONAME ; void AgendaUtil::entryDeleted(unsigned long) + ?summary@AgendaEntry@@QBE?AVQString@@XZ @ 101 NONAME ; class QString AgendaEntry::summary(void) const + ?priority@AgendaEntry@@QBEHXZ @ 102 NONAME ; int AgendaEntry::priority(void) const + ?fetchById@AgendaUtil@@QAE?AVAgendaEntry@@K@Z @ 103 NONAME ; class AgendaEntry AgendaUtil::fetchById(unsigned long) + ?setCommonName@AgendaAttendee@@QAEXABVQString@@@Z @ 104 NONAME ; void AgendaAttendee::setCommonName(class QString const &) + ?setMethod@AgendaEntry@@QAEXW4Method@1@@Z @ 105 NONAME ; void AgendaEntry::setMethod(enum AgendaEntry::Method) + ?setRDates@AgendaEntry@@QAEXABV?$QList@VQDate@@@@@Z @ 106 NONAME ; void AgendaEntry::setRDates(class QList const &) + ?parentEntry@AgendaUtil@@QAE?AVAgendaEntry@@AAV2@@Z @ 107 NONAME ; class AgendaEntry AgendaUtil::parentEntry(class AgendaEntry &) + ?addAttendee@AgendaEntry@@QAEXABVAgendaAttendee@@@Z @ 108 NONAME ; void AgendaEntry::addAttendee(class AgendaAttendee const &) + ?setCompleted@AgendaUtil@@QAEXAAVAgendaEntry@@_NAAVQDateTime@@@Z @ 109 NONAME ; void AgendaUtil::setCompleted(class AgendaEntry &, bool, class QDateTime &) + ??0AgendaCategory@@QAE@XZ @ 110 NONAME ; AgendaCategory::AgendaCategory(void) + ?timeOffset@AgendaAlarm@@QBEHXZ @ 111 NONAME ; int AgendaAlarm::timeOffset(void) const + ??0AgendaAttendee@@QAE@XZ @ 112 NONAME ; AgendaAttendee::AgendaAttendee(void) + ?setAlarmSoundName@AgendaAlarm@@QAEXABVQString@@@Z @ 113 NONAME ; void AgendaAlarm::setAlarmSoundName(class QString const &) + ?fetchEntriesInRange@AgendaUtil@@QAE?AV?$QList@VAgendaEntry@@@@VQDateTime@@0W4FilterFlags@1@@Z @ 114 NONAME ; class QList AgendaUtil::fetchEntriesInRange(class QDateTime, class QDateTime, enum AgendaUtil::FilterFlags) + ?detach@AgendaAlarm@@AAEXXZ @ 115 NONAME ; void AgendaAlarm::detach(void) + ?setWeekStart@AgendaRepeatRule@@QAEXW4Day@1@@Z @ 116 NONAME ; void AgendaRepeatRule::setWeekStart(enum AgendaRepeatRule::Day) + ?setFavourite@AgendaEntry@@QAEXI@Z @ 117 NONAME ; void AgendaEntry::setFavourite(unsigned int) + ?setDTStamp@AgendaEntry@@QAEXABVQDateTime@@@Z @ 118 NONAME ; void AgendaEntry::setDTStamp(class QDateTime const &) + ?cloneEntry@AgendaUtil@@QAEKABVAgendaEntry@@W4Type@2@@Z @ 119 NONAME ; unsigned long AgendaUtil::cloneEntry(class AgendaEntry const &, enum AgendaEntry::Type) + ?setRepeatRule@AgendaEntry@@QAEXABVAgendaRepeatRule@@@Z @ 120 NONAME ; void AgendaEntry::setRepeatRule(class AgendaRepeatRule const &) + ?categories@AgendaEntry@@QBEABV?$QList@VAgendaCategory@@@@XZ @ 121 NONAME ; class QList const & AgendaEntry::categories(void) const + ?tr@AgendaUtil@@SA?AVQString@@PBD0@Z @ 122 NONAME ; class QString AgendaUtil::tr(char const *, char const *) + ??4AgendaRepeatRule@@QAEAAV0@ABV0@@Z @ 123 NONAME ; class AgendaRepeatRule & AgendaRepeatRule::operator=(class AgendaRepeatRule const &) + ?setCompletedDateTime@AgendaEntry@@QAEXABVQDateTime@@@Z @ 124 NONAME ; void AgendaEntry::setCompletedDateTime(class QDateTime const &) + ??0AgendaRepeatRule@@QAE@XZ @ 125 NONAME ; AgendaRepeatRule::AgendaRepeatRule(void) + ?dtStamp@AgendaEntry@@QBE?AVQDateTime@@XZ @ 126 NONAME ; class QDateTime AgendaEntry::dtStamp(void) const + ?method@AgendaEntry@@QBE?AW4Method@1@XZ @ 127 NONAME ; enum AgendaEntry::Method AgendaEntry::method(void) const + ?type@AgendaRepeatRule@@QBE?AW4RuleType@1@XZ @ 128 NONAME ; enum AgendaRepeatRule::RuleType AgendaRepeatRule::type(void) const + ??4AgendaGeoValue@@QAEAAV0@ABV0@@Z @ 129 NONAME ; class AgendaGeoValue & AgendaGeoValue::operator=(class AgendaGeoValue const &) + ??0AgendaCategory@@QAE@W4CategoryType@0@@Z @ 130 NONAME ; AgendaCategory::AgendaCategory(enum AgendaCategory::CategoryType) + ?commonName@AgendaAttendee@@QBE?AVQString@@XZ @ 131 NONAME ; class QString AgendaAttendee::commonName(void) const + ?detach@AgendaCategory@@AAEXXZ @ 132 NONAME ; void AgendaCategory::detach(void) + ??0AgendaGeoValue@@QAE@ABV0@@Z @ 133 NONAME ; AgendaGeoValue::AgendaGeoValue(class AgendaGeoValue const &) + ?isWorkdaysRepeatingEntry@AgendaUtil@@SA_NABVAgendaRepeatRule@@@Z @ 134 NONAME ; bool AgendaUtil::isWorkdaysRepeatingEntry(class AgendaRepeatRule const &) + ?setRole@AgendaAttendee@@QAEXW4ParticipantRole@1@@Z @ 135 NONAME ; void AgendaAttendee::setRole(enum AgendaAttendee::ParticipantRole) + ?detach@AgendaAttendee@@AAEXXZ @ 136 NONAME ; void AgendaAttendee::detach(void) + ?getLatLong@AgendaGeoValue@@QBEXAAN0@Z @ 137 NONAME ; void AgendaGeoValue::getLatLong(double &, double &) const + ?maxTime@AgendaUtil@@SA?AVQDateTime@@XZ @ 138 NONAME ; class QDateTime AgendaUtil::maxTime(void) + ?setCategory@AgendaCategory@@QAEXW4CategoryType@1@@Z @ 139 NONAME ; void AgendaCategory::setCategory(enum AgendaCategory::CategoryType) + ?endTime@AgendaEntry@@QBE?AVQDateTime@@XZ @ 140 NONAME ; class QDateTime AgendaEntry::endTime(void) const + ??9AgendaEntry@@QBE_NABV0@@Z @ 141 NONAME ; bool AgendaEntry::operator!=(class AgendaEntry const &) const + ??0AgendaRepeatRule@@QAE@W4RuleType@0@@Z @ 142 NONAME ; AgendaRepeatRule::AgendaRepeatRule(enum AgendaRepeatRule::RuleType) + ??9AgendaCategory@@QBE_NABV0@@Z @ 143 NONAME ; bool AgendaCategory::operator!=(class AgendaCategory const &) const + ??0AgendaAttendee@@QAE@ABV0@@Z @ 144 NONAME ; AgendaAttendee::AgendaAttendee(class AgendaAttendee const &) + ??0AgendaAttendee@@QAE@ABVQString@@@Z @ 145 NONAME ; AgendaAttendee::AgendaAttendee(class QString const &) + ?importvCalendar@AgendaUtil@@QAEHABVQString@@AAVAgendaEntry@@@Z @ 146 NONAME ; int AgendaUtil::importvCalendar(class QString const &, class AgendaEntry &) + ?instanceViewCreationCompleted@AgendaUtil@@IAEXH@Z @ 147 NONAME ; void AgendaUtil::instanceViewCreationCompleted(int) + ??_EAgendaUtil@@UAE@I@Z @ 148 NONAME ; AgendaUtil::~AgendaUtil(unsigned int) + ?setGeoValue@AgendaEntry@@QAEXABVAgendaGeoValue@@@Z @ 149 NONAME ; void AgendaEntry::setGeoValue(class AgendaGeoValue const &) + ?getPreviousInstanceTimes@AgendaUtil@@QAEXAAVAgendaEntry@@AAVQDateTime@@1@Z @ 150 NONAME ; void AgendaUtil::getPreviousInstanceTimes(class AgendaEntry &, class QDateTime &, class QDateTime &) + ?attendees@AgendaEntry@@QAEAAV?$QList@VAgendaAttendee@@@@XZ @ 151 NONAME ; class QList & AgendaEntry::attendees(void) + ?staticMetaObject@AgendaUtil@@2UQMetaObject@@B @ 152 NONAME ; struct QMetaObject const AgendaUtil::staticMetaObject + ?entriesDeleted@AgendaUtil@@IAEXH@Z @ 153 NONAME ; void AgendaUtil::entriesDeleted(int) + ?fetchAllEntries@AgendaUtil@@QAE?AV?$QList@VAgendaEntry@@@@W4FilterFlags@1@@Z @ 154 NONAME ; class QList AgendaUtil::fetchAllEntries(enum AgendaUtil::FilterFlags) + ?setTimeOffset@AgendaAlarm@@QAEXH@Z @ 155 NONAME ; void AgendaAlarm::setTimeOffset(int) + ??0AgendaEntry@@QAE@XZ @ 156 NONAME ; AgendaEntry::AgendaEntry(void) + ?setPriority@AgendaEntry@@QAEXH@Z @ 157 NONAME ; void AgendaEntry::setPriority(int) + ?setType@AgendaEntry@@QAEXW4Type@1@@Z @ 158 NONAME ; void AgendaEntry::setType(enum AgendaEntry::Type) + ?setStartAndEndTime@AgendaEntry@@QAE_NABVQDateTime@@0@Z @ 159 NONAME ; bool AgendaEntry::setStartAndEndTime(class QDateTime const &, class QDateTime const &) + ?deleteEntries@AgendaUtil@@QAEXAAVQDateTime@@0W4FilterFlags@1@@Z @ 160 NONAME ; void AgendaUtil::deleteEntries(class QDateTime &, class QDateTime &, enum AgendaUtil::FilterFlags) + ?metaObject@AgendaUtil@@UBEPBUQMetaObject@@XZ @ 161 NONAME ; struct QMetaObject const * AgendaUtil::metaObject(void) const + ?location@AgendaEntry@@QBE?AVQString@@XZ @ 162 NONAME ; class QString AgendaEntry::location(void) const + ??8AgendaCategory@@QBE_NABV0@@Z @ 163 NONAME ; bool AgendaCategory::operator==(class AgendaCategory const &) const + ??0AgendaCategory@@QAE@ABV0@@Z @ 164 NONAME ; AgendaCategory::AgendaCategory(class AgendaCategory const &) + ??1AgendaGeoValue@@QAE@XZ @ 165 NONAME ; AgendaGeoValue::~AgendaGeoValue(void) + ??4AgendaEntry@@QAEAAV0@ABV0@@Z @ 166 NONAME ; class AgendaEntry & AgendaEntry::operator=(class AgendaEntry const &) + ??_EAgendaCategory@@UAE@I@Z @ 167 NONAME ; AgendaCategory::~AgendaCategory(unsigned int) + ?createEntryIdListForDay@AgendaUtil@@QAE?AV?$QList@VAgendaEntry@@@@VQDateTime@@W4FilterFlags@1@@Z @ 168 NONAME ; class QList AgendaUtil::createEntryIdListForDay(class QDateTime, enum AgendaUtil::FilterFlags) + ?repeatRule@AgendaEntry@@QBE?AVAgendaRepeatRule@@XZ @ 169 NONAME ; class AgendaRepeatRule AgendaEntry::repeatRule(void) const + ??1AgendaCategory@@UAE@XZ @ 170 NONAME ; AgendaCategory::~AgendaCategory(void) + ?deleteEntry@AgendaUtil@@QAE_NK@Z @ 171 NONAME ; bool AgendaUtil::deleteEntry(unsigned long) + ??1AgendaAttendee@@UAE@XZ @ 172 NONAME ; AgendaAttendee::~AgendaAttendee(void) + ?byDay@AgendaRepeatRule@@QBE?AV?$QList@W4Day@AgendaRepeatRule@@@@XZ @ 173 NONAME ; class QList AgendaRepeatRule::byDay(void) const + ?setLatLong@AgendaGeoValue@@QAEXNN@Z @ 174 NONAME ; void AgendaGeoValue::setLatLong(double, double) + ?completedDateTime@AgendaEntry@@QBE?AVQDateTime@@XZ @ 175 NONAME ; class QDateTime AgendaEntry::completedDateTime(void) const + ?setRecurrenceId@AgendaEntry@@QAEXAAVQDateTime@@@Z @ 176 NONAME ; void AgendaEntry::setRecurrenceId(class QDateTime &) + ?store@AgendaUtil@@QAEKAAVAgendaEntry@@W4RecurrenceRange@1@VQDateTime@@@Z @ 177 NONAME ; unsigned long AgendaUtil::store(class AgendaEntry &, enum AgendaUtil::RecurrenceRange, class QDateTime) ?isNull@AgendaGeoValue@@QBE_NXZ @ 178 NONAME ; bool AgendaGeoValue::isNull(void) const diff -r a3cb48f6c889 -r 1881ad52dc45 agendainterface/agendautil/eabi/agendainterfaceu.def --- a/agendainterface/agendautil/eabi/agendainterfaceu.def Wed Aug 25 14:02:13 2010 +0530 +++ b/agendainterface/agendautil/eabi/agendainterfaceu.def Tue Aug 31 18:15:13 2010 +0530 @@ -26,7 +26,7 @@ _ZN10AgendaUtil24isWorkdaysRepeatingEntryERK16AgendaRepeatRule @ 25 NONAME _ZN10AgendaUtil26entryViewCreationCompletedEi @ 26 NONAME _ZN10AgendaUtil29instanceViewCreationCompletedEi @ 27 NONAME - _ZN10AgendaUtil5storeER11AgendaEntryNS_15RecurrenceRangeE @ 28 NONAME + _ZN10AgendaUtil5storeER11AgendaEntryNS_15RecurrenceRangeE9QDateTime @ 28 NONAME _ZN10AgendaUtil7maxTimeEv @ 29 NONAME _ZN10AgendaUtil7minTimeEv @ 30 NONAME _ZN10AgendaUtil8entryIdsENS_11FilterFlagsE @ 31 NONAME diff -r a3cb48f6c889 -r 1881ad52dc45 agendainterface/agendautil/inc/agendautil_p.h --- a/agendainterface/agendautil/inc/agendautil_p.h Wed Aug 25 14:02:13 2010 +0530 +++ b/agendainterface/agendautil/inc/agendautil_p.h Tue Aug 31 18:15:13 2010 +0530 @@ -61,7 +61,9 @@ AgendaUtilPrivate(AgendaUtil* calendar); ~AgendaUtilPrivate(); - ulong store(AgendaEntry &entry, AgendaUtil::RecurrenceRange range); + ulong store( + AgendaEntry &entry, AgendaUtil::RecurrenceRange range, + QDateTime &instanceOriginalDateTime); ulong cloneEntry(const AgendaEntry& entry, AgendaEntry::Type type); bool deleteEntry(ulong id); diff -r a3cb48f6c889 -r 1881ad52dc45 agendainterface/agendautil/src/agendautil.cpp --- a/agendainterface/agendautil/src/agendautil.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/agendainterface/agendautil/src/agendautil.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -98,11 +98,14 @@ \param entry The entry to be added/updated \param range The recurrence range of entry + \param instanceOriginalDateTime The start time of the original instance. \return ulong The local uid of the entry added/updated in the db. */ -ulong AgendaUtil::store(AgendaEntry &entry, AgendaUtil::RecurrenceRange range) +ulong AgendaUtil::store( + AgendaEntry &entry, AgendaUtil::RecurrenceRange range, + QDateTime instanceOriginalDateTime) { - return d->store(entry, range); + return d->store(entry, range, instanceOriginalDateTime); } /*! diff -r a3cb48f6c889 -r 1881ad52dc45 agendainterface/agendautil/src/agendautil_p.cpp --- a/agendainterface/agendautil/src/agendautil_p.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/agendainterface/agendautil/src/agendautil_p.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -203,11 +203,14 @@ /*! To store the new entry or update the entry in the Calendar db. - \param entry The entry to be added/updated - \param range The recurrence range of entry + \param entry The entry to be added/updated. + \param range The recurrence range of entry. + \param instanceOriginalDateTime The start time of the original instance.. \return ulong The local uid of the entry added/updated in the db. */ -ulong AgendaUtilPrivate::store(AgendaEntry &entry, AgendaUtil::RecurrenceRange range) +ulong AgendaUtilPrivate::store( + AgendaEntry &entry, AgendaUtil::RecurrenceRange range, + QDateTime &instanceOriginalDateTime) { // Will be filled with the lUID of the new entry created. TCalLocalUid localUid = 0; @@ -269,7 +272,7 @@ // We are creating an exception, hence get the global Uid HBufC8* guid = parentEntry->UidL().AllocLC(); - QDateTime instanceOriginalDateTime = entry.startTime(); + // create new (child) entry // Use original instance time for recurrenceID as this entry hasn't got one. diff -r a3cb48f6c889 -r 1881ad52dc45 calendarengines/agnversit2/inc/CleanupPointerArray.inl --- a/calendarengines/agnversit2/inc/CleanupPointerArray.inl Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarengines/agnversit2/inc/CleanupPointerArray.inl Tue Aug 31 18:15:13 2010 +0530 @@ -35,7 +35,7 @@ @internalTechnology */ template -inline void TCleanupPointerArray::ResetAndDestroy(TAny* aPtr) +inline void TCleanupPointerArray::ResetAndDestroy(TAny* aPtr) { reinterpret_cast(aPtr)->ResetAndDestroy(); } diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/caleneditor/inc/caleneditor_p.h --- a/calendarui/caleneditor/inc/caleneditor_p.h Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/caleneditor/inc/caleneditor_p.h Tue Aug 31 18:15:13 2010 +0530 @@ -107,11 +107,12 @@ bool isNewEntry(); HbDataFormModelItem* allDayCheckBoxItem(); bool isReminderTimeForAllDayAdded(); + bool isRepeatUntilItemAdded(); bool isAllDayEvent(); void updateReminderChoices(); int currentIndexOfReminderField(); void setCurrentIndexOfReminderField(int index); - void setReminderChoices(); + int getReminderCount(); bool isEditRangeThisOnly(); bool isAllDayFieldAdded(); void forcedSaveEntry(); diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/caleneditor/inc/caleneditorcommon.h --- a/calendarui/caleneditor/inc/caleneditorcommon.h Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/caleneditor/inc/caleneditorcommon.h Tue Aug 31 18:15:13 2010 +0530 @@ -33,6 +33,8 @@ // Constants const int SecsInOneHour( 3600 ); +const int SecsIn15Mins( 900 ); //15 * 60 secs +const int SecsIn30Mins( 1800 ); //30 * 60 secs const int MaxRowsInTextItem(10); const int MaxCharacterLimit(255); diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/caleneditor/inc/caleneditorreminderfield.h --- a/calendarui/caleneditor/inc/caleneditorreminderfield.h Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/caleneditor/inc/caleneditorreminderfield.h Tue Aug 31 18:15:13 2010 +0530 @@ -45,6 +45,14 @@ ReminderOneDayBefore, ReminderTwoDaysBefore }; + enum MeetingReminderIndex + { + //Starting the enum from 1 bcoz ReminderOff of AllDayReminderIndex can be used. + ReminderAtStart = 1, + Reminder15MinsBefore, + Reminder30MinsBefore, + Reminder1HourBefore + }; public: CalenEditorReminderField(CalenEditorPrivate* calenEditor, HbDataForm* form, HbDataFormModel* model, @@ -69,6 +77,10 @@ void setCurrentIndex(int index); void disableReminderTimeField(); bool isReminderTimeForAllDayAdded(); + void UpdateReminderChoicesForSameDay(QTime startTime); + void setSavedMeetingReminderIndex(); + int getReminderIndexBasedOnEntryAlarm(); + private slots: void handleReminderIndexChanged(int index); void launchReminderTimePicker(); diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/caleneditor/src/caleneditor_p.cpp --- a/calendarui/caleneditor/src/caleneditor_p.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/caleneditor/src/caleneditor_p.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -1096,6 +1096,8 @@ { OstTraceFunctionEntry0( CALENEDITORPRIVATE_SAVEFROMDATETIME_ENTRY ); QDateTime endTime = mEditedEntry->endTime(); + // Get the previous start date of the entry + QDate previousDate = mEditedEntry->startTime().date(); // Update the end time accordingly on UI - duration will be 60 mins // bydefault only while creating new entry and if it crossed the endtime if (mNewEntry && fromDateTime > endTime) { @@ -1122,6 +1124,18 @@ } updateReminderChoices(); + // If the entry start date is been changed from past date to a future date + // And if the alarm set set is off change the reminder option to + // 'one day before' if the option is valid + if (isAllDayEvent() && previousDate <= QDate::currentDate()) { + if(fromDateTime.date() > QDate::currentDate() && + (mReminderField->currentReminderIndex() == + CalenEditorReminderField::ReminderOff) && + mReminderField->reminderItemsCount() >= 3) { + mReminderField->setCurrentIndex( + CalenEditorReminderField::ReminderOneDayBefore); + } + } OstTraceFunctionExit0( CALENEDITORPRIVATE_SAVEFROMDATETIME_EXIT ); } @@ -1150,13 +1164,14 @@ { mReminderField->setReminderOff(); } else { - // Enabled implies future. If changing from future to future do not - // do anything. - if (!mReminderField->isReminderFieldEnabled()) { + if (referenceDate == QDate::currentDate()) { + mReminderField->UpdateReminderChoicesForSameDay(mEditedEntry->startTime().time()); + } + else { mReminderField->setReminderChoices(); - // Set the default alarm time 15 minutes before - mReminderField->setCurrentIndex(2); } + //Set the reminder field to the previous value which was saved. + mReminderField->setSavedMeetingReminderIndex(); } } OstTraceFunctionExit0( CALENEDITORPRIVATE_UPDATEREMINDERCHOICES_EXIT ); @@ -1355,14 +1370,26 @@ // This is to avoid conflict in the reminder time as // the index set for the normal meeting may not be valid for an allday // Set it off before doing the reminder updation for all day - mReminderField->setCurrentIndex(0); + mReminderField->setCurrentIndex(CalenEditorReminderField::ReminderOff); mReminderField->updateReminderChoicesForAllDay(referenceDate); - // If the reminder field is enabled and it is not off - // it implies default alarm day and time is being displayed. + // Now the reminder combox box is updated with the valid reminder options + // If the reminder field is enabled and it is off + // it implies default alarm day and time should be displayed. if (mReminderField->isReminderFieldEnabled() && - mReminderField->currentReminderIndex() != 0) { + mReminderField->currentReminderIndex() == + CalenEditorReminderField::ReminderOff) { + mReminderField->insertReminderTimeField(); // Set the default alarm for all day. - mReminderField->setDefaultAlarmForAllDay(); + if(mReminderField->reminderItemsCount() > 2) { + // Set reminder as "One day before" + mReminderField->setCurrentIndex( + CalenEditorReminderField::ReminderOneDayBefore); + }else { + // Since the "One day before" is not valid + // Set the reminder "On event day" + mReminderField->setCurrentIndex( + CalenEditorReminderField::ReminderOnEventDay); + } } else { // Remove reminder time field. mReminderField->removeReminderTimeField(); @@ -1378,7 +1405,7 @@ mReminderField->removeReminderTimeField(); mReminderField->setReminderChoices(); // Set the default alarm time 15 minutes before - mReminderField->setCurrentIndex(2); + mReminderField->setCurrentIndex(CalenEditorReminderField::Reminder15MinsBefore); updateReminderChoices(); } @@ -1695,7 +1722,9 @@ if (!handleAllDayToSave()) { // creating an exceptional entry if (!mIsChild && (mEditRange == ThisOnly)) { - mAgendaUtil->store(*mEditedEntry, AgendaUtil::ThisOnly); + mAgendaUtil->store( + *mEditedEntry, AgendaUtil::ThisOnly, + mOriginalEntry->startTime()); } else { mAgendaUtil->store(*mEditedEntry); } @@ -1913,6 +1942,22 @@ } /*! + Returns true if repeatuntil item is been added + Used to know if the entry is repeating. For new entries this + is the only way to find whether its repeating or not + */ +bool CalenEditorPrivate::isRepeatUntilItemAdded() +{ + // For exceptional entries the repeatfield will not be present + // So need to check if the repeat field is there or not + if( mRepeatField ) { + return mRepeatField->isRepeatUntilItemAdded(); + }else { + return false; + } +} + +/*! Checks if it is an all day event or not. */ bool CalenEditorPrivate::isAllDayEvent() @@ -1956,13 +2001,11 @@ } /*! - Sets the reminder choices for a non all day event. + Gets the reminder options count */ -void CalenEditorPrivate::setReminderChoices() +int CalenEditorPrivate::getReminderCount() { - OstTraceFunctionEntry0( CALENEDITORPRIVATE_SETREMINDERCHOICES_ENTRY ); - mReminderField->setReminderChoices(); - OstTraceFunctionExit0( CALENEDITORPRIVATE_SETREMINDERCHOICES_EXIT ); + return mReminderField->reminderItemsCount(); } /*! diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/caleneditor/src/caleneditorreminderfield.cpp --- a/calendarui/caleneditor/src/caleneditorreminderfield.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/caleneditor/src/caleneditorreminderfield.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -90,6 +90,13 @@ void CalenEditorReminderField::setReminderChoices() { OstTraceFunctionEntry0( CALENEDITORREMINDERFIELD_SETREMINDERCHOICES_ENTRY ); + + // Disconnect the slot and connect it back again at end to avoid unnecessary + // calls to handleReminderIndexChanged slot. Or else the slot gets called + // when we add all of items to the repeat combobox. + mEditorForm->removeConnection(mReminderItem, + SIGNAL(currentIndexChanged(int)), this, + SLOT(handleReminderIndexChanged(int))); // Create the reminder choices QStringList reminderChoices; reminderChoices << hbTrId("txt_calendar_setlabel_reminder_val_off") @@ -99,15 +106,11 @@ << hbTrId("txt_calendar_setlabel_reminder_val_1_hour_before"); mReminderItem->setContentWidgetData("items", reminderChoices); - mReminderItem->setContentWidgetData("objectName", "remainderItem"); - - // Build the hash map for the reminder. - mReminderHash[0] = -1; // OFF. - mReminderHash[1] = 0; - mReminderHash[2] = 15; - mReminderHash[3] = 30; - mReminderHash[4] = 60; mReminderItem->setEnabled(true); + + mEditorForm->addConnection(mReminderItem, + SIGNAL(currentIndexChanged(int)), this, + SLOT(handleReminderIndexChanged(int))); OstTraceFunctionExit0( CALENEDITORREMINDERFIELD_SETREMINDERCHOICES_EXIT ); } @@ -134,6 +137,29 @@ } /*! + Set the current reminder index with the value which was saved + before, if it is valid or else default the value to 15MinsBefore + or AtTheStart whichever is appropriate + */ +void CalenEditorReminderField::setSavedMeetingReminderIndex() +{ + // Get the reminder offset value. + int reminderOffset = + mCalenEditor->editedEntry()->alarm().timeOffset(); + // Get the index value for the reminder combo box from the hash + // table. 2nd argument is defaultKey if the hash contains no item mapped to value + //TODO: Need to confirm the default reminder to set if none of the choices are met like in case of synch from outlook. + int index = mReminderHash.key(reminderOffset, Reminder15MinsBefore); + + if (index < reminderItemsCount()) + setCurrentIndex(index); + else if (reminderItemsCount() == (ReminderAtStart + 1)) //+1 because enum starts from 0. + setCurrentIndex(ReminderAtStart); + else + setCurrentIndex(Reminder15MinsBefore); +} + +/*! Populates reminder item with available choices to the user \param newEntry bool value to indicate if its a new entry */ @@ -142,7 +168,17 @@ OstTraceFunctionEntry0( CALENEDITORREMINDERFIELD_POPULATEREMINDERITEM_ENTRY ); AgendaAlarm reminder; bool pastEvent = false; + bool repeatingEntry = false; + bool sameDay = false; + mReminderItem->setContentWidgetData("objectName", "remainderItem"); + // Build the hash map for the reminder. + mReminderHash[ReminderOff] = -1; // OFF. + mReminderHash[ReminderAtStart] = 0; + mReminderHash[Reminder15MinsBefore] = 15; + mReminderHash[Reminder30MinsBefore] = 30; + mReminderHash[Reminder1HourBefore] = 60; + // Set reference date to start date or repeat until date accordingly to // decide whether its a past event or not. QDate referenceDate; @@ -151,6 +187,7 @@ referenceDate = mCalenEditor->editedEntry()->startTime().date(); } else { referenceDate = mCalenEditor->editedEntry()->repeatRule().until().date(); + repeatingEntry = true; } if ((referenceDate < QDate::currentDate()) || @@ -163,39 +200,55 @@ if (mCalenEditor->isAllDayEvent()) { updateReminderChoicesForAllDay(referenceDate); } else { + if((referenceDate == QDate::currentDate()) + && !pastEvent) { + UpdateReminderChoicesForSameDay(mCalenEditor->editedEntry()->startTime().time()); + sameDay = true; + } + else { setReminderChoices(); + } } // Set the default reminder value to 15 minutes if (newEntry) { if (!pastEvent) { - mReminderItem->setContentWidgetData("currentIndex", 2); + int defaultIndex = Reminder15MinsBefore; + if (reminderItemsCount() == (ReminderAtStart + 1)) //If 15MinsBefore option is not available + defaultIndex = ReminderAtStart; + + setCurrentIndex(defaultIndex); // Save the reminder alarm for the entry - reminder.setTimeOffset(mReminderHash.value(2)); + reminder.setTimeOffset(mReminderHash.value(defaultIndex)); reminder.setAlarmSoundName(QString(" ")); // Set the reminder to the entry as well as original entry. mCalenEditor->editedEntry()->setAlarm(reminder); mCalenEditor->originalEntry()->setAlarm(reminder); } else { - mReminderItem->setContentWidgetData("currentIndex", 0); - mReminderItem->setEnabled(false); + setReminderOff(); } } else { + int offsetInMins = mCalenEditor->editedEntry()->alarm().timeOffset(); // If the alarm is not null, // Check if all day event or not and then set the choices accordingly. if (mCalenEditor->editedEntry()->alarm().isNull()) { // Alarm is set off - mReminderItem->setContentWidgetData("currentIndex", ReminderOff); + setCurrentIndex(ReminderOff); if(mReminderTimeAdded) { removeReminderTimeField(); } } else if (!mCalenEditor->isAllDayEvent()) { - // Get the reminder offset value. - int reminderOffset = - mCalenEditor->editedEntry()->alarm().timeOffset(); - // Get the index value for the reminder combo box from the hash - // table. - int index = mReminderHash.key(reminderOffset); - mReminderItem->setContentWidgetData("currentIndex", index); + QTime currentTime = QTime::currentTime(); + + //TODO: Still need confirmation for proper behaviour when entry is edited after alarm has expired. + if (!repeatingEntry && sameDay && (currentTime.addSecs(offsetInMins * 60) >= mCalenEditor->editedEntry()->startTime().time())) { + setCurrentIndex(ReminderOff); //Alarm has expired already, so making it off. + //The slot for index 0 is not called, since after UpdateReminderChoicesForSameDay() + //index is 0 itself and there is no change. So explicitly calling it here. + handleReminderIndexChanged(0); + } + else { + setSavedMeetingReminderIndex(); + } } else { // Insert reminder time field and display entry's reminder time. // If past then disable the field. @@ -205,24 +258,9 @@ if (pastEvent && mReminderTimeAdded) { mCustomReminderTimeItem->setEnabled(false); } - QTime referenceTime(0, 0, 0); - // Set the appropriate reminder depending on the value of time offset. - reminder = mCalenEditor->editedEntry()->alarm(); - int offsetInMins = reminder.timeOffset(); - if (offsetInMins < 0 || offsetInMins == 0) { - mReminderItem->setContentWidgetData("currentIndex", ReminderOnEventDay); - mReminderTimeForAllDay = referenceTime.addSecs(-(offsetInMins - * 60)); - } else if (offsetInMins <= numberOfMinutesInADay) { - mReminderItem->setContentWidgetData("currentIndex", ReminderOneDayBefore); - mReminderTimeForAllDay = referenceTime.addSecs(-(offsetInMins - * 60)); - } else { - mReminderItem->setContentWidgetData("currentIndex", ReminderTwoDaysBefore); - offsetInMins %= (24 * 60); - mReminderTimeForAllDay = referenceTime.addSecs(-(offsetInMins - * 60)); - } + // Get the appropriate reminder index depending on the value of time offset. + int index = getReminderIndexBasedOnEntryAlarm(); + mReminderItem->setContentWidgetData("currentIndex", index); setDisplayTime(); } if (pastEvent) { @@ -236,7 +274,7 @@ } /*! - Triggerd from tapping on reminder item. + Triggered from tapping on reminder item. Handles the reminder time change and updates the same in the event. \param index The new index chosen in the reminder list. */ @@ -262,7 +300,7 @@ reminder.setAlarmSoundName(QString(" ")); } } else { - QDateTime reminderDateTimeForAllDay; + QDateTime reminderDateTimeForAllDay; QDateTime startDateTimeForAllDay( mCalenEditor->editedEntry()->startTime().date(), @@ -278,16 +316,21 @@ offset = 2; } if(!mReminderTimeAdded) { - insertReminderTimeField() -; } + insertReminderTimeField(); + } // If on same day as that of the event then check if time has been // changed , if changed retain that else set default time. if (offset == 0) { if(mReminderTimeForAllDay == QTime(18, 0, 0, 0)) { mReminderTimeForAllDay.setHMS(8, 0, 0); - setDisplayTime(); } + }else { + // For the reminder options other than ReminderOnEventDay + // reset the default values since the time set for one option + // may not be valid for the other option + mReminderTimeForAllDay.setHMS(18, 0, 0, 0); } + setDisplayTime(); reminderDateTimeForAllDay.setDate( mCalenEditor->editedEntry()->startTime().date().addDays( -offset)); @@ -363,6 +406,78 @@ } /*! + Update the reminder choices when the meeting is on same day, + based on the time available from current time to start time of the event. + */ +void CalenEditorReminderField::UpdateReminderChoicesForSameDay(QTime startTime) +{ + QTime currentTime = QTime::currentTime(); + int offset = currentTime.secsTo(startTime); + + // Disconnect the slot and connect it back again at end to avoid unnecessary + // calls to handleReminderIndexChanged slot. Or else the slot gets called + // when we add all of items to the repeat combobox. + mEditorForm->removeConnection(mReminderItem, + SIGNAL(currentIndexChanged(int)), this, + SLOT(handleReminderIndexChanged(int))); + + //The event start time is within 15mins from current time of today, + //then we cannot have alarms "15 mins before", "30mins before" and "1 hour before" + if (offset <= SecsIn15Mins) + { + QStringList reminderChoices; + //First to clear all items, we just set items with empty list. + mReminderItem->setContentWidgetData("items", reminderChoices); + reminderChoices << hbTrId("txt_calendar_setlabel_reminder_val_off") + << hbTrId("txt_calendar_setlabel_reminder_val_at_the_start"); + mReminderItem->setContentWidgetData("items", reminderChoices); + } + //The event start time is within half and hour from current time of today + //then we cannot have alarms "30mins before" and "1 hour before" + else if (offset <= SecsIn30Mins) + { + QStringList reminderChoices; + //First to clear all items, we just set items with empty list. + mReminderItem->setContentWidgetData("items", reminderChoices); + reminderChoices << hbTrId("txt_calendar_setlabel_reminder_val_off") + << hbTrId("txt_calendar_setlabel_reminder_val_at_the_start") + << hbTrId("txt_calendar_setlabel_reminder_val_15_minutes_befo"); + mReminderItem->setContentWidgetData("items", reminderChoices); + } + //The event start time is within an hour of the current time of today, + //then cannot have alarm "1 hour before". + else if (offset <= SecsInOneHour) + { + QStringList reminderChoices; + //First to clear all items, we just set items with empty list. + mReminderItem->setContentWidgetData("items", reminderChoices); + reminderChoices << hbTrId("txt_calendar_setlabel_reminder_val_off") + << hbTrId("txt_calendar_setlabel_reminder_val_at_the_start") + << hbTrId("txt_calendar_setlabel_reminder_val_15_minutes_befo") + << hbTrId("txt_calendar_setlabel_reminder_val_30_minutes_befo"); + mReminderItem->setContentWidgetData("items", reminderChoices); + } + // The event start time is more than one hour from current time + // then we can have all choices for alarm. + else + { + QStringList reminderChoices; + //First to clear all items, we just set items with empty list. + mReminderItem->setContentWidgetData("items", reminderChoices); + reminderChoices << hbTrId("txt_calendar_setlabel_reminder_val_off") + << hbTrId("txt_calendar_setlabel_reminder_val_at_the_start") + << hbTrId("txt_calendar_setlabel_reminder_val_15_minutes_befo") + << hbTrId("txt_calendar_setlabel_reminder_val_30_minutes_befo") + << hbTrId("txt_calendar_setlabel_reminder_val_1_hour_before"); + mReminderItem->setContentWidgetData("items", reminderChoices); + } + mReminderItem->setEnabled(true); + mEditorForm->addConnection(mReminderItem, + SIGNAL(currentIndexChanged(int)), this, + SLOT(handleReminderIndexChanged(int))); +} + +/*! Updates the reminder choices for an all day event. \param referenceDate to indicate past or not. */ @@ -372,69 +487,91 @@ if (!mReminderTimeAdded){ insertReminderTimeField(); } + // This functions rearranges the reminder options based on the date and time + // To avoid the unecessary call to handleReminderIndexChanged + // the connection is removed. + mEditorForm->removeConnection(mReminderItem, + SIGNAL(currentIndexChanged(int)), this, + SLOT(handleReminderIndexChanged(int))); + + // Since the combox box is not updated as per the current datetime + // there can be a conflict between the previousIndex set on the combobox + // and the actual index. This comes while populating an existing entry. + // So the index has to be taken from the entry alarm + + AgendaAlarm actualAlarm = mCalenEditor->editedEntry()->alarm(); + // Get the actual alarm index from the entry alarm which is been set + int actualIndex = getReminderIndexBasedOnEntryAlarm(); + int offsetInMins = actualAlarm.timeOffset(); + + // Calculate the alarm time + QDateTime alarmDateTime; + alarmDateTime.setDate(referenceDate); + alarmDateTime.setTime(mCalenEditor->editedEntry()->startTime().time()); + QTime checkTime = alarmDateTime.time().addSecs(-(offsetInMins * 60)); + alarmDateTime.setTime(checkTime); + + // The combox is updated based on the reference date which is beed passed. + // And the reminder time has to be set acoordingly QStringList reminderChoicesForAllDay; QDate tomorrow = QDate::currentDate().addDays(1); QDate theDayAfterTomorrow = QDate::currentDate().addDays(2); - - // Get the previous index to retain if the alarm is valid - QVariant countVariant = mReminderItem->contentWidgetData("currentIndex"); - int previousIndex = countVariant.toInt(); - AgendaAlarm previousAlarm = mCalenEditor->editedEntry()->alarm(); - - // Update the reminder choices only if the alarm set is not valid - // Get the alarm offset to check for the validity - int offset = mCalenEditor->editedEntry()->alarm().timeOffset(); - bool update = true; - - // Calculate the alarm time - QDateTime refDateTime; - refDateTime.setDate(referenceDate); - refDateTime.setTime(mCalenEditor->editedEntry()->startTime().time()); - QTime checkTime = refDateTime.time().addSecs(-(offset * 60)); - refDateTime.setTime(checkTime); - // Check for valid alarm offset - if(offset >= 0) { - // If the alarm which was already set is valid, - // then dont update the reminder choices - if ((refDateTime > QDateTime::currentDateTime()) || - (refDateTime.date() == QDate::currentDate() && ( - refDateTime.time() > QTime::currentTime()))) { - update = false; - } - } + // If the event is on a past date the default alarm will be off. if (referenceDate < QDate::currentDate() || referenceDate == QDate::currentDate()) { // Set reminder off for past event. reminderChoicesForAllDay << hbTrId("txt_calendar_setlabel_reminder_val_off"); mReminderItem->setContentWidgetData(QString("items"), - reminderChoicesForAllDay); + reminderChoicesForAllDay); mReminderItem->setEnabled(false); // Remove the reminder field if it was added if(mReminderTimeAdded) { removeReminderTimeField(); } - } else if (theDayAfterTomorrow < referenceDate || - theDayAfterTomorrow == referenceDate) { + } else if (theDayAfterTomorrow < referenceDate) { // If the event is on a future date which is two days after the current date // The options are off, on event day, 1 day before and 2 days before reminderChoicesForAllDay + << hbTrId("txt_calendar_setlabel_reminder_val_off") + << hbTrId("txt_calendar_setlabel_reminder_val_on_event_day") + << hbTrId("txt_calendar_setlabel_reminder_val_1_day_before") + << hbTrId("txt_calendar_setlabel_reminder_val_2_days_before"); + mReminderItem->setEnabled(true); + mCustomReminderTimeItem->setEnabled(true); + mReminderItem->setContentWidgetData(QString("items"), + reminderChoicesForAllDay); + } else if (theDayAfterTomorrow == referenceDate) { + // If the event is on a future date which is two days after the current date + // If the current time is before 6.00 pm (default for 2 days before) + // The options are off, on event day, 1 day before and 2 days before + if (QTime::currentTime() < QTime(18, 0, 0, 0)) { + reminderChoicesForAllDay << hbTrId("txt_calendar_setlabel_reminder_val_off") << hbTrId("txt_calendar_setlabel_reminder_val_on_event_day") << hbTrId("txt_calendar_setlabel_reminder_val_1_day_before") << hbTrId("txt_calendar_setlabel_reminder_val_2_days_before"); + }else { + // If the event is on a future date which is two days after the current date + // the current time is after 6.00 pm (default for 2 days before) + // If its after the default time don't show the 2 days before option + reminderChoicesForAllDay + << hbTrId("txt_calendar_setlabel_reminder_val_off") + << hbTrId("txt_calendar_setlabel_reminder_val_on_event_day") + << hbTrId("txt_calendar_setlabel_reminder_val_1_day_before"); + } mReminderItem->setEnabled(true); mCustomReminderTimeItem->setEnabled(true); mReminderItem->setContentWidgetData(QString("items"), - reminderChoicesForAllDay); - } else if (QTime::currentTime() < QTime(18, 0, 0, 0)) { + reminderChoicesForAllDay); + }else if (QTime::currentTime() < QTime(18, 0, 0, 0)) { // If the event is on a future date which is one day after the current date // and current time is before 6.00 pm. // The options are off, on event day and 1 day before reminderChoicesForAllDay - << hbTrId("txt_calendar_setlabel_reminder_val_off") - << hbTrId("txt_calendar_setlabel_reminder_val_on_event_day") - << hbTrId("txt_calendar_setlabel_reminder_val_1_day_before"); + << hbTrId("txt_calendar_setlabel_reminder_val_off") + << hbTrId("txt_calendar_setlabel_reminder_val_on_event_day") + << hbTrId("txt_calendar_setlabel_reminder_val_1_day_before"); mReminderItem->setEnabled(true); mCustomReminderTimeItem->setEnabled(true); mReminderItem->setContentWidgetData(QString("items"), @@ -444,52 +581,87 @@ // and current time is after 6.00 pm. // The options are off and on event day reminderChoicesForAllDay - << hbTrId("txt_calendar_setlabel_reminder_val_off") - << hbTrId("txt_calendar_setlabel_reminder_val_on_event_day"); + << hbTrId("txt_calendar_setlabel_reminder_val_off") + << hbTrId("txt_calendar_setlabel_reminder_val_on_event_day"); mReminderItem->setEnabled(true); mCustomReminderTimeItem->setEnabled(true); mReminderItem->setContentWidgetData(QString("items"), reminderChoicesForAllDay); } - // Set the proper index based on the validity of the previous index + // Get the count of the reminder options after the rearrangement + // based on the date and time int count = reminderItemsCount(); - // By default, in case of reminder updation, its been agreed to set - // ReminderOneDayBefore even though ReminderTwoDaysBefore holds good - // If the ReminderOneDayBefore option is available set it or - // else set it to ReminderOff - if(count > ReminderOneDayBefore) { - // Don't make the reminder off since - // the valid reminder options are there in the combobox - // So check for ReminderOff is needed - if (update && - (previousIndex == ReminderOff || previousIndex >= ReminderOneDayBefore)) { - // If the index has to be updated check the previous index value - // And set the default reminder as 1 day before. - mReminderItem->setContentWidgetData("currentIndex", - ReminderOneDayBefore); - }else { - // Set the previous index since the alarm is valid - mReminderItem->setContentWidgetData("currentIndex", previousIndex); - // Set the previous alarm also as the value will be changed to default value - // when the current index is been changed - mCalenEditor->editedEntry()->setAlarm(previousAlarm); + // Set the reminder index + + if (count <= actualIndex || + alarmDateTime < QDateTime::currentDateTime() || + actualIndex == ReminderOff) { + // This will be executed when the actual index is not + // available in the combobox or the alarm time is already passed + // or the actual alarm is off + // So set it as off + mReminderItem->setContentWidgetData("currentIndex", ReminderOff); + actualAlarm = AgendaAlarm(); + mCalenEditor->editedEntry()->setAlarm(actualAlarm); + removeReminderTimeField(); + }else { + // Set the actual reminder index + mReminderItem->setContentWidgetData("currentIndex", actualIndex); + if( actualIndex != ReminderOff) { + if(!mReminderTimeAdded) { + insertReminderTimeField(); + } + mCalenEditor->editedEntry()->setAlarm(actualAlarm); // Get the alarm time from the offset - QTime alarmTime = refDateTime.time(); + QTime alarmTime = alarmDateTime.time(); // Set the alarm time and display it on the button mReminderTimeForAllDay.setHMS( alarmTime.hour(),alarmTime.minute(),alarmTime.second()); setDisplayTime(); + }else { + actualAlarm = AgendaAlarm(); + removeReminderTimeField(); } - }else { - // Enters this condition if the previous index set is not valid or - // the index is ReminderOff - mReminderItem->setContentWidgetData("currentIndex", ReminderOff); } - + // Connect the slot for the index change + mEditorForm->addConnection(mReminderItem, + SIGNAL(currentIndexChanged(int)), this, + SLOT(handleReminderIndexChanged(int))); + OstTraceFunctionExit0( CALENEDITORREMINDERFIELD_UPDATEREMINDERCHOICESFORALLDAY_EXIT ); } /*! + Gets the reminder index for all day events based on the alarm + which is saved for the entry + */ +int CalenEditorReminderField::getReminderIndexBasedOnEntryAlarm() +{ + // Get the appropriate reminder index depending on the value of time offset. + AgendaAlarm actualAlarm = mCalenEditor->editedEntry()->alarm(); + QTime referenceTime(0, 0, 0); + int index = ReminderOff; + int offsetInMins = actualAlarm.timeOffset(); + if(offsetInMins == -1) { + index = ReminderOff; + }else if (offsetInMins < 0 || offsetInMins == 0) { + index = ReminderOnEventDay; + mReminderTimeForAllDay = referenceTime.addSecs(-(offsetInMins + * 60)); + } else if (offsetInMins <= numberOfMinutesInADay) { + index = ReminderOneDayBefore; + mReminderTimeForAllDay = referenceTime.addSecs(-(offsetInMins + * 60)); + } else { + index = ReminderTwoDaysBefore; + offsetInMins %= (24 * 60); + mReminderTimeForAllDay = referenceTime.addSecs(-(offsetInMins + * 60)); + } + return index; +} + +/*! Insert the reminder time field for an all day event. */ void CalenEditorReminderField::insertReminderTimeField() @@ -571,11 +743,29 @@ HbExtendedLocale locale = HbExtendedLocale::system(); mTimePicker = new HbDateTimePicker(mReminderTimeForAllDay); + // Set the display format if(locale.timeStyle() == HbExtendedLocale::Time12) { mTimePicker->setDisplayFormat("hh:mm ap"); }else { mTimePicker->setDisplayFormat("hh:mm"); } + + // Check if the entry is repeating based on the repeatuntil item + if(!mCalenEditor->isRepeatUntilItemAdded()) { + int index = currentReminderIndex(); + QDate checkDate = mCalenEditor->editedEntry()->startTime().date(); + // Restrict the time picker to show the valid time + // depending on the reminder options + // Take an offset of 5 mins + QTime minTime = QTime::currentTime().addSecs(5 * 60); + if(index == ReminderTwoDaysBefore && checkDate.addDays(-2) == QDate::currentDate()) { + mTimePicker->setMinimumTime(minTime); + }else if(index == ReminderOneDayBefore && checkDate.addDays(-1) == QDate::currentDate()) { + mTimePicker->setMinimumTime(minTime); + }else if(index == ReminderOnEventDay && checkDate == QDate::currentDate()) { + mTimePicker->setMinimumTime(minTime); + } + } mTimePicker->setTime(mReminderTimeForAllDay); popUp->setContentWidget(mTimePicker); @@ -598,7 +788,28 @@ if (mReminderTimeForAllDay.isValid()) { // Change the time displayed to that selected by the user. setDisplayTime(); - handleReminderIndexChanged(currentReminderIndex()); + int offset = 0; + if (currentReminderIndex() == ReminderOneDayBefore) { + offset = 1; + } else if (currentReminderIndex() == ReminderTwoDaysBefore) { + offset = 2; + } + QDateTime startDateTimeForAllDay( + mCalenEditor->editedEntry()->startTime().date(), QTime(0, 0, 0)); + QDateTime reminderDateTimeForAllDay; + reminderDateTimeForAllDay.setDate( + mCalenEditor->editedEntry()->startTime().date().addDays( + -offset)); + reminderDateTimeForAllDay.setTime(mReminderTimeForAllDay); + int seconds = + reminderDateTimeForAllDay.secsTo(startDateTimeForAllDay); + int timeOffset = seconds / 60; + mCustomReminderTimeItem->setEnabled(true); + AgendaAlarm reminder; + reminder.setTimeOffset(timeOffset); + reminder.setAlarmSoundName(QString(" ")); + // Set the reminder to the entry. + mCalenEditor->editedEntry()->setAlarm(reminder); } OstTraceFunctionExit0( CALENEDITORREMINDERFIELD_SETREMINDERTIMEFORALLDAY_EXIT ); } diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/caleneditor/src/caleneditorrepeatfield.cpp --- a/calendarui/caleneditor/src/caleneditorrepeatfield.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/caleneditor/src/caleneditorrepeatfield.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -32,6 +32,7 @@ // User Included #include "caleneditorrepeatfield.h" #include "caleneditorcustomitem.h" +#include "caleneditorreminderfield.h" #include "calendateutils.h" #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE @@ -400,6 +401,18 @@ // the reminder choices are updated if(repeatPropertyChange || repeatUntilDate != mRepeatUntilDate) { mCalenEditor->updateReminderChoices(); + // Once the entry is changed from non repeating to repeating + // and if the alarm set is off + // Then change the reminder option to the default 'one day before' + // if the option is valid + if (mCalenEditor->isAllDayEvent() && + repeatPropertyChange && mRepeatUntilItemAdded) { + if(!mCalenEditor->isReminderTimeForAllDayAdded() && + mCalenEditor->getReminderCount() >= 3) { + mCalenEditor->setCurrentIndexOfReminderField( + CalenEditorReminderField::ReminderOneDayBefore); + } + } } OstTraceFunctionExit0( CALENEDITORREPEATFIELD_HANDLEREPEATINDEXCHANGED_EXIT ); } @@ -523,6 +536,8 @@ void CalenEditorRepeatField::setRepeatUntilDate() { OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_SETREPEATUNTILDATE_ENTRY ); + //Get the previous date which was set + QDate previousDate = mRepeatUntilDate; mRepeatUntilDate = mDatePicker->date(); if (mRepeatUntilDate.isValid()) { HbExtendedLocale locale = HbExtendedLocale::system(); @@ -531,6 +546,18 @@ mCustomRepeatUntilItem->setContentWidgetData("text", dateString); } mCalenEditor->updateReminderChoices(); + // If the entry's repeatuntil date is changed from past to a future date + // And if the alarm set set is off + // Then change the reminder option to the default 'one day before' + // if the option is valid + if (mCalenEditor->isAllDayEvent() && previousDate <= QDate::currentDate()) { + if(mRepeatUntilDate > QDate::currentDate() && + !mCalenEditor->isReminderTimeForAllDayAdded() && + mCalenEditor->getReminderCount() >= 3) { + mCalenEditor->setCurrentIndexOfReminderField( + CalenEditorReminderField::ReminderOneDayBefore); + } + } OstTraceFunctionExit0( CALENEDITORREPEATFIELD_SETREPEATUNTILDATE_EXIT ); } diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/controller/src/calenviewmanager.cpp --- a/calendarui/controller/src/calenviewmanager.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/controller/src/calenviewmanager.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -258,6 +258,9 @@ Q_ASSERT_X(mCalenMonthView, "calenviewmanager.cpp", "Unable to load calenMonth view"); + // Set the parent to delete the view once will exit the application + mCalenMonthView->setParent(this); + // Setup the month view. mCalenMonthView->setupView(mMonthViewDocLoader); @@ -290,6 +293,9 @@ qFatal("calenviewmanager.cpp : Unable to find agenda view"); } + // Set the parent to delete the view once will exit the application + mCalenAgendaView->setParent(this); + // Setup the agenda view mCalenAgendaView->setupView(mAgendaViewDocLoader); @@ -326,6 +332,9 @@ qFatal("calenviewmanager.cpp : Unable to find day view"); } + // Set the parent to delete the view once will exit the application + mCalenDayView->setParent(this); + // Set up the day view - day view takes the ownership mCalenDayView->setupView(docLoader); } @@ -689,6 +698,9 @@ qFatal("calenviewmanager.cpp : Unable to find alternate agenda view"); } + // Set the parent to delete the view once will exit the application + mCalenAgendaViewAlt->setParent(this); + // Setup the agenda view mCalenAgendaViewAlt->setupView(mAgendaViewAltDocLoader); OstTraceFunctionExit0( CALENVIEWMANAGER_LOADALTERNATEAGENDAVIEW_EXIT ); @@ -952,6 +964,9 @@ else if (mCalenAgendaView && currentview == mCalenAgendaView) { mCalenAgendaView->doPopulation(); } + else if (mCalenDayView && currentview == mCalenDayView) { + mCalenDayView->doPopulation(); + } // Calls the emitAppReady function of CalenController. Need to emit this // signal after the view is fully constructed & populated // with actual data and ready to be used. So entry view & instance view diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/regionalplugins/calenregionalutil/calenregionalutil.pro --- a/calendarui/regionalplugins/calenregionalutil/calenregionalutil.pro Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/regionalplugins/calenregionalutil/calenregionalutil.pro Tue Aug 31 18:15:13 2010 +0530 @@ -44,7 +44,7 @@ ./src/calenlunarinfoprovider.cpp \ ./src/calenlunarlocalizedinfo.cpp \ ./src/calenlunarlocalizer.cpp \ - ./src/calensolarterms.cpp \ + ./src/calensolarterms.cpp diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/regionalplugins/calenregionalutil/eabi/calenregionalutilu.def --- a/calendarui/regionalplugins/calenregionalutil/eabi/calenregionalutilu.def Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/regionalplugins/calenregionalutil/eabi/calenregionalutilu.def Tue Aug 31 18:15:13 2010 +0530 @@ -1,27 +1,41 @@ EXPORTS _ZN15TCalenLunarInfo10AnimalYearEv @ 1 NONAME - _ZN20CCalenLunarLocalizer10ConstructLEv @ 2 NONAME - _ZN20CCalenLunarLocalizer16GetExtraRowTextLER24CCalenLunarLocalizedInfo @ 3 NONAME - _ZN20CCalenLunarLocalizer4NewLEv @ 4 NONAME - _ZN20CCalenLunarLocalizer9LocalizeLER15TCalenLunarInfo @ 5 NONAME - _ZN20CCalenLunarLocalizerC1Ev @ 6 NONAME - _ZN20CCalenLunarLocalizerC2Ev @ 7 NONAME - _ZN20CCalenLunarLocalizerD0Ev @ 8 NONAME - _ZN20CCalenLunarLocalizerD1Ev @ 9 NONAME - _ZN20CCalenLunarLocalizerD2Ev @ 10 NONAME - _ZN23CCalenExtraRowFormatter26FormatExtraRowInformationLER24CCalenLunarLocalizedInfoR6RArrayINS0_6TFieldEE @ 11 NONAME - _ZN23CCalenExtraRowFormatter4NewLEv @ 12 NONAME - _ZN23CCalenExtraRowFormatterD0Ev @ 13 NONAME - _ZN23CCalenExtraRowFormatterD1Ev @ 14 NONAME - _ZN23CCalenExtraRowFormatterD2Ev @ 15 NONAME - _ZN23CCalenLunarInfoProvider13GetLunarInfoLERK5TTime @ 16 NONAME - _ZN23CCalenLunarInfoProvider4NewLER3RFs @ 17 NONAME - _ZN23CCalenLunarInfoProviderD0Ev @ 18 NONAME - _ZN23CCalenLunarInfoProviderD1Ev @ 19 NONAME - _ZN23CCalenLunarInfoProviderD2Ev @ 20 NONAME - _ZN24CCalenLunarLocalizedInfo4NewLEv @ 21 NONAME - _ZN24CCalenLunarLocalizedInfo8GetFieldENS_6TFieldE @ 22 NONAME - _ZN24CCalenLunarLocalizedInfoD0Ev @ 23 NONAME - _ZN24CCalenLunarLocalizedInfoD1Ev @ 24 NONAME - _ZN24CCalenLunarLocalizedInfoD2Ev @ 25 NONAME + _ZN15TCalenLunarInfo11HasFestivalEv @ 2 NONAME + _ZN15TCalenLunarInfo12HasSolarTermEv @ 3 NONAME + _ZN16CCalenSolarTerms19CheckSolarTermDateLERK9TDateTime @ 4 NONAME + _ZN16CCalenSolarTerms4NewLER3RFs @ 5 NONAME + _ZN16CCalenSolarTermsD0Ev @ 6 NONAME + _ZN16CCalenSolarTermsD1Ev @ 7 NONAME + _ZN16CCalenSolarTermsD2Ev @ 8 NONAME + _ZN20CCalenLunarLocalizer10ConstructLEv @ 9 NONAME + _ZN20CCalenLunarLocalizer16GetExtraRowTextLER24CCalenLunarLocalizedInfo @ 10 NONAME + _ZN20CCalenLunarLocalizer4NewLEv @ 11 NONAME + _ZN20CCalenLunarLocalizer9LocalizeLER15TCalenLunarInfo @ 12 NONAME + _ZN20CCalenLunarLocalizerC1Ev @ 13 NONAME + _ZN20CCalenLunarLocalizerC2Ev @ 14 NONAME + _ZN20CCalenLunarLocalizerD0Ev @ 15 NONAME + _ZN20CCalenLunarLocalizerD1Ev @ 16 NONAME + _ZN20CCalenLunarLocalizerD2Ev @ 17 NONAME + _ZN23CCalenExtraRowFormatter26FormatExtraRowInformationLER24CCalenLunarLocalizedInfoR6RArrayINS0_6TFieldEE @ 18 NONAME + _ZN23CCalenExtraRowFormatter4NewLEv @ 19 NONAME + _ZN23CCalenExtraRowFormatterD0Ev @ 20 NONAME + _ZN23CCalenExtraRowFormatterD1Ev @ 21 NONAME + _ZN23CCalenExtraRowFormatterD2Ev @ 22 NONAME + _ZN23CCalenLunarInfoProvider13GetLunarInfoLERK5TTime @ 23 NONAME + _ZN23CCalenLunarInfoProvider4NewLER3RFs @ 24 NONAME + _ZN23CCalenLunarInfoProviderD0Ev @ 25 NONAME + _ZN23CCalenLunarInfoProviderD1Ev @ 26 NONAME + _ZN23CCalenLunarInfoProviderD2Ev @ 27 NONAME + _ZN24CCalenLunarLocalizedInfo10AnimalYearEv @ 28 NONAME + _ZN24CCalenLunarLocalizedInfo13FullLunarDateEv @ 29 NONAME + _ZN24CCalenLunarLocalizedInfo13GregorianDateEv @ 30 NONAME + _ZN24CCalenLunarLocalizedInfo16LunarMonthAndDayEv @ 31 NONAME + _ZN24CCalenLunarLocalizedInfo4NewLEv @ 32 NONAME + _ZN24CCalenLunarLocalizedInfo8FestivalEv @ 33 NONAME + _ZN24CCalenLunarLocalizedInfo8GetFieldENS_6TFieldE @ 34 NONAME + _ZN24CCalenLunarLocalizedInfo9LunarYearEv @ 35 NONAME + _ZN24CCalenLunarLocalizedInfo9SolarTermEv @ 36 NONAME + _ZN24CCalenLunarLocalizedInfoD0Ev @ 37 NONAME + _ZN24CCalenLunarLocalizedInfoD1Ev @ 38 NONAME + _ZN24CCalenLunarLocalizedInfoD2Ev @ 39 NONAME diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/regionalplugins/calenregionalutil/inc/calenlunarlocalizedinfo.h --- a/calendarui/regionalplugins/calenregionalutil/inc/calenlunarlocalizedinfo.h Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/regionalplugins/calenregionalutil/inc/calenlunarlocalizedinfo.h Tue Aug 31 18:15:13 2010 +0530 @@ -51,13 +51,13 @@ */ IMPORT_C const TDesC& GetField( TField aField ); - IMPORT_C const TDesC& Festival() { return iFestival; } - IMPORT_C const TDesC& SolarTerm() { return iSolarTerm; } - IMPORT_C const TDesC& FullLunarDate() { return iFullLunarDate; } - IMPORT_C const TDesC& LunarYear() { return iLunarYear; } - IMPORT_C const TDesC& LunarMonthAndDay() { return iLunarMonthAndDay; } - IMPORT_C const TDesC& AnimalYear() { return iAnimalYear; } - IMPORT_C const TDesC& GregorianDate() { return iGregorianDate; } + IMPORT_C const TDesC& Festival(); + IMPORT_C const TDesC& SolarTerm(); + IMPORT_C const TDesC& FullLunarDate(); + IMPORT_C const TDesC& LunarYear(); + IMPORT_C const TDesC& LunarMonthAndDay(); + IMPORT_C const TDesC& AnimalYear(); + IMPORT_C const TDesC& GregorianDate(); private: CCalenLunarLocalizedInfo(); diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/regionalplugins/calenregionalutil/src/calenlunarlocalizedinfo.cpp --- a/calendarui/regionalplugins/calenregionalutil/src/calenlunarlocalizedinfo.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/regionalplugins/calenregionalutil/src/calenlunarlocalizedinfo.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -99,3 +99,80 @@ } } +// ----------------------------------------------------------------------------- +// CCalenLunarLocalizedInfo::Festival +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CCalenLunarLocalizedInfo::Festival() + { + OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_FESTIVAL_ENTRY ); + OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_FESTIVAL_EXIT ); + return iFestival; + } + +// ----------------------------------------------------------------------------- +// CCalenLunarLocalizedInfo::SolarTerm +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CCalenLunarLocalizedInfo::SolarTerm() + { + OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_SOLARTERM_ENTRY ); + OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_SOLARTERM_EXIT ); + return iSolarTerm; + } + +// ----------------------------------------------------------------------------- +// CCalenLunarLocalizedInfo::FullLunarDate +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CCalenLunarLocalizedInfo::FullLunarDate() + { + OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_FULLLUNARDATE_ENTRY ); + OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_FULLLUNARDATE_EXIT ); + return iFullLunarDate; + } + +// ----------------------------------------------------------------------------- +// CCalenLunarLocalizedInfo::LunarYear +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CCalenLunarLocalizedInfo::LunarYear() + { + OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_LUNARYEAR_ENTRY ); + OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_LUNARYEAR_EXIT ); + return iLunarYear; + } + +// ----------------------------------------------------------------------------- +// CCalenLunarLocalizedInfo::LunarMonthAndDay +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CCalenLunarLocalizedInfo::LunarMonthAndDay() + { + OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_LUNARMONTHANDDAY_ENTRY ); + OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_LUNARMONTHANDDAY_EXIT ); + return iLunarMonthAndDay; + } + +// ----------------------------------------------------------------------------- +// CCalenLunarLocalizedInfo::AnimalYear +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CCalenLunarLocalizedInfo::AnimalYear() + { + OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_ANIMALYEAR_ENTRY ); + OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_ANIMALYEAR_EXIT ); + return iAnimalYear; + } + +// ----------------------------------------------------------------------------- +// CCalenLunarLocalizedInfo::GregorianDate +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CCalenLunarLocalizedInfo::GregorianDate() + { + OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_GREGORIANDATE_ENTRY ); + OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_GREGORIANDATE_EXIT ); + return iGregorianDate; + } + diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/regionalplugins/calenregionalutil/traces/calenlunarlocalizedinfoTraces.h --- a/calendarui/regionalplugins/calenregionalutil/traces/calenlunarlocalizedinfoTraces.h Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/regionalplugins/calenregionalutil/traces/calenlunarlocalizedinfoTraces.h Tue Aug 31 18:15:13 2010 +0530 @@ -16,6 +16,20 @@ #define CCALENLUNARLOCALIZEDINFO_CONSTRUCTL_EXIT 0x8a002d #define CCALENLUNARLOCALIZEDINFO_GETFIELD_ENTRY 0x8a002e #define CCALENLUNARLOCALIZEDINFO_GETFIELD_EXIT 0x8a002f +#define CCALENLUNARLOCALIZEDINFO_FESTIVAL_ENTRY 0x8a0054 +#define CCALENLUNARLOCALIZEDINFO_FESTIVAL_EXIT 0x8a0055 +#define CCALENLUNARLOCALIZEDINFO_SOLARTERM_ENTRY 0x8a0056 +#define CCALENLUNARLOCALIZEDINFO_SOLARTERM_EXIT 0x8a0057 +#define CCALENLUNARLOCALIZEDINFO_FULLLUNARDATE_ENTRY 0x8a0058 +#define CCALENLUNARLOCALIZEDINFO_FULLLUNARDATE_EXIT 0x8a0059 +#define CCALENLUNARLOCALIZEDINFO_LUNARYEAR_ENTRY 0x8a005a +#define CCALENLUNARLOCALIZEDINFO_LUNARYEAR_EXIT 0x8a005b +#define CCALENLUNARLOCALIZEDINFO_LUNARMONTHANDDAY_ENTRY 0x8a005c +#define CCALENLUNARLOCALIZEDINFO_LUNARMONTHANDDAY_EXIT 0x8a005d +#define CCALENLUNARLOCALIZEDINFO_ANIMALYEAR_ENTRY 0x8a005e +#define CCALENLUNARLOCALIZEDINFO_ANIMALYEAR_EXIT 0x8a005f +#define CCALENLUNARLOCALIZEDINFO_GREGORIANDATE_ENTRY 0x8a0060 +#define CCALENLUNARLOCALIZEDINFO_GREGORIANDATE_EXIT 0x8a0061 #endif diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/regionalplugins/calenregionalutil/traces/fixed_id.definitions --- a/calendarui/regionalplugins/calenregionalutil/traces/fixed_id.definitions Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/regionalplugins/calenregionalutil/traces/fixed_id.definitions Tue Aug 31 18:15:13 2010 +0530 @@ -16,14 +16,28 @@ [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARINFOPROVIDER_GETLUNARINFOL_EXIT=0x25 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARINFOPROVIDER_NEWL_ENTRY=0x1c [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARINFOPROVIDER_NEWL_EXIT=0x1d +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_ANIMALYEAR_ENTRY=0x5e +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_ANIMALYEAR_EXIT=0x5f [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_CCALENLUNARLOCALIZEDINFO_ENTRY=0x28 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_CCALENLUNARLOCALIZEDINFO_EXIT=0x29 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_CONSTRUCTL_ENTRY=0x2c [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_CONSTRUCTL_EXIT=0x2d +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_FESTIVAL_ENTRY=0x54 +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_FESTIVAL_EXIT=0x55 +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_FULLLUNARDATE_ENTRY=0x58 +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_FULLLUNARDATE_EXIT=0x59 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_GETFIELD_ENTRY=0x2e [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_GETFIELD_EXIT=0x2f +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_GREGORIANDATE_ENTRY=0x60 +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_GREGORIANDATE_EXIT=0x61 +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_LUNARMONTHANDDAY_ENTRY=0x5c +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_LUNARMONTHANDDAY_EXIT=0x5d +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_LUNARYEAR_ENTRY=0x5a +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_LUNARYEAR_EXIT=0x5b [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_NEWL_ENTRY=0x26 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_NEWL_EXIT=0x27 +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_SOLARTERM_ENTRY=0x56 +[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_SOLARTERM_EXIT=0x57 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZER_CCALENLUNARLOCALIZER_ENTRY=0x32 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZER_CCALENLUNARLOCALIZER_EXIT=0x33 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZER_CONSTRUCTL_ENTRY=0x36 diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/regionalplugins/lunarchinese/bwins/calenlunarchinesepluginu.def --- a/calendarui/regionalplugins/lunarchinese/bwins/calenlunarchinesepluginu.def Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/regionalplugins/lunarchinese/bwins/calenlunarchinesepluginu.def Tue Aug 31 18:15:13 2010 +0530 @@ -1,10 +1,4 @@ EXPORTS ?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * ImplementationGroupProxy(int &) - ?AnimalYear@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 2 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::AnimalYear(void) - ?SolarTerm@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 3 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::SolarTerm(void) - ?GregorianDate@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 4 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::GregorianDate(void) - ?LunarMonthAndDay@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 5 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::LunarMonthAndDay(void) - ?Festival@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 6 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::Festival(void) - ?FullLunarDate@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 7 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::FullLunarDate(void) - ?LunarYear@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 8 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::LunarYear(void) + diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp --- a/calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -208,7 +208,7 @@ void CCalenLunarChinesePlugin::CustomiseMenu(HbMenu* aHbMenu) { OstTraceFunctionEntry0( CCALENLUNARCHINESEPLUGIN_CUSTOMISEMENU_ENTRY ); - HbAction* lunarAction = new HbAction("Show Lunar Data"); + HbAction* lunarAction = new HbAction(hbTrId("txt_calendar_opt_show_lunar_data")); QList actionList = aHbMenu->actions(); TInt count = actionList.count() - 1; //To show the option "show lunar data" //as a second last action item for all diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/bwins/calenviewsu.def --- a/calendarui/views/bwins/calenviewsu.def Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/bwins/calenviewsu.def Tue Aug 31 18:15:13 2010 +0530 @@ -206,4 +206,5 @@ ?handleThemeChange@CalenMonthView@@AAEXXZ @ 205 NONAME ; void CalenMonthView::handleThemeChange(void) ?isHorizontalSwipe@CalenDayContentScrollArea@@ABE_NM@Z @ 206 NONAME ; bool CalenDayContentScrollArea::isHorizontalSwipe(float) const ?handleThemeChange@CalenPreviewPane@@QAEXXZ @ 207 NONAME ; void CalenPreviewPane::handleThemeChange(void) + ?disconnectAboutToQuitEvent@CalenMonthView@@QAEXXZ @ 208 NONAME ; void CalenMonthView::disconnectAboutToQuitEvent(void) diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/dayview/inc/calendaycommonheaders.h --- a/calendarui/views/dayview/inc/calendaycommonheaders.h Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/dayview/inc/calendaycommonheaders.h Tue Aug 31 18:15:13 2010 +0530 @@ -57,6 +57,11 @@ const qreal KCalenTimeStripWidth = 1.5; /*! + The minimum width [un] of time strip (indicator) in event bubble (UI spec) + */ +const qreal KCalenMinTimeStripWidth = 1.4; + +/*! The width [un] of space beetwen event bubbles in Day View (UI spec) */ const qreal KCalenSpaceBeetwenEvents = 1.5; diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/dayview/resources/calendayeventspane.css --- a/calendarui/views/dayview/resources/calendayeventspane.css Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/dayview/resources/calendayeventspane.css Tue Aug 31 18:15:13 2010 +0530 @@ -1,4 +1,4 @@ CalenDayEventsPane { - pref-height: expr(2*var(hb-param-text-height-secondary) + 2*var(hb-param-margin-gene-middle-vertical) + 3un); + pref-height: expr(2*var(hb-param-text-height-secondary) + 2*var(hb-param-margin-gene-middle-vertical) + 4.1un); size-policy-vertical: fixed; } \ No newline at end of file diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/dayview/resources/calendayhourelement.css --- a/calendarui/views/dayview/resources/calendayhourelement.css Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/dayview/resources/calendayhourelement.css Tue Aug 31 18:15:13 2010 +0530 @@ -1,6 +1,6 @@ CalenDayHourElement { layout: customCalendarLayout; - pref-height: expr(2*var(hb-param-text-height-secondary) + 2*var(hb-param-margin-gene-middle-vertical) + 3un); + pref-height: expr(2*var(hb-param-text-height-secondary) + 2*var(hb-param-margin-gene-middle-vertical) + 4.1un); size-policy-vertical: fixed; } @@ -25,6 +25,6 @@ } CalenDayHourElement::bottomSpacer{ - pref-height: 3un; + pref-height: 4.1un; size-policy-vertical: expanding; } \ No newline at end of file diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/dayview/resources/calendayitem.css --- a/calendarui/views/dayview/resources/calendayitem.css Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/dayview/resources/calendayitem.css Tue Aug 31 18:15:13 2010 +0530 @@ -1,12 +1,12 @@ -CalenDayItem{ +CalenDayItem { layout: noIconLayout; } -CalenDayItem[!eventDescription][!backgroundFrame]{ +CalenDayItem[!eventDescription][!backgroundFrame] { layout: noIconNoTextNoBkgLayout; } -CalenDayItem[!eventDescription][backgroundFrame]{ +CalenDayItem[!eventDescription][backgroundFrame] { layout: noIconNoTextLayout; } @@ -20,11 +20,5 @@ } CalenDayItem::colorStripe { - pref-width: 1.5un; - size-policy-horizontal: fixed; + size-policy-horizontal: fixed; } - -CalenDayItem::spacerItem{ - pref-width: 1.5un; - size-policy-horizontal: expanding; -} diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/dayview/src/calendaycontainer.cpp --- a/calendarui/views/dayview/src/calendaycontainer.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/dayview/src/calendaycontainer.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -247,8 +247,8 @@ if (eventWidth - mLayoutValues.eventMargin < minWidth) { // Calculate new margin value - // from totalMarginSpace we need to subtract - // mLayoutValues.eventMargin because first margin is always 1.5un + // from totalMarginSpace we need to subtract mLayoutValues.eventMargin + // because first margin is always KCalenSpaceBeetwenEvents qreal totalMarginSpace = mLayoutValues.eventAreaWidth - minWidth * columns - mLayoutValues.eventMargin; qreal newMarginValue = totalMarginSpace / (columns - 1); @@ -259,8 +259,8 @@ } else { // There's not enough space - // New minWidth is KCalenTimeStripWidth [un] (time stripe only) - minWidth = KCalenTimeStripWidth * mLayoutValues.unitInPixels; + // New minWidth is KCalenMinTimeStripWidth [un] (time stripe only) + minWidth = KCalenMinTimeStripWidth * mLayoutValues.unitInPixels; totalMarginSpace = mLayoutValues.eventAreaWidth - minWidth * columns - mLayoutValues.eventMargin; newMarginValue = totalMarginSpace / (columns - 1); @@ -360,36 +360,39 @@ */ void CalenDayContainer::getTimedEventLayoutValues(LayoutValues& layoutValues) { - // Get the width of content area + // Get the width of entire content area qreal contentWidth = CalenDayUtils::instance()->contentWidth(); - // 1. Time column width -> eventAreaX[out] HbStyle style; HbDeviceProfile deviceProfile; layoutValues.unitInPixels = deviceProfile.unitValue(); + // Empty right column's width + qreal emptyRightColumnWidth = KCalenEmptyRightColumnWidth + * layoutValues.unitInPixels; + + // Margins between the overlapping events -> eventMargin[out] + layoutValues.eventMargin = KCalenSpaceBeetwenEvents + * layoutValues.unitInPixels; + + // Start position (x) for drawing events -> eventAreaX[out] if (mInfo && mInfo->AlldayCount()) { - layoutValues.eventAreaX = KCalenAllDayEventArea * contentWidth; + layoutValues.eventAreaX = KCalenAllDayEventArea * (contentWidth + - emptyRightColumnWidth); } else { layoutValues.eventAreaX = 0; } - // 2. event area width -> eventAreaWidth[out] - qreal emptyRightColumnWidth = KCalenEmptyRightColumnWidth - * layoutValues.unitInPixels; + // Event area width (excluding All Day Events area)-> eventAreaWidth[out] layoutValues.eventAreaWidth = contentWidth - emptyRightColumnWidth - layoutValues.eventAreaX; - // 3. margins between the overlapping events -> eventMargin[out] - layoutValues.eventMargin = KCalenSpaceBeetwenEvents - * layoutValues.unitInPixels; - - // 4. half-hour slot'h height -> slotHeight[out] + // Half-hour slot's height -> slotHeight[out] layoutValues.slotHeight = CalenDayUtils::instance()->hourElementHeight() / KCalenSlotsInHour; - // check if we should create absorber over some overlapping region + // Check if touch absorbers should be created over some overlapping regions layoutValues.maxColumns = layoutValues.eventAreaWidth / ((KCalenMinTouchableEventWidth + KCalenSpaceBeetwenEvents) * layoutValues.unitInPixels); diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/dayview/src/calendaycontentscrollarea.cpp --- a/calendarui/views/dayview/src/calendaycontentscrollarea.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/dayview/src/calendaycontentscrollarea.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -321,7 +321,7 @@ result = HbScrollArea::event(e); // Scroll to middle widget when layout request - if (e->type() == QEvent::LayoutRequest) { + if (e->type() == QEvent::LayoutRequest || e->type() == QEvent::Show) { scrollToMiddleWidget(); } } diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/dayview/src/calendayitem.cpp --- a/calendarui/views/dayview/src/calendayitem.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/dayview/src/calendayitem.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -70,7 +70,7 @@ mFrameMinWidth = KCalenMinEventWidth * deviceProfile.unitValue(); mEventDescMinWidth = KCalenMinTouchableEventWidth * deviceProfile.unitValue(); - + // Minimum width is assured by widgetml and css, additionally called here // to prevent minimum size hint caching inside effectiveSizeHint setMinimumWidth(stripeWidth); @@ -111,10 +111,6 @@ mUpdated = true; } - - //TODO: check if needed - //repolish(); - //HbAbstractViewItem::updateChildItems(); } @@ -215,10 +211,15 @@ qreal width = rect().width(); + HbDeviceProfile deviceProfile; if (width < mEventDescMinWidth) { + mColorStripe->setPreferredWidth(KCalenMinTimeStripWidth + * deviceProfile.unitValue()); mEventDesc->hide(); } else { + mColorStripe->setPreferredWidth(KCalenTimeStripWidth + * deviceProfile.unitValue()); mEventDesc->show(); } diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/dayview/src/calendayutils.cpp --- a/calendarui/views/dayview/src/calendayutils.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/dayview/src/calendayutils.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -203,7 +203,7 @@ qreal textHeight = 0.0; qreal verticalSpacing = 0.0; - qreal bottomSpacer = 3.0 * unitInPixels; + qreal bottomSpacer = 4.1 * unitInPixels; style.parameter(QString("hb-param-text-height-secondary"), textHeight, deviceProfile); style.parameter(QString("hb-param-margin-gene-middle-vertical"), diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/dayview/src/calendayview.cpp --- a/calendarui/views/dayview/src/calendayview.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/dayview/src/calendayview.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -407,7 +407,7 @@ // Set the heading // Append the date which is formatted as per the locale - mHeadingLabel->setHeading(hbTrId("txt_calendar_subhead_1_2").arg(dayString).arg( + mHeadingLabel->setHeading(QString("%1 %2").arg(dayString).arg( systemLocale.format(mDate.date(), r_qtn_date_usual_with_zero))); HbEffect::start(mHeadingLabel, "fadeIn"); diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/eabi/calenviewsu.def --- a/calendarui/views/eabi/calenviewsu.def Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/eabi/calenviewsu.def Tue Aug 31 18:15:13 2010 +0530 @@ -267,4 +267,5 @@ _ZN21CalenThickLinesDrawer17handleThemeChangeEv @ 266 NONAME _ZN16CalenPreviewPane17handleThemeChangeEv @ 267 NONAME _ZNK25CalenDayContentScrollArea17isHorizontalSwipeEf @ 268 NONAME + _ZN14CalenMonthView26disconnectAboutToQuitEventEv @ 269 NONAME diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/inc/calenagendaviewwidget.h --- a/calendarui/views/inc/calenagendaviewwidget.h Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/inc/calenagendaviewwidget.h Tue Aug 31 18:15:13 2010 +0530 @@ -118,11 +118,6 @@ */ bool isAllDayIcon(); - /** - * @brief return true if location is present - */ - bool isLocationData(); - @@ -381,7 +376,6 @@ bool mIconCheck; bool mNextEntry; bool mLeftAllDayIcon; - bool mLocationData; }; diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/inc/caleneventlistviewitem.h --- a/calendarui/views/inc/caleneventlistviewitem.h Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/inc/caleneventlistviewitem.h Tue Aug 31 18:15:13 2010 +0530 @@ -26,7 +26,6 @@ { Q_OBJECT Q_PROPERTY(bool leftAllDayIcon READ hasAllDayIcon WRITE setAllDayLeftIcon) - Q_PROPERTY(bool locationEntry READ locationEntryLayout WRITE setLocationEntry) public: /** @@ -60,19 +59,9 @@ */ void setAllDayLeftIcon(bool icon = false); - /** - * @brief sets location entry status - */ - void setLocationEntry(bool icon); - - /** - * @brief check if location is present - */ - bool locationEntryLayout(); private: CalenAgendaViewWidget* mParent; bool mAllDayIcon ; - bool mLocationEntry; }; #endif // __CALEN_EVENT_LIST_VIEW_ITEM_H__ diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/resources/caleneventlistviewitem.css --- a/calendarui/views/resources/caleneventlistviewitem.css Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/resources/caleneventlistviewitem.css Tue Aug 31 18:15:13 2010 +0530 @@ -1,27 +1,11 @@ -CalenEventListViewItem[leftAllDayIcon="false"]:portrait{ +CalenEventListViewItem[leftAllDayIcon="false"]{ layout: custom; } -CalenEventListViewItem[leftAllDayIcon="false"]:landscape{ - layout: custom; -} - -CalenEventListViewItem[leftAllDayIcon="true"]:portrait{ +CalenEventListViewItem[leftAllDayIcon="true"]{ layout: custom-subjecticon; } -CalenEventListViewItem[leftAllDayIcon="true"]:landscape{ - layout: custom-subjecticon; -} - - -CalenEventListViewItem[locationEntry="true"]:portrait{ - layout: custom-locationentry; -} - -CalenEventListViewItem[locationEntry="true"]:landscape{ - layout: custom-locationentry; -} CalenEventListViewItem::icon-1{ @@ -50,6 +34,7 @@ } CalenEventListViewItem::text-1{ + top: -var(hb-param-margin-gene-top); left: -var(hb-param-margin-gene-left); font-variant: secondary; text-height: var(hb-param-text-height-secondary); @@ -61,19 +46,8 @@ CalenEventListViewItem::text-2{ top: -var(hb-param-margin-gene-top); right: var(hb-param-margin-gene-middle-horizontal); - left: -var(hb-param-margin-gene-middle-horizontal); - font-variant: primary; - text-height: var(hb-param-text-height-primary); - text-align: left; - -} - - -CalenEventListViewItem::text-2[locationEntry="true"]{ - top: -var(hb-param-margin-gene-top); - bottom: var(hb-param-margin-gene-bottom); - right: var(hb-param-margin-gene-middle-horizontal); left: -var(hb-param-margin-gene-middle-horizontal); + bottom:var(hb-param-margin-gene-middle-vertical); font-variant: primary; text-height: var(hb-param-text-height-primary); text-align: left; @@ -82,7 +56,7 @@ CalenEventListViewItem::text-3{ - top: -var(hb-param-margin-gene-middle-vertical); + right: var(hb-param-margin-gene-middle-horizontal); bottom: var(hb-param-margin-gene-bottom); font-variant: secondary; diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/resources/caleneventlistviewitem.widgetml --- a/calendarui/views/resources/caleneventlistviewitem.widgetml Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/resources/caleneventlistviewitem.widgetml Tue Aug 31 18:15:13 2010 +0530 @@ -1,15 +1,15 @@ - - + + - - - - - - - + + + + + + + @@ -18,13 +18,15 @@ - + + - + + - + @@ -40,38 +42,20 @@ - - + + - + - + - + - - - - - - - - - - - - - - - - - - \ No newline at end of file diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/src/calenagendaviewwidget.cpp --- a/calendarui/views/src/calenagendaviewwidget.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/src/calenagendaviewwidget.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -1306,16 +1306,12 @@ entry = mInstanceArray[mIndex]; mLeftAllDayIcon = false; - mLocationData = false; if(!entry.isTimedEntry() || CalenAgendaUtils::isAlldayEvent(entry)){ //all day icon is not there if its a timed entry mLeftAllDayIcon = true; } - - if (!entry.location().isEmpty()) { - mLocationData = true ; - } + //check if shift to next entry if(mNextEntry) mIndex++; @@ -1332,13 +1328,4 @@ return mLeftAllDayIcon; } -// ---------------------------------------------------------------------------- -// CalenAgendaViewWidget::isLocationData -// return true if location entry is present -// ---------------------------------------------------------------------------- -// -bool CalenAgendaViewWidget::isLocationData() - { - return mLocationData; - } // End of file --Don't remove this. diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/src/caleneventlistviewitem.cpp --- a/calendarui/views/src/caleneventlistviewitem.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/src/caleneventlistviewitem.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -31,7 +31,7 @@ // ---------------------------------------------------------------------------- // CalenEventListViewItem::CalenEventListViewItem(CalenAgendaViewWidget *parent) : -HbListViewItem(parent),mAllDayIcon(false),mLocationEntry(false),mParent(parent) +HbListViewItem(parent),mParent(parent),mAllDayIcon(false) { OstTraceFunctionEntry0( CALENEVENTLISTVIEWITEM_CALENEVENTLISTVIEWITEM_ENTRY ); @@ -76,7 +76,6 @@ { mParent->checkEntryIcons(); mAllDayIcon = mParent->isAllDayIcon(); - mLocationEntry = mParent->isLocationData(); } HbListViewItem::updateChildItems(); @@ -104,27 +103,4 @@ mAllDayIcon = icon; } -// ---------------------------------------------------------------------------- -// CalenEventListViewItem::hasAllDayIcon -// check if location entry is there in item -// ---------------------------------------------------------------------------- -// -bool CalenEventListViewItem::locationEntryLayout() - { - if(mAllDayIcon && !mLocationEntry) - return true; - else - return false; - } - -// ---------------------------------------------------------------------------- -// CalenEventListViewItem::setAllDayLeftIcon -// set the location entry status -// ---------------------------------------------------------------------------- -// -void CalenEventListViewItem::setLocationEntry(bool icon) - { - mLocationEntry = icon; - } - // End of file diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/src/calenmonthview.cpp --- a/calendarui/views/src/calenmonthview.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/src/calenmonthview.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -589,12 +589,12 @@ mPrevRegionalInfo = NULL; } if (mCurrRegionalInfo) { - mPrevPaneLayout->removeItem(mCurrRegionalInfo); + mCurrPaneLayout->removeItem(mCurrRegionalInfo); mCurrRegionalInfo->hide(); mCurrRegionalInfo = NULL; } if (mNextRegionalInfo) { - mPrevPaneLayout->removeItem(mNextRegionalInfo); + mNextPaneLayout->removeItem(mNextRegionalInfo); mNextRegionalInfo->hide(); mNextRegionalInfo = NULL; } diff -r a3cb48f6c889 -r 1881ad52dc45 calendarui/views/src/calenpreviewpane.cpp --- a/calendarui/views/src/calenpreviewpane.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/calendarui/views/src/calenpreviewpane.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -127,6 +128,7 @@ // Scroll contents to zero position before we display to the user // if it was scrolling already or timer was running mNumOfScrolls = 0; + mScrollDuration = 0; stopScrolling(); mDate = date; @@ -299,7 +301,13 @@ OstTraceFunctionExit0( CALENPREVIEWPANE_STARTAUTOSCROLL_EXIT ); return; } - + + // Stop the timer + mTwoSecTimer->stop(); + + // Set the proper scroll direction + mScrollDirection = up; + // Start the 2 seconds timer mTwoSecTimer->setSingleShot(true); connect(mTwoSecTimer, SIGNAL(timeout()), this, SLOT(onTwoSecondsTimeout())); @@ -331,13 +339,13 @@ } // Start the scrolling in the proper direction - if (mScrollDirection == up) { + if (mScrollDirection == up && mScrollDuration) { // Start scrolling upwards mScrollDirection = down; mNumOfScrolls++; QPointF targetPos(0.0, -mHtDiff); scrollContentsTo(-targetPos, mScrollDuration * 1000); - } else if (mScrollDirection == down) { + } else if (mScrollDirection == down && mScrollDuration) { mScrollDirection = up; mNumOfScrolls++; // Start scrolling downwards @@ -438,6 +446,9 @@ if (tapGesture && tapGesture->state() == Qt::GestureFinished) { HbInstantFeedback::play(HbFeedback::Basic); // Preview pane tapped + // Stop the scrolling first + stopScrolling(); + // Issue command to launch agenda view mServices.IssueCommandL(ECalenAgendaView); mView->disconnectAboutToQuitEvent(); event->accept(Qt::TapGesture); @@ -466,12 +477,16 @@ { OstTraceFunctionEntry0( CALENPREVIEWPANE_STOPSCROLLING_ENTRY ); - if (isScrolling() || mTwoSecTimer->isActive()) { + mTwoSecTimer->stop(); + if (isScrolling()) { + mNumOfScrolls = 0; // required so that timer will not get started again in + // scrollingFinished() slot + // Stop the scrolling by sending the foucs out event + QFocusEvent* focusEvent = new QFocusEvent(QFocusEvent::FocusOut, Qt::MouseFocusReason); + focusOutEvent(focusEvent); + + // Set the contents position to zero scrollContentsTo(QPointF(0.0,0.0)); - - // Call pan gesture with zero delta just to stop the scfrolling - HbScrollArea::panGesture(QPointF(0.0,0.0)); - mTwoSecTimer->stop(); } OstTraceFunctionExit0( CALENPREVIEWPANE_STOPSCROLLING_EXIT ); diff -r a3cb48f6c889 -r 1881ad52dc45 clock/clockui/clockalarmeditor/src/clockalarmeditor.cpp --- a/clock/clockui/clockalarmeditor/src/clockalarmeditor.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/clock/clockui/clockalarmeditor/src/clockalarmeditor.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -224,6 +224,10 @@ alarmDayIndex -= KDaysInWeek; } } + + if(mAlarmId) { + mAlarmClient.deleteAlarm(mAlarmId); + } setAlarm( mAlarmTimeItem->contentWidgetData("text").toString(), @@ -245,6 +249,9 @@ void ClockAlarmEditor::handleDeleteAction() { OstTraceFunctionEntry0( CLOCKALARMEDITOR_HANDLEDELETEACTION_ENTRY ); + if(mAlarmId) { + mAlarmClient.deleteAlarm(mAlarmId); + } closeAlarmEditor(); OstTraceFunctionExit0( CLOCKALARMEDITOR_HANDLEDELETEACTION_EXIT ); } @@ -696,7 +703,6 @@ // get the alarm details and fill it in mAlarmInfo. if (mAlarmId) { mAlarmClient.getAlarmInfo(mAlarmId, mAlarmInfo); - mAlarmClient.deleteAlarm(mAlarmId); } // Set the value for previous alarm time. diff -r a3cb48f6c889 -r 1881ad52dc45 clock/clockui/clockviews/src/clockworldview.cpp --- a/clock/clockui/clockviews/src/clockworldview.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/clock/clockui/clockviews/src/clockworldview.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -660,25 +660,21 @@ } } else if ( hours ){ - if(hours == 1 ) { - displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_hr"); - offsetString = displayFormat.arg(hours); - offsetDifference += offsetString; + if(hours == 1) { + displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_hr",hours); + offsetDifference += displayFormat; } else { - displayFormat = hbTrId("txt_clock_dblist_val_1_hrs"); - offsetString = displayFormat.arg(hours); - offsetDifference += offsetString; + displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_hr",hours); + offsetDifference += displayFormat; } } else if (minutes){ - displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_mins"); - offsetString = displayFormat.arg(minutes); - offsetDifference += offsetString; + displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_mins",minutes); + offsetDifference += displayFormat; } else { - displayFormat = hbTrId("txt_clock_dblist_val_1_hrs"); - offsetString = displayFormat.arg(0); - offsetDifference += offsetString; + displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_hr",0); + offsetDifference += displayFormat; } displayString.append(offsetDifference); diff -r a3cb48f6c889 -r 1881ad52dc45 organizer_plat/agenda_interface_api/inc/agendautil.h --- a/organizer_plat/agenda_interface_api/inc/agendautil.h Wed Aug 25 14:02:13 2010 +0530 +++ b/organizer_plat/agenda_interface_api/inc/agendautil.h Tue Aug 31 18:15:13 2010 +0530 @@ -21,13 +21,13 @@ // System includes #include #include +#include // User includes #include "agendaentry.h" #include "agendainterfacedefines.h" // Forward declarations -class QDateTime; class AgendaUtilPrivate; class XQCALENDAR_EXPORT AgendaUtil : public QObject @@ -72,7 +72,8 @@ AgendaUtil(QObject* parent = 0); ~AgendaUtil(); - ulong store(AgendaEntry &entry, AgendaUtil::RecurrenceRange range = ThisAndAll); + ulong store(AgendaEntry &entry, AgendaUtil::RecurrenceRange range = ThisAndAll, + QDateTime instanceOriginalDateTime = QDateTime()); ulong cloneEntry(const AgendaEntry& entry, AgendaEntry::Type type); bool deleteEntry(ulong id); void deleteRepeatedEntry( diff -r a3cb48f6c889 -r 1881ad52dc45 organizer_plat/agenda_interface_api/tsrc/unittest_agendautil/src/unittest_agendautil.cpp --- a/organizer_plat/agenda_interface_api/tsrc/unittest_agendautil/src/unittest_agendautil.cpp Wed Aug 25 14:02:13 2010 +0530 +++ b/organizer_plat/agenda_interface_api/tsrc/unittest_agendautil/src/unittest_agendautil.cpp Tue Aug 31 18:15:13 2010 +0530 @@ -51,6 +51,8 @@ void test_fetchEntriesInRange(); void test_cloneEntry(); void test_todoCompleted(); + void test_createExceptionalEntryWithSubjectChange(); + void test_createExceptionalEntryWithStartTimeChange(); private: int createMultipleEntries(); @@ -605,6 +607,153 @@ unCompletedTodo(); } +/* + Test the api AgendaUtil::store for exceptional entry. + */ +void TestAgendaUtil::test_createExceptionalEntryWithSubjectChange() +{ + // Test case setup. + + // Clean up all the entries. + QDateTime startRange(QDate(1900, 01, 1), QTime(0, 0, 0, 0)); + QDateTime endRange(QDate(2100, 12, 30), QTime(23, 59, 59, 0)); + mAgendaUtil->deleteEntries(startRange,endRange); + + // Start the timer as the above operation is asynchronous + if (!mWait) { + QT_TRAP_THROWING(mWait = new (ELeave) CActiveSchedulerWait;); + if (!mWait->IsStarted()) { + mWait->Start(); + } + } + + // Create the repeating entry. + AgendaEntry entry; + entry.setType(AgendaEntry::TypeAppoinment); + entry.setSummary("Test case"); + QDateTime startTime(QDate(2010,1,1),QTime(8,0,0,0)); + QDateTime endTime(QDate(2010,1,1),QTime(9,0,0,0)); + + entry.setStartAndEndTime( + startTime, + endTime); + + AgendaRepeatRule repeatRule; + repeatRule.setType(AgendaRepeatRule::DailyRule); + repeatRule.setRepeatRuleStart(startTime); + QDateTime until(QDate(2010, 2, 3)); + repeatRule.setUntil(until); + repeatRule.setInterval(1); + entry.setRepeatRule(repeatRule); + + ulong id = mAgendaUtil->store(entry); + + // Get the instance and create the exceptional entry by changing the subject + AgendaEntry savedEntry = mAgendaUtil->fetchById(id); + QList entriesRetrieved = + mAgendaUtil->fetchEntriesInRange( + QDateTime(QDate(2010, 1, 2), QTime(8, 0, 0, 0)), + QDateTime(QDate(2010, 1, 2), QTime(9, 0, 0, 0))); + + int numOfEntriesRetrieved = entriesRetrieved.count(); + AgendaEntry modifiedEntry = entriesRetrieved.first(); + // Verify + QVERIFY(id == modifiedEntry.id()); + + modifiedEntry.setSummary("Test case Exceptional"); + + // Run the test case + ulong newId = mAgendaUtil->store( + modifiedEntry, AgendaUtil::ThisOnly, modifiedEntry.startTime()); + + // Verify. + QVERIFY(id != newId); + + entriesRetrieved.clear(); + + // Get the exceptional entry. + AgendaEntry exceptionalEntry = mAgendaUtil->fetchById(newId); + + // Verify. + QCOMPARE(exceptionalEntry.summary(), modifiedEntry.summary()); + QVERIFY(exceptionalEntry.recurrenceId() == modifiedEntry.startTime()); +} + +/*! + Test the api AgendaUtil::store for exceptional entry. + */ +void TestAgendaUtil::test_createExceptionalEntryWithStartTimeChange() +{ + // Test case setup. + + // Clean up all the entries. + QDateTime startRange(QDate(1900, 01, 1), QTime(0, 0, 0, 0)); + QDateTime endRange(QDate(2100, 12, 30), QTime(23, 59, 59, 0)); + mAgendaUtil->deleteEntries(startRange,endRange); + + // Start the timer as the above operation is asynchronous + if (!mWait) { + QT_TRAP_THROWING(mWait = new (ELeave) CActiveSchedulerWait;); + if (!mWait->IsStarted()) { + mWait->Start(); + } + } + + QList allEntries = mAgendaUtil->fetchAllEntries(); + int count = allEntries.count(); + + // Create the repeating entry. + AgendaEntry entry; + entry.setType(AgendaEntry::TypeAppoinment); + entry.setSummary("Test case"); + QDateTime startTime(QDate(2010,2,1),QTime(8,0,0,0)); + QDateTime endTime(QDate(2010,2,1),QTime(9,0,0,0)); + + entry.setStartAndEndTime(startTime, endTime); + + AgendaRepeatRule repeatRule; + repeatRule.setType(AgendaRepeatRule::DailyRule); + repeatRule.setRepeatRuleStart(startTime); + QDateTime until(QDate(2010, 3, 3)); + repeatRule.setUntil(until); + repeatRule.setInterval(1); + entry.setRepeatRule(repeatRule); + + ulong id = mAgendaUtil->store(entry); + + // Get the instance and create the exceptional entry by changing the subject + AgendaEntry savedEntry = mAgendaUtil->fetchById(id); + QList entriesRetrieved = + mAgendaUtil->fetchEntriesInRange( + QDateTime(QDate(2010, 2, 2), QTime(8, 0, 0, 0)), + QDateTime(QDate(2010, 2, 2), QTime(9, 0, 0, 0))); + + int numOfEntriesRetrieved = entriesRetrieved.count(); + AgendaEntry modifiedEntry = entriesRetrieved.first(); + AgendaEntry originalEntry = modifiedEntry; + // Verify + QVERIFY(id == modifiedEntry.id()); + + QDateTime modifiedStartTime(QDate(2010,2,1),QTime(8,0,0,0)); + QDateTime modifiedEndTime(QDate(2010,2,1),QTime(9,0,0,0)); + modifiedEntry.setStartAndEndTime(modifiedStartTime, modifiedStartTime); + + // Run the test case + ulong newId = mAgendaUtil->store( + modifiedEntry, AgendaUtil::ThisOnly, originalEntry.startTime()); + + // Verify. + QVERIFY(id != newId); + + entriesRetrieved.clear(); + + // Get the exceptional entry. + AgendaEntry exceptionalEntry = mAgendaUtil->fetchById(newId); + + // Verify. + QVERIFY(exceptionalEntry.recurrenceId() == originalEntry.startTime()); +} + /*! Slot to listen for the completion of deleting the entries asynchronously. */