diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-05-10 15:53:06 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-05-10 15:53:06 +0200 |
commit | df10583b42f49a58d27dd6dd322f22fd88ce1418 (patch) | |
tree | 34c2dc39c47b60ebc28130985ac976172da478ad /framework/domain | |
parent | 6e76e328b2adbc20bd2da6628a7f57aaa7afe5b1 (diff) | |
download | kube-df10583b42f49a58d27dd6dd322f22fd88ce1418.tar.gz kube-df10583b42f49a58d27dd6dd322f22fd88ce1418.zip |
Support for loading drafts
Diffstat (limited to 'framework/domain')
-rw-r--r-- | framework/domain/composercontroller.cpp | 33 | ||||
-rw-r--r-- | framework/domain/composercontroller.h | 7 | ||||
-rw-r--r-- | framework/domain/maillistmodel.cpp | 5 | ||||
-rw-r--r-- | framework/domain/maillistmodel.h | 1 |
4 files changed, 33 insertions, 13 deletions
diff --git a/framework/domain/composercontroller.cpp b/framework/domain/composercontroller.cpp index 0cf61442..94914f17 100644 --- a/framework/domain/composercontroller.cpp +++ b/framework/domain/composercontroller.cpp | |||
@@ -113,17 +113,21 @@ QStringList ComposerController::attachemts() const | |||
113 | return m_attachments; | 113 | return m_attachments; |
114 | } | 114 | } |
115 | 115 | ||
116 | QVariant ComposerController::originalMessage() const | ||
117 | { | ||
118 | return m_originalMessage; | ||
119 | } | ||
120 | |||
121 | void ComposerController::addAttachment(const QUrl &fileUrl) | 116 | void ComposerController::addAttachment(const QUrl &fileUrl) |
122 | { | 117 | { |
123 | m_attachments.append(fileUrl.toString()); | 118 | m_attachments.append(fileUrl.toString()); |
124 | emit attachmentsChanged(); | 119 | emit attachmentsChanged(); |
125 | } | 120 | } |
126 | 121 | ||
122 | void ComposerController::setMessage(const KMime::Message::Ptr &msg) | ||
123 | { | ||
124 | setTo(msg->to(true)->asUnicodeString()); | ||
125 | setCc(msg->cc(true)->asUnicodeString()); | ||
126 | setSubject(msg->subject(true)->asUnicodeString()); | ||
127 | setBody(msg->body()); | ||
128 | m_msg = QVariant::fromValue(msg); | ||
129 | } | ||
130 | |||
127 | void ComposerController::setOriginalMessage(const QVariant &originalMessage) | 131 | void ComposerController::setOriginalMessage(const QVariant &originalMessage) |
128 | { | 132 | { |
129 | const auto mailData = KMime::CRLFtoLF(originalMessage.toByteArray()); | 133 | const auto mailData = KMime::CRLFtoLF(originalMessage.toByteArray()); |
@@ -133,11 +137,20 @@ void ComposerController::setOriginalMessage(const QVariant &originalMessage) | |||
133 | mail->parse(); | 137 | mail->parse(); |
134 | auto reply = MailTemplates::reply(mail); | 138 | auto reply = MailTemplates::reply(mail); |
135 | //We assume reply | 139 | //We assume reply |
136 | setTo(reply->to(true)->asUnicodeString()); | 140 | setMessage(reply); |
137 | setCc(reply->cc(true)->asUnicodeString()); | 141 | } else { |
138 | setSubject(reply->subject(true)->asUnicodeString()); | 142 | m_msg = QVariant(); |
139 | setBody(reply->body()); | 143 | } |
140 | m_msg = QVariant::fromValue(reply); | 144 | } |
145 | |||
146 | void ComposerController::setDraftMessage(const QVariant &originalMessage) | ||
147 | { | ||
148 | const auto mailData = KMime::CRLFtoLF(originalMessage.toByteArray()); | ||
149 | if (!mailData.isEmpty()) { | ||
150 | KMime::Message::Ptr mail(new KMime::Message); | ||
151 | mail->setContent(mailData); | ||
152 | mail->parse(); | ||
153 | setMessage(mail); | ||
141 | } else { | 154 | } else { |
142 | m_msg = QVariant(); | 155 | m_msg = QVariant(); |
143 | } | 156 | } |
diff --git a/framework/domain/composercontroller.h b/framework/domain/composercontroller.h index 4ad505d8..b24c16a9 100644 --- a/framework/domain/composercontroller.h +++ b/framework/domain/composercontroller.h | |||
@@ -32,7 +32,8 @@ class Message; | |||
32 | class ComposerController : public QObject | 32 | class ComposerController : public QObject |
33 | { | 33 | { |
34 | Q_OBJECT | 34 | Q_OBJECT |
35 | Q_PROPERTY (QVariant originalMessage READ originalMessage WRITE setOriginalMessage) | 35 | Q_PROPERTY (QVariant originalMessage WRITE setOriginalMessage) |
36 | Q_PROPERTY (QVariant draftMessage WRITE setDraftMessage) | ||
36 | Q_PROPERTY (QString to READ to WRITE setTo NOTIFY toChanged) | 37 | Q_PROPERTY (QString to READ to WRITE setTo NOTIFY toChanged) |
37 | Q_PROPERTY (QString cc READ cc WRITE setCc NOTIFY ccChanged) | 38 | Q_PROPERTY (QString cc READ cc WRITE setCc NOTIFY ccChanged) |
38 | Q_PROPERTY (QString bcc READ bcc WRITE setBcc NOTIFY bccChanged) | 39 | Q_PROPERTY (QString bcc READ bcc WRITE setBcc NOTIFY bccChanged) |
@@ -64,8 +65,8 @@ public: | |||
64 | 65 | ||
65 | QStringList attachemts() const; | 66 | QStringList attachemts() const; |
66 | 67 | ||
67 | QVariant originalMessage() const; | ||
68 | void setOriginalMessage(const QVariant &originalMessage); | 68 | void setOriginalMessage(const QVariant &originalMessage); |
69 | void setDraftMessage(const QVariant &draft); | ||
69 | 70 | ||
70 | signals: | 71 | signals: |
71 | void subjectChanged(); | 72 | void subjectChanged(); |
@@ -83,6 +84,7 @@ public slots: | |||
83 | void addAttachment(const QUrl &fileUrl); | 84 | void addAttachment(const QUrl &fileUrl); |
84 | 85 | ||
85 | private: | 86 | private: |
87 | void setMessage(const QSharedPointer<KMime::Message> &msg); | ||
86 | QSharedPointer<KMime::Message> assembleMessage(); | 88 | QSharedPointer<KMime::Message> assembleMessage(); |
87 | QString m_to; | 89 | QString m_to; |
88 | QString m_cc; | 90 | QString m_cc; |
@@ -90,7 +92,6 @@ private: | |||
90 | QString m_subject; | 92 | QString m_subject; |
91 | QString m_body; | 93 | QString m_body; |
92 | QStringList m_attachments; | 94 | QStringList m_attachments; |
93 | QVariant m_originalMessage; | ||
94 | QVariant m_msg; | 95 | QVariant m_msg; |
95 | int m_currentAccountIndex; | 96 | int m_currentAccountIndex; |
96 | }; | 97 | }; |
diff --git a/framework/domain/maillistmodel.cpp b/framework/domain/maillistmodel.cpp index cbf39a86..4ea7075c 100644 --- a/framework/domain/maillistmodel.cpp +++ b/framework/domain/maillistmodel.cpp | |||
@@ -46,6 +46,7 @@ QHash< int, QByteArray > MailListModel::roleNames() const | |||
46 | roles[Date] = "date"; | 46 | roles[Date] = "date"; |
47 | roles[Unread] = "unread"; | 47 | roles[Unread] = "unread"; |
48 | roles[Important] = "important"; | 48 | roles[Important] = "important"; |
49 | roles[Draft] = "draft"; | ||
49 | roles[Id] = "id"; | 50 | roles[Id] = "id"; |
50 | roles[MimeMessage] = "mimeMessage"; | 51 | roles[MimeMessage] = "mimeMessage"; |
51 | roles[DomainObject] = "domainObject"; | 52 | roles[DomainObject] = "domainObject"; |
@@ -70,6 +71,8 @@ QVariant MailListModel::data(const QModelIndex &idx, int role) const | |||
70 | return mail->getUnread(); | 71 | return mail->getUnread(); |
71 | case Important: | 72 | case Important: |
72 | return mail->getImportant(); | 73 | return mail->getImportant(); |
74 | case Draft: | ||
75 | return mail->getDraft(); | ||
73 | case Id: | 76 | case Id: |
74 | return mail->identifier(); | 77 | return mail->identifier(); |
75 | case DomainObject: | 78 | case DomainObject: |
@@ -113,6 +116,7 @@ void MailListModel::setParentFolder(const QVariant &parentFolder) | |||
113 | query.request<Mail::Date>(); | 116 | query.request<Mail::Date>(); |
114 | query.request<Mail::Unread>(); | 117 | query.request<Mail::Unread>(); |
115 | query.request<Mail::Important>(); | 118 | query.request<Mail::Important>(); |
119 | query.request<Mail::Draft>(); | ||
116 | query.request<Mail::Folder>(); | 120 | query.request<Mail::Folder>(); |
117 | query.filter<Mail::Folder>(*folder); | 121 | query.filter<Mail::Folder>(*folder); |
118 | qWarning() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier(); | 122 | qWarning() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier(); |
@@ -140,6 +144,7 @@ void MailListModel::setMail(const QVariant &variant) | |||
140 | query.request<Mail::Date>(); | 144 | query.request<Mail::Date>(); |
141 | query.request<Mail::Unread>(); | 145 | query.request<Mail::Unread>(); |
142 | query.request<Mail::Important>(); | 146 | query.request<Mail::Important>(); |
147 | query.request<Mail::Draft>(); | ||
143 | query.request<Mail::MimeMessage>(); | 148 | query.request<Mail::MimeMessage>(); |
144 | qWarning() << "Running mail query: " << mail->resourceInstanceIdentifier() << mail->identifier(); | 149 | qWarning() << "Running mail query: " << mail->resourceInstanceIdentifier() << mail->identifier(); |
145 | runQuery(query); | 150 | runQuery(query); |
diff --git a/framework/domain/maillistmodel.h b/framework/domain/maillistmodel.h index 47a2a091..13662a17 100644 --- a/framework/domain/maillistmodel.h +++ b/framework/domain/maillistmodel.h | |||
@@ -47,6 +47,7 @@ public: | |||
47 | Date, | 47 | Date, |
48 | Unread, | 48 | Unread, |
49 | Important, | 49 | Important, |
50 | Draft, | ||
50 | Id, | 51 | Id, |
51 | MimeMessage, | 52 | MimeMessage, |
52 | DomainObject | 53 | DomainObject |