99 QContactDetail detail(const QString& definitionId) const; |
99 QContactDetail detail(const QString& definitionId) const; |
100 QList<QContactDetail> details(const QString& definitionId = QString()) const; |
100 QList<QContactDetail> details(const QString& definitionId = QString()) const; |
101 QContactDetail detailWithAction(const QString& actionName) const; |
101 QContactDetail detailWithAction(const QString& actionName) const; |
102 QList<QContactDetail> detailsWithAction(const QString& actionName) const; |
102 QList<QContactDetail> detailsWithAction(const QString& actionName) const; |
103 |
103 |
|
104 QList<QContactDetail> details(const QString& definitionName, const QString& fieldName, const QString& value) const; |
|
105 |
|
106 QContactDetail detail(const char* definitionId) const; |
|
107 QList<QContactDetail> details(const char* definitionId) const; |
|
108 QList<QContactDetail> details(const char* definitionId, const char* fieldName, const QString& value) const; |
|
109 |
|
110 /* Templated retrieval for definition names */ |
|
111 template <int N> QContactDetail detail(const QLatin1Constant<N>& definitionName) const |
|
112 { |
|
113 return detail(definitionName.latin1()); |
|
114 } |
|
115 template <int N> QList<QContactDetail> details(const QLatin1Constant<N>& definitionName) const |
|
116 { |
|
117 return details(definitionName.latin1()); |
|
118 } |
|
119 template <int N, int M> QList<QContactDetail> details(const QLatin1Constant<N>& definitionName, const QLatin1Constant<M>& fieldName, const QString& value) |
|
120 { |
|
121 return details(definitionName.latin1(), fieldName.latin1(), value); |
|
122 } |
|
123 |
104 /* Templated (type-specific) detail retrieval */ |
124 /* Templated (type-specific) detail retrieval */ |
105 template<typename T> QList<T> details() const |
125 template<typename T> QList<T> details() const |
106 { |
126 { |
107 QList<QContactDetail> props = details(T::DefinitionName); |
127 QList<QContactDetail> props = details(T::DefinitionName.latin1()); |
108 QList<T> ret; |
128 QList<T> ret; |
109 foreach(QContactDetail prop, props) |
129 foreach(QContactDetail prop, props) |
110 ret.append(T(prop)); |
130 ret.append(T(prop)); |
111 return ret; |
131 return ret; |
112 } |
132 } |
113 |
133 |
114 /* Templated (type-specific) detail retrieval base on given detail field name and field value */ |
134 /* Templated (type-specific) detail retrieval base on given detail field name and field value */ |
115 template<typename T> QList<T> details(const QString& fieldName, const QString& value) const |
135 template<typename T> QList<T> details(const QString& fieldName, const QString& value) const |
116 { |
136 { |
117 QList<QContactDetail> props = details(T::DefinitionName, fieldName, value); |
137 QList<QContactDetail> props = details(T::DefinitionName, fieldName, value); |
118 QList<T> ret; |
138 QList<T> ret; |
119 foreach(QContactDetail prop, props) |
139 foreach(QContactDetail prop, props) |
120 ret.append(T(prop)); |
140 ret.append(T(prop)); |
121 return ret; |
141 return ret; |
122 } |
142 } |
123 |
143 |
124 /* Detail retrieval base on given detail definition name, field name and field value */ |
144 template<typename T> QList<T> details(const char* fieldName, const QString& value) const |
125 QList<QContactDetail> details(const QString& definitionName, const QString& fieldName, const QString& value) const; |
145 { |
|
146 QList<QContactDetail> props = details(T::DefinitionName.latin1(), fieldName, value); |
|
147 QList<T> ret; |
|
148 foreach(QContactDetail prop, props) |
|
149 ret.append(T(prop)); |
|
150 return ret; |
|
151 } |
126 |
152 |
127 template<typename T> T detail() const |
153 template<typename T> T detail() const |
128 { |
154 { |
129 return T(detail(T::DefinitionName)); |
155 return T(detail(T::DefinitionName.latin1())); |
130 } |
156 } |
131 |
157 |
132 /* generic detail addition/removal functions */ |
158 /* generic detail addition/removal functions */ |
133 bool saveDetail(QContactDetail* detail); // modifies the detail - sets its ID if detail already exists |
159 bool saveDetail(QContactDetail* detail); // modifies the detail - sets its ID if detail already exists |
134 bool removeDetail(QContactDetail* detail); // modifies the detail - unsets its ID |
160 bool removeDetail(QContactDetail* detail); // modifies the detail - unsets its ID |
135 |
161 |
136 /* Relationships that this contact was involved in when it was retrieved from the manager */ |
162 /* Relationships that this contact was involved in when it was retrieved from the manager */ |
137 QList<QContactRelationship> relationships(const QString& relationshipType = QString()) const; |
163 QList<QContactRelationship> relationships(const QString& relationshipType = QString()) const; |
138 QList<QContactId> relatedContacts(const QString& relationshipType = QString(), QContactRelationshipFilter::Role role = QContactRelationshipFilter::Either) const; |
164 QList<QContactId> relatedContacts(const QString& relationshipType = QString(), QContactRelationship::Role role = QContactRelationship::Either) const; |
139 void setRelationshipOrder(const QList<QContactRelationship>& reordered); |
|
140 QList<QContactRelationship> relationshipOrder() const; |
|
141 |
165 |
142 /* Actions available to be performed on this contact */ |
166 /* Actions available to be performed on this contact */ |
143 QList<QContactActionDescriptor> availableActions(const QString& vendorName = QString(), int implementationVersion = -1) const; |
167 QList<QContactActionDescriptor> availableActions(const QString& vendorName = QString(), int implementationVersion = -1) const; |
144 |
168 |
145 /* Preferences (eg, set a particular detail preferred for the SMS action) - subject to change! */ |
169 /* Preferences (eg, set a particular detail preferred for the SMS action) - subject to change! */ |
146 bool setPreferredDetail(const QString& actionName, const QContactDetail& preferredDetail); |
170 bool setPreferredDetail(const QString& actionName, const QContactDetail& preferredDetail); |
147 bool isPreferredDetail(const QString& actionName, const QContactDetail& detail) const; |
171 bool isPreferredDetail(const QString& actionName, const QContactDetail& detail) const; |
148 QContactDetail preferredDetail(const QString& actionName) const; |
172 QContactDetail preferredDetail(const QString& actionName) const; |
|
173 QMap<QString, QContactDetail> preferredDetails() const; |
149 |
174 |
150 private: |
175 private: |
151 friend class QContactManager; |
176 friend class QContactManager; |
152 friend class QContactManagerData; |
177 friend class QContactManagerData; |
153 friend class QContactManagerEngine; |
178 friend class QContactManagerEngine; |
154 |
179 |
155 QSharedDataPointer<QContactData> d; |
180 QSharedDataPointer<QContactData> d; |
156 }; |
181 }; |
157 |
182 |
|
183 Q_CONTACTS_EXPORT uint qHash(const QContact& key); |
|
184 #ifndef QT_NO_DEBUG_STREAM |
|
185 Q_CONTACTS_EXPORT QDebug operator<<(QDebug dbg, const QContact& contact); |
|
186 #endif |
|
187 |
158 QTM_END_NAMESPACE |
188 QTM_END_NAMESPACE |
159 |
189 |
160 Q_DECLARE_TYPEINFO(QTM_PREPEND_NAMESPACE(QContact), Q_MOVABLE_TYPE); |
190 Q_DECLARE_TYPEINFO(QTM_PREPEND_NAMESPACE(QContact), Q_MOVABLE_TYPE); |
161 |
191 |
162 |
192 |