diff -r 06b8e2af4411 -r 6fbed849b4f4 qtmobility/src/messaging/qmessageservice_maemo.cpp --- a/qtmobility/src/messaging/qmessageservice_maemo.cpp Fri Jun 11 14:26:25 2010 +0300 +++ b/qtmobility/src/messaging/qmessageservice_maemo.cpp Wed Jun 23 19:08:38 2010 +0300 @@ -421,9 +421,9 @@ } if (account.messageTypes() & QMessage::Sms) { - retVal = TelepathyEngine::instance()->sendMessage(message); + retVal = TelepathyEngine::instance()->sendMessage(outgoing); } else if (account.messageTypes() & QMessage::InstantMessage) { - retVal = TelepathyEngine::instance()->sendMessage(message); + retVal = TelepathyEngine::instance()->sendMessage(outgoing); } else if (account.messageTypes() & QMessage::Mms) { d_ptr->_error = QMessageManager::NotYetImplemented; qWarning() << "QMessageService::send not yet implemented for MMS"; @@ -484,15 +484,68 @@ bool QMessageService::retrieveBody(const QMessageId& id) { - Q_UNUSED(id) - return false; // stub + if (d_ptr->_active) { + return false; + } + + if (!id.isValid()) { + d_ptr->_error = QMessageManager::InvalidId; + return false; + } + + d_ptr->_active = true; + d_ptr->_error = QMessageManager::NoError; + + bool retVal = true; + d_ptr->stateChanged(QMessageService::ActiveState); + + if (id.toString().startsWith("MO_")) { + retVal = ModestEngine::instance()->retrieveBody(*this, id); + if (retVal == true) { + d_ptr->_pendingRequestCount = 1; + } + } else { + retVal = false; + } + + if (retVal == false) { + d_ptr->setFinished(retVal); + } + + return retVal; } bool QMessageService::retrieve(const QMessageId &messageId, const QMessageContentContainerId& id) { - Q_UNUSED(messageId) - Q_UNUSED(id) - return false; // stub + if (d_ptr->_active) { + return false; + } + + if (!id.isValid()) { + d_ptr->_error = QMessageManager::InvalidId; + return false; + } + + d_ptr->_active = true; + d_ptr->_error = QMessageManager::NoError; + + bool retVal = true; + d_ptr->stateChanged(QMessageService::ActiveState); + + if (messageId.toString().startsWith("MO_")) { + retVal = ModestEngine::instance()->retrieve(*this, messageId, id, NULL); + if (retVal == true) { + d_ptr->_pendingRequestCount = 1; + } + } else { + retVal = false; + } + + if (retVal == false) { + d_ptr->setFinished(retVal); + } + + return retVal; } bool QMessageService::show(const QMessageId& id)