summaryrefslogtreecommitdiffstats
path: root/src/messaging/qmessagestore_maemo.cpp
diff options
context:
space:
mode:
authorMarko Minkkinen <marko.minkkinen@digia.com>2010-03-22 18:50:31 +0200
committerMarko Minkkinen <marko.minkkinen@digia.com>2010-03-22 18:50:31 +0200
commit28df2ea8e8915df71dcdcd48753b876401cd8581 (patch)
treebdfbf3c2829db7361af9a038cc533ae11d62e04c /src/messaging/qmessagestore_maemo.cpp
parent5077629f689179cc9a0b8ef4e21e87c95a0d34a0 (diff)
Latest fixes and addMessage implementation
Diffstat (limited to 'src/messaging/qmessagestore_maemo.cpp')
-rw-r--r--src/messaging/qmessagestore_maemo.cpp86
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