summaryrefslogtreecommitdiffstats
path: root/src/messaging/qmessagestore_maemo.cpp
diff options
context:
space:
mode:
authorMarko Minkkinen <marko.minkkinen@digia.com>2010-09-01 18:57:24 +0300
committerMarko Minkkinen <marko.minkkinen@digia.com>2010-09-01 18:57:24 +0300
commit09f231b3079441b7a3fd5b7581b207e277a713fe (patch)
tree649be83904f136d4b1e001579b593f38798a9f64 /src/messaging/qmessagestore_maemo.cpp
parent7c84d51f857ff3f2ebf2ba6df433ba07624ce3f1 (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.cpp39
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 {