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