diff options
author | Don Sanders <don.sanders@nokia.com> | 2011-05-30 15:20:43 +0300 |
---|---|---|
committer | Don Sanders <don.sanders@nokia.com> | 2011-05-30 15:20:43 +0300 |
commit | 05a39cb3c432cb7af32a8089caea04fbd831fe54 (patch) | |
tree | 8d92298970ee24ade791f2f61ef37cfda2e2777f | |
parent | 27bc9f7361d89c32b3a4de9e3725ca6c080a6fda (diff) |
::sync on client before removing mail from external POP server.
Only for POP accounts and only when the configuration option delete mail from
server when retrieved by client is enabled.
-rw-r--r-- | src/plugins/messageservices/pop/popclient.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/plugins/messageservices/pop/popclient.cpp b/src/plugins/messageservices/pop/popclient.cpp index b073b5fa..758ffc95 100644 --- a/src/plugins/messageservices/pop/popclient.cpp +++ b/src/plugins/messageservices/pop/popclient.cpp @@ -50,8 +50,10 @@ #include <qmailtransport.h> #include <qmaillog.h> #include <qmaildisconnected.h> - #include <limits.h> +#if !defined(Q_OS_WIN) && !defined(Q_OS_SYMBIAN) +#include <unistd.h> +#endif class MessageFlushedWrapper : public QMailMessageBufferFlushCallback @@ -753,7 +755,14 @@ void PopClient::nextAction() { PopConfiguration popCfg(config); if (popCfg.deleteRetrievedMailsFromServer()) { - int pos = msgPosFromUidl(messageUid); + // Now that sqlite WAL is used, make sure mail metadata is sync'd + // on device before removing from external mail server +#if defined(Q_OS_WIN) || defined (Q_OS_SYMBIAN) + qWarning() << "Unable to call sync in POP plugin."; +#else + ::sync(); +#endif + int pos = msgPosFromUidl(messageUid); emit updateStatus(tr("Removing message from server")); nextCommand = ("DELE " + QString::number(pos)); nextStatus = DeleAfterRetr; |