QMessageIdList QMFStore::queryMessages(const QMessageFilter &filter, const QString &body, QMessageDataComparator::MatchFlags matchFlags, const QMessageSortOrder &sortOrder, uint limit, uint offset, QMessageManager::Error &error) const { if (filter.matchFlags() != 0) { error = QMessageManager::NotYetImplemented; return QMessageIdList(); } error = QMessageManager::NoError; QMessageIdList ids(convert(d_ptr->_store->queryMessages(convert(filter), convert(sortOrder)))); Qt::CaseSensitivity searchOptions(Qt::CaseInsensitive); if (matchFlags & QMessageDataComparator::MatchCaseSensitive) { searchOptions = Qt::CaseSensitive; } QMessageIdList result; foreach (QMessageId id, ids) { QMessage message(id); QMessageContentContainer bodyContainer(message.find(message.bodyId())); if (bodyContainer.textContent().contains(body, searchOptions)) { result.append(id); if (limit && ((uint)result.count() >= offset + limit)) { break; } } }
QMessageIdList QMessageStore::queryMessages(const QMessageFilter &filter, const QMessageSortOrder &sortOrder, uint limit, uint offset) const { if (filter.matchFlags() != 0) { d_ptr->_error = QMessageManager::NotYetImplemented; return QMessageIdList(); } d_ptr->_error = QMessageManager::NoError; return convert(d_ptr->_store->queryMessages(convert(filter), convert(sortOrder), limit, offset)); }
QMessageFilter::QMessageFilter() : d_ptr(new QMessageFilterPrivate(this)) { d_ptr->_matchFlags = 0; d_ptr->_valid = true; // Empty filter is valid d_ptr->_notFilter = false; d_ptr->_notFilterForComparator = false; d_ptr->_ids = QMessageIdList(); d_ptr->_value = QVariant(); d_ptr->_field = QMessageFilterPrivate::None; d_ptr->_comparatorType = QMessageFilterPrivate::Equality; d_ptr->_comparatorValue = 0; d_ptr->_accountFilter = 0; d_ptr->_folderFilter = 0; }