diff options
author | Marko Minkkinen <marko.minkkinen@digia.com> | 2010-09-01 18:57:24 +0300 |
---|---|---|
committer | Marko Minkkinen <marko.minkkinen@digia.com> | 2010-09-01 18:57:24 +0300 |
commit | 09f231b3079441b7a3fd5b7581b207e277a713fe (patch) | |
tree | 649be83904f136d4b1e001579b593f38798a9f64 /src/messaging/qmessagestore_maemo.cpp | |
parent | 7c84d51f857ff3f2ebf2ba6df433ba07624ce3f1 (diff) |
Maemo5 message cache and prefilter functionality and related tests
Diffstat (limited to 'src/messaging/qmessagestore_maemo.cpp')
-rw-r--r-- | src/messaging/qmessagestore_maemo.cpp | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/src/messaging/qmessagestore_maemo.cpp b/src/messaging/qmessagestore_maemo.cpp index 24084777a0..f6e1c0e122 100644 --- a/src/messaging/qmessagestore_maemo.cpp +++ b/src/messaging/qmessagestore_maemo.cpp @@ -136,10 +136,14 @@ QMessageIdList QMessageStore::queryMessages(const QMessageFilter &filter, const bool isFiltered = false; bool isSorted = false; - messageIds = ModestEngine::instance()->queryMessagesSync(handledFilter, sortOrder, limit, offset, - isFiltered, isSorted); + if (MessagingHelper::preFilter(handledFilter, QMessage::Email)) { + messageIds = ModestEngine::instance()->queryMessagesSync(handledFilter, sortOrder, limit, offset, + isFiltered, isSorted); + } - messageIds += EventLoggerEngine::instance()->filterAndOrderMessages(handledFilter,sortOrder,QString(),QMessageDataComparator::MatchFlags()); + if (MessagingHelper::preFilter(handledFilter, QMessage::Sms)) { + messageIds += EventLoggerEngine::instance()->filterAndOrderMessages(handledFilter,sortOrder,QString(),QMessageDataComparator::MatchFlags()); + } if (!isFiltered) { MessagingHelper::filterMessages(messageIds, handledFilter); @@ -149,8 +153,6 @@ QMessageIdList QMessageStore::queryMessages(const QMessageFilter &filter, const } MessagingHelper::applyOffsetAndLimitToMessageIdList(messageIds, limit, offset); - ModestEngine::instance()->clearHeaderCache(); - return messageIds; } @@ -163,10 +165,15 @@ QMessageIdList QMessageStore::queryMessages(const QMessageFilter &filter, const bool isFiltered = false; bool isSorted = false; - messageIds = ModestEngine::instance()->queryMessagesSync(handledFilter, body, matchFlags, sortOrder, - limit, offset, isFiltered, isSorted); - messageIds +=EventLoggerEngine::instance()->filterAndOrderMessages(handledFilter,sortOrder,body,matchFlags); + if (MessagingHelper::preFilter(handledFilter, QMessage::Email)) { + messageIds = ModestEngine::instance()->queryMessagesSync(handledFilter, body, matchFlags, sortOrder, + limit, offset, isFiltered, isSorted); + } + + if (MessagingHelper::preFilter(handledFilter, QMessage::Sms)) { + messageIds +=EventLoggerEngine::instance()->filterAndOrderMessages(handledFilter,sortOrder,body,matchFlags); + } if (!isFiltered) { MessagingHelper::filterMessages(messageIds, handledFilter); @@ -176,8 +183,6 @@ QMessageIdList QMessageStore::queryMessages(const QMessageFilter &filter, const } MessagingHelper::applyOffsetAndLimitToMessageIdList(messageIds, limit, offset); - ModestEngine::instance()->clearHeaderCache(); - return messageIds; } @@ -231,9 +236,14 @@ int QMessageStore::countMessages(const QMessageFilter& filter) const QMessageFilter handledFilter = filter; MessagingHelper::handleNestedFiltersFromMessageFilter(handledFilter); - count += ModestEngine::instance()->countMessagesSync(handledFilter); + if (MessagingHelper::preFilter(handledFilter, QMessage::Email)) { + count += ModestEngine::instance()->countMessagesSync(handledFilter); + } - ModestEngine::instance()->clearHeaderCache(); + if (MessagingHelper::preFilter(handledFilter, QMessage::Sms)) { + QMessageIdList messageIds = EventLoggerEngine::instance()->filterAndOrderMessages(handledFilter,QMessageSortOrder(),QString(),QMessageDataComparator::MatchFlags()); + count += messageIds.count(); + } return count; } @@ -372,6 +382,11 @@ bool QMessageStore::updateMessage(QMessage *m) QMessage QMessageStore::message(const QMessageId& id) const { + QMessage message = MessageCache::instance()->message(id); + if (message.type() != QMessage::NoType) { + return message; + } + if (id.toString().startsWith("MO_")) { return ModestEngine::instance()->message(id); } else { |