mysocials-core 1.0

src/datatypes/friend.h

Go to the documentation of this file.
00001 
00007 #ifndef FRIEND_H
00008 #define FRIEND_H
00009 
00010 #include <QObject>
00011 #include <QString>
00012 #include <QDomDocument>
00013 #include <QFile>
00014 #include <QDebug>
00015 #include <QMetaType>
00016 
00017 class Friend;
00018 
00019 #include "album.h"
00020 #include "utils/utils.h"
00021 #include "utils/qrefreshlist.h"
00022 
00026 #define FILE_ALBUMS_DATA "albums_%1.xml"
00027 
00028 #define NODE_ALBUMS_ROOT "albums"
00029 
00030 #define NODE_FRIEND_ROOT "friend"
00031 #define NODE_FRIEND_ID "id"
00032 #define NODE_FRIEND_FIRST_NAME "firstname"
00033 #define NODE_FRIEND_NICK_NAME "nickname"
00034 #define NODE_FRIEND_LAST_NAME "lastname"
00035 #define NODE_FRIEND_ICON "icon"
00036 #define NODE_FRIEND_ICON_URL "iconUrl"
00037 #define NODE_FRIEND_GENDER "gender"
00038 #define NODE_FRIEND_BIRTHDAY "birthday"
00039 #define NODE_FRIEND_MOBILE_PHONE "mobilePhone"
00040 #define NODE_FRIEND_HOME_PHONE "homePhone"
00041 #define NODE_FRIEND_CITY "city"
00042 #define NODE_FRIEND_COUNTRY "country"
00043 
00044 #define FILE_OWNER_DATA "owner_%1.xml"
00045 
00046 typedef QRefreshList<Friend> FriendList;
00047 
00048 Q_DECLARE_METATYPE(Friend)
00049 Q_DECLARE_METATYPE(FriendList)
00050 
00054 class Friend : public QObject
00055 {
00056     Q_OBJECT
00057 
00058 private:    
00059     QString _firstName; 
00060     QString _nickName;  
00061     QString _lastName;  
00062     QString _gender;    
00063     QString _birthday;  
00064     QString _mobilePhone; 
00065     QString _homePhone; 
00066     QString _city;      
00067     QString _country;   
00068     QString _icon;      
00069     QString _icon_url;  
00071 
00072 
00075     bool _online;
00076 
00080     bool _isMainProfile;
00081 
00082     FriendList _profiles; 
00084 public:
00086     Friend();
00087 
00089 
00094     Friend(const Friend&);
00095 
00097     ~Friend();
00098 
00099     QString ownerId;   
00100     QString accountId; 
00101     QString serviceId; 
00108     void setFirstName(const QString& val);
00109 
00115     QString firstName() const;
00116 
00122     void setNickName(const QString& val);
00123 
00129     QString nickName() const;
00130 
00136     void setLastName(const QString &val);
00137 
00143     QString lastName() const;
00144 
00150     void setOnline(const bool val);
00151 
00157     bool online() const;
00158 
00164     void setGender(const QString& val);
00165 
00171     QString gender() const;
00172 
00178     void setBirthday(const QString& val);
00179 
00185     QString birthday() const;
00186 
00192     void setMobilePhone(const QString& val);
00193 
00199     QString mobilePhone() const;
00200 
00206     void setHomePhone(const QString &val);
00207 
00213     QString homePhone() const;
00214 
00220     void setCity(const QString& val);
00221 
00227     QString city() const;
00228 
00234     void setCountry(const QString &val);
00235 
00241     QString country() const;
00242 
00248     void setIcon_url(const QString& val);
00249 
00255     QString icon_url() const;
00256 
00262     void setIcon(const QString& icon);
00263 
00269     QString icon() const;
00270 
00276     bool isMetaProfile() const;
00277 
00283     bool isFullProfile() const;
00284 
00290     FriendList getProfileList() const;
00291 
00299     void addProfile(const Friend& fr, const bool isMainProfile);
00300 
00308     bool hasProfile(const Friend& fr) const;
00309 
00319     bool hasProfile(const QString& serviceId, const QString& ownerId) const;
00320 
00330     static FriendList mergeLists(FriendList src1, FriendList src2);
00331 
00337     QString name() const;
00338 
00344     AlbumList getAlbumList() const;
00345 
00355     static void setAlbumList(const AlbumList& list, const QString& accountId, const QString& friendId);
00356 
00368     static QDomElement toQDomElement(QDomDocument& doc, const Friend& src, const bool addOptionalInfo);
00369 
00381     static Friend fromQDomElement(const QDomElement& fr, const QString& accountId, const QString& serviceId);
00382 
00388     Friend& operator=(const Friend&);
00389 
00397     static void copyData(Friend *dst, const Friend *src);
00398 
00402     void storeData();
00403 
00415     static Friend loadData(const QString& serviceId, const QString& accountId, const QString& ownerId);
00416 };
00417 
00418 #endif // FRIEND_H