mysocials-core 1.0

src/datatypes/qeventfeed.h

00001 #ifndef QEVENTFEED_H
00002 #define QEVENTFEED_H
00003 
00004 #include <QObject>
00005 #include <QDomDocument>
00006 #include <QMetaType>
00007 #include "utils/qrefreshlist.h"
00008 #include "datatypes/qattachment.h"
00009 #include "datatypes/photo.h"
00010 
00011 class QEventFeed;
00012 
00017 typedef QRefreshList<QEventFeed> QEventFeedList;
00018 
00019 Q_DECLARE_METATYPE(QEventFeed)
00020 Q_DECLARE_METATYPE(QEventFeedList)
00021 
00022 #define FILE_FEED_DATA "feed_%1.xml"
00023 
00024 #define NODE_FEED_ROOT "feed"
00025 
00026 #define NODE_EVENT_ROOT "event"
00027 
00028 #define NODE_EVENT_OWNERID "ownerId"
00029 
00030 #define NODE_EVENT_OWNER_NAME "ownerName"
00031 
00032 #define NODE_EVENT_TEXT "text"
00033 
00034 #define NODE_EVENT_CREATED "created"
00035 
00039 class QEventFeed : public QObject
00040 {
00041     Q_OBJECT
00042 public:
00048     enum FeedType
00049     {
00050         photoFeed, 
00051         messageFeed, 
00052         commentFeed, 
00053         videoFeed, 
00054         audioFeed, 
00055         likeFeed, 
00056         tagFeed, 
00057         friendFeed 
00058     };
00059 
00065     explicit QEventFeed(QObject *parent = 0);
00066 
00072     QEventFeed(const QEventFeed& src);
00073 
00077     QString accountId;
00078 
00082     QString ownerId;
00083 
00087     QString ownerName;
00088 
00092     QString text;
00093 
00097     QDateTime created;
00098 
00102     QAttachment attach;
00103 
00104     static void copyData(QEventFeed *dst, const QEventFeed *src);
00105 
00106     QEventFeed& operator=(const QEventFeed& source);
00107 
00108     static void storeFeed(const QEventFeedList& list, const FeedType type, QString accountId);
00109 
00110     static QEventFeedList loadFeed(const QString accountId, FeedType type);
00111 
00112     static QString getKey(const QString accountId, const FeedType type);
00113 
00121     QDomElement toQDomElement(QDomDocument& doc) const;
00122 
00134     static QEventFeed fromQDomElement(const QDomElement& fr, const QString& accountId, const FeedType type);
00135 
00136     Photo toPhoto() const;
00137 
00138     static QString typeToString(const FeedType type);
00139 };
00140 
00141 #endif // QEVENTFEED_H