summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDon Sanders <don.sanders@nokia.com>2011-03-18 17:38:49 +1000
committerDon Sanders <don.sanders@nokia.com>2011-03-18 17:38:49 +1000
commit2e7dfedec56ffeb1152a4e7c084c21db354b6d4b (patch)
tree0d4c73efefdc20662a8c59b34a6841c713f1a831
parent9025d97a1c01eb84337d2982a3bc277f546e57ad (diff)
Fixes: QMailStorageAction::flagMessages doesn't export Read and Important flag changes to the server
-rw-r--r--src/plugins/messageservices/imap/imapservice.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/plugins/messageservices/imap/imapservice.cpp b/src/plugins/messageservices/imap/imapservice.cpp
index 3659414c..d40a85a3 100644
--- a/src/plugins/messageservices/imap/imapservice.cpp
+++ b/src/plugins/messageservices/imap/imapservice.cpp
@@ -735,7 +735,7 @@ bool ImapService::Source::flagMessages(const QMailMessageIdList &messageIds, qui
}
}
- quint64 updatableFlags(QMailMessage::Replied | QMailMessage::RepliedAll | QMailMessage::Forwarded);
+ quint64 updatableFlags(QMailMessage::Replied | QMailMessage::RepliedAll | QMailMessage::Forwarded | QMailMessage::Read | QMailMessage::Important);
if ((setMask & updatableFlags) || (unsetMask & updatableFlags)) {
// We could hold on to these changes until exportUpdates instead...
MessageFlags setFlags(0);
@@ -747,6 +747,18 @@ bool ImapService::Source::flagMessages(const QMailMessageIdList &messageIds, qui
if (unsetMask & (QMailMessage::Replied | QMailMessage::RepliedAll)) {
unsetFlags |= MFlag_Answered;
}
+ if (setMask & QMailMessage::Read) {
+ setFlags |= MFlag_Seen;
+ }
+ if (unsetMask & QMailMessage::Read) {
+ unsetFlags |= MFlag_Seen;
+ }
+ if (setMask & QMailMessage::Important) {
+ setFlags |= MFlag_Flagged;
+ }
+ if (unsetMask & QMailMessage::Important) {
+ unsetFlags |= MFlag_Flagged;
+ }
if ((setMask | unsetMask) & QMailMessage::Forwarded) {
// We can only modify this flag if the folders support $Forwarded
@@ -779,7 +791,7 @@ bool ImapService::Source::flagMessages(const QMailMessageIdList &messageIds, qui
_service->_client.strategyContext()->flagMessagesStrategy.setMessageFlags(setFlags, true);
}
if (unsetFlags) {
- _service->_client.strategyContext()->flagMessagesStrategy.setMessageFlags(unsetFlags, true);
+ _service->_client.strategyContext()->flagMessagesStrategy.setMessageFlags(unsetFlags, false);
}
_service->_client.strategyContext()->flagMessagesStrategy.selectedMailsAppend(messageIds);
appendStrategy(&_service->_client.strategyContext()->flagMessagesStrategy, SIGNAL(messagesFlagged(QMailMessageIdList)));