summaryrefslogtreecommitdiffstats
path: root/src/imports/organizer/qdeclarativeorganizeritem.cpp
diff options
context:
space:
mode:
authorPengWu <peng.1.wu@nokia.com>2011-11-09 14:11:23 +0200
committerQt by Nokia <qt-info@nokia.com>2011-11-10 11:17:38 +0100
commit97bffe01cf3b1ca3b423fbe7ce68a713336912ab (patch)
tree0bd5406ba0fe188ce30b1c6e019092a49661a367 /src/imports/organizer/qdeclarativeorganizeritem.cpp
parent88734a0bf519eb575af96127b63a9dadb73cbe1b (diff)
Add attendee feature to Organizer QML API
1, Add attendee detail to Organizer QML API 2, Add attendees list property to event 3, Add attendee QML unit test 4, Update Organizer example with attendee detail adding and removing feature Change-Id: I2e3dc9fbfad226ccbf9075a6e3d162cdc00c4115 Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Xizhi Zhu <xizhi.zhu@nokia.com> Reviewed-by: Päivi Rajala <paivi.rajala@nokia.com>
Diffstat (limited to 'src/imports/organizer/qdeclarativeorganizeritem.cpp')
-rw-r--r--src/imports/organizer/qdeclarativeorganizeritem.cpp85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/imports/organizer/qdeclarativeorganizeritem.cpp b/src/imports/organizer/qdeclarativeorganizeritem.cpp
index 189ca7f73..628bf1d7e 100644
--- a/src/imports/organizer/qdeclarativeorganizeritem.cpp
+++ b/src/imports/organizer/qdeclarativeorganizeritem.cpp
@@ -695,6 +695,91 @@ void QDeclarativeOrganizerEvent::clearDetails()
}
/*!
+ \qmlproperty list<Detail> Event::attendees
+
+ This property holds the attendees list of the event.
+ */
+QDeclarativeListProperty<QDeclarativeOrganizerEventAttendee> QDeclarativeOrganizerEvent::attendees()
+{
+ return QDeclarativeListProperty<QDeclarativeOrganizerEventAttendee>(this, 0,
+ &QDeclarativeOrganizerEvent::_q_attendee_append,
+ &QDeclarativeOrganizerEvent::_q_attendee_count,
+ &QDeclarativeOrganizerEvent::_q_attendee_at,
+ &QDeclarativeOrganizerEvent::_q_attendee_clear);
+}
+
+// call-back functions for list property
+/*!
+ \internal
+ */
+void QDeclarativeOrganizerEvent::_q_attendee_append(QDeclarativeListProperty<QDeclarativeOrganizerEventAttendee> *property, QDeclarativeOrganizerEventAttendee *value)
+{
+ QDeclarativeOrganizerEvent *object = qobject_cast<QDeclarativeOrganizerEvent *>(property->object);
+ if (object)
+ object->setDetail(value);
+}
+
+/*!
+ \internal
+ */
+QDeclarativeOrganizerEventAttendee *QDeclarativeOrganizerEvent::_q_attendee_at(QDeclarativeListProperty<QDeclarativeOrganizerEventAttendee> *property, int index)
+{
+ QDeclarativeOrganizerEvent *object = qobject_cast<QDeclarativeOrganizerEvent *>(property->object);
+ QDeclarativeOrganizerEventAttendee *ret = 0;
+ int i = 0;
+ foreach (QDeclarativeOrganizerItemDetail *detail, object->m_details) {
+ if (QDeclarativeOrganizerItemDetail::EventAttendee == detail->type()) {
+ if (i == index) {
+ ret = qobject_cast<QDeclarativeOrganizerEventAttendee *>(detail);
+ break;
+ } else {
+ ++i;
+ }
+ }
+ }
+ return ret;
+}
+
+/*!
+ \internal
+ */
+void QDeclarativeOrganizerEvent::_q_attendee_clear(QDeclarativeListProperty<QDeclarativeOrganizerEventAttendee> *property)
+{
+ QDeclarativeOrganizerEvent *object = qobject_cast<QDeclarativeOrganizerEvent *>(property->object);
+ if (object) {
+ int i = 0;
+ bool removed = false;
+ foreach (QDeclarativeOrganizerItemDetail *obj, object->m_details) {
+ if (obj->type() == QDeclarativeOrganizerItemDetail::EventAttendee) {
+ delete obj;
+ object->m_details.removeAt(i);
+ removed = true;
+ } else {// Index should not increase if some thing is removed
+ ++i;
+ }
+ }
+ if (removed)
+ emit object->valueChanged();
+ }
+}
+
+/*!
+ \internal
+ */
+int QDeclarativeOrganizerEvent::_q_attendee_count(QDeclarativeListProperty<QDeclarativeOrganizerEventAttendee> *property)
+{
+ QDeclarativeOrganizerEvent *object = qobject_cast<QDeclarativeOrganizerEvent *>(property->object);
+ int ret = 0;
+ if (object) {
+ foreach (QDeclarativeOrganizerItemDetail *detail, object->m_details) {
+ if (QDeclarativeOrganizerItemDetail::EventAttendee == detail->type())
+ ++ret;
+ }
+ }
+ return ret;
+}
+
+/*!
\qmlproperty bool Event::allDay
This property indicates whether the time-of-day component of the event's start date-time or end date-time is