diff options
Diffstat (limited to 'framework/domain/maillistmodel.cpp')
-rw-r--r-- | framework/domain/maillistmodel.cpp | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/framework/domain/maillistmodel.cpp b/framework/domain/maillistmodel.cpp index 746f3523..5960f5b4 100644 --- a/framework/domain/maillistmodel.cpp +++ b/framework/domain/maillistmodel.cpp | |||
@@ -44,6 +44,9 @@ QHash< int, QByteArray > MailListModel::roleNames() const | |||
44 | roles[Subject] = "subject"; | 44 | roles[Subject] = "subject"; |
45 | roles[Sender] = "sender"; | 45 | roles[Sender] = "sender"; |
46 | roles[SenderName] = "senderName"; | 46 | roles[SenderName] = "senderName"; |
47 | roles[To] = "to"; | ||
48 | roles[Cc] = "cc"; | ||
49 | roles[Bcc] = "bcc"; | ||
47 | roles[Date] = "date"; | 50 | roles[Date] = "date"; |
48 | roles[Unread] = "unread"; | 51 | roles[Unread] = "unread"; |
49 | roles[Important] = "important"; | 52 | roles[Important] = "important"; |
@@ -56,6 +59,19 @@ QHash< int, QByteArray > MailListModel::roleNames() const | |||
56 | return roles; | 59 | return roles; |
57 | } | 60 | } |
58 | 61 | ||
62 | static QString join(const QList<Sink::ApplicationDomain::Mail::Contact> &contacts) | ||
63 | { | ||
64 | QStringList list; | ||
65 | for (const auto &contact : contacts) { | ||
66 | if (!contact.name.isEmpty()) { | ||
67 | list << QString("%1 <%2>").arg(contact.name).arg(contact.emailAddress); | ||
68 | } else { | ||
69 | list << contact.emailAddress; | ||
70 | } | ||
71 | } | ||
72 | return list.join(", "); | ||
73 | } | ||
74 | |||
59 | QVariant MailListModel::data(const QModelIndex &idx, int role) const | 75 | QVariant MailListModel::data(const QModelIndex &idx, int role) const |
60 | { | 76 | { |
61 | auto srcIdx = mapToSource(idx); | 77 | auto srcIdx = mapToSource(idx); |
@@ -64,9 +80,15 @@ QVariant MailListModel::data(const QModelIndex &idx, int role) const | |||
64 | case Subject: | 80 | case Subject: |
65 | return mail->getSubject(); | 81 | return mail->getSubject(); |
66 | case Sender: | 82 | case Sender: |
67 | return mail->getSender(); | 83 | return mail->getSender().emailAddress; |
68 | case SenderName: | 84 | case SenderName: |
69 | return mail->getSenderName(); | 85 | return mail->getSender().name; |
86 | case To: | ||
87 | return join(mail->getTo()); | ||
88 | case Cc: | ||
89 | return join(mail->getCc()); | ||
90 | case Bcc: | ||
91 | return join(mail->getBcc()); | ||
70 | case Date: | 92 | case Date: |
71 | return mail->getDate(); | 93 | return mail->getDate(); |
72 | case Unread: | 94 | case Unread: |
@@ -113,7 +135,9 @@ void MailListModel::setParentFolder(const QVariant &parentFolder) | |||
113 | query.limit = 100; | 135 | query.limit = 100; |
114 | query.request<Mail::Subject>(); | 136 | query.request<Mail::Subject>(); |
115 | query.request<Mail::Sender>(); | 137 | query.request<Mail::Sender>(); |
116 | query.request<Mail::SenderName>(); | 138 | query.request<Mail::To>(); |
139 | query.request<Mail::Cc>(); | ||
140 | query.request<Mail::Bcc>(); | ||
117 | query.request<Mail::Date>(); | 141 | query.request<Mail::Date>(); |
118 | query.request<Mail::Unread>(); | 142 | query.request<Mail::Unread>(); |
119 | query.request<Mail::Important>(); | 143 | query.request<Mail::Important>(); |
@@ -140,7 +164,9 @@ void MailListModel::setMail(const QVariant &variant) | |||
140 | query.liveQuery = false; | 164 | query.liveQuery = false; |
141 | query.request<Mail::Subject>(); | 165 | query.request<Mail::Subject>(); |
142 | query.request<Mail::Sender>(); | 166 | query.request<Mail::Sender>(); |
143 | query.request<Mail::SenderName>(); | 167 | query.request<Mail::To>(); |
168 | query.request<Mail::Cc>(); | ||
169 | query.request<Mail::Bcc>(); | ||
144 | query.request<Mail::Date>(); | 170 | query.request<Mail::Date>(); |
145 | query.request<Mail::Unread>(); | 171 | query.request<Mail::Unread>(); |
146 | query.request<Mail::Important>(); | 172 | query.request<Mail::Important>(); |