qtmobility/src/messaging/qmessageservice_maemo.cpp
changeset 8 71781823f776
parent 5 453da2cfceef
child 11 06b8e2af4411
equal deleted inserted replaced
5:453da2cfceef 8:71781823f776
    43 
    43 
    44 #include "maemohelpers_p.h"
    44 #include "maemohelpers_p.h"
    45 #include "modestengine_maemo_p.h"
    45 #include "modestengine_maemo_p.h"
    46 #include "telepathyengine_maemo_p.h"
    46 #include "telepathyengine_maemo_p.h"
    47 #include "eventloggerengine_maemo_p.h"
    47 #include "eventloggerengine_maemo_p.h"
       
    48 #include <QUrl>
       
    49 #include "hildon-uri.h"
    48 
    50 
    49 QTM_BEGIN_NAMESPACE
    51 QTM_BEGIN_NAMESPACE
       
    52 #define EVENTLOGGER_THREAD
       
    53 
    50 
    54 
    51 QMessageServicePrivate::QMessageServicePrivate(QMessageService* parent)
    55 QMessageServicePrivate::QMessageServicePrivate(QMessageService* parent)
    52  : q_ptr(parent),
    56  : q_ptr(parent),
    53    _state(QMessageService::InactiveState),
    57    _state(QMessageService::InactiveState),
    54    _error(QMessageManager::NoError),
    58    _error(QMessageManager::NoError),
    55    _active(false), _actionId(-1),
    59    _active(false), _actionId(-1),
    56    _pendingRequestCount(0)
    60    _pendingRequestCount(0)
    57 {
    61 {
       
    62 #ifdef EVENTLOGGER_THREAD
       
    63     connect(EventLoggerEngine::instance(),SIGNAL(messagesFound(const QMessageIdList &,bool,bool)),this,SLOT(messagesFound(const QMessageIdList &,bool,bool)));
       
    64 
       
    65 #endif
    58 }
    66 }
    59 
    67 
    60 QMessageServicePrivate::~QMessageServicePrivate()
    68 QMessageServicePrivate::~QMessageServicePrivate()
    61 {
    69 {
    62 }
    70 }
    87     _error = QMessageManager::NoError;
    95     _error = QMessageManager::NoError;
    88 
    96 
    89     _pendingRequestCount = 0;
    97     _pendingRequestCount = 0;
    90 
    98 
    91     if (enginesToCall & EnginesToCallTelepathy) {
    99     if (enginesToCall & EnginesToCallTelepathy) {
    92         _ids = EventLoggerEngine::instance()->filterAndOrderMessages(filter,sortOrder,QString(),QMessageDataComparator::MatchFlags());
   100 #ifndef EVENTLOGGER_THREAD
       
   101       _ids = EventLoggerEngine::instance()->filterAndOrderMessages(filter,sortOrder,QString(),QMessageDataComparator::MatchFlags());
    93         QMetaObject::invokeMethod(this, "messagesFoundSlot", Qt::QueuedConnection);
   102         QMetaObject::invokeMethod(this, "messagesFoundSlot", Qt::QueuedConnection);
       
   103 #else
       
   104         EventLoggerEngine::instance()->filterMessages(_filter,sortOrder,QString(),QMessageDataComparator::MatchFlags());
       
   105 #endif
    94         _pendingRequestCount++;
   106         _pendingRequestCount++;
    95     }
   107     }
    96 
   108 
    97     if (enginesToCall & EnginesToCallModest) {
   109     if (enginesToCall & EnginesToCallModest) {
    98         if (ModestEngine::instance()->queryMessages(messageService, _filter, sortOrder, limit, offset)) {
   110         if (ModestEngine::instance()->queryMessages(messageService, _filter, sortOrder, limit, offset)) {
   137     _error = QMessageManager::NoError;
   149     _error = QMessageManager::NoError;
   138 
   150 
   139     _pendingRequestCount = 0;
   151     _pendingRequestCount = 0;
   140 
   152 
   141     if (enginesToCall & EnginesToCallTelepathy) {
   153     if (enginesToCall & EnginesToCallTelepathy) {
       
   154 #ifndef EVENTLOGGER_THREAD
   142         _ids= EventLoggerEngine::instance()->filterAndOrderMessages(filter,sortOrder,body,matchFlags); 
   155         _ids= EventLoggerEngine::instance()->filterAndOrderMessages(filter,sortOrder,body,matchFlags); 
   143         QMetaObject::invokeMethod(this, "messagesFoundSlot", Qt::QueuedConnection);
   156         QMetaObject::invokeMethod(this, "messagesFoundSlot", Qt::QueuedConnection);
       
   157 #else
       
   158         EventLoggerEngine::instance()->filterMessages(_filter,sortOrder,body,matchFlags);
       
   159 #endif
   144         _pendingRequestCount++;
   160         _pendingRequestCount++;
   145     }
   161     }
   146 
   162 
   147     if (enginesToCall & EnginesToCallModest) {
   163     if (enginesToCall & EnginesToCallModest) {
   148         if (ModestEngine::instance()->queryMessages(messageService, _filter, body, matchFlags,
   164         if (ModestEngine::instance()->queryMessages(messageService, _filter, body, matchFlags,
   325     return d_ptr->countMessages(*this, filter);
   341     return d_ptr->countMessages(*this, filter);
   326 }
   342 }
   327 
   343 
   328 bool QMessageService::send(QMessage &message)
   344 bool QMessageService::send(QMessage &message)
   329 {
   345 {
   330   //  qDebug() << "QMessageService::send";
   346    qDebug() << "QMessageService::send";
   331     if (d_ptr->_active) {
   347     if (d_ptr->_active) {
   332         return false;
   348         return false;
   333     }
   349     }
   334 
   350 
   335     d_ptr->_active = true;
   351     d_ptr->_active = true;
   416             retVal = ModestEngine::instance()->sendEmail(message);
   432             retVal = ModestEngine::instance()->sendEmail(message);
   417         }
   433         }
   418     }
   434     }
   419 
   435 
   420     d_ptr->setFinished(retVal);
   436     d_ptr->setFinished(retVal);
       
   437     qDebug() << "send returns=" << retVal;
   421     return retVal;
   438     return retVal;
   422 }
   439 }
   423 
   440 
   424 bool QMessageService::compose(const QMessage &message)
   441 bool QMessageService::compose(const QMessage &message)
   425 {
   442 {
       
   443   //  qDebug() << "qMessageService::compose";
   426     if (d_ptr->_active) {
   444     if (d_ptr->_active) {
   427         return false;
   445         return false;
   428     }
   446     }
   429 
   447 
   430     d_ptr->_active = true;
   448     d_ptr->_active = true;
   431     d_ptr->_error = QMessageManager::NoError;
   449     d_ptr->_error = QMessageManager::NoError;
   432 
   450 
   433     bool retVal = true;
   451     bool retVal=false;
   434     d_ptr->_state = QMessageService::ActiveState;
   452     d_ptr->_state = QMessageService::ActiveState;
   435     emit stateChanged(d_ptr->_state);
   453     emit stateChanged(d_ptr->_state);
   436 
   454     qDebug() << "qMessageService::compose stateChanged";
   437     if (message.type() == QMessage::Sms) {
   455 
   438         d_ptr->_error = QMessageManager::NotYetImplemented; //TODO:
   456     if (message.type() == QMessage::Sms && !message.to().isEmpty() && !message.to().first().addressee().isEmpty()) {
   439         qWarning() << "QMessageService::compose not yet implemented for SMS";
   457       QUrl smsUrl((QString("sms:%1").arg(message.to().first().addressee())));
   440         retVal = false;
   458       smsUrl.addQueryItem("body",message.textContent());
       
   459       //      qDebug() << "compose SMS url=" << smsUrl.toString();
       
   460       hildon_uri_open(smsUrl.toString().toStdString().c_str(),NULL,NULL);
       
   461       retVal = true;
       
   462 
       
   463 
   441     } else if (message.type() == QMessage::Mms) {
   464     } else if (message.type() == QMessage::Mms) {
   442         d_ptr->_error = QMessageManager::NotYetImplemented; //TODO:
   465         d_ptr->_error = QMessageManager::NotYetImplemented; //TODO:
   443         qWarning() << "QMessageService::compose not yet implemented for MMS";
   466         qWarning() << "QMessageService::compose not yet implemented for MMS";
   444         retVal = false;
   467         retVal = false;
   445     } else if (message.type() == QMessage::Email) {
   468     } else if (message.type() == QMessage::Email) {
   446         retVal = ModestEngine::instance()->composeEmail(message);
   469         retVal = ModestEngine::instance()->composeEmail(message);
   447     }
   470     }
   448 
   471 
   449     d_ptr->setFinished(retVal);
   472     d_ptr->setFinished(retVal); 
       
   473     //    qDebug() << "compose returns=" << retVal;
   450     return retVal;
   474     return retVal;
   451 }
   475 }
       
   476 
       
   477 
   452 
   478 
   453 bool QMessageService::retrieveHeader(const QMessageId& id)
   479 bool QMessageService::retrieveHeader(const QMessageId& id)
   454 {
   480 {
   455     Q_UNUSED(id)
   481     Q_UNUSED(id)
   456     return false; // stub
   482     return false; // stub