summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerio Valerio <valerio.valerio@nokia.com>2012-01-13 10:33:01 +0200
committerValerio Valerio <valerio.valerio@nokia.com>2012-01-13 10:33:01 +0200
commit0bac4adb4149237d2b9c0497ede76cc6aea4637a (patch)
treecb21a93b020a5945864dcdc4f07d6df51637f708
parent09777ab94ffa0070a775d0df7c8924cd434fe3c1 (diff)
parent529c8511e723fa9b4438d40b05f9685085ff35e2 (diff)
Merge branch 'master' of scm.dev.nokia.troll.no:addons/messagingframework
-rw-r--r--examples/qtmail/app/emailclient.cpp7
-rw-r--r--src/plugins/messageservices/imap/imapclient.cpp24
-rw-r--r--src/plugins/messageservices/imap/imapprotocol.cpp1
-rw-r--r--src/plugins/messageservices/imap/imapstrategy.cpp3
4 files changed, 23 insertions, 12 deletions
diff --git a/examples/qtmail/app/emailclient.cpp b/examples/qtmail/app/emailclient.cpp
index 08fcf319..86ada777 100644
--- a/examples/qtmail/app/emailclient.cpp
+++ b/examples/qtmail/app/emailclient.cpp
@@ -1210,7 +1210,12 @@ void EmailClient::saveAsDraft(QMailMessage& mail)
mail.setStatus(QMailMessage::LocalOnly, true);
inserted = QMailStore::instance()->addMessage(&mail);
} else {
- inserted = QMailStore::instance()->updateMessage(&mail);
+ QMailMessageId msgId = mail.id();
+ mail.setId(QMailMessageId());
+ mail.setStatus(QMailMessage::LocalOnly, true);
+ mail.setServerUid(QString());
+ inserted = QMailStore::instance()->addMessage(&mail);
+ QMailStore::instance()->removeMessage(msgId, QMailStore::CreateRemovalRecord);
}
if (inserted) {
diff --git a/src/plugins/messageservices/imap/imapclient.cpp b/src/plugins/messageservices/imap/imapclient.cpp
index 3a774ee7..be9a71d4 100644
--- a/src/plugins/messageservices/imap/imapclient.cpp
+++ b/src/plugins/messageservices/imap/imapclient.cpp
@@ -357,7 +357,7 @@ void IdleProtocol::idleContinuation(ImapCommand command, const QString &type)
if (command == IMAP_Idle) {
if (type == QString("idling")) {
- qMailLog(IMAP) << "IDLE: Idle connection established.";
+ qMailLog(IMAP) << objectName() << "IDLE: Idle connection established.";
// We are now idling
_idleTimer.start(idleTimeout);
@@ -365,11 +365,11 @@ void IdleProtocol::idleContinuation(ImapCommand command, const QString &type)
handleIdling();
} else if (type == QString("newmail")) {
- qMailLog(IMAP) << "IDLE: new mail event occurred";
+ qMailLog(IMAP) << objectName() << "IDLE: new mail event occurred";
// A new mail event occurred during idle
emit idleNewMailNotification(_folder.id());
} else if (type == QString("flagschanged")) {
- qMailLog(IMAP) << "IDLE: flags changed event occurred";
+ qMailLog(IMAP) << objectName() << "IDLE: flags changed event occurred";
// A flags changed event occurred during idle
emit idleFlagsChangedNotification(_folder.id());
} else {
@@ -451,7 +451,7 @@ void IdleProtocol::idleCommandTransition(const ImapCommand command, const Operat
}
default: //default = all critical messages
{
- qMailLog(IMAP) << "IDLE: IMAP Idle unknown command response: " << command;
+ qMailLog(IMAP) << objectName() << "IDLE: IMAP Idle unknown command response: " << command;
return;
}
}
@@ -466,7 +466,8 @@ void IdleProtocol::idleTimeOut()
void IdleProtocol::idleTransportError()
{
- qMailLog(IMAP) << "IDLE: An IMAP IDLE related error occurred.\n"
+ qMailLog(IMAP) << objectName()
+ << "IDLE: An IMAP IDLE related error occurred.\n"
<< "An attempt to automatically recover is scheduled in" << _idleRetryDelay << "seconds.";
if (inUse())
@@ -482,7 +483,7 @@ void IdleProtocol::idleErrorRecovery()
const int oneHour = 60*60;
_idleRecoveryTimer.stop();
if (connected() && _idleTimer.isActive()) {
- qMailLog(IMAP) << "IDLE: IMAP IDLE error recovery was successful. About to check for new mail.";
+ qMailLog(IMAP) << objectName() << "IDLE: IMAP IDLE error recovery was successful. About to check for new mail.";
_idleRetryDelay = InitialIdleRetryDelay;
emit idleNewMailNotification(_folder.id()); // Check for new messages arriving while idle connection was down
emit idleFlagsChangedNotification(_folder.id());
@@ -621,7 +622,7 @@ void ImapClient::checkCommandResponse(ImapCommand command, OperationStatus statu
case IMAP_UIDStore:
{
// Couldn't set a flag, ignore as we can stil continue
- qMailLog(IMAP) << "could not store message flag";
+ qMailLog(IMAP) << _protocol.objectName() << "could not store message flag";
break;
}
@@ -1665,8 +1666,10 @@ void ImapClient::monitor(const QMailFolderIdList &mailboxIds)
void ImapClient::idleOpenRequested(IdleProtocol *idleProtocol)
{
if (_protocol.inUse()) { // Setting up new idle connection may be in progress
- qMailLog(IMAP) << "IDLE: IMAP IDLE error recovery detected that the primary connection is "
- "busy. Retrying to establish IDLE state in" << idleProtocol->idleRetryDelay()/2 << "seconds.";
+ qMailLog(IMAP) << _protocol.objectName()
+ << "IDLE: IMAP IDLE error recovery detected that the primary connection is "
+ "busy. Retrying to establish IDLE state in"
+ << idleProtocol->idleRetryDelay()/2 << "seconds.";
return;
}
_protocol.close();
@@ -1677,7 +1680,8 @@ void ImapClient::idleOpenRequested(IdleProtocol *idleProtocol)
delete protocol;
}
_idlesEstablished = false;
- qMailLog(IMAP) << "IDLE: IMAP IDLE error recovery trying to establish IDLE state now.";
+ qMailLog(IMAP) << _protocol.objectName()
+ << "IDLE: IMAP IDLE error recovery trying to establish IDLE state now.";
emit restartPushEmail();
}
diff --git a/src/plugins/messageservices/imap/imapprotocol.cpp b/src/plugins/messageservices/imap/imapprotocol.cpp
index 58a21c02..e7b4cf0b 100644
--- a/src/plugins/messageservices/imap/imapprotocol.cpp
+++ b/src/plugins/messageservices/imap/imapprotocol.cpp
@@ -2901,6 +2901,7 @@ bool ImapProtocol::open( const ImapConfiguration& config )
this, SLOT(incomingData()));
}
+ qMailLog(IMAP) << objectName() << "About to open connection" << config.mailUserName() << config.mailServer(); // useful to see object name
_transport->open( config.mailServer(), config.mailPort(), static_cast<QMailTransport::EncryptType>(config.mailEncryption()) );
return true;
diff --git a/src/plugins/messageservices/imap/imapstrategy.cpp b/src/plugins/messageservices/imap/imapstrategy.cpp
index b7108fca..e8b7672d 100644
--- a/src/plugins/messageservices/imap/imapstrategy.cpp
+++ b/src/plugins/messageservices/imap/imapstrategy.cpp
@@ -139,7 +139,8 @@ bool purge(ImapStrategyContextBase *context, const QMailMessageKey &removedKey)
// We might have a deletion record for this UID
vanishedIds << uid;
}
- if (!QMailStore::instance()->purgeMessageRemovalRecords(context->config().id(), vanishedIds)) {
+ if (!vanishedIds.isEmpty() && // guard to protect against deleting all removal records when vanishedIds is empty!
+ !QMailStore::instance()->purgeMessageRemovalRecords(context->config().id(), vanishedIds)) {
result = false;
qWarning() << "Unable to purge message records for account:" << context->config().id();
}