mysocials-core 1.0

src/datatypes/message.h

Go to the documentation of this file.
00001 
00007 #ifndef MESSAGE_H
00008 #define MESSAGE_H
00009 
00010 #include <QObject>
00011 #include <QString>
00012 #include <QMetaType>
00013 #include <QDomDocument>
00014 
00015 #include "utils/qrefreshlist.h"
00016 
00017 #define NODE_MESSAGE_ROOT "message"
00018 #define NODE_MESSAGE_ID "id"
00019 #define NODE_MESSAGE_SENDER_ID "senderId"
00020 #define NODE_MESSAGE_SENDER_NAME "senderName"
00021 #define NODE_MESSAGE_RECEPIENT_ID "recepientId"
00022 #define NODE_MESSAGE_RECEPIENT_NAME "recepientName"
00023 #define NODE_MESSAGE_RECIPIENT_LIST "recepientList"
00024 #define NODE_MESSAGE_RECEPIENT "recepient"
00025 #define NODE_MESSAGE_TEXT "text"
00026 #define NODE_MESSAGE_TIME "time"
00027 #define NODE_MESSAGE_TITLE "title"
00028 #define NODE_MESSAGE_STATUS "status"
00029 #define NODE_ARRAY "array"
00030 #define NODE_STRUCT "struct"
00031 
00033 
00038 struct Recepient {
00039     QString id; 
00040     QString name; 
00041 };
00042 
00051 class Message : public QObject
00052 {
00053     Q_OBJECT
00054 public:
00060     Message();
00067     Message(const Message&);
00073     ~Message();
00074 
00075     QString messageId; 
00076     QString accountId; 
00077     QString senderId; 
00078     QString senderName; 
00080     QList<Recepient> recepientList; 
00082     // message body
00083     QString text; 
00085     // message title
00086     QString title; 
00088     // date
00089     QString time; 
00096     QString subject();
00103     QString subjectFromBody(QString messageBody);
00104 
00105     QString status; 
00107     // store data to XML format
00114     QDomElement toQDomElement(QDomDocument doc);
00115 
00116     // store data to XML format
00124     static QDomElement toQDomElement(QDomDocument doc, Message src);
00125 
00126     // load message list from XML struct
00134     static Message fromQDomElement(QDomElement fr, QString accountId);
00135 
00142     Message& operator=(const Message&);
00150     static void copyData(Message *dst, const Message *src);
00151 
00152 signals:
00153 
00154 public slots:
00155 
00156 };
00157 
00166 typedef QRefreshList<Message> MessageList;
00167 
00168 Q_DECLARE_METATYPE(Message)
00169 Q_DECLARE_METATYPE(MessageList)
00170 
00171 #endif // MESSAGE_H