summaryrefslogtreecommitdiffstats
path: root/framework/domain/maillistmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/domain/maillistmodel.cpp')
-rw-r--r--framework/domain/maillistmodel.cpp34
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
62static 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
59QVariant MailListModel::data(const QModelIndex &idx, int role) const 75QVariant 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>();