19 */ |
19 */ |
20 |
20 |
21 #ifndef SMFCONTACT_H_ |
21 #ifndef SMFCONTACT_H_ |
22 #define SMFCONTACT_H_ |
22 #define SMFCONTACT_H_ |
23 |
23 |
24 #include "qtcontacts.h" |
24 #include <qtcontacts.h> |
25 #include "smfclientglobal.h" |
|
26 #include <qdatastream.h> |
25 #include <qdatastream.h> |
27 #include <QSharedData> |
26 #include <QSharedData> |
28 #include <QVariant> |
27 #include <QVariant> |
29 //#include <smfclientglobal.h> |
28 #include "smfclientglobal.h" |
|
29 |
30 #include "smfcontact_p.h" |
30 #include "smfcontact_p.h" |
31 |
31 |
32 using namespace QtMobility; |
32 using namespace QtMobility; |
33 |
33 |
34 |
34 /** |
35 //TODO:- For the time being we'll just store a string SmfContact |
35 * Max size for one SmfContact |
|
36 */ |
|
37 const int MaxSmfContactSize = 1000; |
|
38 |
36 /** |
39 /** |
37 * @ingroup smf_common_group |
40 * @ingroup smf_common_group |
38 * The contact class represents a social contact |
41 * The contact class represents a social contact |
39 * |
42 * |
40 * Note: This class has dependencies on QtMobility project |
43 * Note: This class has dependencies on QtMobility project |
41 */ |
44 */ |
42 //QList<SmfContact> gives error for serialization if its derived from QObject |
45 class SMFCLIENT_EXPORT SmfContact |
43 class SMFCLIENT_EXPORT SmfContact //: public QObject |
|
44 { |
46 { |
45 //Q_OBJECT |
|
46 |
|
47 public: |
47 public: |
48 /** |
48 /** |
49 * Constructor with default argument |
49 * Constructor with default argument |
50 * @param aParent The parent object |
50 * @param aParent The parent object |
51 */ |
51 */ |
56 * @param aOther The reference object |
56 * @param aOther The reference object |
57 */ |
57 */ |
58 SmfContact( const SmfContact &aOther ); |
58 SmfContact( const SmfContact &aOther ); |
59 |
59 |
60 /** |
60 /** |
|
61 * Overloaded = operator |
|
62 * @param aOther The reference object |
|
63 * @return The target reference value |
|
64 */ |
|
65 SmfContact& operator=( const SmfContact &aOther ); |
|
66 |
|
67 /** |
61 * Destructor |
68 * Destructor |
62 */ |
69 */ |
63 ~SmfContact( ); |
70 ~SmfContact( ); |
64 //Q_DECLARE_LATIN1_LITERAL(SubTypeAddress, "Address"); |
71 |
65 //Q_DECLARE_LATIN1_LITERAL(SubTypeAnniversary, "Anniversary"); |
|
66 //Q_DECLARE_LATIN1_LITERAL(SubTypeAvatar, "Avatar"); |
|
67 //Q_DECLARE_LATIN1_LITERAL(SubTypeBirthday, "Birthday"); |
|
68 //Q_DECLARE_LATIN1_LITERAL(SubTypeContactId, "ContactId"); |
|
69 //Q_DECLARE_LATIN1_LITERAL(SubTypeEmailAddress, "EmailAddress"); |
|
70 //Q_DECLARE_LATIN1_LITERAL(SubTypeGender, "Gender"); |
|
71 //Q_DECLARE_LATIN1_LITERAL(SubTypeGeolocation, "Geolocation"); |
|
72 //Q_DECLARE_LATIN1_LITERAL(SubTypeGuid, "Guid"); |
|
73 //Q_DECLARE_LATIN1_LITERAL(SubTypeName, "Name"); |
|
74 //Q_DECLARE_LATIN1_LITERAL(SubTypeNickname, "Nickname"); |
|
75 //Q_DECLARE_LATIN1_LITERAL(SubTypeNote, "Note"); |
|
76 //Q_DECLARE_LATIN1_LITERAL(SubTypeOnlineAccount, "OnlineAccount"); |
|
77 //Q_DECLARE_LATIN1_LITERAL(SubTypeOrganization, "Organization"); |
|
78 //Q_DECLARE_LATIN1_LITERAL(SubTypePhoneNumber, "PhoneNumber"); |
|
79 //Q_DECLARE_LATIN1_LITERAL(SubTypeTimestamp, "Timestamp"); |
|
80 //Q_DECLARE_LATIN1_LITERAL(SubTypeType, "Type"); |
|
81 //Q_DECLARE_LATIN1_LITERAL(SubTypeUrl, "Url"); |
|
82 public slots: |
72 public slots: |
83 /** |
73 /** |
84 * Method to get the available sub fields for contacts. |
74 * Method to get the available sub fields for contacts. |
85 * The following are the available sub types of a contact |
75 * The following are the available sub types of a contact |
86 * QtMobility::QContactAddress Address; |
76 * QtMobility::QContactAddress Address; |
88 * QtMobility::QContactAvatar Avatar; |
78 * QtMobility::QContactAvatar Avatar; |
89 * QtMobility::QContactBirthday Birthday; |
79 * QtMobility::QContactBirthday Birthday; |
90 * QtMobility::QContactId ContactId; |
80 * QtMobility::QContactId ContactId; |
91 * QtMobility::QContactEmailAddress EmailAddress; |
81 * QtMobility::QContactEmailAddress EmailAddress; |
92 * QtMobility::QContactGender Gender; |
82 * QtMobility::QContactGender Gender; |
93 * QtMobility::QContactGeolocation Geolocation; |
83 * QtMobility::QContactGeoLocation Geolocation; |
94 * QtMobility::QContactGuid Guid; |
84 * QtMobility::QContactGuid Guid; |
95 * QtMobility::QContactName Name; |
85 * QtMobility::QContactName Name; |
96 * QtMobility::QContactNickname Nickname; |
86 * QtMobility::QContactNickname Nickname; |
97 * QtMobility::QContactNote Note; |
87 * QtMobility::QContactNote Note; |
98 * QtMobility::QContactOnlineAccount OnlineAccount; |
88 * QtMobility::QContactOnlineAccount OnlineAccount; |
99 * QtMobility::QContactOrganization Organization; |
89 * QtMobility::QContactOrganization Organization; |
100 * QtMobility::QContactPhoneNumber PhoneNumber; |
90 * QtMobility::QContactPhoneNumber PhoneNumber; |
|
91 * QtMobility::QContactPresence Presence; |
|
92 * QtMobility::QContactThumbnail Thumbnail; |
101 * QtMobility::QContactTimestamp Timestamp; |
93 * QtMobility::QContactTimestamp Timestamp; |
102 * QtMobility::QContactType Type; |
94 * QtMobility::QContactType Type; |
103 * QtMobility::QContactUrl Url; |
95 * QtMobility::QContactUrl Url; |
104 * @return The Available sub fields for this contact |
96 * @return The Available sub fields for this contact |
105 */ |
97 */ |
106 |
|
107 QStringList subTypes( ) const; |
98 QStringList subTypes( ) const; |
108 |
99 |
109 /** |
100 /** |
110 * Method to convert an SmfContact to a QContact |
101 * Method to convert an SmfContact to a QContact |
111 * Changes made to the returned QContact will not be reflected |
102 * Changes made to the returned QContact will not be reflected |
156 * @param aContact The SmfContact object to be internalized |
149 * @param aContact The SmfContact object to be internalized |
157 * @return reference to the stream |
150 * @return reference to the stream |
158 */ |
151 */ |
159 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
152 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
160 SmfContact &aContact ); |
153 SmfContact &aContact ); |
|
154 |
|
155 |
161 typedef QList<SmfContact> SmfContactList; |
156 typedef QList<SmfContact> SmfContactList; |
162 /** |
157 |
163 * Serialization support for Qt mobility contact |
158 |
164 */ |
159 /** |
165 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
160 * Serialization support for QtMobility QContact classes |
166 const QContactName &aContact ); |
161 */ |
167 |
162 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
168 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
163 const QContactAddress &aAddress ); |
169 QContactName &aContact ); |
164 |
|
165 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
166 QContactAddress &aAddress ); |
|
167 |
|
168 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
169 const QContactAnniversary &aAnniversary ); |
|
170 |
|
171 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
172 QContactAnniversary &aAnniversary ); |
|
173 |
|
174 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
175 const QContactAvatar &aAvatar ); |
|
176 |
|
177 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
178 QContactAvatar &aAvatar ); |
|
179 |
|
180 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
181 const QContactBirthday &aBirthday ); |
|
182 |
|
183 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
184 QContactBirthday &aBirthday ); |
|
185 |
|
186 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
187 const QContactEmailAddress &aEMail ); |
|
188 |
|
189 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
190 QContactEmailAddress &aEMail ); |
|
191 |
|
192 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
193 const QContactGender &aGender ); |
|
194 |
|
195 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
196 QContactGender &aGender ); |
|
197 |
|
198 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
199 const QContactGeoLocation &aGeolocation ); |
|
200 |
|
201 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
202 QContactGeoLocation &aGeolocation ); |
|
203 |
|
204 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
205 const QContactGuid &aGuid ); |
|
206 |
|
207 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
208 QContactGuid &aGuid ); |
|
209 |
|
210 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
211 const QContactId &aContactId ); |
|
212 |
|
213 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
214 QContactId &aContactId ); |
|
215 |
|
216 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
217 const QContactName &aName ); |
|
218 |
|
219 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
220 QContactName &aName ); |
|
221 |
|
222 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
223 const QContactNickname &aNickname ); |
|
224 |
|
225 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
226 QContactNickname &aNickname ); |
|
227 |
|
228 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
229 const QContactNote &aNote ); |
|
230 |
|
231 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
232 QContactNote &aNote ); |
|
233 |
|
234 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
235 const QContactOnlineAccount &aOnlineAccount ); |
|
236 |
|
237 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
238 QContactOnlineAccount &aOnlineAccount ); |
|
239 |
|
240 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
241 const QContactOrganization &aOrganization ); |
|
242 |
|
243 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
244 QContactOrganization &aOrganization ); |
|
245 |
|
246 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
247 const QContactPhoneNumber &aPhoneNumber ); |
|
248 |
|
249 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
250 QContactPhoneNumber &aPhoneNumber ); |
|
251 |
|
252 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
253 const QContactPresence &aPresence ); |
|
254 |
|
255 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
256 QContactPresence &aPresence ); |
|
257 |
|
258 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
259 const QContactThumbnail &aThumbnail ); |
|
260 |
|
261 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
262 QContactThumbnail &aThumbnail ); |
|
263 |
|
264 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
265 const QContactTimestamp &aTimestamp ); |
|
266 |
|
267 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
268 QContactTimestamp &aTimestamp ); |
|
269 |
|
270 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
271 const QContactType &aType ); |
|
272 |
|
273 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
274 QContactType &aType ); |
|
275 |
|
276 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, |
|
277 const QContactUrl &aUrl ); |
|
278 |
|
279 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, |
|
280 QContactUrl &aUrl ); |
|
281 |
|
282 |
170 // Make the class SmfContact known to QMetaType, so that as to register it. |
283 // Make the class SmfContact known to QMetaType, so that as to register it. |
171 Q_DECLARE_METATYPE(SmfContact) |
284 Q_DECLARE_METATYPE(SmfContact) |
172 Q_DECLARE_METATYPE(QList<SmfContact>) |
285 Q_DECLARE_METATYPE(QList<SmfContact>) |
173 |
286 |
174 //make qt mobility related classes known to moc |
287 //make qt mobility related classes known to moc |
177 Q_DECLARE_METATYPE(QContactAvatar) |
290 Q_DECLARE_METATYPE(QContactAvatar) |
178 Q_DECLARE_METATYPE(QContactBirthday) |
291 Q_DECLARE_METATYPE(QContactBirthday) |
179 Q_DECLARE_METATYPE(QContactId) |
292 Q_DECLARE_METATYPE(QContactId) |
180 Q_DECLARE_METATYPE(QContactEmailAddress) |
293 Q_DECLARE_METATYPE(QContactEmailAddress) |
181 Q_DECLARE_METATYPE(QContactGender) |
294 Q_DECLARE_METATYPE(QContactGender) |
|
295 Q_DECLARE_METATYPE(QContactGeoLocation) |
182 Q_DECLARE_METATYPE(QContactGuid) |
296 Q_DECLARE_METATYPE(QContactGuid) |
183 Q_DECLARE_METATYPE(QContactName) |
297 Q_DECLARE_METATYPE(QContactName) |
184 Q_DECLARE_METATYPE(QContactNickname) |
298 Q_DECLARE_METATYPE(QContactNickname) |
185 Q_DECLARE_METATYPE(QContactNote) |
299 Q_DECLARE_METATYPE(QContactNote) |
186 Q_DECLARE_METATYPE(QContactOnlineAccount) |
300 Q_DECLARE_METATYPE(QContactOnlineAccount) |
187 Q_DECLARE_METATYPE(QContactOrganization) |
301 Q_DECLARE_METATYPE(QContactOrganization) |
188 Q_DECLARE_METATYPE(QContactPhoneNumber) |
302 Q_DECLARE_METATYPE(QContactPhoneNumber) |
|
303 Q_DECLARE_METATYPE(QContactPresence) |
|
304 Q_DECLARE_METATYPE(QContactThumbnail) |
189 Q_DECLARE_METATYPE(QContactTimestamp) |
305 Q_DECLARE_METATYPE(QContactTimestamp) |
190 Q_DECLARE_METATYPE(QContactType) |
306 Q_DECLARE_METATYPE(QContactType) |
191 Q_DECLARE_METATYPE(QContactUrl) |
307 Q_DECLARE_METATYPE(QContactUrl) |
192 |
308 |
193 #endif /* SMFCONTACT_H_ */ |
309 #endif /* SMFCONTACT_H_ */ |