diff options
-rw-r--r-- | framework/domain/maillistmodel.cpp | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/framework/domain/maillistmodel.cpp b/framework/domain/maillistmodel.cpp index eb282533..cbf39a86 100644 --- a/framework/domain/maillistmodel.cpp +++ b/framework/domain/maillistmodel.cpp | |||
@@ -83,8 +83,8 @@ QVariant MailListModel::data(const QModelIndex &idx, int role) const | |||
83 | 83 | ||
84 | bool MailListModel::lessThan(const QModelIndex &left, const QModelIndex &right) const | 84 | bool MailListModel::lessThan(const QModelIndex &left, const QModelIndex &right) const |
85 | { | 85 | { |
86 | const QVariant leftData = left.sibling(left.row(), 3).data(Qt::DisplayRole); | 86 | const QVariant leftData = left.sibling(left.row(), Date).data(Qt::DisplayRole); |
87 | const QVariant rightData = right.sibling(right.row(), 3).data(Qt::DisplayRole); | 87 | const QVariant rightData = right.sibling(right.row(), Date).data(Qt::DisplayRole); |
88 | return leftData.toDateTime() < rightData.toDateTime(); | 88 | return leftData.toDateTime() < rightData.toDateTime(); |
89 | } | 89 | } |
90 | 90 | ||
@@ -96,18 +96,25 @@ void MailListModel::runQuery(const Sink::Query &query) | |||
96 | 96 | ||
97 | void MailListModel::setParentFolder(const QVariant &parentFolder) | 97 | void MailListModel::setParentFolder(const QVariant &parentFolder) |
98 | { | 98 | { |
99 | auto folder = parentFolder.value<Sink::ApplicationDomain::Folder::Ptr>(); | 99 | using namespace Sink::ApplicationDomain; |
100 | auto folder = parentFolder.value<Folder::Ptr>(); | ||
100 | if (!folder) { | 101 | if (!folder) { |
101 | qWarning() << "No folder: " << parentFolder; | 102 | qWarning() << "No folder: " << parentFolder; |
102 | return; | 103 | return; |
103 | } | 104 | } |
104 | Sink::Query query; | 105 | Sink::Query query; |
105 | query.liveQuery = true; | 106 | query.liveQuery = true; |
106 | query.requestedProperties << "subject" << "sender" << "senderName" << "date" << "unread" << "important" << "folder"; | ||
107 | query.resources << folder->resourceInstanceIdentifier(); | 107 | query.resources << folder->resourceInstanceIdentifier(); |
108 | query.sortProperty = "date"; | 108 | query.sort<Mail::Date>(); |
109 | query.limit = 100; | 109 | query.limit = 100; |
110 | query += Sink::Query::PropertyFilter("folder", *folder); | 110 | query.request<Mail::Subject>(); |
111 | query.request<Mail::Sender>(); | ||
112 | query.request<Mail::SenderName>(); | ||
113 | query.request<Mail::Date>(); | ||
114 | query.request<Mail::Unread>(); | ||
115 | query.request<Mail::Important>(); | ||
116 | query.request<Mail::Folder>(); | ||
117 | query.filter<Mail::Folder>(*folder); | ||
111 | qWarning() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier(); | 118 | qWarning() << "Running folder query: " << folder->resourceInstanceIdentifier() << folder->identifier(); |
112 | runQuery(query); | 119 | runQuery(query); |
113 | } | 120 | } |
@@ -119,16 +126,21 @@ QVariant MailListModel::parentFolder() const | |||
119 | 126 | ||
120 | void MailListModel::setMail(const QVariant &variant) | 127 | void MailListModel::setMail(const QVariant &variant) |
121 | { | 128 | { |
129 | using namespace Sink::ApplicationDomain; | ||
122 | auto mail = variant.value<Sink::ApplicationDomain::Mail::Ptr>(); | 130 | auto mail = variant.value<Sink::ApplicationDomain::Mail::Ptr>(); |
123 | if (!mail) { | 131 | if (!mail) { |
124 | qWarning() << "No mail: " << mail; | 132 | qWarning() << "No mail: " << mail; |
125 | return; | 133 | return; |
126 | } | 134 | } |
127 | Sink::Query query; | 135 | Sink::Query query(*mail); |
128 | query.liveQuery = false; | 136 | query.liveQuery = false; |
129 | query.requestedProperties << "subject" << "sender" << "senderName" << "date" << "unread" << "important" << "mimeMessage"; | 137 | query.request<Mail::Subject>(); |
130 | query.ids << mail->identifier(); | 138 | query.request<Mail::Sender>(); |
131 | query.resources << mail->resourceInstanceIdentifier(); | 139 | query.request<Mail::SenderName>(); |
140 | query.request<Mail::Date>(); | ||
141 | query.request<Mail::Unread>(); | ||
142 | query.request<Mail::Important>(); | ||
143 | query.request<Mail::MimeMessage>(); | ||
132 | qWarning() << "Running mail query: " << mail->resourceInstanceIdentifier() << mail->identifier(); | 144 | qWarning() << "Running mail query: " << mail->resourceInstanceIdentifier() << mail->identifier(); |
133 | runQuery(query); | 145 | runQuery(query); |
134 | } | 146 | } |