filebrowser/ui/src/filebrowsersortfilterproxymodel.cpp
branchRCL_3
changeset 20 fad26422216a
parent 19 b3cee849fa46
child 21 f8280f3bfeb7
equal deleted inserted replaced
19:b3cee849fa46 20:fad26422216a
     1 /*
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 #include "filebrowsersortfilterproxymodel.h"
       
    19 
       
    20 #include <QString>
       
    21 #include <QStringList>
       
    22 
       
    23 FileBrowserSortFilterProxyModel::FileBrowserSortFilterProxyModel(QObject *parent)
       
    24     : QSortFilterProxyModel(parent)
       
    25 {
       
    26 }
       
    27 
       
    28 bool FileBrowserSortFilterProxyModel::filterAcceptsRow(int sourceRow,
       
    29                                                        const QModelIndex &sourceParent) const
       
    30 {
       
    31     QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
       
    32 
       
    33     QVariant displayRole = index.data(Qt::DisplayRole);
       
    34     QStringList stringList;
       
    35     if (displayRole.isValid()) {
       
    36         if (displayRole.canConvert<QString>()) {
       
    37             stringList.append(displayRole.toString());
       
    38         } else if (displayRole.canConvert<QStringList>()) {
       
    39             stringList = displayRole.toStringList();
       
    40         }
       
    41         QString itemName = stringList.at(0);
       
    42         //QString criteria = filterRegExp().pattern();
       
    43         QString criteria = filterCriteria();
       
    44         if (!criteria.isEmpty()) {
       
    45             bool contains = itemName.contains(criteria, Qt::CaseInsensitive);
       
    46             return contains;
       
    47         } else {
       
    48             //invalidateFilter();
       
    49             return true;
       
    50         }
       
    51     }
       
    52     return true;
       
    53 }
       
    54 
       
    55 void FileBrowserSortFilterProxyModel::setFilterCriteria(const QString &criteria)
       
    56 {
       
    57     mFilterCriteria = criteria;
       
    58     invalidate();
       
    59 }
       
    60 
       
    61 
       
    62 // End of File