summaryrefslogtreecommitdiffstats
path: root/framework/domain/messageparser.h
diff options
context:
space:
mode:
Diffstat (limited to 'framework/domain/messageparser.h')
-rw-r--r--framework/domain/messageparser.h52
1 files changed, 44 insertions, 8 deletions
diff --git a/framework/domain/messageparser.h b/framework/domain/messageparser.h
index 3e0255df..559fa6f9 100644
--- a/framework/domain/messageparser.h
+++ b/framework/domain/messageparser.h
@@ -29,41 +29,49 @@
29#include <memory> 29#include <memory>
30#include <MimeTreeParser/MessagePart> 30#include <MimeTreeParser/MessagePart>
31 31
32namespace MimeTreeParser {
33 class NodeHelper;
34};
35class QAbstractItemModel; 32class QAbstractItemModel;
36 33
34class Parser;
35class Part;
36class Encryption;
37class Signature;
38typedef std::shared_ptr<Part> PartPtr;
39class Content;
40typedef std::shared_ptr<Content> ContentPtr;
41class MessagePartPrivate;
42
43class NewModelPrivate;
44
37class MessageParser : public QObject 45class MessageParser : public QObject
38{ 46{
39 Q_OBJECT 47 Q_OBJECT
40 Q_PROPERTY (QVariant message READ message WRITE setMessage) 48 Q_PROPERTY (QVariant message READ message WRITE setMessage)
41 Q_PROPERTY (QString html READ html NOTIFY htmlChanged) 49 Q_PROPERTY (QString html READ html NOTIFY htmlChanged)
42 Q_PROPERTY (QAbstractItemModel* partTree READ partTree NOTIFY htmlChanged) 50 Q_PROPERTY (QAbstractItemModel* partTree READ partTree NOTIFY htmlChanged)
51 Q_PROPERTY (QAbstractItemModel* newTree READ newTree NOTIFY htmlChanged)
43 52
44public: 53public:
45 explicit MessageParser(QObject *parent = Q_NULLPTR); 54 explicit MessageParser(QObject *parent = Q_NULLPTR);
55 ~MessageParser();
46 56
47 QString html() const; 57 QString html() const;
48 58
49 QVariant message() const; 59 QVariant message() const;
50 void setMessage(const QVariant &to); 60 void setMessage(const QVariant &to);
51 QAbstractItemModel *partTree() const; 61 QAbstractItemModel *partTree() const;
62 QAbstractItemModel *newTree() const;
52 63
53signals: 64signals:
54 void htmlChanged(); 65 void htmlChanged();
55 66
56private: 67private:
57 QSharedPointer<MimeTreeParser::MessagePart> mPartTree; 68 std::unique_ptr<MessagePartPrivate> d;
58 QString mHtml;
59 QMap<QByteArray, QUrl> mEmbeddedPartMap;
60 std::shared_ptr<MimeTreeParser::NodeHelper> mNodeHelper;
61}; 69};
62 70
63class PartModel : public QAbstractItemModel { 71class PartModel : public QAbstractItemModel {
64 Q_OBJECT 72 Q_OBJECT
65public: 73public:
66 PartModel(QSharedPointer<MimeTreeParser::MessagePart> partTree, QMap<QByteArray, QUrl> embeddedPartMap); 74 PartModel(QSharedPointer<MimeTreeParser::MessagePart> partTree, std::shared_ptr<Parser> parser);
67 75
68public: 76public:
69 enum Roles { 77 enum Roles {
@@ -86,5 +94,33 @@ public:
86private: 94private:
87 QSharedPointer<MimeTreeParser::MessagePart> mPartTree; 95 QSharedPointer<MimeTreeParser::MessagePart> mPartTree;
88 QMap<QByteArray, QUrl> mEmbeddedPartMap; 96 QMap<QByteArray, QUrl> mEmbeddedPartMap;
97 std::shared_ptr<Parser> mParser;
98};
99
100
101class NewModel : public QAbstractItemModel {
102 Q_OBJECT
103public:
104 NewModel(std::shared_ptr<Parser> parser);
105 ~NewModel();
106
107public:
108 enum Roles {
109 TypeRole = Qt::UserRole + 1,
110 ContentsRole,
111 ContentRole,
112 IsEmbededRole,
113 SecurityLevelRole
114 };
115
116 QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
117 QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
118 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
119 QModelIndex parent(const QModelIndex &index) const Q_DECL_OVERRIDE;
120 int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
121 int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
122
123private:
124 std::unique_ptr<NewModelPrivate> d;
89}; 125};
90 126