summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDon Sanders <don.sanders@nokia.com>2012-03-23 14:32:33 +0200
committerDon Sanders <don.sanders@nokia.com>2012-03-23 15:37:09 +0200
commit8dac4e44f63d810251f4e68f79f45450b01de73d (patch)
tree61870c9cf5a78b0919fe3c07dda5acbcc9a94391
parent544658f9c533a7aaa354765d783cc214d5735467 (diff)
Use QAlignedTimer with a 1 min interval for sending imap idle done
When available requires Qt5.
-rw-r--r--src/plugins/messageservices/imap/imap.pro2
-rw-r--r--src/plugins/messageservices/imap/imapclient.cpp15
2 files changed, 16 insertions, 1 deletions
diff --git a/src/plugins/messageservices/imap/imap.pro b/src/plugins/messageservices/imap/imap.pro
index 627fe439..7dbd8e83 100644
--- a/src/plugins/messageservices/imap/imap.pro
+++ b/src/plugins/messageservices/imap/imap.pro
@@ -4,7 +4,7 @@ CONFIG += qmfmessageserver qmfclient plugin
target.path += $$QMF_INSTALL_ROOT/lib/qmf/plugins/messageservices
-QT += core network
+QT += core network alignedtimer
QT += widgets
DEPENDPATH += .
diff --git a/src/plugins/messageservices/imap/imapclient.cpp b/src/plugins/messageservices/imap/imapclient.cpp
index 03c8f752..e334a67a 100644
--- a/src/plugins/messageservices/imap/imapclient.cpp
+++ b/src/plugins/messageservices/imap/imapclient.cpp
@@ -53,6 +53,11 @@
#include <QFile>
#include <QDir>
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
+#include <QAlignedTimer>
+using namespace QtAlignedTimer;
+#endif
+
#ifdef QT_QMF_HAVE_ZLIB
#define QMFALLOWCOMPRESS 1
#else
@@ -317,7 +322,11 @@ protected:
QMailFolder _folder;
private:
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
+ QAlignedTimer _idleTimer; // Send a DONE command every 29 minutes
+#else
QTimer _idleTimer; // Send a DONE command every 29 minutes
+#endif
QTimer _idleRecoveryTimer; // Check command hasn't hung
int _idleRetryDelay; // Try to restablish IDLE state
enum IdleRetryDelay { InitialIdleRetryDelay = 30 }; //seconds
@@ -360,7 +369,13 @@ void IdleProtocol::idleContinuation(ImapCommand command, const QString &type)
qMailLog(IMAP) << objectName() << "IDLE: Idle connection established.";
// We are now idling
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
+ _idleTimer.setMinimumInterval(idleTimeout - 60*1000);
+ _idleTimer.setMaximumInterval(idleTimeout);
+ _idleTimer.start();
+#else
_idleTimer.start(idleTimeout);
+#endif
_idleRecoveryTimer.stop();
handleIdling();