00001
00007 #ifndef MESSAGE_H
00008 #define MESSAGE_H
00009
00010 #include <QObject>
00011 #include <QString>
00012 #include <QMetaType>
00013 #include <QDebug>
00014 #include <QDomDocument>
00015
00016 #include "utils/qrefreshlist.h"
00017
00018 #define NODE_MESSAGE_ROOT "message"
00019 #define NODE_MESSAGE_ID "id"
00020 #define NODE_MESSAGE_THREAD_ID "threadId"
00021 #define NODE_MESSAGE_SENDER_ID "senderId"
00022 #define NODE_MESSAGE_SENDER_NAME "senderName"
00023 #define NODE_MESSAGE_RECEPIENT_ID "recepientId"
00024 #define NODE_MESSAGE_RECEPIENT_NAME "recepientName"
00025 #define NODE_MESSAGE_RECIPIENT_LIST "recepientList"
00026 #define NODE_MESSAGE_RECEPIENT "recepient"
00027 #define NODE_MESSAGE_TEXT "text"
00028 #define NODE_MESSAGE_TIME "time"
00029 #define NODE_MESSAGE_TITLE "title"
00030 #define NODE_MESSAGE_STATUS "status"
00031 #define NODE_ARRAY "array"
00032 #define NODE_STRUCT "struct"
00033
00035
00040 struct Recepient {
00041 QString id;
00042 QString name;
00043 };
00044
00053 class Message : public QObject
00054 {
00055 Q_OBJECT
00056 public:
00062 Message();
00069 Message(const Message&);
00075 ~Message();
00076
00077 QString messageId;
00078 QString accountId;
00079 QString senderId;
00080 QString senderName;
00081 QString threadId;
00083 QList<Recepient> recepientList;
00085
00086 QString text;
00088
00089 QString title;
00091
00092 QString time;
00099 const QString subject();
00106 QString subjectFromBody(QString messageBody);
00107
00108 QString status;
00110
00117 QDomElement toQDomElement(QDomDocument doc);
00118
00119
00127 static QDomElement toQDomElement(QDomDocument doc, Message src);
00128
00129
00137 static Message fromQDomElement(QDomElement fr, QString accountId);
00138
00145 Message& operator=(const Message&);
00153 static void copyData(Message *dst, const Message *src);
00154
00159 bool isReaded() const;
00160
00161 signals:
00162
00163 public slots:
00164
00165 };
00166
00175 typedef QRefreshList<Message> MessageList;
00176
00177 Q_DECLARE_METATYPE(Message)
00178 Q_DECLARE_METATYPE(MessageList)
00179
00180 #endif // MESSAGE_H