Exemplo n.º 1
0
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;
            }
        }
    }
Exemplo n.º 2
0
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;
}