diff -r 453da2cfceef -r 71781823f776 qtmobility/src/messaging/qmessageservice_maemo.cpp --- a/qtmobility/src/messaging/qmessageservice_maemo.cpp Fri May 14 16:41:33 2010 +0300 +++ b/qtmobility/src/messaging/qmessageservice_maemo.cpp Thu May 27 13:42:11 2010 +0300 @@ -45,8 +45,12 @@ #include "modestengine_maemo_p.h" #include "telepathyengine_maemo_p.h" #include "eventloggerengine_maemo_p.h" +#include +#include "hildon-uri.h" QTM_BEGIN_NAMESPACE +#define EVENTLOGGER_THREAD + QMessageServicePrivate::QMessageServicePrivate(QMessageService* parent) : q_ptr(parent), @@ -55,6 +59,10 @@ _active(false), _actionId(-1), _pendingRequestCount(0) { +#ifdef EVENTLOGGER_THREAD + connect(EventLoggerEngine::instance(),SIGNAL(messagesFound(const QMessageIdList &,bool,bool)),this,SLOT(messagesFound(const QMessageIdList &,bool,bool))); + +#endif } QMessageServicePrivate::~QMessageServicePrivate() @@ -89,8 +97,12 @@ _pendingRequestCount = 0; if (enginesToCall & EnginesToCallTelepathy) { - _ids = EventLoggerEngine::instance()->filterAndOrderMessages(filter,sortOrder,QString(),QMessageDataComparator::MatchFlags()); +#ifndef EVENTLOGGER_THREAD + _ids = EventLoggerEngine::instance()->filterAndOrderMessages(filter,sortOrder,QString(),QMessageDataComparator::MatchFlags()); QMetaObject::invokeMethod(this, "messagesFoundSlot", Qt::QueuedConnection); +#else + EventLoggerEngine::instance()->filterMessages(_filter,sortOrder,QString(),QMessageDataComparator::MatchFlags()); +#endif _pendingRequestCount++; } @@ -139,8 +151,12 @@ _pendingRequestCount = 0; if (enginesToCall & EnginesToCallTelepathy) { +#ifndef EVENTLOGGER_THREAD _ids= EventLoggerEngine::instance()->filterAndOrderMessages(filter,sortOrder,body,matchFlags); QMetaObject::invokeMethod(this, "messagesFoundSlot", Qt::QueuedConnection); +#else + EventLoggerEngine::instance()->filterMessages(_filter,sortOrder,body,matchFlags); +#endif _pendingRequestCount++; } @@ -327,7 +343,7 @@ bool QMessageService::send(QMessage &message) { - // qDebug() << "QMessageService::send"; + qDebug() << "QMessageService::send"; if (d_ptr->_active) { return false; } @@ -418,11 +434,13 @@ } d_ptr->setFinished(retVal); + qDebug() << "send returns=" << retVal; return retVal; } bool QMessageService::compose(const QMessage &message) { + // qDebug() << "qMessageService::compose"; if (d_ptr->_active) { return false; } @@ -430,14 +448,19 @@ d_ptr->_active = true; d_ptr->_error = QMessageManager::NoError; - bool retVal = true; + bool retVal=false; d_ptr->_state = QMessageService::ActiveState; emit stateChanged(d_ptr->_state); + qDebug() << "qMessageService::compose stateChanged"; - if (message.type() == QMessage::Sms) { - d_ptr->_error = QMessageManager::NotYetImplemented; //TODO: - qWarning() << "QMessageService::compose not yet implemented for SMS"; - retVal = false; + if (message.type() == QMessage::Sms && !message.to().isEmpty() && !message.to().first().addressee().isEmpty()) { + QUrl smsUrl((QString("sms:%1").arg(message.to().first().addressee()))); + smsUrl.addQueryItem("body",message.textContent()); + // qDebug() << "compose SMS url=" << smsUrl.toString(); + hildon_uri_open(smsUrl.toString().toStdString().c_str(),NULL,NULL); + retVal = true; + + } else if (message.type() == QMessage::Mms) { d_ptr->_error = QMessageManager::NotYetImplemented; //TODO: qWarning() << "QMessageService::compose not yet implemented for MMS"; @@ -446,10 +469,13 @@ retVal = ModestEngine::instance()->composeEmail(message); } - d_ptr->setFinished(retVal); + d_ptr->setFinished(retVal); + // qDebug() << "compose returns=" << retVal; return retVal; } + + bool QMessageService::retrieveHeader(const QMessageId& id) { Q_UNUSED(id)