--- a/qtmobility/src/contacts/qcontact.h Fri Apr 16 15:51:22 2010 +0300
+++ b/qtmobility/src/contacts/qcontact.h Mon May 03 13:18:40 2010 +0300
@@ -101,16 +101,36 @@
QContactDetail detailWithAction(const QString& actionName) const;
QList<QContactDetail> detailsWithAction(const QString& actionName) const;
+ QList<QContactDetail> details(const QString& definitionName, const QString& fieldName, const QString& value) const;
+
+ QContactDetail detail(const char* definitionId) const;
+ QList<QContactDetail> details(const char* definitionId) const;
+ QList<QContactDetail> details(const char* definitionId, const char* fieldName, const QString& value) const;
+
+ /* Templated retrieval for definition names */
+ template <int N> QContactDetail detail(const QLatin1Constant<N>& definitionName) const
+ {
+ return detail(definitionName.latin1());
+ }
+ template <int N> QList<QContactDetail> details(const QLatin1Constant<N>& definitionName) const
+ {
+ return details(definitionName.latin1());
+ }
+ template <int N, int M> QList<QContactDetail> details(const QLatin1Constant<N>& definitionName, const QLatin1Constant<M>& fieldName, const QString& value)
+ {
+ return details(definitionName.latin1(), fieldName.latin1(), value);
+ }
+
/* Templated (type-specific) detail retrieval */
template<typename T> QList<T> details() const
{
- QList<QContactDetail> props = details(T::DefinitionName);
+ QList<QContactDetail> props = details(T::DefinitionName.latin1());
QList<T> ret;
foreach(QContactDetail prop, props)
ret.append(T(prop));
return ret;
}
-
+
/* Templated (type-specific) detail retrieval base on given detail field name and field value */
template<typename T> QList<T> details(const QString& fieldName, const QString& value) const
{
@@ -120,13 +140,19 @@
ret.append(T(prop));
return ret;
}
-
- /* Detail retrieval base on given detail definition name, field name and field value */
- QList<QContactDetail> details(const QString& definitionName, const QString& fieldName, const QString& value) const;
+
+ template<typename T> QList<T> details(const char* fieldName, const QString& value) const
+ {
+ QList<QContactDetail> props = details(T::DefinitionName.latin1(), fieldName, value);
+ QList<T> ret;
+ foreach(QContactDetail prop, props)
+ ret.append(T(prop));
+ return ret;
+ }
template<typename T> T detail() const
{
- return T(detail(T::DefinitionName));
+ return T(detail(T::DefinitionName.latin1()));
}
/* generic detail addition/removal functions */
@@ -135,9 +161,7 @@
/* Relationships that this contact was involved in when it was retrieved from the manager */
QList<QContactRelationship> relationships(const QString& relationshipType = QString()) const;
- QList<QContactId> relatedContacts(const QString& relationshipType = QString(), QContactRelationshipFilter::Role role = QContactRelationshipFilter::Either) const;
- void setRelationshipOrder(const QList<QContactRelationship>& reordered);
- QList<QContactRelationship> relationshipOrder() const;
+ QList<QContactId> relatedContacts(const QString& relationshipType = QString(), QContactRelationship::Role role = QContactRelationship::Either) const;
/* Actions available to be performed on this contact */
QList<QContactActionDescriptor> availableActions(const QString& vendorName = QString(), int implementationVersion = -1) const;
@@ -146,6 +170,7 @@
bool setPreferredDetail(const QString& actionName, const QContactDetail& preferredDetail);
bool isPreferredDetail(const QString& actionName, const QContactDetail& detail) const;
QContactDetail preferredDetail(const QString& actionName) const;
+ QMap<QString, QContactDetail> preferredDetails() const;
private:
friend class QContactManager;
@@ -155,6 +180,11 @@
QSharedDataPointer<QContactData> d;
};
+Q_CONTACTS_EXPORT uint qHash(const QContact& key);
+#ifndef QT_NO_DEBUG_STREAM
+Q_CONTACTS_EXPORT QDebug operator<<(QDebug dbg, const QContact& contact);
+#endif
+
QTM_END_NAMESPACE
Q_DECLARE_TYPEINFO(QTM_PREPEND_NAMESPACE(QContact), Q_MOVABLE_TYPE);