From 1974c19eadd497e355ac985a00d0571f3e6c7712 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20Knau=C3=9F?= Date: Tue, 11 Oct 2016 16:18:50 +0200 Subject: create model for new mailviewer --- framework/domain/messageparser.h | 57 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) (limited to 'framework/domain/messageparser.h') diff --git a/framework/domain/messageparser.h b/framework/domain/messageparser.h index 9469f2b5..b3d7537d 100644 --- a/framework/domain/messageparser.h +++ b/framework/domain/messageparser.h @@ -32,6 +32,10 @@ class QAbstractItemModel; class Parser; +class Part; +typedef std::shared_ptr PartPtr; +class Content; +typedef std::shared_ptr ContentPtr; class MessagePartPrivate; class MessageParser : public QObject @@ -40,6 +44,7 @@ class MessageParser : public QObject Q_PROPERTY (QVariant message READ message WRITE setMessage) Q_PROPERTY (QString html READ html NOTIFY htmlChanged) Q_PROPERTY (QAbstractItemModel* partTree READ partTree NOTIFY htmlChanged) + Q_PROPERTY (QAbstractItemModel* newTree READ newTree NOTIFY htmlChanged) public: explicit MessageParser(QObject *parent = Q_NULLPTR); @@ -50,6 +55,7 @@ public: QVariant message() const; void setMessage(const QVariant &to); QAbstractItemModel *partTree() const; + QAbstractItemModel *newTree() const; signals: void htmlChanged(); @@ -87,3 +93,54 @@ private: std::shared_ptr mParser; }; + +class NewContentModel : public QAbstractItemModel { + Q_OBJECT +public: + NewContentModel (const PartPtr &part); + +public: + enum Roles { + TypeRole = Qt::UserRole + 1, + ContentRole, + IsEmbededRole, + SecurityLevelRole + }; + + QHash roleNames() const Q_DECL_OVERRIDE; + QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; + QModelIndex parent(const QModelIndex &index) const Q_DECL_OVERRIDE; + int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; + int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; + +private: + const PartPtr &mPart; +}; + +class NewModel : public QAbstractItemModel { + Q_OBJECT +public: + NewModel(std::shared_ptr parser); + +public: + enum Roles { + TypeRole = Qt::UserRole + 1, + ContentsRole, + IsEmbededRole, + SecurityLevelRole + }; + + QHash roleNames() const Q_DECL_OVERRIDE; + QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; + QModelIndex parent(const QModelIndex &index) const Q_DECL_OVERRIDE; + int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; + int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; + +private: + std::shared_ptr mParser; + QVector mParts; + QMap> mContentMap; +}; + -- cgit v1.2.3