diff options
author | Don Sanders <don.sanders@nokia.com> | 2011-03-18 17:38:49 +1000 |
---|---|---|
committer | Don Sanders <don.sanders@nokia.com> | 2011-03-18 17:38:49 +1000 |
commit | 2e7dfedec56ffeb1152a4e7c084c21db354b6d4b (patch) | |
tree | 0d4c73efefdc20662a8c59b34a6841c713f1a831 | |
parent | 9025d97a1c01eb84337d2982a3bc277f546e57ad (diff) |
Fix QTSOL-200
Fixes: QMailStorageAction::flagMessages doesn't export Read and
Important flag changes to the server
-rw-r--r-- | src/plugins/messageservices/imap/imapservice.cpp | 16 |
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))); |