diff options
author | Marko Minkkinen <marko.minkkinen@digia.com> | 2010-03-22 18:50:31 +0200 |
---|---|---|
committer | Marko Minkkinen <marko.minkkinen@digia.com> | 2010-03-22 18:50:31 +0200 |
commit | 28df2ea8e8915df71dcdcd48753b876401cd8581 (patch) | |
tree | bdfbf3c2829db7361af9a038cc533ae11d62e04c /src/messaging/qmessagestore_maemo.cpp | |
parent | 5077629f689179cc9a0b8ef4e21e87c95a0d34a0 (diff) |
Latest fixes and addMessage implementation
Diffstat (limited to 'src/messaging/qmessagestore_maemo.cpp')
-rw-r--r-- | src/messaging/qmessagestore_maemo.cpp | 86 |
1 files changed, 82 insertions, 4 deletions
diff --git a/src/messaging/qmessagestore_maemo.cpp b/src/messaging/qmessagestore_maemo.cpp index 892738db44..ca507c6c51 100644 --- a/src/messaging/qmessagestore_maemo.cpp +++ b/src/messaging/qmessagestore_maemo.cpp @@ -227,14 +227,92 @@ bool QMessageStore::removeMessages(const QMessageFilter& filter, QMessageManager bool QMessageStore::addMessage(QMessage *m) { - Q_UNUSED(m) - return true; // stub + bool retVal = true; + + QMessageAccountId accountId = m->parentAccountId(); + QMessage::Type msgType = QMessage::NoType; + + // Check message type + if (m->type() == QMessage::AnyType || m->type() == QMessage::NoType) { + if (accountId.isValid()) { + // ParentAccountId was defined => Message type can be read + // from parent account + QMessageAccount account = QMessageAccount(accountId); + QMessage::TypeFlags types = account.messageTypes(); + if (types & QMessage::Sms) { + msgType = QMessage::Sms; + } else if (account.messageTypes() & QMessage::InstantMessage) { + msgType = QMessage::InstantMessage; + } else if (types & QMessage::Mms) { + msgType = QMessage::Mms; + } else if (types & QMessage::Email) { + msgType = QMessage::Email; + } + } + if (msgType == QMessage::NoType) { + retVal = false; + } + } + + if (retVal) { + // Check account + if (!accountId.isValid()) { + accountId = QMessageAccount::defaultAccount(m->type()); + if (!accountId.isValid()) { + retVal = false; + } + } + } + + QMessageAccount account(accountId); + if (retVal) { + // Check account/message type compatibility + if (!(account.messageTypes() & m->type()) && (msgType == QMessage::NoType)) { + retVal = false; + } + } + + if (retVal) { + // Set default account if unset + if (!m->parentAccountId().isValid()) { + m->setParentAccountId(accountId); + } + + if (account.messageTypes() & QMessage::Sms) { + retVal = false; //TODO: + qWarning() << "QMessageManager::add not yet implemented for SMS"; + } else if (account.messageTypes() & QMessage::InstantMessage) { + retVal = false; //TODO: + qWarning() << "QMessageManager::add not yet implemented for Instant Message"; + } else if (account.messageTypes() & QMessage::Mms) { + retVal = false; //TODO: + qWarning() << "QMessageManager::add not yet implemented for MMS"; + } else if (account.messageTypes() & QMessage::Email) { + retVal = ModestEngine::instance()->addMessage(*m); + } + } + + return retVal; } bool QMessageStore::updateMessage(QMessage *m) { - Q_UNUSED(m) - return true; // stub + bool retVal = false; + + if (m->type() == QMessage::Sms) { + retVal = false; //TODO: + qWarning() << "QMessageManager::update not yet implemented for SMS"; + } else if (m->type() == QMessage::InstantMessage) { + retVal = false; //TODO: + qWarning() << "QMessageManager::update not yet implemented for Instant Message"; + } else if (m->type() == QMessage::Mms) { + retVal = false; //TODO: + qWarning() << "QMessageManager::update not yet implemented for Instant MMS"; + } else if (m->type() == QMessage::Email) { + retVal = ModestEngine::instance()->updateMessage(*m); + } + + return retVal; } QMessage QMessageStore::message(const QMessageId& id) const |