# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1283448323 -10800 # Node ID a5a1242fd2e84967b09375f4e8b05c9e8f1f4936 # Parent ef813d54df514af1801edd259ac5b93d6c48cecd Revision: 201033 Kit: 201035 diff -r ef813d54df51 -r a5a1242fd2e8 agendainterface/agendautil/bwins/agendainterfaceu.def --- a/agendainterface/agendautil/bwins/agendainterfaceu.def Wed Aug 18 09:47:38 2010 +0300 +++ b/agendainterface/agendautil/bwins/agendainterfaceu.def Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 agendainterface/agendautil/eabi/agendainterfaceu.def --- a/agendainterface/agendautil/eabi/agendainterfaceu.def Wed Aug 18 09:47:38 2010 +0300 +++ b/agendainterface/agendautil/eabi/agendainterfaceu.def Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 agendainterface/agendautil/inc/agendautil_p.h --- a/agendainterface/agendautil/inc/agendautil_p.h Wed Aug 18 09:47:38 2010 +0300 +++ b/agendainterface/agendautil/inc/agendautil_p.h Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 agendainterface/agendautil/src/agendautil.cpp --- a/agendainterface/agendautil/src/agendautil.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/agendainterface/agendautil/src/agendautil.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 agendainterface/agendautil/src/agendautil_p.cpp --- a/agendainterface/agendautil/src/agendautil_p.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/agendainterface/agendautil/src/agendautil_p.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 alarmui/alarmalertwidget/alarmalertplugin/data/xml/alarmalert_calendar_unlocked.docml --- a/alarmui/alarmalertwidget/alarmalertplugin/data/xml/alarmalert_calendar_unlocked.docml Wed Aug 18 09:47:38 2010 +0300 +++ b/alarmui/alarmalertwidget/alarmalertplugin/data/xml/alarmalert_calendar_unlocked.docml Thu Sep 02 20:25:23 2010 +0300 @@ -7,6 +7,8 @@ + + @@ -14,100 +16,124 @@ - - - + + + - - - - + + - - - - - - - + + + - - + + - - - - - - - - + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + - - - -
-
- - + + + + + + + + + + - + + + + + - - - + + +
+
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- + + - diff -r ef813d54df51 -r a5a1242fd2e8 alarmui/alarmalertwidget/alarmalertplugin/data/xml/alarmalert_clock_unlocked.docml --- a/alarmui/alarmalertwidget/alarmalertplugin/data/xml/alarmalert_clock_unlocked.docml Wed Aug 18 09:47:38 2010 +0300 +++ b/alarmui/alarmalertwidget/alarmalertplugin/data/xml/alarmalert_clock_unlocked.docml Thu Sep 02 20:25:23 2010 +0300 @@ -16,14 +16,15 @@ + - + - + @@ -33,6 +34,7 @@ + @@ -41,15 +43,15 @@ - + - + diff -r ef813d54df51 -r a5a1242fd2e8 alarmui/alarmalertwidget/alarmalertplugin/data/xml/alarmalert_todo_unlocked.docml --- a/alarmui/alarmalertwidget/alarmalertplugin/data/xml/alarmalert_todo_unlocked.docml Wed Aug 18 09:47:38 2010 +0300 +++ b/alarmui/alarmalertwidget/alarmalertplugin/data/xml/alarmalert_todo_unlocked.docml Thu Sep 02 20:25:23 2010 +0300 @@ -24,14 +24,16 @@ - + + + @@ -40,15 +42,15 @@ - + - + diff -r ef813d54df51 -r a5a1242fd2e8 alarmui/alarmalertwidget/alarmalertplugin/inc/alarmalertwidget_p.h --- a/alarmui/alarmalertwidget/alarmalertplugin/inc/alarmalertwidget_p.h Wed Aug 18 09:47:38 2010 +0300 +++ b/alarmui/alarmalertwidget/alarmalertplugin/inc/alarmalertwidget_p.h Thu Sep 02 20:25:23 2010 +0300 @@ -18,6 +18,7 @@ // System includes #include +#include #include #include #include @@ -215,19 +216,19 @@ * @var mAlarmDescription * @brief Points to the alarm description label */ - HbLabel *mAlarmDescription; + QPointer mAlarmDescription; /** * @var mAlarmDateTime * @brief Points to the alarm expiry time label */ - HbLabel *mAlarmDateTime; + QPointer mAlarmDateTime; /** * @var mAlarmIcon * @brief Points to the alarm icon label */ - HbLabel *mAlarmIcon; + QPointer mAlarmIcon; /** * @var mMainWindow diff -r ef813d54df51 -r a5a1242fd2e8 alarmui/alarmalertwidget/alarmalertplugin/src/alarmalertwidget_p.cpp --- a/alarmui/alarmalertwidget/alarmalertplugin/src/alarmalertwidget_p.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/alarmui/alarmalertwidget/alarmalertplugin/src/alarmalertwidget_p.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -417,12 +417,6 @@ qFatal("Unable to find the alarmDate label"); } alarmDate->setPlainText(mAlarmDate); - HbLabel *alarmDateNonTimed = qobject_cast ( - mAlertDocLoader->findWidget("nonTimedAlarmDate")); - if (!alarmDateNonTimed) { - qFatal("Unable to find the nonTimedAlarmDate label"); - } - alarmDateNonTimed->hide(); }else { mAlertDocLoader->load( alarmNormalUICalendarDocml, "nonTimedAlarm",&success); @@ -440,13 +434,7 @@ if (!alarmDate) { qFatal("Unable to find the alarmDate label"); } - alarmDate->hide(); - HbLabel *alarmDateNonTimed = qobject_cast ( - mAlertDocLoader->findWidget("nonTimedAlarmDate")); - if (!alarmDateNonTimed) { - qFatal("Unable to find the alarmDateNonTimed label"); - } - alarmDateNonTimed->setPlainText(mAlarmDate); + alarmDate->setPlainText(mAlarmDate); } QGraphicsWidget *headingWidget = mAlertDocLoader->findWidget("heading"); diff -r ef813d54df51 -r a5a1242fd2e8 calendarengines/agnversit2/inc/CleanupPointerArray.inl --- a/calendarengines/agnversit2/inc/CleanupPointerArray.inl Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarengines/agnversit2/inc/CleanupPointerArray.inl Thu Sep 02 20:25:23 2010 +0300 @@ -35,7 +35,7 @@ @internalTechnology */ template -inline void TCleanupPointerArray::ResetAndDestroy(TAny* aPtr) +inline void TCleanupPointerArray::ResetAndDestroy(TAny* aPtr) { reinterpret_cast(aPtr)->ResetAndDestroy(); } diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/agendaeventviewer/bwins/agendaeventvieweru.def --- a/calendarui/agendaeventviewer/bwins/agendaeventvieweru.def Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/agendaeventviewer/bwins/agendaeventvieweru.def Thu Sep 02 20:25:23 2010 +0300 @@ -1,8 +1,10 @@ EXPORTS - ?view@AgendaEventViewer@@QAEXVAgendaEntry@@W4Actions@1@@Z @ 1 NONAME ; void AgendaEventViewer::view(class AgendaEntry, enum AgendaEventViewer::Actions) - ?view@AgendaEventViewer@@QAEXABVQFile@@W4Actions@1@@Z @ 2 NONAME ; void AgendaEventViewer::view(class QFile const &, enum AgendaEventViewer::Actions) - ??1AgendaEventViewer@@UAE@XZ @ 3 NONAME ; AgendaEventViewer::~AgendaEventViewer(void) - ??0AgendaEventViewer@@QAE@PAVAgendaUtil@@PAVQObject@@@Z @ 4 NONAME ; AgendaEventViewer::AgendaEventViewer(class AgendaUtil *, class QObject *) - ?view@AgendaEventViewer@@QAEXKW4Actions@1@@Z @ 5 NONAME ; void AgendaEventViewer::view(unsigned long, enum AgendaEventViewer::Actions) - ??0AgendaEventViewer@@QAE@PAVQObject@@@Z @ 6 NONAME ; AgendaEventViewer::AgendaEventViewer(class QObject *) + ?view@AgendaEventViewer@@QAEXABVQFile@@W4Actions@1@@Z @ 1 NONAME ; void AgendaEventViewer::view(class QFile const &, enum AgendaEventViewer::Actions) + ??1AgendaEventViewer@@UAE@XZ @ 2 NONAME ; AgendaEventViewer::~AgendaEventViewer(void) + ?saveAndCloseEditor@AgendaEventViewer@@QAEXXZ @ 3 NONAME ; void AgendaEventViewer::saveAndCloseEditor(void) + ?view@AgendaEventViewer@@QAEXVAgendaEntry@@W4Actions@1@@Z @ 4 NONAME ; void AgendaEventViewer::view(class AgendaEntry, enum AgendaEventViewer::Actions) + ??0AgendaEventViewer@@QAE@PAVAgendaUtil@@PAVQObject@@@Z @ 5 NONAME ; AgendaEventViewer::AgendaEventViewer(class AgendaUtil *, class QObject *) + ?closeAgendaEventView@AgendaEventViewer@@QAEXXZ @ 6 NONAME ; void AgendaEventViewer::closeAgendaEventView(void) + ?view@AgendaEventViewer@@QAEXKW4Actions@1@@Z @ 7 NONAME ; void AgendaEventViewer::view(unsigned long, enum AgendaEventViewer::Actions) + ??0AgendaEventViewer@@QAE@PAVQObject@@@Z @ 8 NONAME ; AgendaEventViewer::AgendaEventViewer(class QObject *) diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/agendaeventviewer/eabi/agendaeventvieweru.def --- a/calendarui/agendaeventviewer/eabi/agendaeventvieweru.def Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/agendaeventviewer/eabi/agendaeventvieweru.def Thu Sep 02 20:25:23 2010 +0300 @@ -1,12 +1,14 @@ EXPORTS - _ZN17AgendaEventViewer4viewE11AgendaEntryNS_7ActionsE @ 1 NONAME - _ZN17AgendaEventViewer4viewERK5QFileNS_7ActionsE @ 2 NONAME - _ZN17AgendaEventViewer4viewEmNS_7ActionsE @ 3 NONAME - _ZN17AgendaEventViewerC1EP10AgendaUtilP7QObject @ 4 NONAME - _ZN17AgendaEventViewerC1EP7QObject @ 5 NONAME - _ZN17AgendaEventViewerC2EP10AgendaUtilP7QObject @ 6 NONAME - _ZN17AgendaEventViewerC2EP7QObject @ 7 NONAME - _ZN17AgendaEventViewerD0Ev @ 8 NONAME - _ZN17AgendaEventViewerD1Ev @ 9 NONAME - _ZN17AgendaEventViewerD2Ev @ 10 NONAME + _ZN17AgendaEventViewer18saveAndCloseEditorEv @ 1 NONAME + _ZN17AgendaEventViewer20closeAgendaEventViewEv @ 2 NONAME + _ZN17AgendaEventViewer4viewE11AgendaEntryNS_7ActionsE @ 3 NONAME + _ZN17AgendaEventViewer4viewERK5QFileNS_7ActionsE @ 4 NONAME + _ZN17AgendaEventViewer4viewEmNS_7ActionsE @ 5 NONAME + _ZN17AgendaEventViewerC1EP10AgendaUtilP7QObject @ 6 NONAME + _ZN17AgendaEventViewerC1EP7QObject @ 7 NONAME + _ZN17AgendaEventViewerC2EP10AgendaUtilP7QObject @ 8 NONAME + _ZN17AgendaEventViewerC2EP7QObject @ 9 NONAME + _ZN17AgendaEventViewerD0Ev @ 10 NONAME + _ZN17AgendaEventViewerD1Ev @ 11 NONAME + _ZN17AgendaEventViewerD2Ev @ 12 NONAME diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/agendaeventviewer/inc/agendaeventview.h --- a/calendarui/agendaeventviewer/inc/agendaeventview.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/agendaeventviewer/inc/agendaeventview.h Thu Sep 02 20:25:23 2010 +0300 @@ -50,7 +50,19 @@ AgendaEventView( AgendaEventViewerPrivate *owner, QObject *parent=0); virtual ~AgendaEventView(); - +public: + + /* + * forcefully closing the editor. + * should be call if view is open, + */ + void saveAndCloseEditor(); + + /* + * forcefully closing the view. + * should be call if view is open, + */ + void closeAgendaEventView(); private: void execute(AgendaEntry entry, AgendaEventViewer::Actions action); void addViewerData(); @@ -125,6 +137,7 @@ QTimer *mProgressTimer; int mProgressIconCount; bool mMaptileStatusReceived; + bool mCalenEditorClosed ; int mMaptileStatus; bool mNotesPluginLoaded; diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/agendaeventviewer/inc/agendaeventviewer.h --- a/calendarui/agendaeventviewer/inc/agendaeventviewer.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/agendaeventviewer/inc/agendaeventviewer.h Thu Sep 02 20:25:23 2010 +0300 @@ -63,6 +63,10 @@ AGENDAEVENTVIEWER_EXPORT void view(AgendaEntry entry, Actions action = ActionNothing); + AGENDAEVENTVIEWER_EXPORT void saveAndCloseEditor(); + + AGENDAEVENTVIEWER_EXPORT void closeAgendaEventView(); + signals: void viewingCompleted(const QDate date = QDate()); void editingStarted(); diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/agendaeventviewer/inc/agendaeventviewer_p.h --- a/calendarui/agendaeventviewer/inc/agendaeventviewer_p.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/agendaeventviewer/inc/agendaeventviewer_p.h Thu Sep 02 20:25:23 2010 +0300 @@ -43,6 +43,18 @@ void view(const ulong id, AgendaEventViewer::Actions action); void view(const QFile &fileHandle, AgendaEventViewer::Actions action); void view(AgendaEntry entry, AgendaEventViewer::Actions action); + + /** + * close the editor and save the entry + * should be call if editor is open + */ + void saveAndCloseEditor(); + + /** + * close agenda event view + * should be call if agenda eevent view is open + */ + void closeAgendaEventView(); private slots: void viewingCompleted(const QDate date); diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/agendaeventviewer/src/agendaeventview.cpp --- a/calendarui/agendaeventviewer/src/agendaeventview.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/agendaeventviewer/src/agendaeventview.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -94,7 +94,8 @@ mProgressIconCount(0), mMaptileStatusReceived(false), mMaptileStatus(-1), - mNotesPluginLoaded(false) + mNotesPluginLoaded(false), + mCalenEditorClosed(true) { OstTraceFunctionEntry0( AGENDAEVENTVIEW_AGENDAEVENTVIEW_ENTRY ); mTranslator->loadCommon(); @@ -1110,7 +1111,7 @@ connect(mCalenEditor, SIGNAL(dialogClosed()), this, SLOT(handleCalendarEditorClosed())); mCalenEditor->edit(mAgendaEntry, false); - + mCalenEditorClosed = false; } OstTraceFunctionExit0( AGENDAEVENTVIEW_EDIT_EXIT ); @@ -1276,6 +1277,7 @@ OstTraceFunctionEntry0( AGENDAEVENTVIEW_HANDLECALENDAREDITORCLOSED_ENTRY ); // Cleanup. + mCalenEditorClosed = true; mCalenEditor->deleteLater(); mOwner->editingCompleted(); @@ -1493,4 +1495,36 @@ OstTraceFunctionExit0( AGENDAEVENTVIEW_CHANGEDORIENTATION_EXIT ); } +/*! + Close the editor and save the entry. + should be call if editor is open + */ +void AgendaEventView::saveAndCloseEditor() +{ + if(mCalenEditorClosed){ + QObject *plugin = qobject_cast ( + mNotesEditorPluginLoader->instance()); + + NotesEditorInterface* interface = + qobject_cast(plugin); + + + interface->close(NotesEditorInterface::CloseWithSave ,mOwner->mAgendaUtil); + + } + else{ + if(mCalenEditor){ + mCalenEditor->saveAndCloseEditor(); + } + } +} + +/*! + Close the view . + should be call if view is open + */ +void AgendaEventView::closeAgendaEventView() +{ + close(); +} // End of file diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/agendaeventviewer/src/agendaeventviewer.cpp --- a/calendarui/agendaeventviewer/src/agendaeventviewer.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/agendaeventviewer/src/agendaeventviewer.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -147,4 +147,22 @@ OstTraceFunctionExit0( DUP2_AGENDAEVENTVIEWER_VIEW_EXIT ); } +/*! + save the entry and close the editor +*/ +void AgendaEventViewer::saveAndCloseEditor() +{ + d_ptr->saveAndCloseEditor(); +} + + +/*! + close the aganda event view +*/ +void AgendaEventViewer::closeAgendaEventView() +{ + d_ptr->closeAgendaEventView(); +} + + // End of file diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/agendaeventviewer/src/agendaeventviewer_p.cpp --- a/calendarui/agendaeventviewer/src/agendaeventviewer_p.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/agendaeventviewer/src/agendaeventviewer_p.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -275,4 +275,25 @@ mAction = AgendaEventViewer::ActionNothing; OstTraceFunctionExit0( AGENDAEVENTVIEWERPRIVATE_VIEWCREATIONCOMPLETED_EXIT ); } + +// ---------------------------------------------------------------------------- +// AgendaEventViewerPrivate::saveAndCloseEditor +// save the entry and close the editor +// ---------------------------------------------------------------------------- +// +void AgendaEventViewerPrivate::saveAndCloseEditor() +{ + mAgendaEventView->saveAndCloseEditor(); +} + + +// ---------------------------------------------------------------------------- +// AgendaEventViewerPrivate::closeAgendaEventView +// close the agenda event view +// ---------------------------------------------------------------------------- +// +void AgendaEventViewerPrivate::closeAgendaEventView() +{ + mAgendaEventView->closeAgendaEventView(); +} // End of file diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/caleneditor/data/caleneditor.qrc --- a/calendarui/caleneditor/data/caleneditor.qrc Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/caleneditor/data/caleneditor.qrc Thu Sep 02 20:25:23 2010 +0300 @@ -1,6 +1,6 @@ caleneditorview.docml - caleneditorlocationitem.docml + caleneditorcustomitem.css diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/caleneditor/data/caleneditorcustomitem.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/caleneditor/data/caleneditorcustomitem.css Thu Sep 02 20:25:23 2010 +0300 @@ -0,0 +1,22 @@ +CalenEditorCustomItem[!hasIcon][expandItem]:landscape +{ + layout:layout_portrait_without_icon; +} + +CalenEditorCustomItem[hasIcon][expandItem]:landscape +{ + layout:layout_portrait_with_icon; +} + +CalenEditorCustomItem[expandItem]::dataItem_Label:landscape +{ + size-policy-horizontal:preferred; +} + +CalenEditorCustomItem[expandItem]::DataItem_ContentWidget:landscape +{ + top: -var(hb-param-margin-gene-top); + left:-var(hb-param-margin-gene-left); + right:var(hb-param-margin-gene-right); + bottom:var(hb-param-margin-gene-bottom); +} \ No newline at end of file diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/caleneditor/data/caleneditorlocationitem.docml --- a/calendarui/caleneditor/data/caleneditorlocationitem.docml Wed Aug 18 09:47:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/caleneditor/inc/caleneditor_p.h --- a/calendarui/caleneditor/inc/caleneditor_p.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/caleneditor/inc/caleneditor_p.h Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/caleneditor/inc/caleneditorcommon.h --- a/calendarui/caleneditor/inc/caleneditorcommon.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/caleneditor/inc/caleneditorcommon.h Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/caleneditor/inc/caleneditorreminderfield.h --- a/calendarui/caleneditor/inc/caleneditorreminderfield.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/caleneditor/inc/caleneditorreminderfield.h Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/caleneditor/src/caleneditor_p.cpp --- a/calendarui/caleneditor/src/caleneditor_p.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/caleneditor/src/caleneditor_p.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/caleneditor/src/caleneditorcustomitem.cpp --- a/calendarui/caleneditor/src/caleneditorcustomitem.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/caleneditor/src/caleneditorcustomitem.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -72,6 +73,7 @@ mRequestPending(false) { OstTraceFunctionEntry0( CALENEDITORCUSTOMITEM_CALENEDITORCUSTOMITEM_ENTRY ); + HbStyleLoader::registerFilePath(":/xml"); mMinDate = CalenDateUtils::minTime().date(); mMaxDate = CalenDateUtils::maxTime().date(); mMinTime.setHMS(0,0,0,0); @@ -114,22 +116,43 @@ switch (itemType) { case CustomWidgetFrom: { - HbWidget *widgetTop = new HbWidget(); - QGraphicsLinearLayout *layoutTop = - new QGraphicsLinearLayout(Qt::Horizontal); - widgetTop->setLayout(layoutTop); + // Set the property so that the custom item layout + // will be the same for both portrait and landscape + setProperty("expandItem", true); + // Create the widget + HbWidget *widgetTop = new HbWidget(); + QGraphicsLinearLayout *layoutTop = + new QGraphicsLinearLayout(Qt::Horizontal); + layoutTop->setContentsMargins(0, 0, 0, 0); + + widgetTop->setLayout(layoutTop); + + // Set the button spacing. + HbDeviceProfile deviceProfile; + // The layout guide specifies the spacing as 2 u. + qreal spacing = deviceProfile.unitValue() * 2 ; + layoutTop->setSpacing(spacing); + // Calculate the button width. + qreal right = 0.0; + qreal left = 0.0; + style()->parameter("hb-param-margin-gene-right", right); + style()->parameter("hb-param-margin-gene-left", left); + qreal screenWidth = 0.0; + style()->parameter("hb-param-screen-short-edge", screenWidth); + qreal buttonWidth = (screenWidth - right - left - spacing) / 2; mPushButtonTime = new HbPushButton(); + mPushButtonTime->setPreferredWidth(buttonWidth); mPushButtonTime->setObjectName("startTime"); connect(mPushButtonTime, SIGNAL(clicked()), - this, SLOT(handleTime())); + this, SLOT(handleTime())); layoutTop->addItem(mPushButtonTime); - mPushButtonDate = - new HbPushButton(); + mPushButtonDate = new HbPushButton(); + mPushButtonDate->setPreferredWidth(buttonWidth); mPushButtonDate->setObjectName("startDate"); connect(mPushButtonDate, SIGNAL(clicked()), - this, SLOT(handleDate())); + this, SLOT(handleDate())); layoutTop->addItem(mPushButtonDate); OstTraceFunctionExit0( CALENEDITORCUSTOMITEM_CREATECUSTOMWIDGET_EXIT ); return widgetTop; @@ -138,72 +161,103 @@ case CustomWidgetTo: { - HbWidget *widgetBottom = new HbWidget(); - QGraphicsLinearLayout *layoutBottom = - new QGraphicsLinearLayout(Qt::Horizontal); - widgetBottom->setLayout(layoutBottom); + // Set the property so that the custom item layout + // will be the same for both portrait and landscape + setProperty("expandItem", true); + // Create the widget + HbWidget *widgetBottom = new HbWidget(); + + QGraphicsLinearLayout *layoutBottom = + new QGraphicsLinearLayout(Qt::Horizontal); + layoutBottom->setContentsMargins(0, 0, 0, 0); + widgetBottom->setLayout(layoutBottom); - mPushButtonTime = new HbPushButton(this); - mPushButtonTime->setObjectName("endTime"); - connect(mPushButtonTime, SIGNAL(clicked()), - this, SLOT(handleTime())); - layoutBottom->addItem(mPushButtonTime); - - mPushButtonDate = new HbPushButton(this); - mPushButtonDate->setObjectName("endDate"); - connect(mPushButtonDate, SIGNAL(clicked()), - this, SLOT(handleDate())); - layoutBottom->addItem(mPushButtonDate); + // Set the button spacing. + HbDeviceProfile deviceProfile; + // The layout guide specifies the spacing as 2 u. + qreal spacing = deviceProfile.unitValue() * 2 ; + layoutBottom->setSpacing(spacing); + // Calculate the button width. + qreal right = 0.0; + qreal left = 0.0; + style()->parameter("hb-param-margin-gene-right", right); + style()->parameter("hb-param-margin-gene-left", left); + qreal screenWidth = 0.0; + style()->parameter("hb-param-screen-short-edge", screenWidth); + qreal buttonWidth = (screenWidth - right - left - spacing) / 2; + + mPushButtonTime = new HbPushButton(this); + mPushButtonTime->setPreferredWidth(buttonWidth); + mPushButtonTime->setObjectName("endTime"); + connect(mPushButtonTime, SIGNAL(clicked()), + this, SLOT(handleTime())); + layoutBottom->addItem(mPushButtonTime); + + mPushButtonDate = new HbPushButton(this); + mPushButtonDate->setPreferredWidth(buttonWidth); + mPushButtonDate->setObjectName("endDate"); + connect(mPushButtonDate, SIGNAL(clicked()), + this, SLOT(handleDate())); + layoutBottom->addItem(mPushButtonDate); OstTraceFunctionExit0( DUP1_CALENEDITORCUSTOMITEM_CREATECUSTOMWIDGET_EXIT ); - return widgetBottom; + return widgetBottom; } case CustomWidgetLocation: { - CalenEditorDocLoader editorLocationDocLoader; - bool loadSuccess = false; - - editorLocationDocLoader.load(CALEN_EDITOR_LOCATION_XML_FILE, - &loadSuccess); - Q_ASSERT_X(loadSuccess, "caleneditor.cpp", - "Unable to load caleneditor location view XML"); - HbWidget* widgetLocation = qobject_cast ( - editorLocationDocLoader.findWidget(CALEN_EDITOR_LOCATION)); - - mLocationLineEdit = qobject_cast( - editorLocationDocLoader.findWidget( - CALEN_EDITOR_LOCATION_LINEEDIT)); + setProperty("expandItem", false); + HbWidget *widgetLocation = new HbWidget(); + QGraphicsLinearLayout *layoutLocation = + new QGraphicsLinearLayout(Qt::Horizontal); + layoutLocation->setContentsMargins(0, 0, 0, 0); + widgetLocation->setLayout(layoutLocation); + + // Set the spacing between LineEdit and PushButton + qreal spacing = 0.0; + style()->parameter( + "hb-param-margin-gene-middle-horizontal", spacing); + layoutLocation->setSpacing(spacing); + + mLocationLineEdit = new HbLineEdit(this); mLocationLineEdit->setObjectName("locationLineEdit"); - mLocationLineEdit->setMinRows(1); mLocationLineEdit->setMaxRows(MaxRowsInTextItem); - mLocationPushButton = qobject_cast( - editorLocationDocLoader.findWidget( - CALEN_EDITOR_LOCATION_PUSHBUTTON)); + connect(mLocationLineEdit, SIGNAL(textChanged(const QString)), + this, SLOT(handleLocationTextChange(const QString))); + connect(mLocationLineEdit, SIGNAL(editingFinished()), + this, SLOT(handleEditingFinished())); + layoutLocation->addItem(mLocationLineEdit); + + mLocationPushButton = new HbPushButton(this); + + HbDeviceProfile deviceProfile; + // The layout guide specifies the spacing as 9.5 u + // and the height as 7.4 u + qreal width = deviceProfile.unitValue() * 9.5; + qreal height = deviceProfile.unitValue() * 7.4 ; + mLocationPushButton->setPreferredSize(width, height); + mLocationPushButton->setSizePolicy( + QSizePolicy::Fixed, QSizePolicy::Fixed); + mLocationPushButton->setIcon( HbIcon("qtg_mono_location")); mLocationPushButton->setObjectName("locationIcon"); - mLocationPushButton->setIcon( HbIcon("qtg_mono_location")); - connect(mLocationPushButton, SIGNAL(clicked()), this, SLOT(launchLocationPicker())); - connect(mLocationLineEdit, SIGNAL(textChanged(const QString)), - this, SLOT(handleLocationTextChange(const QString))); - - connect(mLocationLineEdit, SIGNAL(editingFinished()), - this, SLOT(handleEditingFinished())); - + layoutLocation->addItem(mLocationPushButton); OstTraceFunctionExit0( DUP2_CALENEDITORCUSTOMITEM_CREATECUSTOMWIDGET_EXIT ); return widgetLocation; } case RepeatUntilOffset: { - mRepeatUntilWidget = new HbPushButton(this); - mRepeatUntilWidget->setObjectName("repeatUntilItem"); - OstTraceFunctionExit0( DUP3_CALENEDITORCUSTOMITEM_CREATECUSTOMWIDGET_EXIT ); - return mRepeatUntilWidget; + setProperty("expandItem", false); + mRepeatUntilWidget = new HbPushButton(this); + mRepeatUntilWidget->setObjectName("repeatUntilItem"); + OstTraceFunctionExit0( DUP3_CALENEDITORCUSTOMITEM_CREATECUSTOMWIDGET_EXIT ); + return mRepeatUntilWidget; } case ReminderTimeOffset: { + setProperty("expandItem", false); mReminderTimeWidget = new HbPushButton(this); mReminderTimeWidget->setObjectName("remainderTimeItem"); OstTraceFunctionExit0( DUP4_CALENEDITORCUSTOMITEM_CREATECUSTOMWIDGET_EXIT ); diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/caleneditor/src/caleneditorreminderfield.cpp --- a/calendarui/caleneditor/src/caleneditorreminderfield.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/caleneditor/src/caleneditorreminderfield.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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,31 +258,9 @@ if (pastEvent && mReminderTimeAdded) { mCustomReminderTimeItem->setEnabled(false); } - QStringList reminderChoicesForAllDay; - 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->setContentWidgetData(QString("items"), - reminderChoicesForAllDay); - 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) { @@ -243,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. */ @@ -269,7 +300,7 @@ reminder.setAlarmSoundName(QString(" ")); } } else { - QDateTime reminderDateTimeForAllDay; + QDateTime reminderDateTimeForAllDay; QDateTime startDateTimeForAllDay( mCalenEditor->editedEntry()->startTime().date(), @@ -285,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)); @@ -370,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. */ @@ -379,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"), @@ -451,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() @@ -549,6 +714,8 @@ { OstTraceFunctionEntry0( CALENEDITORREMINDERFIELD_REMOVEREMINDERTIMEFIELD_ENTRY ); mReminderTimeAdded = false; + mEditorForm->removeConnection(mCustomReminderTimeItem, SIGNAL(clicked()), + this, SLOT(launchReminderTimePicker())); if (mCustomReminderTimeItem) { QModelIndex reminderIndex = mCalenEditorModel->indexFromItem(mCustomReminderTimeItem); @@ -576,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); @@ -603,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 ef813d54df51 -r a5a1242fd2e8 calendarui/caleneditor/src/caleneditorrepeatfield.cpp --- a/calendarui/caleneditor/src/caleneditorrepeatfield.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/caleneditor/src/caleneditorrepeatfield.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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 @@ -290,102 +291,108 @@ repeatPropertyChange = false; } QDate repeatUntilDate = mRepeatUntilDate; - - if (value != mRepeatRoleValue) - { - mRepeatRoleValue = value; - switch (value) { - case DailyRole: { - if (!mRepeatUntilItemAdded) { - insertRepeatUntilItem(); + // Update the repeat type only if its has been changed + // ie. if the previous repeatrole is different from the current repeat role + if (value != mRepeatRoleValue) { + mRepeatRoleValue = value; + switch (value) { + case DailyRole: { + if (!mRepeatUntilItemAdded) { + insertRepeatUntilItem(); + } + if (mCustomRepeatUntilItem) { + // Show default repeat until date till one year for daily rule + mRepeatUntilDate = + mCalenEditor->editedEntry()->startTime().date().addYears(1); + mCustomRepeatUntilItem->setContentWidgetData( "text", + locale.format( + mRepeatUntilDate, r_qtn_date_usual_with_zero)); + } + mRepeatRuleType = AgendaRepeatRule::DailyRule; } - if (mCustomRepeatUntilItem) { - // Show default repeat until date till one year for daily rule - mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); - mCustomRepeatUntilItem->setContentWidgetData( "text", - locale.format( mRepeatUntilDate, - r_qtn_date_usual_with_zero)); + break; + case WorkdaysRole: { + if (!mRepeatUntilItemAdded) { + insertRepeatUntilItem(); + } + if (mCustomRepeatUntilItem) { + // Show default repeat until date till one year for workdays rule + mRepeatUntilDate = + mCalenEditor->editedEntry()->startTime().date().addYears(1); + mCustomRepeatUntilItem->setContentWidgetData( "text", + locale.format( + mRepeatUntilDate, r_qtn_date_usual_with_zero)); + } + mRepeatRuleType = AgendaRepeatRule::WeeklyRule; + mIsWorkdays = true; } - mRepeatRuleType = AgendaRepeatRule::DailyRule; - } - break; - case WorkdaysRole: { - if (!mRepeatUntilItemAdded) { - insertRepeatUntilItem(); + break; + case WeeklyRole: { + if (!mRepeatUntilItemAdded) { + insertRepeatUntilItem(); + } + if (mCustomRepeatUntilItem) { + // Show default repeat until date till one year for weekly rule + mRepeatUntilDate = + mCalenEditor->editedEntry()->startTime().date().addYears(1); + mCustomRepeatUntilItem->setContentWidgetData( "text", + locale.format( + mRepeatUntilDate, r_qtn_date_usual_with_zero)); + } + mRepeatRuleType = AgendaRepeatRule::WeeklyRule; } - if (mCustomRepeatUntilItem) { - // Show default repeat until date till one year for workdays rule - mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); - mCustomRepeatUntilItem->setContentWidgetData( "text", - locale.format( mRepeatUntilDate, - r_qtn_date_usual_with_zero)); + break; + case BiWeeklyRole: { + if (!mRepeatUntilItemAdded) { + insertRepeatUntilItem(); + } + if (mCustomRepeatUntilItem) { + // Show default repeat until date till one year for bi-weekly rule + mRepeatUntilDate = + mCalenEditor->editedEntry()->startTime().date().addYears(1); + mCustomRepeatUntilItem->setContentWidgetData( "text", + locale.format( + mRepeatUntilDate, r_qtn_date_usual_with_zero)); + } + mRepeatRuleType = AgendaRepeatRule::WeeklyRule; + mIsBiWeekly = true; } - mRepeatRuleType = AgendaRepeatRule::WeeklyRule; - mIsWorkdays = true; - } - break; - case WeeklyRole: { - if (!mRepeatUntilItemAdded) { - insertRepeatUntilItem(); + break; + case MonthlyRole: { + if (!mRepeatUntilItemAdded) { + insertRepeatUntilItem(); + } + if (mCustomRepeatUntilItem) { + // Show default repeat until date till one year for monthly rule + mRepeatUntilDate = + mCalenEditor->editedEntry()->startTime().date().addYears(1); + mCustomRepeatUntilItem->setContentWidgetData( "text", + locale.format( + mRepeatUntilDate, r_qtn_date_usual_with_zero)); + } + mRepeatRuleType = AgendaRepeatRule::MonthlyRule; } - if (mCustomRepeatUntilItem) { - // Show default repeat until date till one year for weekly rule - mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); - mCustomRepeatUntilItem->setContentWidgetData( "text", - locale.format( mRepeatUntilDate, - r_qtn_date_usual_with_zero)); + break; + case YearlyRole: { + if (!mRepeatUntilItemAdded) { + insertRepeatUntilItem(); + } + if (mCustomRepeatUntilItem) { + // Show default repeat until date till ten years for yearly rule + mRepeatUntilDate = + mCalenEditor->editedEntry()->startTime().date().addYears(10); + mCustomRepeatUntilItem->setContentWidgetData( "text", + locale.format( + mRepeatUntilDate, r_qtn_date_usual_with_zero)); + } + mRepeatRuleType = AgendaRepeatRule::YearlyRule; } - mRepeatRuleType = AgendaRepeatRule::WeeklyRule; + break; + default: { + removeRepeatUntilItem(); + } + break; } - break; - case BiWeeklyRole: { - if (!mRepeatUntilItemAdded) { - insertRepeatUntilItem(); - } - if (mCustomRepeatUntilItem) { - // Show default repeat until date till one year for bi-weekly rule - mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); - mCustomRepeatUntilItem->setContentWidgetData( "text", - locale.format( mRepeatUntilDate, - r_qtn_date_usual_with_zero)); - } - mRepeatRuleType = AgendaRepeatRule::WeeklyRule; - mIsBiWeekly = true; - } - break; - case MonthlyRole: { - if (!mRepeatUntilItemAdded) { - insertRepeatUntilItem(); - } - if (mCustomRepeatUntilItem) { - // Show default repeat until date till one year for monthly rule - mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(1); - mCustomRepeatUntilItem->setContentWidgetData( "text", - locale.format( mRepeatUntilDate, - r_qtn_date_usual_with_zero)); - } - mRepeatRuleType = AgendaRepeatRule::MonthlyRule; - } - break; - case YearlyRole: { - if (!mRepeatUntilItemAdded) { - insertRepeatUntilItem(); - } - if (mCustomRepeatUntilItem) { - // Show default repeat until date till ten years for yearly rule - mRepeatUntilDate = mCalenEditor->editedEntry()->startTime().date().addYears(10); - mCustomRepeatUntilItem->setContentWidgetData( "text", - locale.format( mRepeatUntilDate, - r_qtn_date_usual_with_zero)); - } - mRepeatRuleType = AgendaRepeatRule::YearlyRule; - } - break; - default: { - removeRepeatUntilItem(); - } - break; - } } if(!mCalenEditor->isNewEntry()) { mCalenEditor->addDiscardAction(); @@ -394,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 ); } @@ -517,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(); @@ -525,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 ); } @@ -668,8 +701,17 @@ //Connecting back the slot for repeat index change before setting index. connect(mRepeatComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(handleRepeatIndexChanged(int))); + // By default the repeat combobox index will be 0 // Set the previous user's choice mRepeatComboBox->setCurrentIndex(choice); + // If the previous user's choice is also zero, then slot + // handleRepeatIndexChanged will not be called as + // there is no change in current index + // So explicitly call updateReminderChoices to update the reminder choices + // for choice : 0 (Not repeated) + if(choice == 0) { + mCalenEditor->updateReminderChoices(); + } OstTraceFunctionExit0( DUP1_CALENEDITORREPEATFIELD_UPDATEREPEATCHOICES_EXIT ); } diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/controller/data/xml/calendayview.docml --- a/calendarui/controller/data/xml/calendayview.docml Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/controller/data/xml/calendayview.docml Thu Sep 02 20:25:23 2010 +0300 @@ -3,20 +3,20 @@ - - - + + + - + @@ -27,10 +27,8 @@ - - diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/controller/data/xml/calenmonthview.docml --- a/calendarui/controller/data/xml/calenmonthview.docml Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/controller/data/xml/calenmonthview.docml Thu Sep 02 20:25:23 2010 +0300 @@ -23,7 +23,6 @@ - @@ -33,44 +32,37 @@ - - + - - + - - + - - + - - + - - + - - + @@ -169,7 +161,6 @@ - @@ -227,7 +218,6 @@ - @@ -285,7 +275,6 @@ - diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/controller/inc/calenviewmanager.h --- a/calendarui/controller/inc/calenviewmanager.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/controller/inc/calenviewmanager.h Thu Sep 02 20:25:23 2010 +0300 @@ -103,7 +103,28 @@ void constructOtherViews(); void launchSettingsView(); + + /** + * @brief check if Agenda Event Viewer is active + */ + bool isEventViewerActive(); + + /** + * save the entry and close the editor + */ + void saveAndCloseEditor(); + + /** + * close agenda event view + * should be call if agenda eevent view is open + */ + void closeAgendaEventView(); + + /** + * remove the setting view + */ + void removeSettingsView(); public: // from MCalenNotificationHandler diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/controller/src/calencontroller.cpp --- a/calendarui/controller/src/calencontroller.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/controller/src/calencontroller.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -644,6 +644,8 @@ // launch the appropriate view iViewManager->constructAndActivateView(view); + iIsFromServiceFrmWrk = false; + } else { // Calendar was in backgroung but now its being brought to foreground // If current state is editing state or printing state // or deleting state or sending state, then dont do anything as @@ -654,11 +656,28 @@ (currentState == CCalenStateMachine::ECalenSendingState)) { // simply return - we dont have anything to do } + + else if (currentState == CCalenStateMachine::ECalenViewingState) { + if(iViewManager->isEventViewerActive()){ + iViewManager->closeAgendaEventView(); + } + } else if (currentState == CCalenStateMachine::ECalenEditingState) { - // close the editor and save the entry + // close the editor and save the entry if application is in background //and launch the desired view - iActionUi->saveAndCloseEditor(); + if(iViewManager->isEventViewerActive()){ + iViewManager->saveAndCloseEditor(); + iViewManager->closeAgendaEventView(); + } + else{ + iActionUi->saveAndCloseEditor(); + } } + + else if (currentState == CCalenStateMachine::ECalenSettingsState){ + iViewManager->removeSettingsView(); + } + // Set the context properly mContext->setFocusDateAndTime(dateTime); IssueCommandL(view); diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/controller/src/calendocloader.cpp --- a/calendarui/controller/src/calendocloader.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/controller/src/calendocloader.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -153,10 +153,6 @@ QObject *calenDayInfo = new HbGroupBox(); calenDayInfo->setObjectName(name); return calenDayInfo; - } else if (name == QString(CALEN_DAYVIEW_REGIONALINFO)) { - QObject *calenRegionalInfo = new HbGroupBox(); - calenRegionalInfo->setObjectName(name); - return calenRegionalInfo; } else if (name == QString(CALEN_DAYVIEW_CONTENTWIDGET)) { QObject *calenContentWidget = new HbWidget(); calenContentWidget->setObjectName(name); diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/controller/src/calenviewmanager.cpp --- a/calendarui/controller/src/calenviewmanager.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/controller/src/calenviewmanager.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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 ); @@ -944,12 +956,17 @@ // solution for the month view implements the construction in two phases so // it needs to be refactored and a common solution needs to be put here. So // that code doesn't break if another view is added tomorow - if (mCalenMonthView) { + HbView *currentview = mController.MainWindow().currentView(); + + if (mCalenMonthView && currentview == mCalenMonthView) { mCalenMonthView->fetchEntriesAndUpdateModel(); } - else if (mCalenAgendaView) { + 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 @@ -1039,4 +1056,53 @@ OstTraceFunctionExit0( CALENVIEWMANAGER_LAUNCHSETTINGSVIEW_EXIT ); } + +// ---------------------------------------------------------------------------- +// CalenViewManager::removeSettingsView +// remove settings view +// ---------------------------------------------------------------------------- +// +void CalenViewManager::removeSettingsView() +{ + if(mSettingsView){ + mController.Services().MainWindow().removeView(mSettingsView); + } +} + +// ---------------------------------------------------------------------------- +// CalenViewManager::isEventViewerActive +// check if Agenda Event Viewer is active +// ---------------------------------------------------------------------------- +// +bool CalenViewManager::isEventViewerActive() +{ + if(mCalenEventViewer) + return true; + else + return false; +} + +// ---------------------------------------------------------------------------- +// CalenViewManager::saveAndCloseEditor +// save the entry and close the editor +// isEventViewerActive() should be called before this function +// ---------------------------------------------------------------------------- +// +void CalenViewManager::saveAndCloseEditor() +{ + mCalenEventViewer->saveAndCloseEditor(); +} + +// ---------------------------------------------------------------------------- +// CalenViewManager::closeAgendaEventView +// close the agenda event view +// isEventViewerActive() should be called before this function +// ---------------------------------------------------------------------------- +// +void CalenViewManager::closeAgendaEventView() +{ + mCalenEventViewer->closeAgendaEventView(); +} + + // End of file --Don't remove this. diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/inc/calencommon.h --- a/calendarui/inc/calencommon.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/inc/calencommon.h Thu Sep 02 20:25:23 2010 +0300 @@ -81,7 +81,6 @@ #define CALEN_DAYVIEW_DOCML ":/xml/calendayview.docml" #define CALEN_DAYVIEW "dayView" #define CALEN_DAYVIEW_DAYINFO "dayViewDayInfo" -#define CALEN_DAYVIEW_REGIONALINFO "dayViewRegionalInfo" #define CALEN_DAYVIEW_CONTENTWIDGET "dayViewContentWidget" #define CALEN_DAYVIEW_HOURSCROLLAREA "dayViewHourScrollArea" #define CALEN_DAYVIEW_CONTENTSCROLLAREA "dayViewContentScrollArea" diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/regionalplugins/calenregionalutil/calenregionalutil.pro --- a/calendarui/regionalplugins/calenregionalutil/calenregionalutil.pro Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/regionalplugins/calenregionalutil/calenregionalutil.pro Thu Sep 02 20:25:23 2010 +0300 @@ -44,7 +44,7 @@ ./src/calenlunarinfoprovider.cpp \ ./src/calenlunarlocalizedinfo.cpp \ ./src/calenlunarlocalizer.cpp \ - ./src/calensolarterms.cpp \ + ./src/calensolarterms.cpp diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/regionalplugins/calenregionalutil/eabi/calenregionalutilu.def --- a/calendarui/regionalplugins/calenregionalutil/eabi/calenregionalutilu.def Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/regionalplugins/calenregionalutil/eabi/calenregionalutilu.def Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/regionalplugins/calenregionalutil/inc/calenlunarlocalizedinfo.h --- a/calendarui/regionalplugins/calenregionalutil/inc/calenlunarlocalizedinfo.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/regionalplugins/calenregionalutil/inc/calenlunarlocalizedinfo.h Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/regionalplugins/calenregionalutil/src/calenlunarlocalizedinfo.cpp --- a/calendarui/regionalplugins/calenregionalutil/src/calenlunarlocalizedinfo.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/regionalplugins/calenregionalutil/src/calenlunarlocalizedinfo.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/regionalplugins/calenregionalutil/traces/calenlunarlocalizedinfoTraces.h --- a/calendarui/regionalplugins/calenregionalutil/traces/calenlunarlocalizedinfoTraces.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/regionalplugins/calenregionalutil/traces/calenlunarlocalizedinfoTraces.h Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/regionalplugins/calenregionalutil/traces/fixed_id.definitions --- a/calendarui/regionalplugins/calenregionalutil/traces/fixed_id.definitions Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/regionalplugins/calenregionalutil/traces/fixed_id.definitions Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/regionalplugins/lunarchinese/bwins/calenlunarchinesepluginu.def --- a/calendarui/regionalplugins/lunarchinese/bwins/calenlunarchinesepluginu.def Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/regionalplugins/lunarchinese/bwins/calenlunarchinesepluginu.def Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp --- a/calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/views/bwins/calenviewsu.def --- a/calendarui/views/bwins/calenviewsu.def Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/bwins/calenviewsu.def Thu Sep 02 20:25:23 2010 +0300 @@ -199,4 +199,12 @@ ?moveFinished@CalenDayContentScrollArea@@AAEXXZ @ 198 NONAME ; void CalenDayContentScrollArea::moveFinished(void) ?scrollToHour@CalenDayHourScrollArea@@QAEXH@Z @ 199 NONAME ; void CalenDayHourScrollArea::scrollToHour(int) ??1CalenDayContentScrollArea@@UAE@XZ @ 200 NONAME ; CalenDayContentScrollArea::~CalenDayContentScrollArea(void) + ?handleThemeChange@CalenMonthGrid@@AAEXXZ @ 201 NONAME ; void CalenMonthGrid::handleThemeChange(void) + ?effectStarted@CalenPreviewPane@@QAEXXZ @ 202 NONAME ; void CalenPreviewPane::effectStarted(void) + ?handleThemeChange@CalenThickLinesDrawer@@AAEXXZ @ 203 NONAME ; void CalenThickLinesDrawer::handleThemeChange(void) + ?effectFinished@CalenPreviewPane@@QAEXXZ @ 204 NONAME ; void CalenPreviewPane::effectFinished(void) + ?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 ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/inc/calendaycommonheaders.h --- a/calendarui/views/dayview/inc/calendaycommonheaders.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/inc/calendaycommonheaders.h Thu Sep 02 20:25:23 2010 +0300 @@ -44,12 +44,12 @@ /*! The minimum width [un] of touchable event bubble (UI spec) */ -const qreal KCalenMinTouchableEventWidth = 8.2; +const qreal KCalenMinTouchableEventWidth = 8.0; /*! The minimum width [un] of event bubble (UI spec) */ -const qreal KCalenMinBubbleWidth = 3.0; +const qreal KCalenMinEventWidth = 3.0; /*! The width [un] of time strip (indicator) in event bubble (UI spec) @@ -57,11 +57,21 @@ const qreal KCalenTimeStripWidth = 1.5; /*! - The width [un] of space beetwen event buubles in Day View (UI spec) + 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; /*! + The minimum width [un] of space beetwen event bubbles in Day View (UI spec) + */ +const qreal KCalenMinSpaceBeetwenEvents = 0.1; + +/*! Number of All day events displayed in single day that remains touchable in portrait orientation (UI spec) */ @@ -79,12 +89,17 @@ const qreal KCalenHourLineThickness = 0.15; /*! - Thickness [un] of time line (UI spec) + Thickness [un] of current time line (UI spec) */ -const qreal KCalenTimeLineThickness = 0.75; +const qreal KCalenCurrentTimeLineThickness = 0.75; /*! - Color scheme for hour line (UI spec) + Width [un] of dashes in half-hour line (UI spec) + */ +const qreal KCalenHalfHourLineDashWidth = 1.5; + +/*! + Color scheme for hour and half-hour lines (UI spec) */ const QString KCalenHourLineColor = "qtc_cal_day_hour_lines"; @@ -93,6 +108,16 @@ */ const QString KCalenTimeLineColor = "qtc_cal_month_current_day"; +/*! + Color scheme for Day View background in portrait mode (UI spec) + */ +const QString KCalenBackgroundColorPortrait = "qtg_graf_cal_bg_prt"; + +/*! + Color scheme for Day View background in landscape mode (UI spec) + */ +const QString KCalenBackgroundColorLandscape = "qtg_graf_cal_bg_lsc"; + // Enumerations diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/inc/calendaycontentscrollarea.h --- a/calendarui/views/dayview/inc/calendaycontentscrollarea.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/inc/calendaycontentscrollarea.h Thu Sep 02 20:25:23 2010 +0300 @@ -19,7 +19,7 @@ #define CALENDAYCONTENTSCROLLAREA_H_ // System includes -#include +#include // User includes #include "calendaycommonheaders.h" diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/inc/calendaycontentwidget.h --- a/calendarui/views/dayview/inc/calendaycontentwidget.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/inc/calendaycontentwidget.h Thu Sep 02 20:25:23 2010 +0300 @@ -19,7 +19,7 @@ #define CALENDAYCONTENTWIDGET_H_ // System includes -#include +#include // User includes #include "calendaycommonheaders.h" @@ -61,8 +61,8 @@ void relayoutWidgets(CalenScrollDirection scrollTo); void widgetScrolled(const QPointF &newPos); -private: - void initializeViews(QGraphicsItem *parent); +protected: + void initializeViews(); private: QGraphicsLinearLayout* mLayout; //!< Linear layout for day views diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/inc/calendaystatusstrip.h --- a/calendarui/views/dayview/inc/calendaystatusstrip.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/inc/calendaystatusstrip.h Thu Sep 02 20:25:23 2010 +0300 @@ -47,15 +47,11 @@ qreal range() const; - QColor color() const; - CalenDayStatusStrip::DrawingStyle drawingStyle() const; QPair startEndTime() const; - void setRange(qreal mRange); - - void setColor(QColor mStripColor); + void setRange(qreal range); void setDrawingStyle(CalenDayStatusStrip::DrawingStyle mDrawingStyle); @@ -78,7 +74,6 @@ private: qreal mRange; //! - - + + @@ -25,7 +25,7 @@ - + diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/src/calendaycontainer.cpp --- a/calendarui/views/dayview/src/calendaycontainer.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/src/calendaycontainer.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -238,17 +238,17 @@ // Event's startX/width eventWidth /= columns; - - // In case when eventWidth will be smaller then KCalenMinBubbleWidth [un] + + // In case when eventWidth will be smaller then KCalenMinEventWidth [un] // spacings between events should be smaller. // Check whether it's possible to shrink them so the bubbles width - // can stay at KCalenMinBubbleWidth [un] (time stripe + frame margins). - qreal minWidth = KCalenMinBubbleWidth * mLayoutValues.unitInPixels; + // can stay at KCalenMinEventWidth [un] (time stripe + frame margins). + qreal minWidth = KCalenMinEventWidth * mLayoutValues.unitInPixels; 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,15 +259,16 @@ } 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); eventWidth = minWidth; } - //First column margin should be always 1.5un (mLayoutValues.eventMargin) + // First column margin should be always KCalenSpaceBeetwenEvents + // (mLayoutValues.eventMargin) eventStartX += columnIdx * (eventWidth + newMarginValue) + mLayoutValues.eventMargin; } else { @@ -277,6 +278,10 @@ } QRectF eventGeometry(eventStartX, eventStartY, eventWidth, eventHeight); + + // Workaround to prevent size hint caching inside effectiveSizeHint + item->setMinimumSize(0, 0); + item->setMaximumSize(eventWidth, eventHeight); item->setGeometry(eventGeometry); } @@ -341,6 +346,10 @@ } QRectF eventGeometry(eventStartX, eventStartY, eventWidth, eventHeight); + + // Workaround to prevent size hint caching inside effectiveSizeHint + item->setMinimumSize(0, 0); + item->setMaximumSize(eventWidth, eventHeight); item->setGeometry(eventGeometry); } @@ -351,39 +360,42 @@ */ 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(0.0); - 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 * layoutValues.unitInPixels); + / ((KCalenMinTouchableEventWidth + KCalenSpaceBeetwenEvents) + * layoutValues.unitInPixels); } diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/src/calendaycontentscrollarea.cpp --- a/calendarui/views/dayview/src/calendaycontentscrollarea.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/src/calendaycontentscrollarea.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -19,8 +19,8 @@ #include #include -#include -#include +#include +#include // User includes #include "calendaycontentscrollarea.h" @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/src/calendaycontentwidget.cpp --- a/calendarui/views/dayview/src/calendaycontentwidget.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/src/calendaycontentwidget.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -17,7 +17,7 @@ // System includes #include -#include +#include // User includes #include "calendaymodelmanager.h" @@ -33,6 +33,7 @@ /*! \brief Constructor + \param modelManager Day View model manager \param parent The parent of central widget */ CalenDayContentWidget::CalenDayContentWidget( @@ -41,7 +42,7 @@ HbWidget(parent), mLayout(NULL), mModelManager(modelManager) { mWidgets.clear(); - initializeViews(parent); + initializeViews(); } /*! @@ -198,7 +199,7 @@ \param parent Parent object */ -void CalenDayContentWidget::initializeViews(QGraphicsItem *parent) +void CalenDayContentWidget::initializeViews() { // Create item views HbModelIterator *iterator(0); @@ -227,12 +228,14 @@ connect(nextItemView, SIGNAL(scrollPositionChanged(const QPointF&)), this, SLOT(widgetScrolled(const QPointF&))); - // Install event filters to receive events necessary for gesture handling - CalenDayContentScrollArea* scrollArea = - static_cast (parent); - prevItemView->installEventFilter(scrollArea); - currItemView->installEventFilter(scrollArea); - nextItemView->installEventFilter(scrollArea); + if (parentItem()) { + // Install event filters to receive events necessary for gesture handling + CalenDayContentScrollArea* scrollArea = + static_cast (parentItem()); + prevItemView->installEventFilter(scrollArea); + currItemView->installEventFilter(scrollArea); + nextItemView->installEventFilter(scrollArea); + } // Add views to layout add(prevItemView); diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/src/calendayeventspane.cpp --- a/calendarui/views/dayview/src/calendayeventspane.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/src/calendayeventspane.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -16,10 +16,11 @@ */ // System includes #include -#include +#include // User includes -#include "CalenDayEventsPane.h" +#include "calendayeventspane.h" +#include "calendaycommonheaders.h" /*! \class CalenDayEventsPane @@ -39,12 +40,13 @@ HbDeviceProfile deviceProfile; mUnitInPixels = deviceProfile.unitValue(); - mHourLineColor = HbColorScheme::color("qtc_cal_day_hour_lines"); + mHourLineColor = HbColorScheme::color(KCalenHourLineColor); // Set custom dashed pen - mCustomDashedPen.setWidth(0.15); + mCustomDashedPen.setWidth(KCalenHourLineThickness); QVector dashes; - dashes << 5 << 5; + dashes << KCalenHalfHourLineDashWidth * mUnitInPixels + << KCalenHalfHourLineDashWidth * mUnitInPixels; mCustomDashedPen.setDashPattern(dashes); mCustomDashedPen.setCapStyle(Qt::FlatCap); mCustomDashedPen.setColor(mHourLineColor); @@ -89,7 +91,7 @@ QRectF drawArea = option->rect; - const qreal hourLineThickness = 0.15; //un (according to UI spec) + const qreal hourLineThickness = KCalenHourLineThickness; painter->save(); diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/src/calendayhourelement.cpp --- a/calendarui/views/dayview/src/calendayhourelement.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/src/calendayhourelement.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -141,8 +141,8 @@ * currentDateTime.time().minute() / 60; QColor color = HbColorScheme::color(KCalenTimeLineColor); - painter->setPen(QPen(color, KCalenTimeLineThickness * mUnitInPixels, - Qt::SolidLine, Qt::FlatCap)); + painter->setPen(QPen(color, KCalenCurrentTimeLineThickness + * mUnitInPixels, Qt::SolidLine, Qt::FlatCap)); QLineF currentTimeline(drawArea.left(), drawArea.top() + currentTimeY, drawArea.right(), drawArea.top() + currentTimeY); painter->drawLine(currentTimeline); diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/src/calendayitem.cpp --- a/calendarui/views/dayview/src/calendayitem.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/src/calendayitem.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -16,15 +16,15 @@ * */ -//System includes -#include -#include +// System includes +#include +#include +#include +#include #include -#include -#include - -//User inlcudes +// User includes +#include "calendaycommonheaders.h" #include "calendayitem.h" #include "calendaystatusstrip.h" #include "calendaymodel.h" @@ -33,69 +33,61 @@ #include "calendaycontainer.h" /*! - \brief Constructor. -*/ -CalenDayItem::CalenDayItem(const CalenDayContainer *container): - mContainer(container), mUpdated(false), mBg(0), mEventDesc(0), mColorStripe(0), - mEventDescMinWidth(0.0), mFrameMinWidth(0.0) + \brief Constructor. + */ +CalenDayItem::CalenDayItem(const CalenDayContainer *container) : + mContainer(container), mUpdated(false), mBg(0), mEventDesc(0), + mColorStripe(0), mEventDescMinWidth(0.0), mFrameMinWidth(0.0) { } /*! - \brief Constructor. -*/ + \brief Constructor. + */ CalenDayItem::CalenDayItem(const CalenDayItem & source) : - HbAbstractViewItem(source), mContainer(source.container()), mUpdated(false), mBg(0), mEventDesc(0), - mColorStripe(0), mEventDescMinWidth(0.0), mFrameMinWidth(0.0) + HbAbstractViewItem(source), mContainer(source.container()), + mUpdated(false), mBg(0), mEventDesc(0), mColorStripe(0), + mEventDescMinWidth(0.0), mFrameMinWidth(0.0) { - // TODO: "qtg_fr_btn_pressed" need to replaced with qtg_fr_cal_meeting_bg - // when available - mBg = new HbFrameItem("qtg_fr_btn_pressed", HbFrameDrawer::NinePieces, this); + mBg = new HbFrameItem("qtg_fr_cal_meeting_bg", HbFrameDrawer::NinePieces, + this); mEventDesc = new HbTextItem(this); // TODO: probably ElideLeft needed for mirrored layout mEventDesc->setElideMode(Qt::ElideRight); mEventDesc->setTextWrapping(Hb::TextWrapAnywhere); - mColorStripe = new CalenDayStatusStrip(this); - + HbStyle::setItemName(mBg, QLatin1String("backgroundFrame")); HbStyle::setItemName(mEventDesc, QLatin1String("eventDescription")); - HbStyle::setItemName(static_cast(mColorStripe), QLatin1String("colorStripe")); - + HbStyle::setItemName(static_cast (mColorStripe), + QLatin1String("colorStripe")); + HbDeviceProfile deviceProfile; - HbStyle style; - - qreal horizontalSpacing = 0.0; - qreal rightMargin = 0.0; + qreal stripeWidth = KCalenTimeStripWidth * deviceProfile.unitValue(); + mColorStripe->setPreferredWidth(stripeWidth); + + // Minimum size of event frame (without/with description) + mFrameMinWidth = KCalenMinEventWidth * deviceProfile.unitValue(); + mEventDescMinWidth = KCalenMinTouchableEventWidth + * deviceProfile.unitValue(); - style.parameter(QString("hb-param-margin-gene-middle-horizontal"), - horizontalSpacing, deviceProfile); - style.parameter(QString("hb-param-margin-gene-right"), - rightMargin, deviceProfile); - - qreal stripeWidth = 1.5 * deviceProfile.unitValue(); //1.5un according to UI spec - - mFrameMinWidth = 2 * horizontalSpacing + stripeWidth; //smallest width for which background frame is displayed - mEventDescMinWidth = mFrameMinWidth + rightMargin;//smallest width for which text can be displayed - - //Minimum width is assured by widgetml and css - //additionally called here to prevent minimum size hint caching inside effectiveSizeHint + // Minimum width is assured by widgetml and css, additionally called here + // to prevent minimum size hint caching inside effectiveSizeHint setMinimumWidth(stripeWidth); - } /*! - \brief Destructor. -*/ + \brief Destructor. + */ CalenDayItem::~CalenDayItem() { } /*! - \brief Creates new instance of day item. - - \return New instance of day item. -*/ + \brief Creates new instance of day item. + + \return New instance of day item. + */ HbAbstractViewItem * CalenDayItem::createItem() { CalenDayItem* newItem = new CalenDayItem(*this); @@ -104,86 +96,72 @@ /*! - \brief Sets data to be displayed on item. -*/ + \brief Sets data to be displayed on item. + */ void CalenDayItem::updateChildItems() { // there is no need to update items after creation if (!mUpdated) { AgendaEntry entry; - entry = modelIndex().data(CalenDayEntry).value(); + entry = modelIndex().data(CalenDayEntry).value (); - bool isAllDayEvent = CalenAgendaUtils::isAlldayEvent(entry); - + bool isAllDayEvent = CalenAgendaUtils::isAlldayEvent(entry); setDescription(entry, isAllDayEvent); setStatusStrip(entry, isAllDayEvent); mUpdated = true; } - - //TODO: check if needed - //repolish(); - //HbAbstractViewItem::updateChildItems(); } /*! - \brief Adds event description for the item. - - \param entry An for which description needs to be displayed. - \param allDayEvent Flag that indicates whether an item is all day event -*/ + \brief Adds event description for the item. + + \param entry An for which description needs to be displayed. + \param allDayEvent Flag that indicates whether an item is all day event + */ void CalenDayItem::setDescription(const AgendaEntry &entry, bool allDayEvent) { - QString description(entry.summary()); - QString location(entry.location()); - - - int separtorPos = 0; - - if(!location.isEmpty()) { - if ( !description.isEmpty() ) { - separtorPos = description.count(); - description.append(", "); - } - - description.append(location); - } - - if ( description.isEmpty() ) { - description.append(hbTrId("txt_calendar_dblist_unnamed")); - } - - //Description of all day events has to be displayed vertically - if(allDayEvent){ + QString description(entry.summary()); + QString location(entry.location()); + + int separtorPos = 0; + if (!location.isEmpty()) { + if (!description.isEmpty()) { + separtorPos = description.count(); + description.append(", "); + } + description.append(location); + } + + if (description.isEmpty()) { + description.append(hbTrId("txt_calendar_dblist_unnamed")); + } - QString verticalString; - for(int i=0; isetText(description); + //Description of all day events has to be displayed vertically + if (allDayEvent) { + QString verticalString; + for (int i = 0; i < description.count(); i++) { + verticalString.append(QString(description.at(i)) + "\n"); + } + + // remove "\n" before comma separator if exist + if (separtorPos) { + verticalString.remove(2 * separtorPos - 1, 1); + } + description = verticalString; + } + + mEventDesc->setText(description); } /*! - \brief It set all needed things for status strip from Agenda Entry. - - \param entry Status Strip is created from Agenda Entry -*/ + \brief It set all needed things for status strip from Agenda Entry. + + \param entry Status Strip is created from Agenda Entry + */ void CalenDayItem::setStatusStrip(const AgendaEntry &entry, bool allDayEvent) { - QColor color = HbColorScheme::color("qtc_cal_month_current_day"); - mColorStripe->setColor(color); - if (!allDayEvent) { QDateTime startTime; @@ -191,8 +169,8 @@ QDateTime currentDateTime; currentDateTime.setDate(container()->date()); - CalenDayUtils::instance()->getEventValidStartEndTime(startTime, endTime, entry, - currentDateTime); + CalenDayUtils::instance()->getEventValidStartEndTime(startTime, + endTime, entry, currentDateTime); mColorStripe->setStartEndTime(startTime.time(), endTime.time()); } @@ -202,49 +180,57 @@ // 00:00:00 and 00:00:00 next day respectively. // To draw it correctly we need times like those visible for user in // editor: 00:00:00 to 23:59:59 (the same day) - mColorStripe->setStartEndTime(entry.startTime().time(), entry.endTime().time().addSecs(-1)); + mColorStripe->setStartEndTime(entry.startTime().time(), + entry.endTime().time().addSecs(-1)); } - + switch (entry.status()) { case AgendaEntry::Confirmed: mColorStripe->setDrawingStyle(CalenDayStatusStrip::Filled); - break; + break; case AgendaEntry::Tentative: mColorStripe->setDrawingStyle(CalenDayStatusStrip::StripWithLines); - break; + break; case AgendaEntry::Cancelled: mColorStripe->setDrawingStyle(CalenDayStatusStrip::OnlyFrame); - break; + break; default: mColorStripe->setDrawingStyle(CalenDayStatusStrip::Filled); - break; + break; } } /*! - \brief Reimplemented from HbWidget. Handles resize event. - - \param event Instance of an event to be handled. -*/ + \brief Reimplemented from HbWidget. Handles resize event. + + \param event Instance of an event to be handled. + */ void CalenDayItem::resizeEvent(QGraphicsSceneResizeEvent *event) { Q_UNUSED(event) qreal width = rect().width(); - if(width < mEventDescMinWidth){ + HbDeviceProfile deviceProfile; + if (width < mEventDescMinWidth) { + mColorStripe->setPreferredWidth(KCalenMinTimeStripWidth + * deviceProfile.unitValue()); mEventDesc->hide(); - } else{ + } + else { + mColorStripe->setPreferredWidth(KCalenTimeStripWidth + * deviceProfile.unitValue()); mEventDesc->show(); } - - if(width < mFrameMinWidth){ + + if (width < mFrameMinWidth) { mBg->hide(); - } else{ + } + else { mBg->show(); } - //Necessary to switch layout + // Necessary to switch layout repolish(); } diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/src/calendayitemview.cpp --- a/calendarui/views/dayview/src/calendayitemview.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/src/calendayitemview.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -18,9 +18,9 @@ //System includes #include #include -#include -#include -#include +#include +#include +#include //User includes #include "calendayitemview.h" @@ -55,9 +55,6 @@ setScrollingStyle(HbScrollArea::PanWithFollowOn); setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOff); - grabGesture(Qt::PanGesture); - ungrabGesture(Qt::SwipeGesture); - //TODO: KG: Animate item pressed?! HbAbstractItemView::TouchDown setEnabledAnimations( HbAbstractItemView::None ); diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/src/calendaymodelmanager.cpp --- a/calendarui/views/dayview/src/calendaymodelmanager.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/src/calendaymodelmanager.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -15,9 +15,11 @@ * */ +// System includes #include #include +// User includes #include "calendaymodelmanager.h" #include "calendaymodel.h" diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/src/calendaystatusstrip.cpp --- a/calendarui/views/dayview/src/calendaystatusstrip.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/src/calendaystatusstrip.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -15,11 +15,15 @@ * */ +// System includes #include #include +#include +// User includes #include "calendaystatusstrip.h" +// Constants qreal const CalenDayStatusStrip::mMinute = 60; qreal const CalenDayStatusStrip::mMinimumTime = 5; @@ -28,7 +32,7 @@ */ CalenDayStatusStrip::CalenDayStatusStrip(HbWidget *parent) : HbWidget(parent), mRange(2), - mDrawingStyle(CalenDayStatusStrip::Filled) + mDrawingStyle(CalenDayStatusStrip::Filled) { setFlag(QGraphicsItem::ItemHasNoContents,false); @@ -54,16 +58,6 @@ } /*! - \brief Returns color drawing - - \sa setColor - */ -QColor CalenDayStatusStrip::color() const -{ - return mColor; -} - -/*! \brief Returns style of drawing. \sa CalenDayStatusStrip::DrawingStyle, setDrawingStyle @@ -97,18 +91,6 @@ } /*! - \brief It sets color drawing - - \param stripColor Color of drawing - - \sa stripColor - */ -void CalenDayStatusStrip::setColor(QColor stripColor) -{ - mColor = stripColor; -} - -/*! \brief It sets drawing style of strip \param drawingStyle Style of strip drawing. @@ -193,7 +175,7 @@ painter->setClipRect(bounding, Qt::IntersectClip); //prepare brush and paint - QBrush brush(mColor); + QBrush brush(HbColorScheme::color("qtc_cal_month_current_day")); painter->setBrush(brush); QPen pen; pen.setWidth(1); diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/src/calendayutils.cpp --- a/calendarui/views/dayview/src/calendayutils.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/src/calendayutils.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -16,10 +16,10 @@ */ // System includes -#include -#include -#include -#include +#include +#include +#include +#include // User includes #include "calendayutils.h" @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/src/calendayview.cpp --- a/calendarui/views/dayview/src/calendayview.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/src/calendayview.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -20,13 +20,15 @@ #include #include #include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include // User includes @@ -44,6 +46,7 @@ #include "CalendarPrivateCRKeys.h" #include "calenpluginlabel.h" #include "calendaymodel.h" +#include "calendayutils.h" //constants @@ -53,18 +56,18 @@ */ CalenDayView::CalenDayView(MCalenServices &services) : CalenNativeView(services), mContentScrollArea(NULL), mContentWidget(NULL), - mHourScrollArea(NULL), mVLayout(NULL), mDocLoader(NULL), mIsLaunching( - true), mSettingsManager(NULL), mRegionalInfo( - XQSettingsKey::TargetCentralRepository, KCRUidCalendar, - KCalendarShowRegionalInfo), mServices(services), - mRegionalInfoGroupBox(NULL), mGoToTodayMenuAction(NULL) + mHourScrollArea(NULL), mVLayout(NULL), mMainContainer(NULL), + mDocLoader(NULL), mIsLaunching(true), mSettingsManager(NULL), + mRegionalInfoKey(XQSettingsKey::TargetCentralRepository, + KCRUidCalendar, KCalendarShowRegionalInfo), mServices(services), + mRegionalInfoGroupBox(NULL), mGoToTodayMenuAction(NULL), mBg(NULL) { setupMenu(); // Create model manager mModelManager = new CalenDayModelManager(mServices, true, this); mSettingsManager = new XQSettingsManager(this); - mSettingsManager->startMonitoring(mRegionalInfo); + mSettingsManager->startMonitoring(mRegionalInfoKey); //setup Back functionality if (ECalenDayView != mServices.getFirstView()) { @@ -87,7 +90,13 @@ */ CalenDayView::~CalenDayView() { - mSettingsManager->stopMonitoring(mRegionalInfo); + mSettingsManager->stopMonitoring(mRegionalInfoKey); + + if (mRegionalInfoGroupBox) { + delete mRegionalInfoGroupBox; + mRegionalInfoGroupBox = NULL; + } + if (mDocLoader) { delete mDocLoader; mDocLoader = NULL; @@ -175,6 +184,19 @@ CALEN_DAYVIEW_DAYINFO)); HbEffect::add(mHeadingLabel, ":/fade_out.fxml", "fadeOut"); HbEffect::add(mHeadingLabel, ":/fade_in.fxml", "fadeIn"); + + // Set up main container for hour elements/content area + mMainContainer = qobject_cast (mDocLoader->findWidget( + CALEN_DAYVIEW_CONTENTWIDGET)); + if (Qt::Vertical == CalenDayUtils::instance()->orientation()) { + mBg = new HbFrameItem(KCalenBackgroundColorPortrait, + HbFrameDrawer::OnePiece, this); + } + else { + mBg = new HbFrameItem(KCalenBackgroundColorLandscape, + HbFrameDrawer::OnePiece, this); + } + mMainContainer->setBackgroundItem(mBg); // Set up hour scroll area mHourScrollArea @@ -185,13 +207,14 @@ mContentScrollArea = static_cast (mDocLoader->findWidget( CALEN_DAYVIEW_CONTENTSCROLLAREA)); - mContentWidget = new CalenDayContentWidget(*mModelManager, NULL); + // Pass parent object to mContentWidget to install event filters on parent + mContentWidget = new CalenDayContentWidget(*mModelManager, mContentScrollArea); mContentScrollArea->setContentWidget(mContentWidget); + setupSlots(); + // Set up regional info if variant is correct showRegionalInformationFadeIn(); - - setupSlots(); } //private slots @@ -229,7 +252,10 @@ // Triggers fading effect for heading label. HbEffect::start(mHeadingLabel, "fadeOut", this, "setHeadingText"); - HbEffect::start(mRegionalInfoGroupBox, "fadeOut", this, "showRegionalInformation"); + if (mRegionalInfoGroupBox) { + HbEffect::start(mRegionalInfoGroupBox, "fadeOut", this, + "showRegionalInformation"); + } mServices.Context().setFocusDate(mDate); } @@ -314,10 +340,14 @@ connect(mContentWidget, SIGNAL(scrollPositionChanged(const QPointF &)), mHourScrollArea, SLOT(scrollVertically(const QPointF &))); - + connect(mHourScrollArea, SIGNAL(scrollPositionChanged(const QPointF &)), mContentWidget, SLOT(widgetScrolled(const QPointF &))); - + + connect(CalenDayUtils::instance()->mainWindow(), + SIGNAL(orientationChanged(Qt::Orientation)), this, + SLOT(orientationChanged(Qt::Orientation))); + connect(mSettingsManager, SIGNAL(valueChanged(XQSettingsKey, QVariant)), this, SLOT(showHideRegionalInformationChanged(XQSettingsKey, QVariant))); } @@ -377,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"); @@ -400,8 +430,10 @@ */ void CalenDayView::showRegionalInformationFadeIn() { - showHideRegionalInformationChanged(mRegionalInfo, 3); - HbEffect::start(mRegionalInfoGroupBox, "fadeIn"); + showHideRegionalInformationChanged(mRegionalInfoKey, 3); + if (mRegionalInfoGroupBox) { + HbEffect::start(mRegionalInfoGroupBox, "fadeIn"); + } } /*! @@ -411,34 +443,41 @@ const XQSettingsKey& key, const QVariant&) { - if (key.key() == mRegionalInfo.key()) { + if ((key.key() == mRegionalInfoKey.key()) && pluginEnabled()) { int showRegionalInfo = - mSettingsManager->readItemValue(mRegionalInfo).toUInt(); + mSettingsManager->readItemValue(mRegionalInfoKey).toUInt(); + if (showRegionalInfo) { + if (!mRegionalInfoGroupBox) { + mRegionalInfoGroupBox = new HbGroupBox(); + CalenPluginLabel *regionalInfo = new CalenPluginLabel( + mServices, this); + regionalInfo->setFontSpec(HbFontSpec(HbFontSpec::Primary)); - if (showRegionalInfo) { + // Set margins in groupbox according to UI spec + HbStyle style; + HbDeviceProfile deviceProfile; + qreal leftMargin = 0.0; + qreal rightMargin = 0.0; + qreal topMargin = 0.0; + qreal bottomMargin = 0.0; + style.parameter(QString("hb-param-margin-gene-left"), + leftMargin, deviceProfile); + style.parameter(QString("hb-param-margin-gene-right"), + rightMargin, deviceProfile); + style.parameter(QString("hb-param-margin-gene-top"), topMargin, + deviceProfile); + style.parameter(QString("hb-param-margin-gene-bottom"), + bottomMargin, deviceProfile); + regionalInfo->setContentsMargins(leftMargin, topMargin, + rightMargin, bottomMargin); + mRegionalInfoGroupBox->setContentWidget(regionalInfo); + + mVLayout->insertItem(1, mRegionalInfoGroupBox); + } QString *pluginString = pluginText(); - if (pluginString) { - if (!mRegionalInfoGroupBox) { - mRegionalInfoGroupBox = qobject_cast ( - mDocLoader->findWidget(CALEN_DAYVIEW_REGIONALINFO)); - CalenPluginLabel *regionalInfo = new CalenPluginLabel( - mServices, this); - HbEffect::add(mRegionalInfoGroupBox, ":/fade_out.fxml", - "fadeOut"); - HbEffect::add(mRegionalInfoGroupBox, ":/fade_in.fxml", - "fadeIn"); - regionalInfo->setContentsMargins(1, 1, 1, 1); - mRegionalInfoGroupBox->setContentWidget(regionalInfo); - } - - if (pluginEnabled()) { - HbLabel *pluginInfoLabel = qobject_cast ( - mRegionalInfoGroupBox->contentWidget()); - - pluginInfoLabel->setPlainText(*pluginString); - mVLayout->insertItem(1, mRegionalInfoGroupBox); - } - } + HbLabel *pluginInfoLabel = qobject_cast ( + mRegionalInfoGroupBox->contentWidget()); + pluginInfoLabel->setPlainText(*pluginString); } else { if (mRegionalInfoGroupBox) { @@ -483,4 +522,24 @@ } } +/*! + \brief Slot which is called whenever the orientation of the device changes. + + Changes the backgroung graphic element when orientation chandes. + + \param orientation Current device orientation + */ +void CalenDayView::orientationChanged(Qt::Orientation orientation) +{ + if (Qt::Vertical == orientation) { + mBg = new HbFrameItem(KCalenBackgroundColorPortrait, + HbFrameDrawer::OnePiece, this); + } + else { + mBg = new HbFrameItem(KCalenBackgroundColorLandscape, + HbFrameDrawer::OnePiece, this); + } + mMainContainer->setBackgroundItem(mBg); +} + //End of File diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/tsrc/unittests/unittest_calendaystatusstrip/unittest_calendaystatusstrip.cpp --- a/calendarui/views/dayview/tsrc/unittests/unittest_calendaystatusstrip/unittest_calendaystatusstrip.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/tsrc/unittests/unittest_calendaystatusstrip/unittest_calendaystatusstrip.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -42,7 +42,6 @@ void cleanup(); void testConstructors(); - void testSetGetColor(); void testSetGetRange(); void testSetGetDrawingStyle_data(); void testSetGetDrawingStyle(); @@ -129,24 +128,6 @@ } /*! - Test function for geting and setting color - 1. Test setting red color - 2. Test change color to blue - */ -void TestCalenStatusStrip::testSetGetColor() -{ - //1) - mStatusStrip->setColor(QColor(Qt::red)); - QColor testColor = mStatusStrip->color(); - QCOMPARE(QColor(Qt::red),testColor); - - //2) - mStatusStrip->setColor(QColor(Qt::blue)); - testColor = mStatusStrip->color(); - QCOMPARE(QColor(Qt::blue),testColor); -} - -/*! Test function for geting and setting range 1. Test setting 5px range 2. Test change range to 1px @@ -339,7 +320,6 @@ void TestCalenStatusStrip::testPaint() { //preapre data needed to draw on widget - mStatusStrip->setColor(QColor(Qt::red)); QPair startEndTime; startEndTime.first = QTime(10,20,0); startEndTime.second = QTime(15,10,00); diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/dayview/tsrc/unittests/unittest_calendayview/calendayutils.h --- a/calendarui/views/dayview/tsrc/unittests/unittest_calendayview/calendayutils.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/dayview/tsrc/unittests/unittest_calendayview/calendayutils.h Thu Sep 02 20:25:23 2010 +0300 @@ -47,7 +47,7 @@ Qt::Orientation orientation() { - return 1; + return Qt::Horizontal; } HbMainWindow* mainWindow() diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/eabi/calenviewsu.def --- a/calendarui/views/eabi/calenviewsu.def Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/eabi/calenviewsu.def Thu Sep 02 20:25:23 2010 +0300 @@ -260,4 +260,12 @@ _ZThn8_N22CalenDayHourScrollAreaD1Ev @ 259 NONAME _ZThn8_N25CalenDayContentScrollAreaD0Ev @ 260 NONAME _ZThn8_N25CalenDayContentScrollAreaD1Ev @ 261 NONAME + _ZN14CalenMonthGrid17handleThemeChangeEv @ 262 NONAME + _ZN14CalenMonthView17handleThemeChangeEv @ 263 NONAME + _ZN16CalenPreviewPane13effectStartedEv @ 264 NONAME + _ZN16CalenPreviewPane14effectFinishedEv @ 265 NONAME + _ZN21CalenThickLinesDrawer17handleThemeChangeEv @ 266 NONAME + _ZN16CalenPreviewPane17handleThemeChangeEv @ 267 NONAME + _ZNK25CalenDayContentScrollArea17isHorizontalSwipeEf @ 268 NONAME + _ZN14CalenMonthView26disconnectAboutToQuitEventEv @ 269 NONAME diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/inc/calenagendaviewwidget.h --- a/calendarui/views/inc/calenagendaviewwidget.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/inc/calenagendaviewwidget.h Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/views/inc/caleneventlistviewitem.h --- a/calendarui/views/inc/caleneventlistviewitem.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/inc/caleneventlistviewitem.h Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/views/inc/calengriditemprototype.h --- a/calendarui/views/inc/calengriditemprototype.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/inc/calengriditemprototype.h Thu Sep 02 20:25:23 2010 +0300 @@ -32,15 +32,13 @@ // CONSTANTS const QString focusIconName = "qtg_fr_cal_focused_day_ind"; -const QString eventIndname = "qtg_graf_cal_event_ind"; +const QString eventIndname = ":/qtg_graf_cal_event_ind.svg"; class CalenGridItemPrototype : public HbGridViewItem { Q_OBJECT public: - CalenGridItemPrototype(QColor todayIndColor, QColor activeColor, QColor inActiveColor, - QGraphicsWidget *parent = 0); CalenGridItemPrototype(QGraphicsWidget *parent = 0); virtual ~CalenGridItemPrototype() { @@ -54,12 +52,14 @@ bool canSetModelIndex(const QModelIndex& index); void createPrimitives(); +public slots: + + void handleThemeChange(); + private: - QColor mTodayUnderLineColor; QColor mActiveTextColor; QColor mInActiveTextColor; QColor mCurrentDateColor; - QColor mGridBorderColor; HbIconItem *mEventIndicatorItem; HbTextItem *mMonthDayInfoItem; HbFrameItem *mFocusIndicatorItem; diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/inc/calenmonthgrid.h --- a/calendarui/views/inc/calenmonthgrid.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/inc/calenmonthgrid.h Thu Sep 02 20:25:23 2010 +0300 @@ -87,6 +87,10 @@ void appendRows(); void itemActivated(const QModelIndex &index); +private slots: + + void handleThemeChange(); + private: QStandardItemModel *mModel; scrollDirection mDirection; @@ -95,14 +99,13 @@ CalenMonthView *mView; int mCurrentRow; bool mIsNonActiveDayFocused; - QDateTime mNonActiveFocusedDay; bool mIgnoreItemActivated; QPointF mPressedPos; - QColor mGridLineColor; - QColor mGridBorderColor; QGraphicsWidget* mContentWidget; QList mLocalisedDates; QPointF mStartPos; + QColor mGridLineColor; + bool mActiveDatesSet; }; #endif // CALENMONTHGRID_H diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/inc/calenmonthview.h --- a/calendarui/views/inc/calenmonthview.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/inc/calenmonthview.h Thu Sep 02 20:25:23 2010 +0300 @@ -86,6 +86,7 @@ QDateTime firstDayOfGrid(); void fetchEntriesAndUpdateModel(); void launchDayView(); + void disconnectAboutToQuitEvent(); private: void createGrid(); @@ -116,6 +117,7 @@ void handleRightEffectCompleted(const HbEffect::EffectStatus &status); void addRemoveActionsInMenu(); void changeOrientation(Qt::Orientation orientation); + void handleThemeChange(); private: bool mIsFirstTimeLoad; @@ -175,6 +177,7 @@ HbMenu *mDeleteSubMenu; QColor mWeekDaysColor; bool mIsAboutToQuitEventConnected; // bool to check if month view is registered to get aboutToQuit signals + QColor mPreviewHeadingColor; }; #endif //CALENMONTHVIEW_H diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/inc/calenpreviewpane.h --- a/calendarui/views/inc/calenpreviewpane.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/inc/calenpreviewpane.h Thu Sep 02 20:25:23 2010 +0300 @@ -64,6 +64,7 @@ public slots: void onTwoSecondsTimeout(); void scrollingFinished(); + void handleThemeChange(); private: enum scrollDirection{ @@ -86,6 +87,7 @@ bool mIsGestureHandled; qreal mHtDiff; int mScrollDuration; + QColor mPreviewTextColor; }; #endif /* CALENPREVIEWPANE_H_ */ diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/inc/calenthicklinesdrawer.h --- a/calendarui/views/inc/calenthicklinesdrawer.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/inc/calenthicklinesdrawer.h Thu Sep 02 20:25:23 2010 +0300 @@ -37,7 +37,10 @@ CalenThickLinesDrawer( CalendarNamespace::WidgetType type, QGraphicsItem* parent = NULL ); virtual ~CalenThickLinesDrawer(); - + +private slots: + void handleThemeChange(); + private: void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget); diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/resources/caleneventlistviewitem.css --- a/calendarui/views/resources/caleneventlistviewitem.css Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/resources/caleneventlistviewitem.css Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/views/resources/caleneventlistviewitem.widgetml --- a/calendarui/views/resources/caleneventlistviewitem.widgetml Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/resources/caleneventlistviewitem.widgetml Thu Sep 02 20:25:23 2010 +0300 @@ -1,15 +1,15 @@ - - + + - - - - - - - + + + + + + + @@ -18,13 +18,15 @@ - + + - + + - + @@ -40,38 +42,20 @@ - - + + - + - + - + - - - - - - - - - - - - - - - - - - \ No newline at end of file diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/resources/calenresources.qrc --- a/calendarui/views/resources/calenresources.qrc Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/resources/calenresources.qrc Thu Sep 02 20:25:23 2010 +0300 @@ -5,8 +5,7 @@ caleneventlistviewitem.widgetml caleneventlistviewitem.css caleneventlistviewitem_color.css - qgn_indi_cdr_meeting_layer0.svg - qtg_mono_exception.png + qtg_graf_cal_event_ind.svg view_show_normal.fxml diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/resources/qgn_indi_cdr_meeting_layer0.svg --- a/calendarui/views/resources/qgn_indi_cdr_meeting_layer0.svg Wed Aug 18 09:47:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/resources/qtg_graf_cal_event_ind.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/views/resources/qtg_graf_cal_event_ind.svg Thu Sep 02 20:25:23 2010 +0300 @@ -0,0 +1,6 @@ + + + + + + diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/resources/qtg_mono_exception.png Binary file calendarui/views/resources/qtg_mono_exception.png has changed diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/src/calenagendaviewwidget.cpp --- a/calendarui/views/src/calenagendaviewwidget.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/src/calenagendaviewwidget.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/views/src/caleneventlistviewitem.cpp --- a/calendarui/views/src/caleneventlistviewitem.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/src/caleneventlistviewitem.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 calendarui/views/src/calengriditemprototype.cpp --- a/calendarui/views/src/calengriditemprototype.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/src/calengriditemprototype.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -27,6 +27,7 @@ #include #include #include +#include // User includes #include "calengriditemprototype.h" @@ -47,19 +48,16 @@ /*! Constructor. */ -CalenGridItemPrototype::CalenGridItemPrototype(QColor todayIndColor, QColor activeColor, QColor inActiveColor, - QGraphicsWidget *parent) : - HbGridViewItem(parent), - mTodayUnderLineColor(todayIndColor), - mActiveTextColor(activeColor), - mInActiveTextColor(inActiveColor), - mCurrentDateColor(Qt::black), - mGridBorderColor(Qt::gray), - mEventIndicatorItem(0), - mMonthDayInfoItem(0), - mFocusIndicatorItem(0), - mTodayIndicatorItem(0) - { +CalenGridItemPrototype::CalenGridItemPrototype(QGraphicsWidget *parent) : + HbGridViewItem(parent), + mActiveTextColor(HbColorScheme::color("qtc_cal_month_active_dates")), + mInActiveTextColor(HbColorScheme::color("qtc_cal_month_notactive_dates")), + mCurrentDateColor(HbColorScheme::color("qtc_cal_month_highlighted_text")), + mEventIndicatorItem(0), + mMonthDayInfoItem(0), + mFocusIndicatorItem(0), + mTodayIndicatorItem(0) + { OstTraceFunctionEntry0( CALENGRIDITEMPROTOTYPE_CALENGRIDITEMPROTOTYPE_ENTRY ); OstTraceFunctionExit0( CALENGRIDITEMPROTOTYPE_CALENGRIDITEMPROTOTYPE_EXIT ); @@ -116,6 +114,9 @@ CalenGridItemPrototype* item = new CalenGridItemPrototype(*this); item->createPrimitives(); + connect( + HbTheme::instance(), SIGNAL(changed()), + item, SLOT(handleThemeChange())); // Set the default frame to NULL so that HbGridView does not add its // default frame for items HbFrameBackground frame; @@ -184,8 +185,13 @@ // Get the text color monthTextColorRole = itemList.at(CalendarNamespace::CalendarMonthTextColorRole).value(); if (monthTextColorRole) { - // Set the active text color - mMonthDayInfoItem->setTextColor(mActiveTextColor); + if (monthFocusRole) { + // Set the Highlighted text color + mMonthDayInfoItem->setTextColor(mCurrentDateColor); + } else { + // Set the active text color + mMonthDayInfoItem->setTextColor(mActiveTextColor); + } } else { // Set the inactive text color mMonthDayInfoItem->setTextColor(mInActiveTextColor); @@ -233,4 +239,18 @@ return true; } +/*! + Slot to handle the change in theme + */ +void CalenGridItemPrototype::handleThemeChange() +{ + OstTraceFunctionEntry0( CALENGRIDITEMPROTOTYPE_HANDLETHEMECHANGE_ENTRY ); + + mActiveTextColor = HbColorScheme::color("qtc_cal_month_active_dates"); + mInActiveTextColor = HbColorScheme::color("qtc_cal_month_notactive_dates"); + mCurrentDateColor = HbColorScheme::color("qtc_cal_month_highlighted_text"); + + OstTraceFunctionExit0( CALENGRIDITEMPROTOTYPE_HANDLETHEMECHANGE_EXIT ); + +} // End of file --Don't remove this. diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/src/calenmonthgrid.cpp --- a/calendarui/views/src/calenmonthgrid.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/src/calenmonthgrid.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -65,7 +65,8 @@ mCurrentRow(-100), mIsNonActiveDayFocused(false), mIgnoreItemActivated(false), - mGridBorderColor(Qt::gray) + mGridLineColor(HbColorScheme::color("qtc_cal_grid_line")), + mActiveDatesSet(false) { OstTraceFunctionEntry0( CALENMONTHGRID_CALENMONTHGRID_ENTRY ); @@ -81,15 +82,15 @@ setEnabledAnimations(HbAbstractItemView::None); setFrictionEnabled(false); setFlag(QGraphicsItem::ItemHasNoContents, false); + + // Disable the rows and columns swapping on orientation change + setSwapDimensionsOnOrientationChange(false); + resetTransform(); // Get the content widget of the scroll area to draw the grid lines mContentWidget = contentWidget(); - - // Get the all required colors - // Color of the grid lines - mGridLineColor = HbColorScheme::color("qtc_cal_grid_line"); - + // Get the localised dates well before // TODO: Need to update the mLocalisedDates when user changes the // phone language keeping calendar application in background @@ -101,6 +102,13 @@ // Connect to scrolling finished signal connect(this, SIGNAL(scrollingEnded()), this, SLOT(scrollingFinished())); + + connect( + HbTheme::instance(), SIGNAL(changed()), + this, SLOT(handleThemeChange())); + + // Disable the haptic feedback for the month grid during scrolling + setAttribute(Hb::InteractionDisabled); OstTraceFunctionExit0( CALENMONTHGRID_CALENMONTHGRID_EXIT ); } @@ -218,19 +226,14 @@ } if (isFirstTime) { - // Color of the today indicator - QColor todayIndColor = HbColorScheme::color("qtc_cal_month_current_day"); - // Color of the active dates - QColor mActiveTextColor = - HbColorScheme::color("qtc_cal_month_active_dates"); - // Color of the inactive dates - QColor mInActiveTextColor = - HbColorScheme::color("qtc_cal_month_notactive_dates"); // Create the prototype - CalenGridItemPrototype* gridItemPrototype = new CalenGridItemPrototype( - todayIndColor, mActiveTextColor, mInActiveTextColor, this); + CalenGridItemPrototype* gridItemPrototype = new CalenGridItemPrototype(this); + connect( + HbTheme::instance(), SIGNAL(changed()), + gridItemPrototype, SLOT(handleThemeChange())); + // Set the mode and the prototype setModel(mModel,gridItemPrototype); @@ -339,15 +342,32 @@ OstTraceFunctionEntry0( CALENMONTHGRID_DOWNGESTURE_ENTRY ); // Make sure that content widget is properly placed + // We are doing this as tapping on inactive date of previous month is leading to + // position the grid at wrong place after scrolling down. Hence, set the grid + // at proper position before we start actual scrolling if (mIsNonActiveDayFocused) { mIsAtomicScroll = true; int itemToBeScrolled = mView->rowsInPrevMonth() * KCalenDaysInWeek; QModelIndex indexToBeScrolled = mModel->index(itemToBeScrolled, 0); scrollTo(indexToBeScrolled); } + + // Set the required flags mDirection = down; mIsAtomicScroll = false; - setAttribute(Hb::InteractionDisabled); + + // Set the active and inactive dates + QDateTime activeMonth = mView->getActiveDay(); + // For previous month, substract one month to the current month + setActiveDates(activeMonth.addMonths(-1).date()); + mActiveDatesSet = true; + // Set the focus to proper date before scrolling to avoid somekind of + // jerkiness + if (!mIsNonActiveDayFocused) { + setFocusToProperDay(); + } + + // Start the scrolling QPointF targetPos(0.0, 0.0); scrollContentsTo(targetPos,500); @@ -361,17 +381,23 @@ { OstTraceFunctionEntry0( CALENMONTHGRID_UPGESTURE_ENTRY ); - // Make sure that content widget is properly placed - if (mIsNonActiveDayFocused) { - mIsAtomicScroll = true; - int itemToBeScrolled = mView->rowsInPrevMonth() * KCalenDaysInWeek; - itemToBeScrolled += KNumOfVisibleRows * KCalenDaysInWeek; - QModelIndex indexToBeScrolled = mModel->index(itemToBeScrolled, 0); - scrollTo(indexToBeScrolled); - } + + // Set the required flags mDirection = up; mIsAtomicScroll = false; - setAttribute(Hb::InteractionDisabled); + + // Set the active and inactive dates + QDateTime activeMonth = mView->getActiveDay(); + // For next month, add one month to the current month + setActiveDates(activeMonth.addMonths(1).date()); + mActiveDatesSet = true; + // Set the focus to proper date before scrolling to avoid somekind of + // jerkiness + if (!mIsNonActiveDayFocused) { + setFocusToProperDay(); + } + + // Start the scrolling QPointF targetPos(0.0, mStartPos.y() - size().height()); scrollContentsTo(-targetPos,500); @@ -420,12 +446,11 @@ if(HbPanGesture *gesture = qobject_cast(event->gesture(Qt::PanGesture))) { if (gesture->state() == Qt::GestureStarted) { - setAttribute(Hb::InteractionDisabled); mIsAtomicScroll = false; if (!mIsPanGesture) { mDirection = invalid; mStartPos = mContentWidget->pos(); - // TODO: This work aroung till framework provides an api + // TODO: This work around till framework provides an api // to know the direciton of the pan, until then we need // calculate the direction explicitly // Get to know the direction of the gesture @@ -478,7 +503,6 @@ } } else if(HbSwipeGesture *gesture = qobject_cast(event->gesture(Qt::SwipeGesture))) { if (gesture->state() == Qt::GestureStarted) { - setAttribute(Hb::InteractionDisabled); mIsAtomicScroll = false; mDirection = invalid; if (gesture->sceneVerticalDirection() == QSwipeGesture::Down) { @@ -524,23 +548,25 @@ } else if(!mIsAtomicScroll) { QDateTime activeDate = mView->getActiveDay(); if(mDirection == down) { // down gesture - if (!mIsNonActiveDayFocused) { + if (!mActiveDatesSet) { setActiveDates(activeDate.addMonths(-1).date()); + setFocusToProperDay(); } prependRows(); } else if (mDirection == up) { //up gesture - if (!mIsNonActiveDayFocused) { + if (!mActiveDatesSet) { setActiveDates(activeDate.addMonths(1).date()); + setFocusToProperDay(); } appendRows(); } mDirection = invalid; + mActiveDatesSet = false; } else { mIsAtomicScroll = false; mDirection = invalid; } mIgnoreItemActivated = false; - setAttribute(Hb::InteractionDisabled, false); OstTraceFunctionExit0( CALENMONTHGRID_SCROLLINGFINISHED_EXIT ); } @@ -581,7 +607,6 @@ // we should again show the current month by scrolling downwards mDirection = down; mIsAtomicScroll = true; - setAttribute(Hb::InteractionDisabled); scrollContentsTo(-mStartPos,500); } } else if (month == prevMonth.date().month()) { @@ -591,7 +616,6 @@ // we should again show the current month by scrolling upwards mDirection = up; mIsAtomicScroll = true; - setAttribute(Hb::InteractionDisabled); scrollContentsTo(-mStartPos,500); } else { // down gesture to show the previous month @@ -609,8 +633,7 @@ upGesture(); } else { // we should again show the current month by scrolling upwards - mDirection = invalid; - setAttribute(Hb::InteractionDisabled); + mDirection = up; scrollContentsTo(-mStartPos,500); } } else if (month == nextMonth.addMonths(1).date().month()) { @@ -629,13 +652,6 @@ void CalenMonthGrid::prependRows() { OstTraceFunctionEntry0( CALENMONTHGRID_PREPENDROWS_ENTRY ); - - // Before we do anything, set the focus to proper date - // Set it only when non active day was focussed. When inactive day - // was focussed, we need to focus the same day - if (!mIsNonActiveDayFocused) { - setFocusToProperDay(); - } // Block the signals generated by model, this is being done as // we want to avoid the overload of view listening to signals @@ -756,13 +772,6 @@ void CalenMonthGrid::appendRows() { OstTraceFunctionEntry0( CALENMONTHGRID_APPENDROWS_ENTRY ); - - // Before we do anything, set the focus to proper date - // Set it only when non active day was focussed. When inactive day - // was focussed, we need to focus the same day - if (!mIsNonActiveDayFocused) { - setFocusToProperDay(); - } // Block the signals generated by model, this is being done as // we want to avoid the overload of view listening to signals @@ -924,21 +933,19 @@ if(month != monthDataList[mCurrentRow].Day().date().month()){ // Set the flag mIsNonActiveDayFocused = true; - mNonActiveFocusedDay = monthDataList[mCurrentRow].Day(); + QDateTime nonActiveFocusedDay = monthDataList[mCurrentRow].Day(); // Add one month to active month activeMonth = activeMonth.addMonths(1); if (activeMonth.date().month() == - mNonActiveFocusedDay.date().month()) { + nonActiveFocusedDay.date().month()) { mDirection = up; // up gesture upGesture(); - setActiveDates(activeMonth.date()); } else { mDirection = down; // down gesture downGesture(); - setActiveDates(activeMonth.addMonths(-2).date()); } } mView->setContextForActiveDay(index.row()); @@ -1025,12 +1032,14 @@ end = firstDateInGrid.daysTo(endOfActiveMonth); // Set the active text color - for (int i = start; i < end; i++) { - QModelIndex index = mModel->index(i,0); - QVariant itemData = index.data(Qt::UserRole + 1); - QVariantList list = itemData.toList(); - list.replace(CalendarNamespace::CalendarMonthTextColorRole, true); - mModel->itemFromIndex(index)->setData(list); + if (start >= 0 && end < monthDataList.count()) { + for (int i = start; i < end; i++) { + QModelIndex index = mModel->index(i,0); + QVariant itemData = index.data(Qt::UserRole + 1); + QVariantList list = itemData.toList(); + list.replace(CalendarNamespace::CalendarMonthTextColorRole, true); + mModel->itemFromIndex(index)->setData(list); + } } // Now set the inactive text color to those which were active before the swipe @@ -1071,12 +1080,14 @@ } // Set the inactive text color - for (int i = start; i < end; i++) { - QModelIndex index = mModel->index(i,0); - QVariant itemData = index.data(Qt::UserRole + 1); - QVariantList list = itemData.toList(); - list.replace(CalendarNamespace::CalendarMonthTextColorRole, false); - mModel->itemFromIndex(index)->setData(list); + if (start >= 0 && end < monthDataList.count()) { + for (int i = start; i < end; i++) { + QModelIndex index = mModel->index(i,0); + QVariant itemData = index.data(Qt::UserRole + 1); + QVariantList list = itemData.toList(); + list.replace(CalendarNamespace::CalendarMonthTextColorRole, false); + mModel->itemFromIndex(index)->setData(list); + } } OstTraceFunctionExit0( DUP1_CALENMONTHGRID_SETACTIVEDATES_EXIT ); @@ -1162,11 +1173,8 @@ qreal widthInPixels = GRIDLINE_WIDTH * unitValue; pen.setStyle(Qt::SolidLine); pen.setWidth(widthInPixels); - if (mGridLineColor.isValid()) { - pen.setBrush(mGridLineColor); - } else { - pen.setBrush(mGridBorderColor); - } + pen.setBrush(mGridLineColor); + // Store the old pen QPen oldPen = painter->pen(); @@ -1235,4 +1243,16 @@ OstTraceFunctionExit0( CALENMONTHGRID_PAINT_EXIT ); } +/*! + Slot to handle the change in theme + */ +void CalenMonthGrid::handleThemeChange() +{ + OstTraceFunctionEntry0(CALENMONTHGRID_HANDLETHEMECHANGE_ENTRY); + + mGridLineColor = HbColorScheme::color("qtc_cal_grid_line"); + + OstTraceFunctionExit0(CALENMONTHGRID_HANDLETHEMECHANGE_EXIT); +} + // End of File diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/src/calenmonthview.cpp --- a/calendarui/views/src/calenmonthview.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/src/calenmonthview.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include // hbapplication @@ -93,9 +94,14 @@ mLocale = HbExtendedLocale::system(); mFirstWeekLabel = NULL; mIsPrevPaneGesture = false; - // Get the week day color from the theme + // Get the week day and preview heading color from the theme mWeekDaysColor = HbColorScheme::color("qtc_cal_week_day"); + mPreviewHeadingColor = HbColorScheme::color("qtc_cal_day_preview_heading"); + + connect(HbTheme::instance(), SIGNAL(changed()), + this, SLOT(handleThemeChange())); + OstTraceFunctionExit0( CALENMONTHVIEW_CALENMONTHVIEW_EXIT ); } @@ -179,6 +185,10 @@ mCurrPreviewPane->setView(this); mCurrPreviewPane->setNoEntriesLabel(currPaneNoEntriesLabel); + connect( + HbTheme::instance(), SIGNAL(changed()), + mCurrPreviewPane, SLOT(handleThemeChange())); + mCurrPaneLayoutWidget = qobject_cast(docLoader->findWidget(CALEN_CURRPANELAYOUT)); mCurrPaneLayout = static_cast(mCurrPaneLayoutWidget->layout()); @@ -194,6 +204,9 @@ docLoader->findWidget(CALEN_NOENTRIES_LABEL_PREV)); mPrevPreviewPane->setView(this); mPrevPreviewPane->setNoEntriesLabel(prevPaneNoEntriesLabel); + connect( + HbTheme::instance(), SIGNAL(changed()), + mPrevPreviewPane, SLOT(handleThemeChange())); mPrevPaneParent->setVisible(false); mPrevPaneLayoutWidget = qobject_cast(docLoader->findWidget(CALEN_PREVPANELAYOUT)); @@ -210,6 +223,10 @@ docLoader->findWidget(CALEN_NOENTRIES_LABEL_NEXT)); mNextPreviewPane->setView(this); mNextPreviewPane->setNoEntriesLabel(nextPaneNoEntriesLabel); + connect( + HbTheme::instance(), SIGNAL(changed()), + mNextPreviewPane, SLOT(handleThemeChange())); + mNextPaneParent->setVisible(false); mNextPaneLayoutWidget = qobject_cast(docLoader->findWidget(CALEN_NEXTPANELAYOUT)); mNextPaneLayout = static_cast(mNextPaneLayoutWidget->layout()); @@ -560,8 +577,11 @@ } QString *pluginString = pluginText(); mPrevRegionalInfo->setPlainText(*pluginString); + mPrevRegionalInfo->setTextColor(mPreviewHeadingColor); mCurrRegionalInfo->setPlainText(*pluginString); + mCurrRegionalInfo->setTextColor(mPreviewHeadingColor); mNextRegionalInfo->setPlainText(*pluginString); + mNextRegionalInfo->setTextColor(mPreviewHeadingColor); } else { if (mPrevRegionalInfo) { mPrevPaneLayout->removeItem(mPrevRegionalInfo); @@ -569,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; } @@ -1427,16 +1447,27 @@ mServices.IssueCommandL(ECalenDayView); // day view launched now, disconnect to get the call backs for saveActivity // on aboutToQuit signal - if (mIsAboutToQuitEventConnected) - { - disconnect(qobject_cast(qApp), SIGNAL(aboutToQuit()), this, SLOT(saveActivity())); - mIsAboutToQuitEventConnected = false; - } + disconnectAboutToQuitEvent(); OstTraceFunctionExit0( CALENMONTHVIEW_LAUNCHDAYVIEW_EXIT ); } /*! +disconnects for the aboutToQuit events + */ +void CalenMonthView::disconnectAboutToQuitEvent() +{ + OstTraceFunctionEntry0( CALENMONTHVIEW_DISCONNECTABOUTTOQUITEVENT_ENTRY ); + + if (mIsAboutToQuitEventConnected) { + disconnect(qobject_cast(qApp), SIGNAL(aboutToQuit()), this, SLOT(saveActivity())); + mIsAboutToQuitEventConnected = false; + } + + OstTraceFunctionExit0( CALENMONTHVIEW_DISCONNECTABOUTTOQUITEVENT_EXIT ); +} + +/*! Slot to handle the change in orientation */ void CalenMonthView::changeOrientation(Qt::Orientation orientation) @@ -1453,6 +1484,28 @@ } /*! + Slot to handle the change in theme + */ +void CalenMonthView::handleThemeChange() +{ + OstTraceFunctionEntry0( CALENMONTHVIEW_HANDLETHEMECHANGE_ENTRY ); + + // Refresh the month view when the theme change happens + mWeekDaysColor = HbColorScheme::color("qtc_cal_week_day"); + QColor monthTitleColor = HbColorScheme::color("qtc_cal_monthgrid_title"); + + if (mTitleLabel && monthTitleColor.isValid()) { + mTitleLabel->setTextColor(monthTitleColor); + } + + mPreviewHeadingColor = HbColorScheme::color("qtc_cal_day_preview_heading"); + + mServices.IssueCommandL(ECalenStartActiveStep); + + OstTraceFunctionExit0( CALENMONTHVIEW_HANDLETHEMECHANGE_EXIT ); +} + +/*! Loads appropriate section from the docml dsepending on the current orientation of the device */ @@ -1721,9 +1774,12 @@ labels.append(mFifthDayLabel); labels.append(mSixthDayLabel); labels.append(mSeventhDayLabel); + QGraphicsLinearLayout* layout = static_cast (mDayNameWidget->layout()); for(int i=0;i < KCalenDaysInWeek; i++ ) { labels.at(i)->setPlainText(weekDayArray[weekDayIndex]); + // Set the stretch factor as 1 so that each label occupies equal space + layout->setStretchFactor(labels.at(i), 1); if(weekDayIndex == KCalenDaysInWeek - 1 )//Sunday { weekDayIndex = 0;//reset to monday diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/src/calenpreviewpane.cpp --- a/calendarui/views/src/calenpreviewpane.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/src/calenpreviewpane.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -74,6 +75,8 @@ mNoEntriesLabel = 0; mHtDiff = 0.0; mScrollDuration = 0; + mPreviewTextColor = HbColorScheme::color("qtc_cal_day_preview_text"); + setAcceptDrops(true); setScrollDirections(Qt::Vertical); setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOff); @@ -107,6 +110,9 @@ mNoEntriesLabel = label; + if (mPreviewTextColor.isValid()) { + mNoEntriesLabel->setTextColor(mPreviewTextColor); + } OstTraceFunctionExit0( CALENPREVIEWPANE_SETNOENTRIESLABEL_EXIT ); } @@ -122,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; @@ -138,6 +145,9 @@ HbFontSpec font(HbFontSpec::Secondary); if (mIsNoEntriesAdded) { if (!instanceCount) { + if (mPreviewTextColor.isValid()) { + mNoEntriesLabel->setTextColor(mPreviewTextColor); + } mNoEntriesLabel->setVisible(true); OstTraceFunctionExit0( CALENPREVIEWPANE_POPULATELABEL_EXIT ); return; @@ -162,13 +172,6 @@ // Set the required font label->setFontSpec(font); - // Set the text color from the theme - QColor previewPaneColor = HbColorScheme::color( - "qtc_cal_day_preview_text"); - if (previewPaneColor.isValid()) { - label->setTextColor(previewPaneColor); - } - // Set the elide mode to right label->setElideMode(Qt::ElideRight); // Add the label to the list @@ -179,6 +182,10 @@ label = mLabelList.at(i); count--; } + + if (mPreviewTextColor.isValid()) { + label->setTextColor(mPreviewTextColor); + } QString summary = mInstanceArray[i].summary(); if(!summary.length()) { // No summary display "Unnamed" @@ -234,6 +241,9 @@ // Clear the list mLabelList.clear(); + if (mPreviewTextColor.isValid()) { + mNoEntriesLabel->setTextColor(mPreviewTextColor); + } // Add the no entries text to the preview pane mNoEntriesLabel->setVisible(true); mIsNoEntriesAdded = true; @@ -291,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())); @@ -323,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 @@ -430,12 +446,16 @@ 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); } } - OstTraceFunctionExit0( DUP2_CALENPREVIEWPANE_GESTUREEVENT_EXIT ); + OstTraceFunctionExit0( DUP3_CALENPREVIEWPANE_GESTUREEVENT_EXIT ); } /*! @@ -457,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 ); @@ -499,4 +523,16 @@ mIsGestureHandled = false; } +/*! + Slot to handle the change in theme + */ +void CalenPreviewPane::handleThemeChange() +{ + OstTraceFunctionEntry0( CALENPREVIEWPANE_HANDLETHEMECHANGE_ENTRY ); + + mPreviewTextColor = HbColorScheme::color("qtc_cal_day_preview_text"); + + OstTraceFunctionExit0( CALENPREVIEWPANE_HANDLETHEMECHANGE_EXIT ); +} + // End of file --Don't remove this. diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/src/calenthicklinesdrawer.cpp --- a/calendarui/views/src/calenthicklinesdrawer.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/src/calenthicklinesdrawer.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -21,6 +21,7 @@ #include #include #include +#include // User includes #include "calenthicklinesdrawer.h" @@ -53,6 +54,10 @@ mGridBorderColor = HbColorScheme::color("qtc_cal_grid_line"); setFlag(QGraphicsItem::ItemHasNoContents, false); + connect( + HbTheme::instance(), SIGNAL(changed()), + this, SLOT(handleThemeChange())); + OstTraceFunctionExit0( CALENTHICKLINESDRAWER_CALENTHICKLINESDRAWER_EXIT ); } @@ -121,4 +126,16 @@ OstTraceFunctionExit0( CALENTHICKLINESDRAWER_PAINT_EXIT ); } +/*! + Slot to handle the change in theme + */ +void CalenThickLinesDrawer::handleThemeChange() +{ + OstTraceFunctionEntry0(CALENTHICKLINESDRAWER_HANDLETHEMECHANGE_ENTRY); + + mGridBorderColor = HbColorScheme::color("qtc_cal_grid_line"); + + OstTraceFunctionExit0(CALENTHICKLINESDRAWER_HANDLETHEMECHANGE_EXIT); +} + // End of file --Don't remove this. diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/traces/calengriditemprototypeTraces.h --- a/calendarui/views/traces/calengriditemprototypeTraces.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/traces/calengriditemprototypeTraces.h Thu Sep 02 20:25:23 2010 +0300 @@ -20,6 +20,8 @@ #define DUP1_CALENGRIDITEMPROTOTYPE_PRESSSTATECHANGED_EXIT 0x8a0079 #define CALENGRIDITEMPROTOTYPE_CANSETMODELINDEX_ENTRY 0x8a007a #define CALENGRIDITEMPROTOTYPE_CANSETMODELINDEX_EXIT 0x8a007b +#define CALENGRIDITEMPROTOTYPE_HANDLETHEMECHANGE_ENTRY 0x8a0183 +#define CALENGRIDITEMPROTOTYPE_HANDLETHEMECHANGE_EXIT 0x8a0184 #endif diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/traces/calenmonthgridTraces.h --- a/calendarui/views/traces/calenmonthgridTraces.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/traces/calenmonthgridTraces.h Thu Sep 02 20:25:23 2010 +0300 @@ -60,6 +60,8 @@ #define CALENMONTHGRID_ORIENTATIONCHANGED_EXIT 0x8a00bf #define CALENMONTHGRID_PAINT_ENTRY 0x8a00c0 #define CALENMONTHGRID_PAINT_EXIT 0x8a00c1 +#define CALENMONTHGRID_HANDLETHEMECHANGE_ENTRY 0x8a0185 +#define CALENMONTHGRID_HANDLETHEMECHANGE_EXIT 0x8a0186 #endif diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/traces/calenmonthviewTraces.h --- a/calendarui/views/traces/calenmonthviewTraces.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/traces/calenmonthviewTraces.h Thu Sep 02 20:25:23 2010 +0300 @@ -105,6 +105,10 @@ #define CALENMONTHVIEW_HANDLERIGHTEFFECTCOMPLETED_EXIT 0x8a0122 #define CALENMONTHVIEW_UPDATEDAYLABEL_ENTRY 0x8a0123 #define CALENMONTHVIEW_UPDATEDAYLABEL_EXIT 0x8a0124 +#define CALENMONTHVIEW_DISCONNECTABOUTTOQUITEVENT_ENTRY 0x8a017f +#define CALENMONTHVIEW_DISCONNECTABOUTTOQUITEVENT_EXIT 0x8a0180 +#define CALENMONTHVIEW_HANDLETHEMECHANGE_ENTRY 0x8a0187 +#define CALENMONTHVIEW_HANDLETHEMECHANGE_EXIT 0x8a0188 #endif diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/traces/calenpreviewpaneTraces.h --- a/calendarui/views/traces/calenpreviewpaneTraces.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/traces/calenpreviewpaneTraces.h Thu Sep 02 20:25:23 2010 +0300 @@ -30,11 +30,14 @@ #define CALENPREVIEWPANE_GESTUREEVENT_ENTRY 0x8a015f #define CALENPREVIEWPANE_GESTUREEVENT_EXIT 0x8a0160 #define DUP1_CALENPREVIEWPANE_GESTUREEVENT_EXIT 0x8a0161 -#define DUP2_CALENPREVIEWPANE_GESTUREEVENT_EXIT 0x8a0162 #define CALENPREVIEWPANE_SETVIEW_ENTRY 0x8a0163 #define CALENPREVIEWPANE_SETVIEW_EXIT 0x8a0164 #define CALENPREVIEWPANE_STOPSCROLLING_ENTRY 0x8a0165 #define CALENPREVIEWPANE_STOPSCROLLING_EXIT 0x8a0166 +#define DUP2_CALENPREVIEWPANE_GESTUREEVENT_EXIT 0x8a0181 +#define DUP3_CALENPREVIEWPANE_GESTUREEVENT_EXIT 0x8a0182 +#define CALENPREVIEWPANE_HANDLETHEMECHANGE_ENTRY 0x8a0189 +#define CALENPREVIEWPANE_HANDLETHEMECHANGE_EXIT 0x8a018a #endif diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/traces/calenthicklinesdrawerTraces.h --- a/calendarui/views/traces/calenthicklinesdrawerTraces.h Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/traces/calenthicklinesdrawerTraces.h Thu Sep 02 20:25:23 2010 +0300 @@ -12,6 +12,8 @@ #define DUP1_CALENTHICKLINESDRAWER_CALENTHICKLINESDRAWER_EXIT 0x8a0174 #define CALENTHICKLINESDRAWER_PAINT_ENTRY 0x8a0175 #define CALENTHICKLINESDRAWER_PAINT_EXIT 0x8a0176 +#define CALENTHICKLINESDRAWER_HANDLETHEMECHANGE_ENTRY 0x8a018b +#define CALENTHICKLINESDRAWER_HANDLETHEMECHANGE_EXIT 0x8a018c #endif diff -r ef813d54df51 -r a5a1242fd2e8 calendarui/views/traces/fixed_id.definitions --- a/calendarui/views/traces/fixed_id.definitions Wed Aug 18 09:47:38 2010 +0300 +++ b/calendarui/views/traces/fixed_id.definitions Thu Sep 02 20:25:23 2010 +0300 @@ -98,6 +98,8 @@ [TRACE]TRACE_FLOW[0x8A]_CALENGRIDITEMPROTOTYPE_CREATEITEM_EXIT=0x73 [TRACE]TRACE_FLOW[0x8A]_CALENGRIDITEMPROTOTYPE_CREATEPRIMITIVES_ENTRY=0x70 [TRACE]TRACE_FLOW[0x8A]_CALENGRIDITEMPROTOTYPE_CREATEPRIMITIVES_EXIT=0x71 +[TRACE]TRACE_FLOW[0x8A]_CALENGRIDITEMPROTOTYPE_HANDLETHEMECHANGE_ENTRY=0x183 +[TRACE]TRACE_FLOW[0x8A]_CALENGRIDITEMPROTOTYPE_HANDLETHEMECHANGE_EXIT=0x184 [TRACE]TRACE_FLOW[0x8A]_CALENGRIDITEMPROTOTYPE_PRESSSTATECHANGED_ENTRY=0x76 [TRACE]TRACE_FLOW[0x8A]_CALENGRIDITEMPROTOTYPE_PRESSSTATECHANGED_EXIT=0x77 [TRACE]TRACE_FLOW[0x8A]_CALENGRIDITEMPROTOTYPE_UPDATECHILDITEMS_ENTRY=0x74 @@ -130,6 +132,8 @@ [TRACE]TRACE_FLOW[0x8A]_CALENMONTHGRID_HANDLEPANGESTUREFINISHED_EXIT=0xa8 [TRACE]TRACE_FLOW[0x8A]_CALENMONTHGRID_HANDLEPREPENDINGROWS_ENTRY=0xab [TRACE]TRACE_FLOW[0x8A]_CALENMONTHGRID_HANDLEPREPENDINGROWS_EXIT=0xac +[TRACE]TRACE_FLOW[0x8A]_CALENMONTHGRID_HANDLETHEMECHANGE_ENTRY=0x185 +[TRACE]TRACE_FLOW[0x8A]_CALENMONTHGRID_HANDLETHEMECHANGE_EXIT=0x186 [TRACE]TRACE_FLOW[0x8A]_CALENMONTHGRID_ITEMACTIVATED_ENTRY=0xb1 [TRACE]TRACE_FLOW[0x8A]_CALENMONTHGRID_ITEMACTIVATED_EXIT=0xb2 [TRACE]TRACE_FLOW[0x8A]_CALENMONTHGRID_MOUSEPRESSEVENT_ENTRY=0x9c @@ -178,6 +182,8 @@ [TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_CREATEGRID_EXIT=0xee [TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_DATEFROMCONTEXT_ENTRY=0xe1 [TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_DATEFROMCONTEXT_EXIT=0xe2 +[TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_DISCONNECTABOUTTOQUITEVENT_ENTRY=0x17f +[TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_DISCONNECTABOUTTOQUITEVENT_EXIT=0x180 [TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_DOLAZYLOADING_ENTRY=0xc8 [TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_DOLAZYLOADING_EXIT=0xc9 [TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_DOPOPULATION_ENTRY=0xdb @@ -206,6 +212,8 @@ [TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_HANDLEPREVIEWPANEGESTURE_EXIT=0x11a [TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_HANDLERIGHTEFFECTCOMPLETED_ENTRY=0x121 [TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_HANDLERIGHTEFFECTCOMPLETED_EXIT=0x122 +[TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_HANDLETHEMECHANGE_ENTRY=0x187 +[TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_HANDLETHEMECHANGE_EXIT=0x188 [TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_LAUNCHDAYVIEW_ENTRY=0x111 [TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_LAUNCHDAYVIEW_EXIT=0x112 [TRACE]TRACE_FLOW[0x8A]_CALENMONTHVIEW_MONTHDATALIST_ENTRY=0xeb @@ -296,6 +304,8 @@ [TRACE]TRACE_FLOW[0x8A]_CALENPREVIEWPANE_GESTUREEVENT_EXIT=0x160 [TRACE]TRACE_FLOW[0x8A]_CALENPREVIEWPANE_GETINSTANCELISTL_ENTRY=0x153 [TRACE]TRACE_FLOW[0x8A]_CALENPREVIEWPANE_GETINSTANCELISTL_EXIT=0x154 +[TRACE]TRACE_FLOW[0x8A]_CALENPREVIEWPANE_HANDLETHEMECHANGE_ENTRY=0x189 +[TRACE]TRACE_FLOW[0x8A]_CALENPREVIEWPANE_HANDLETHEMECHANGE_EXIT=0x18a [TRACE]TRACE_FLOW[0x8A]_CALENPREVIEWPANE_ONTWOSECONDSTIMEOUT_ENTRY=0x15a [TRACE]TRACE_FLOW[0x8A]_CALENPREVIEWPANE_ONTWOSECONDSTIMEOUT_EXIT=0x15b [TRACE]TRACE_FLOW[0x8A]_CALENPREVIEWPANE_POPULATELABEL_ENTRY=0x150 @@ -320,6 +330,8 @@ [TRACE]TRACE_FLOW[0x8A]_CALENSETTINGSVIEW_REFRESHVIEW_EXIT=0x170 [TRACE]TRACE_FLOW[0x8A]_CALENTHICKLINESDRAWER_CALENTHICKLINESDRAWER_ENTRY=0x171 [TRACE]TRACE_FLOW[0x8A]_CALENTHICKLINESDRAWER_CALENTHICKLINESDRAWER_EXIT=0x172 +[TRACE]TRACE_FLOW[0x8A]_CALENTHICKLINESDRAWER_HANDLETHEMECHANGE_ENTRY=0x18b +[TRACE]TRACE_FLOW[0x8A]_CALENTHICKLINESDRAWER_HANDLETHEMECHANGE_EXIT=0x18c [TRACE]TRACE_FLOW[0x8A]_CALENTHICKLINESDRAWER_PAINT_ENTRY=0x175 [TRACE]TRACE_FLOW[0x8A]_CALENTHICKLINESDRAWER_PAINT_EXIT=0x176 [TRACE]TRACE_FLOW[0x8A]_CALENTODAYINDICATORLINEDRAWER_CALENTODAYINDICATORLINEDRAWER_ENTRY=0x177 @@ -380,5 +392,7 @@ [TRACE]TRACE_FLOW[0x8A]_DUP2_CALENMONTHDATA_CALENMONTHDATA_EXIT=0x81 [TRACE]TRACE_FLOW[0x8A]_DUP2_CALENMONTHGRID_GESTUREEVENT_EXIT=0xa3 [TRACE]TRACE_FLOW[0x8A]_DUP2_CALENMONTHGRID_ITEMACTIVATED_EXIT=0xb4 -[TRACE]TRACE_FLOW[0x8A]_DUP2_CALENPREVIEWPANE_GESTUREEVENT_EXIT=0x162 +[TRACE]TRACE_FLOW[0x8A]_DUP2_CALENPREVIEWPANE_GESTUREEVENT_EXIT=0x181 [TRACE]TRACE_FLOW[0x8A]_DUP3_CALENMONTHGRID_GESTUREEVENT_EXIT=0xa4 +[TRACE]TRACE_FLOW[0x8A]_DUP3_CALENPREVIEWPANE_GESTUREEVENT_EXIT=0x182 +[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP2_CALENPREVIEWPANE_GESTUREEVENT_EXIT=0x162 diff -r ef813d54df51 -r a5a1242fd2e8 clock/clock.pro --- a/clock/clock.pro Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clock.pro Thu Sep 02 20:25:23 2010 +0300 @@ -29,8 +29,7 @@ "./rom/clockengines.iby CORE_APP_LAYER_IBY_EXPORT_PATH(clockengines.iby)" \ "./rom/clockresources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(clockresources.iby)" \ \ - "./conf/clockapp.confml APP_LAYER_CONFML(clockapp.confml)" \ - "./conf/CI_clockapp.confml APP_LAYER_CONFML(CI_clockapp.confml)" \ + "./conf/clockapp.confml APP_LAYER_CONFML(clockapp.confml)" \ "./conf/clockapp_101F874D.crml APP_LAYER_CRML(clockapp_101F874D.crml)" \ "./conf/clockapp_101F8876.crml APP_LAYER_CRML(clockapp_101F8876.crml)" \ # stubsis is added to provide IAD diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clockalarmeditor/src/clockalarmeditor.cpp --- a/clock/clockui/clockalarmeditor/src/clockalarmeditor.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clockalarmeditor/src/clockalarmeditor.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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 ); } @@ -362,6 +369,9 @@ // Check if the Alarm days item is added. // Remove if already added. if (mAlarmDayItemInserted) { + mAlarmEditorForm->removeConnection( + mAlarmDayItem, SIGNAL(currentIndexChanged(int)), + this, SLOT(handleDayChanged(int))); mAlarmEditorModel->removeItem(mAlarmDayItem); mAlarmDayItemInserted = false; } @@ -524,7 +534,8 @@ editor->setSelection(0, 0); if (editor->text().isEmpty()) { - editor->setText(hbTrId("txt_clk_formlabel_val_alarm")); + mAlarmDescription->setContentWidgetData( + "text", hbTrId("txt_clk_formlabel_val_alarm")); } } @@ -692,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 ef813d54df51 -r a5a1242fd2e8 clock/clockui/clockplugins/datetimesettingsplugin/inc/datetimesettingsplugin.h --- a/clock/clockui/clockplugins/datetimesettingsplugin/inc/datetimesettingsplugin.h Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clockplugins/datetimesettingsplugin/inc/datetimesettingsplugin.h Thu Sep 02 20:25:23 2010 +0300 @@ -23,9 +23,11 @@ // System includes #include -// User includes +// User includes. #include +// Forward class declartion. +class HbTranslator; class DateTimeSettingsPlugin : public QObject, public CpPluginInterface { Q_OBJECT @@ -37,6 +39,9 @@ virtual int uid() const; QList createSettingFormItemData(CpItemDataHelper &itemDataHelper) const; + +private: + HbTranslator *mTranslator; }; #endif /* DATETIMESETTINGSPLUGIN_H_ */ diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clockplugins/datetimesettingsplugin/inc/datetimesettingsview.h --- a/clock/clockui/clockplugins/datetimesettingsplugin/inc/datetimesettingsview.h Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clockplugins/datetimesettingsplugin/inc/datetimesettingsview.h Thu Sep 02 20:25:23 2010 +0300 @@ -25,6 +25,7 @@ // Forward declarations class QTimer; class TimezoneClient; +class HbTranslator; class DateTimeSettingsView : public CpSettingFormEntryItemData { @@ -34,7 +35,8 @@ CpItemDataHelper &itemDataHelper, const QString &text = QString(), const QString &description = QString(), const HbIcon &icon = HbIcon(), - const HbDataFormModelItem *parent = 0); + const HbDataFormModelItem *parent = 0, + HbTranslator *translator = 0); virtual ~DateTimeSettingsView(); private slots: @@ -47,6 +49,7 @@ private: QTimer *mTickTimer; TimezoneClient *mTimezoneClient; + HbTranslator *mTranslator; }; diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clockplugins/datetimesettingsplugin/src/datetimesettingsplugin.cpp --- a/clock/clockui/clockplugins/datetimesettingsplugin/src/datetimesettingsplugin.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clockplugins/datetimesettingsplugin/src/datetimesettingsplugin.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -19,6 +19,7 @@ #include #include #include +#include // User includes #include "datetimesettingsplugin.h" @@ -35,6 +36,8 @@ DateTimeSettingsPlugin::DateTimeSettingsPlugin() { OstTraceFunctionEntry0( DATETIMESETTINGSPLUGIN_DATETIMESETTINGSPLUGIN_ENTRY ); + mTranslator = new HbTranslator("clocksettingsview"); + mTranslator->loadCommon(); OstTraceFunctionExit0( DATETIMESETTINGSPLUGIN_DATETIMESETTINGSPLUGIN_EXIT ); } @@ -44,6 +47,10 @@ DateTimeSettingsPlugin::~DateTimeSettingsPlugin() { OstTraceFunctionEntry0( DUP1_DATETIMESETTINGSPLUGIN_DATETIMESETTINGSPLUGIN_ENTRY ); + if(mTranslator) { + delete mTranslator; + mTranslator = 0; + } OstTraceFunctionExit0( DUP1_DATETIMESETTINGSPLUGIN_DATETIMESETTINGSPLUGIN_EXIT ); } @@ -66,7 +73,8 @@ CpItemDataHelper &itemDataHelper) const { OstTraceFunctionEntry0( DATETIMESETTINGSPLUGIN_CREATESETTINGFORMITEMDATA_ENTRY ); - HbIcon icon ; + HbIcon icon ; + HbExtendedLocale locale = HbExtendedLocale::system(); QString timeInfo = locale.format( QTime::currentTime(), r_qtn_time_usual_with_zero); @@ -79,8 +87,8 @@ QList entryItemList; CpSettingFormItemData *entryItem = new DateTimeSettingsView( - itemDataHelper,hbTrId("txt_cp_main_view_list_time_date"), - displayString,icon); + itemDataHelper, hbTrId("txt_cp_main_view_list_time_date"), + displayString,icon, 0, mTranslator); entryItemList.append(entryItem); OstTraceFunctionExit0( DATETIMESETTINGSPLUGIN_CREATESETTINGFORMITEMDATA_EXIT ); return entryItemList; diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clockplugins/datetimesettingsplugin/src/datetimesettingsview.cpp --- a/clock/clockui/clockplugins/datetimesettingsplugin/src/datetimesettingsview.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clockplugins/datetimesettingsplugin/src/datetimesettingsview.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -50,12 +50,13 @@ DateTimeSettingsView::DateTimeSettingsView( CpItemDataHelper &itemDataHelper, const QString &text, const QString &description, const HbIcon &icon, - const HbDataFormModelItem *parent): + const HbDataFormModelItem *parent, HbTranslator *translator): CpSettingFormEntryItemData( itemDataHelper, text, description, icon, parent) { OstTraceFunctionEntry0( DATETIMESETTINGSVIEW_DATETIMESETTINGSVIEW_ENTRY ); // Construct the timezone client. + mTranslator = translator; mTimezoneClient = TimezoneClient::getInstance(); connect( mTimezoneClient, SIGNAL(timechanged()), @@ -95,7 +96,7 @@ void DateTimeSettingsView::onLaunchView() { OstTraceFunctionEntry0( DATETIMESETTINGSVIEW_ONLAUNCHVIEW_ENTRY ); - ClockSettingsView *settingsView = new ClockSettingsView(this); + ClockSettingsView *settingsView = new ClockSettingsView(this, mTranslator, false); settingsView->loadSettingsView(); OstTraceFunctionExit0( DATETIMESETTINGSVIEW_ONLAUNCHVIEW_EXIT ); } diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/bwins/clocksettingsviewu.def --- a/clock/clockui/clocksettingsview/bwins/clocksettingsviewu.def Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clocksettingsview/bwins/clocksettingsviewu.def Thu Sep 02 20:25:23 2010 +0300 @@ -1,8 +1,8 @@ EXPORTS - ??0ClockSettingsView@@QAE@PAVQObject@@@Z @ 1 NONAME ; ClockSettingsView::ClockSettingsView(class QObject *) - ??1ClockRegionalSettingsView@@UAE@XZ @ 2 NONAME ; ClockRegionalSettingsView::~ClockRegionalSettingsView(void) - ?loadSettingsView@ClockSettingsView@@QAEXXZ @ 3 NONAME ; void ClockSettingsView::loadSettingsView(void) - ??1ClockSettingsView@@UAE@XZ @ 4 NONAME ; ClockSettingsView::~ClockSettingsView(void) + ??1ClockRegionalSettingsView@@UAE@XZ @ 1 NONAME ; ClockRegionalSettingsView::~ClockRegionalSettingsView(void) + ?loadSettingsView@ClockSettingsView@@QAEXXZ @ 2 NONAME ; void ClockSettingsView::loadSettingsView(void) + ??1ClockSettingsView@@UAE@XZ @ 3 NONAME ; ClockSettingsView::~ClockSettingsView(void) + ??0ClockRegionalSettingsView@@QAE@PAVQObject@@_N@Z @ 4 NONAME ; ClockRegionalSettingsView::ClockRegionalSettingsView(class QObject *, bool) ?showView@ClockRegionalSettingsView@@QAEXXZ @ 5 NONAME ; void ClockRegionalSettingsView::showView(void) - ??0ClockRegionalSettingsView@@QAE@PAVQObject@@@Z @ 6 NONAME ; ClockRegionalSettingsView::ClockRegionalSettingsView(class QObject *) + ??0ClockSettingsView@@QAE@PAVQObject@@PAVHbTranslator@@_N@Z @ 6 NONAME ; ClockSettingsView::ClockSettingsView(class QObject *, class HbTranslator *, bool) diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/data/clocksettingsview.qrc --- a/clock/clockui/clocksettingsview/data/clocksettingsview.qrc Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clocksettingsview/data/clocksettingsview.qrc Thu Sep 02 20:25:23 2010 +0300 @@ -3,4 +3,7 @@ xml/clocksettingsview.docml xml/clockregionalsettingsview.docml + + style/settingscustomitem.css + diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/data/style/settingscustomitem.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clock/clockui/clocksettingsview/data/style/settingscustomitem.css Thu Sep 02 20:25:23 2010 +0300 @@ -0,0 +1,22 @@ +SettingsCustomItem[!hasIcon][expandItem]:landscape +{ + layout:layout_portrait_without_icon; +} + +SettingsCustomItem[hasIcon][expandItem]:landscape +{ + layout:layout_portrait_with_icon; +} + +SettingsCustomItem[expandItem]::dataItem_Label:landscape +{ + size-policy-horizontal:preferred; +} + +SettingsCustomItem[expandItem]::DataItem_ContentWidget:landscape +{ + top: -var(hb-param-margin-gene-top); + left:-var(hb-param-margin-gene-left); + right:var(hb-param-margin-gene-right); + bottom:var(hb-param-margin-gene-bottom); +} \ No newline at end of file diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/eabi/clocksettingsviewu.def --- a/clock/clockui/clocksettingsview/eabi/clocksettingsviewu.def Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clocksettingsview/eabi/clocksettingsviewu.def Thu Sep 02 20:25:23 2010 +0300 @@ -1,13 +1,13 @@ EXPORTS _ZN17ClockSettingsView16loadSettingsViewEv @ 1 NONAME - _ZN17ClockSettingsViewC1EP7QObject @ 2 NONAME - _ZN17ClockSettingsViewC2EP7QObject @ 3 NONAME + _ZN17ClockSettingsViewC1EP7QObjectP12HbTranslatorb @ 2 NONAME + _ZN17ClockSettingsViewC2EP7QObjectP12HbTranslatorb @ 3 NONAME _ZN17ClockSettingsViewD0Ev @ 4 NONAME _ZN17ClockSettingsViewD1Ev @ 5 NONAME _ZN17ClockSettingsViewD2Ev @ 6 NONAME _ZN25ClockRegionalSettingsView8showViewEv @ 7 NONAME - _ZN25ClockRegionalSettingsViewC1EP7QObject @ 8 NONAME - _ZN25ClockRegionalSettingsViewC2EP7QObject @ 9 NONAME + _ZN25ClockRegionalSettingsViewC1EP7QObjectb @ 8 NONAME + _ZN25ClockRegionalSettingsViewC2EP7QObjectb @ 9 NONAME _ZN25ClockRegionalSettingsViewD0Ev @ 10 NONAME _ZN25ClockRegionalSettingsViewD1Ev @ 11 NONAME _ZN25ClockRegionalSettingsViewD2Ev @ 12 NONAME diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/inc/clockregionalsettingsview.h --- a/clock/clockui/clocksettingsview/inc/clockregionalsettingsview.h Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clocksettingsview/inc/clockregionalsettingsview.h Thu Sep 02 20:25:23 2010 +0300 @@ -45,7 +45,7 @@ Q_OBJECT public: - CLOCKSETTINGSVIEW_EXPORT ClockRegionalSettingsView(QObject *parent = 0); + CLOCKSETTINGSVIEW_EXPORT ClockRegionalSettingsView(QObject *parent = 0, bool launchedByClock = 1); CLOCKSETTINGSVIEW_EXPORT virtual ~ClockRegionalSettingsView(); public: @@ -91,6 +91,7 @@ SettingsUtility *mSettingsUtility; SettingsCustomItem *mCustomPrototype; HbTranslator *mTranslator; + bool mLauncedByClock; }; #endif // CLOCKREGIONALSETTINGSVIEW_H diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/inc/clocksettingsview.h --- a/clock/clockui/clocksettingsview/inc/clocksettingsview.h Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clocksettingsview/inc/clocksettingsview.h Thu Sep 02 20:25:23 2010 +0300 @@ -46,7 +46,8 @@ Q_OBJECT public: - CLOCKSETTINGSVIEW_EXPORT ClockSettingsView(QObject *parent = 0); + CLOCKSETTINGSVIEW_EXPORT ClockSettingsView(QObject *parent = 0, HbTranslator *translator = 0, + bool launchedByClock = 1); CLOCKSETTINGSVIEW_EXPORT virtual ~ClockSettingsView(); public: @@ -93,6 +94,7 @@ XQSettingsKey *mAlarmSnoozeTimeKey; QHash mAlarmSnoozeTimeHash; HbTranslator *mTranslator; + bool mLaunchedByClock; }; #endif // CLOCKSETTINGSVIEW_H diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/inc/settingscustomitem.h --- a/clock/clockui/clocksettingsview/inc/settingscustomitem.h Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clocksettingsview/inc/settingscustomitem.h Thu Sep 02 20:25:23 2010 +0300 @@ -39,7 +39,7 @@ Q_OBJECT public: - SettingsCustomItem(QGraphicsItem *parent = 0); + SettingsCustomItem(QGraphicsItem *parent = 0, bool launchedByClock = 1); virtual ~SettingsCustomItem(); public: @@ -78,6 +78,7 @@ SettingsUtility *mSettingsUtility; ClockCitySelectionList *mCitySelectionList; TimezoneClient *mTimezoneClient; + bool mLaunchedByClock; }; #endif // SETTINGSCUSTOMITEM_H diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/inc/settingsdatatypes.h --- a/clock/clockui/clocksettingsview/inc/settingsdatatypes.h Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clocksettingsview/inc/settingsdatatypes.h Thu Sep 02 20:25:23 2010 +0300 @@ -41,7 +41,8 @@ TimeItemOffset = 1, DateItemOffset, PlaceItemOffset, - RegionalItemOffset + RegionalItemOffset, + WorkdaysItemOffset }; #endif // CLOCKSETTINGSDATATYPES_H diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/src/clockregionalsettingsview.cpp --- a/clock/clockui/clocksettingsview/src/clockregionalsettingsview.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clocksettingsview/src/clockregionalsettingsview.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -54,10 +54,11 @@ /*! Default constructor. */ -ClockRegionalSettingsView::ClockRegionalSettingsView(QObject *parent) +ClockRegionalSettingsView::ClockRegionalSettingsView(QObject *parent, bool launchedByClock) :QObject(parent), mView(0), - mLoader(0) + mLoader(0), + mLauncedByClock(launchedByClock) { OstTraceFunctionEntry0( CLOCKREGIONALSETTINGSVIEW_CLOCKREGIONALSETTINGSVIEW_ENTRY ); // Construct the document loader. @@ -142,6 +143,9 @@ createModel(); // Set the view as the current view. + if(!mLauncedByClock) { + mView->setTitle(hbTrId("txt_clock_title_control_panel")); + } HbMainWindow *window = hbInstance->allMainWindows().first(); window->addView(mView); window->setCurrentView(mView); @@ -437,7 +441,7 @@ HbDataFormModelItem::DataItemType workdaysItemType = static_cast - (HbDataFormModelItem::CustomItemBase + 50); + (HbDataFormModelItem::CustomItemBase + WorkdaysItemOffset); item = new HbDataFormModelItem(workdaysItemType, hbTrId("txt_clock_setlabel_workdays")); mFormModel->appendDataFormItem(item); diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/src/clocksettingsview.cpp --- a/clock/clockui/clocksettingsview/src/clocksettingsview.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clocksettingsview/src/clocksettingsview.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -56,14 +56,16 @@ \param parent The parent of type QGraphicsWidget. */ -ClockSettingsView::ClockSettingsView(QObject *parent) -:QObject(parent) +ClockSettingsView::ClockSettingsView(QObject *parent, HbTranslator *translator, bool launchedByClock) +:QObject(parent), mTranslator(0), mLaunchedByClock(launchedByClock) { OstTraceFunctionEntry0( CLOCKSETTINGSVIEW_CLOCKSETTINGSVIEW_ENTRY ); // Load the translation file and install the editor specific translator - mTranslator = new HbTranslator("clocksettingsview"); - mTranslator->loadCommon(); + if(!translator) { + mTranslator = new HbTranslator("clocksettingsview"); + mTranslator->loadCommon(); + } // Construct the settings utility. mSettingsUtility = new SettingsUtility(); @@ -292,6 +294,11 @@ void ClockSettingsView::setupView() { OstTraceFunctionEntry0( CLOCKSETTINGSVIEW_SETUPVIEW_ENTRY ); + + if(!mLaunchedByClock) { + mSettingsView->setTitle(hbTrId("txt_clock_title_control_panel")); + } + HbMainWindow *window = hbInstance->allMainWindows().first(); window->addView(mSettingsView); window->setCurrentView(mSettingsView); @@ -309,7 +316,7 @@ // Create the custom prototype. QList prototypes = mSettingsForm->itemPrototypes(); - SettingsCustomItem *customPrototype = new SettingsCustomItem(mSettingsForm); + SettingsCustomItem *customPrototype = new SettingsCustomItem(mSettingsForm, mLaunchedByClock); prototypes.append(customPrototype); mSettingsForm->setItemPrototypes(prototypes); diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/src/settingscustomitem.cpp --- a/clock/clockui/clocksettingsview/src/settingscustomitem.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clocksettingsview/src/settingscustomitem.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -28,6 +28,7 @@ #include #include #include +#include // User includes #include "settingscustomitem.h" @@ -54,14 +55,16 @@ \param parent The parent. */ -SettingsCustomItem::SettingsCustomItem(QGraphicsItem *parent) -:HbDataFormViewItem(parent) +SettingsCustomItem::SettingsCustomItem(QGraphicsItem *parent, bool launchedByClock) +:HbDataFormViewItem(parent), mLaunchedByClock(launchedByClock) { OstTraceFunctionEntry0( SETTINGSCUSTOMITEM_SETTINGSCUSTOMITEM_ENTRY ); // Construct the settignsutility. mSettingsUtility = new SettingsUtility(); // Construct the timezone client. mTimezoneClient = TimezoneClient::getInstance(); + // Register for the css. + HbStyleLoader::registerFilePath(":/style/settingscustomitem.css"); OstTraceFunctionExit0( SETTINGSCUSTOMITEM_SETTINGSCUSTOMITEM_EXIT ); } @@ -71,7 +74,8 @@ SettingsCustomItem::~SettingsCustomItem() { OstTraceFunctionEntry0( DUP1_SETTINGSCUSTOMITEM_SETTINGSCUSTOMITEM_ENTRY ); - // Nothing yet. + // Unregister the css. + HbStyleLoader::unregisterFilePath(":/style/settingscustomitem.css"); OstTraceFunctionExit0( DUP1_SETTINGSCUSTOMITEM_SETTINGSCUSTOMITEM_EXIT ); } @@ -185,6 +189,7 @@ switch (itemType) { case (TimeItemOffset + HbDataFormModelItem::CustomItemBase): { + setProperty("expandItem", false); mTimeWidget = new HbPushButton(this); connect( mTimeWidget, SIGNAL(clicked()), @@ -195,6 +200,7 @@ case (DateItemOffset + HbDataFormModelItem::CustomItemBase): { + setProperty("expandItem", false); mDateWidget = new HbPushButton(this); connect( mDateWidget, SIGNAL(clicked()), @@ -205,6 +211,7 @@ case (PlaceItemOffset + HbDataFormModelItem::CustomItemBase): { + setProperty("expandItem", false); mPlaceWidget = new HbPushButton(this); connect( mPlaceWidget, SIGNAL(clicked()), @@ -215,6 +222,7 @@ case (RegionalItemOffset + HbDataFormModelItem::CustomItemBase): { + setProperty("expandItem", false); mRegSettingsWidget = new HbPushButton(this); connect( mRegSettingsWidget, SIGNAL(clicked()), @@ -223,8 +231,11 @@ return mRegSettingsWidget; } - case (50 + HbDataFormModelItem::CustomItemBase): + case (WorkdaysItemOffset + HbDataFormModelItem::CustomItemBase): { + // Set the property so that the custom item layout + // will be the same for both portrait and landscape + setProperty("expandItem", true); mWorkdaysWidget = new HbListWidget(this); mWorkdaysWidget->setSelectionMode(HbAbstractItemView::MultiSelection); mWorkdaysWidget->setScrollDirections(0); @@ -424,7 +435,8 @@ { OstTraceFunctionEntry0( SETTINGSCUSTOMITEM_LAUNCHREGSETTINGSVIEW_ENTRY ); ClockRegionalSettingsView *view = - new ClockRegionalSettingsView(); + new ClockRegionalSettingsView(0, mLaunchedByClock); + connect(mTimezoneClient, SIGNAL(timechanged()), view, SLOT(updateWeekStartOn())); view->showView(); diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/traces/clocksettingsviewTraces.h --- a/clock/clockui/clocksettingsview/traces/clocksettingsviewTraces.h Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clocksettingsview/traces/clocksettingsviewTraces.h Thu Sep 02 20:25:23 2010 +0300 @@ -38,6 +38,8 @@ #define CLOCKSETTINGSVIEW_HANDLECLOCKTYPECHANGED_EXIT 0x8a003f #define CLOCKSETTINGSVIEW_EVENTMONITOR_ENTRY 0x8a0040 #define CLOCKSETTINGSVIEW_EVENTMONITOR_EXIT 0x8a0041 +#define CLOCKSETTINGSVIEW_GETVIEW_ENTRY 0x8a0064 +#define CLOCKSETTINGSVIEW_GETVIEW_EXIT 0x8a0065 #endif diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clocksettingsview/traces/fixed_id.definitions --- a/clock/clockui/clocksettingsview/traces/fixed_id.definitions Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clocksettingsview/traces/fixed_id.definitions Thu Sep 02 20:25:23 2010 +0300 @@ -35,6 +35,8 @@ [TRACE]TRACE_FLOW[0x8A]_CLOCKSETTINGSVIEW_CREATEMODEL_EXIT=0x37 [TRACE]TRACE_FLOW[0x8A]_CLOCKSETTINGSVIEW_EVENTMONITOR_ENTRY=0x40 [TRACE]TRACE_FLOW[0x8A]_CLOCKSETTINGSVIEW_EVENTMONITOR_EXIT=0x41 +[TRACE]TRACE_FLOW[0x8A]_CLOCKSETTINGSVIEW_GETVIEW_ENTRY=0x64 +[TRACE]TRACE_FLOW[0x8A]_CLOCKSETTINGSVIEW_GETVIEW_EXIT=0x65 [TRACE]TRACE_FLOW[0x8A]_CLOCKSETTINGSVIEW_HANDLEALARMSNOOZETIMECHANGED_ENTRY=0x3c [TRACE]TRACE_FLOW[0x8A]_CLOCKSETTINGSVIEW_HANDLEALARMSNOOZETIMECHANGED_EXIT=0x3d [TRACE]TRACE_FLOW[0x8A]_CLOCKSETTINGSVIEW_HANDLEAUTOTIMEUPDATECHANGE_ENTRY=0x3a diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clockviewmanager/src/clockviewmanager.cpp --- a/clock/clockui/clockviewmanager/src/clockviewmanager.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clockviewmanager/src/clockviewmanager.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -161,6 +161,7 @@ // Find the main view. mMainView = static_cast ( docLoader->findWidget(CLOCK_MAIN_VIEW)); + mMainView->setParent(this); // Disable animation effect on toolbar. HbEffect::disable(mMainView->toolBar()->graphicsItem()); @@ -190,6 +191,7 @@ // Get the world list view. mWorldClockView = static_cast ( docLoader->findWidget(CLOCK_WORLD_VIEW)); + mWorldClockView->setParent(this); // Disable animation effect on toolbar. HbEffect::disable(mWorldClockView->toolBar()->graphicsItem()); diff -r ef813d54df51 -r a5a1242fd2e8 clock/clockui/clockviews/src/clockworldview.cpp --- a/clock/clockui/clockviews/src/clockworldview.cpp Wed Aug 18 09:47:38 2010 +0300 +++ b/clock/clockui/clockviews/src/clockworldview.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 clock/conf/CI_clockapp.confml Binary file clock/conf/CI_clockapp.confml has changed diff -r ef813d54df51 -r a5a1242fd2e8 organizer_plat/agenda_interface_api/inc/agendautil.h --- a/organizer_plat/agenda_interface_api/inc/agendautil.h Wed Aug 18 09:47:38 2010 +0300 +++ b/organizer_plat/agenda_interface_api/inc/agendautil.h Thu Sep 02 20:25:23 2010 +0300 @@ -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 ef813d54df51 -r a5a1242fd2e8 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 18 09:47:38 2010 +0300 +++ b/organizer_plat/agenda_interface_api/tsrc/unittest_agendautil/src/unittest_agendautil.cpp Thu Sep 02 20:25:23 2010 +0300 @@ -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. */