diff -r 819e59dfc032 -r 2d9cac8919d3 utilityapps/filebrowser/ui/src/filebrowsersortfilterproxymodel.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/utilityapps/filebrowser/ui/src/filebrowsersortfilterproxymodel.cpp Mon Oct 18 16:30:05 2010 +0300 @@ -0,0 +1,62 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "filebrowsersortfilterproxymodel.h" + +#include +#include + +FileBrowserSortFilterProxyModel::FileBrowserSortFilterProxyModel(QObject *parent) + : QSortFilterProxyModel(parent) +{ +} + +bool FileBrowserSortFilterProxyModel::filterAcceptsRow(int sourceRow, + const QModelIndex &sourceParent) const +{ + QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent); + + QVariant displayRole = index.data(Qt::DisplayRole); + QStringList stringList; + if (displayRole.isValid()) { + if (displayRole.canConvert()) { + stringList.append(displayRole.toString()); + } else if (displayRole.canConvert()) { + stringList = displayRole.toStringList(); + } + QString itemName = stringList.at(0); + //QString criteria = filterRegExp().pattern(); + QString criteria = filterCriteria(); + if (!criteria.isEmpty()) { + bool contains = itemName.contains(criteria, Qt::CaseInsensitive); + return contains; + } else { + //invalidateFilter(); + return true; + } + } + return true; +} + +void FileBrowserSortFilterProxyModel::setFilterCriteria(const QString &criteria) +{ + mFilterCriteria = criteria; + invalidate(); +} + + +// End of File