--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtmobility/examples/qml-contacts/qmlcontact.cpp Fri Apr 16 15:51:22 2010 +0300
@@ -0,0 +1,146 @@
+#include "qmlcontact.h"
+#include <qcontactname.h>
+#include <QtDebug>
+
+
+QT_USE_NAMESPACE
+QTM_USE_NAMESPACE
+
+QTM_BEGIN_NAMESPACE
+
+QmlContact::QmlContact(QContact& contact, QObject *parent)
+ : QObject(parent), m_contact(contact)
+{
+}
+
+QmlContact::QmlContact()
+{
+
+}
+
+QmlContact::~QmlContact()
+{
+
+}
+
+QContact &QmlContact::contact()
+{
+ return m_contact;
+}
+
+void QmlContact::setContact(QContact& contact)
+{
+ m_contact = contact;
+ emit contactChanged(this);
+}
+
+QString QmlContact::name()
+{
+ QList<QContactDetail> allNames = m_contact.details(QContactName::DefinitionName);
+
+ const QLatin1String space(" ");
+
+ // synthesise the display label from the name.
+ for (int i=0; i < allNames.size(); i++) {
+ const QContactName& name = allNames.at(i);
+
+ QString result;
+ if (!name.value(QContactName::FieldPrefix).trimmed().isEmpty()) {
+ result += name.value(QContactName::FieldPrefix);
+ }
+
+ if (!name.value(QContactName::FieldFirst).trimmed().isEmpty()) {
+ if (!result.isEmpty())
+ result += space;
+ result += name.value(QContactName::FieldFirst);
+ }
+
+ if (!name.value(QContactName::FieldMiddle).trimmed().isEmpty()) {
+ if (!result.isEmpty())
+ result += space;
+ result += name.value(QContactName::FieldMiddle);
+ }
+
+ if (!name.value(QContactName::FieldLast).trimmed().isEmpty()) {
+ if (!result.isEmpty())
+ result += space;
+ result += name.value(QContactName::FieldLast);
+ }
+
+ if (!name.value(QContactName::FieldSuffix).trimmed().isEmpty()) {
+ if (!result.isEmpty())
+ result += space;
+ result += name.value(QContactName::FieldSuffix);
+ }
+
+ if (!result.isEmpty()) {
+ return result;
+ }
+ }
+
+
+ return QString("noName");
+}
+
+void QmlContact::setName(QString name)
+{
+ Q_UNUSED(name);
+ qWarning() << "Not implemented yet";
+ emit nameChanged(this);
+}
+
+QStringList QmlContact::availableActions()
+{
+ QList<QContactActionDescriptor> actions = m_contact.availableActions();
+ QStringList names;
+
+ foreach (const QContactActionDescriptor& action, actions) {
+ names << action.actionName();
+ }
+ return names;
+}
+QStringList QmlContact::details()
+{
+ QStringList dets;
+ QList<QContactDetail> ld = m_contact.details();
+ QContactDetail d;
+ foreach(d, ld){
+ dets += d.definitionName();
+ }
+ return dets;
+}
+
+QStringList QmlContact::contexts()
+{
+ QStringList dets;
+ QList<QContactDetail> ld = m_contact.details();
+ QContactDetail d;
+ foreach(d, ld){
+ dets += d.contexts();
+ }
+ return dets;
+}
+
+//QStringList QmlContact::values(QString definitionId)
+QVariantMap QmlContact::values(QString definitionId)
+{
+ QStringList strlist;
+ QContactDetail detail = m_contact.detail(definitionId);
+
+ QVariantMap map = detail.values();
+ //qWarning() << "Number of e: " << map.count();
+ return map;
+
+// QMap<QString, QVariant>::const_iterator i = map.constBegin();
+// while (i != map.constEnd()) {
+// qWarning() << "Key: " << i.key() << " Value: " << i.value();
+// strlist += i.key() + ": " + i.value().toString();
+// ++i;
+// }
+//
+// return strlist;
+}
+
+#include "moc_qmlcontact.cpp"
+QTM_END_NAMESPACE
+QML_DEFINE_TYPE(QmlContact, 1, 0, QmlContact, QmlContact)