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 |