summaryrefslogtreecommitdiffstats
path: root/src/messaging/qmessagestore_maemo.cpp
diff options
context:
space:
mode:
authorMarko Minkkinen <marko.minkkinen@digia.com>2010-03-25 18:49:21 +0200
committerDon Sanders <don.sanders@nokia.com>2010-03-29 16:29:02 +1000
commit89c0c2ce7b8b5331c5223ec5d4e4357cef55cdd7 (patch)
tree5278e71e896fcce07a4352be74f27dc98bfc95e8 /src/messaging/qmessagestore_maemo.cpp
parent5ea7e184fb0472332cae9f05cb9d86e21adf02df (diff)
Latest fixes + first working support library for auto tests
Fixes: MOBILITY-688 Synchronous query messages function not implemented
Diffstat (limited to 'src/messaging/qmessagestore_maemo.cpp')
-rw-r--r--src/messaging/qmessagestore_maemo.cpp63
1 files changed, 46 insertions, 17 deletions
diff --git a/src/messaging/qmessagestore_maemo.cpp b/src/messaging/qmessagestore_maemo.cpp
index ca507c6c51..0fa18abb16 100644
--- a/src/messaging/qmessagestore_maemo.cpp
+++ b/src/messaging/qmessagestore_maemo.cpp
@@ -127,22 +127,40 @@ QMessageManager::Error QMessageStore::error() const
QMessageIdList QMessageStore::queryMessages(const QMessageFilter &filter, const QMessageSortOrder &sortOrder, uint limit, uint offset) const
{
- Q_UNUSED(filter)
- Q_UNUSED(sortOrder)
- Q_UNUSED(limit)
- Q_UNUSED(offset)
- return QMessageIdList(); // stub
+ QMessageIdList messageIds;
+
+ bool isFiltered = false;
+ bool isSorted = false;
+ messageIds = ModestEngine::instance()->queryMessagesSync(filter, sortOrder, limit, offset,
+ isFiltered, isSorted);
+ if (!isFiltered) {
+ MessagingHelper::filterMessages(messageIds, filter);
+ }
+ if (!isSorted) {
+ MessagingHelper::orderMessages(messageIds, sortOrder);
+ }
+ MessagingHelper::applyOffsetAndLimitToMessageIdList(messageIds, limit, offset);
+
+ return messageIds;
}
QMessageIdList QMessageStore::queryMessages(const QMessageFilter &filter, const QString &body, QMessageDataComparator::MatchFlags matchFlags, const QMessageSortOrder &sortOrder, uint limit, uint offset) const
{
- Q_UNUSED(filter)
- Q_UNUSED(sortOrder)
- Q_UNUSED(body)
- Q_UNUSED(matchFlags)
- Q_UNUSED(limit)
- Q_UNUSED(offset)
- return QMessageIdList(); // stub
+ QMessageIdList messageIds;
+
+ bool isFiltered = false;
+ bool isSorted = false;
+ messageIds = ModestEngine::instance()->queryMessagesSync(filter, body, matchFlags, sortOrder, limit, offset,
+ isFiltered, isSorted);
+ if (!isFiltered) {
+ MessagingHelper::filterMessages(messageIds, filter);
+ }
+ if (!isSorted) {
+ MessagingHelper::orderMessages(messageIds, sortOrder);
+ }
+ MessagingHelper::applyOffsetAndLimitToMessageIdList(messageIds, limit, offset);
+
+ return messageIds;
}
QMessageFolderIdList QMessageStore::queryFolders(const QMessageFolderFilter &filter, const QMessageFolderSortOrder &sortOrder, uint limit, uint offset) const
@@ -187,8 +205,11 @@ QMessageAccountIdList QMessageStore::queryAccounts(const QMessageAccountFilter &
int QMessageStore::countMessages(const QMessageFilter& filter) const
{
- Q_UNUSED(filter)
- return 0; // stub
+ int count = 0;
+
+ count += ModestEngine::instance()->countMessagesSync(filter);
+
+ return count;
}
int QMessageStore::countFolders(const QMessageFolderFilter& filter) const
@@ -220,9 +241,17 @@ bool QMessageStore::removeMessage(const QMessageId& id, QMessageManager::Removal
bool QMessageStore::removeMessages(const QMessageFilter& filter, QMessageManager::RemovalOption option)
{
- Q_UNUSED(filter)
- Q_UNUSED(option)
- return true; // stub
+ QMessageIdList ids = queryMessages(filter, QMessageSortOrder(), 0, 0);
+
+ for (int i=0; i < ids.count(); i++) {
+ if (ids[i].toString().startsWith("MO_")) {
+ if (!ModestEngine::instance()->removeMessage(ids[i], option)) {
+ return false;
+ }
+ }
+ }
+
+ return true;
}
bool QMessageStore::addMessage(QMessage *m)