summaryrefslogtreecommitdiffstats
path: root/src/messaging/qmessagestore_maemo.cpp
diff options
context:
space:
mode:
authorMarko Minkkinen <marko.minkkinen@digia.com>2010-04-08 19:19:16 +0300
committerDon Sanders <don.sanders@nokia.com>2010-04-09 12:54:38 +1000
commit30bc1b9abbc30addfe75c66ac8e24d64a56ddbbc (patch)
tree3305ba002dde3540c26accc2f4ab6bf9a15aafbd /src/messaging/qmessagestore_maemo.cpp
parentd16c3888d5c2e1bce02020ea890f5626f760a6c2 (diff)
Nested filter support + couple of filtering fixes
Fixes: MOBILITY-789
Diffstat (limited to 'src/messaging/qmessagestore_maemo.cpp')
-rw-r--r--src/messaging/qmessagestore_maemo.cpp33
1 files changed, 22 insertions, 11 deletions
diff --git a/src/messaging/qmessagestore_maemo.cpp b/src/messaging/qmessagestore_maemo.cpp
index c411526d4d..3f8c72f1ad 100644
--- a/src/messaging/qmessagestore_maemo.cpp
+++ b/src/messaging/qmessagestore_maemo.cpp
@@ -130,17 +130,19 @@ QMessageIdList QMessageStore::queryMessages(const QMessageFilter &filter, const
{
QMessageIdList messageIds;
+ QMessageFilter handledFilter = filter;
+ MessagingHelper::handleNestedFiltersFromMessageFilter(handledFilter);
+
bool isFiltered = false;
bool isSorted = false;
- messageIds = ModestEngine::instance()->queryMessagesSync(filter, sortOrder, limit, offset,
+ messageIds = ModestEngine::instance()->queryMessagesSync(handledFilter, sortOrder, limit, offset,
isFiltered, isSorted);
- // messageIds += d_ptr->p_ptr->el->filterAndOrderMessages(filter,sortOrder,QString(),QMessageDataComparator::MatchFlags());
- messageIds += EventLoggerEngine::instance()->filterAndOrderMessages(filter,sortOrder,QString(),QMessageDataComparator::MatchFlags());
+ messageIds += EventLoggerEngine::instance()->filterAndOrderMessages(handledFilter,sortOrder,QString(),QMessageDataComparator::MatchFlags());
if (!isFiltered) {
- MessagingHelper::filterMessages(messageIds, filter);
+ MessagingHelper::filterMessages(messageIds, handledFilter);
}
if (!isSorted) {
MessagingHelper::orderMessages(messageIds, sortOrder);
@@ -156,15 +158,18 @@ QMessageIdList QMessageStore::queryMessages(const QMessageFilter &filter, const
{
QMessageIdList messageIds;
+ QMessageFilter handledFilter = filter;
+ MessagingHelper::handleNestedFiltersFromMessageFilter(handledFilter);
+
bool isFiltered = false;
bool isSorted = false;
- messageIds = ModestEngine::instance()->queryMessagesSync(filter, body, matchFlags, sortOrder, limit, offset,
- isFiltered, isSorted);
- // messageIds +=d_ptr->p_ptr->el->filterAndOrderMessages(filter,sortOrder,body,matchFlags);
- messageIds +=EventLoggerEngine::instance()->filterAndOrderMessages(filter,sortOrder,body,matchFlags);
+ messageIds = ModestEngine::instance()->queryMessagesSync(handledFilter, body, matchFlags, sortOrder,
+ limit, offset, isFiltered, isSorted);
+
+ messageIds +=EventLoggerEngine::instance()->filterAndOrderMessages(handledFilter,sortOrder,body,matchFlags);
if (!isFiltered) {
- MessagingHelper::filterMessages(messageIds, filter);
+ MessagingHelper::filterMessages(messageIds, handledFilter);
}
if (!isSorted) {
MessagingHelper::orderMessages(messageIds, sortOrder);
@@ -180,9 +185,12 @@ QMessageFolderIdList QMessageStore::queryFolders(const QMessageFolderFilter &fil
{
QMessageFolderIdList folderIds;
+ QMessageFolderFilter handledFilter = filter;
+ MessagingHelper::handleNestedFiltersFromFolderFilter(handledFilter);
+
bool isFiltered = false;
bool isSorted = false;
- folderIds = ModestEngine::instance()->queryFolders(filter, sortOrder, limit, offset, isFiltered, isSorted);
+ folderIds = ModestEngine::instance()->queryFolders(handledFilter, sortOrder, limit, offset, isFiltered, isSorted);
if (!isFiltered) {
MessagingHelper::filterFolders(folderIds, filter);
}
@@ -220,7 +228,10 @@ int QMessageStore::countMessages(const QMessageFilter& filter) const
{
int count = 0;
- count += ModestEngine::instance()->countMessagesSync(filter);
+ QMessageFilter handledFilter = filter;
+ MessagingHelper::handleNestedFiltersFromMessageFilter(handledFilter);
+
+ count += ModestEngine::instance()->countMessagesSync(handledFilter);
ModestEngine::instance()->clearHeaderCache();