mysortfilterproxymodel.cpp
author insilmaril
Thu, 17 Sep 2009 09:41:09 +0000
changeset 795 6b0a5f4923d3
child 802 f076fdec767d
permissions -rw-r--r--
Fixed sort children and addMapReplaceInt
     1 /****************************************************************************
     2 **
     3 ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
     4 ** Contact: Qt Software Information (qt-info@nokia.com)
     5 **
     6 ** This file is part of the example classes of the Qt Toolkit.
     7 **
     8 ** Commercial Usage
     9 ** Licensees holding valid Qt Commercial licenses may use this file in
    10 ** accordance with the Qt Commercial License Agreement provided with the
    11 ** Software or, alternatively, in accordance with the terms contained in
    12 ** a written agreement between you and Nokia.
    13 **
    14 **
    15 ** GNU General Public License Usage
    16 ** Alternatively, this file may be used under the terms of the GNU
    17 ** General Public License versions 2.0 or 3.0 as published by the Free
    18 ** Software Foundation and appearing in the file LICENSE.GPL included in
    19 ** the packaging of this file.  Please review the following information
    20 ** to ensure GNU General Public Licensing requirements will be met:
    21 ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
    22 ** http://www.gnu.org/copyleft/gpl.html.  In addition, as a special
    23 ** exception, Nokia gives you certain additional rights. These rights
    24 ** are described in the Nokia Qt GPL Exception version 1.3, included in
    25 ** the file GPL_EXCEPTION.txt in this package.
    26 **
    27 ** Qt for Windows(R) Licensees
    28 ** As a special exception, Nokia, as the sole copyright holder for Qt
    29 ** Designer, grants users of the Qt/Eclipse Integration plug-in the
    30 ** right for the Qt/Eclipse Integration to link to functionality
    31 ** provided by Qt Designer and its related libraries.
    32 **
    33 ** If you are unsure which license is appropriate for your use, please
    34 ** contact the sales department at qt-sales@nokia.com.
    35 **
    36 ****************************************************************************/
    37 
    38 #include <QtGui>
    39 
    40 #include "mysortfilterproxymodel.h"
    41 
    42 MySortFilterProxyModel::MySortFilterProxyModel(QObject *parent)
    43     : QSortFilterProxyModel(parent)
    44 {
    45 }
    46 /*
    47 void MySortFilterProxyModel::setFilterMinimumDate(const QDate &date)
    48 {
    49     minDate = date;
    50     invalidateFilter();
    51 }
    52 void MySortFilterProxyModel::setFilterMaximumDate(const QDate &date)
    53 {
    54     maxDate = date;
    55     invalidateFilter();
    56 }
    57 */
    58 
    59 #include <iostream>
    60 using namespace std;
    61 bool MySortFilterProxyModel::filterAcceptsRow(int sourceRow,
    62         const QModelIndex &sourceParent) const
    63 {
    64 	return true;
    65 cout << "MSFPM  sM="<<sourceModel()<<endl;
    66     QModelIndex index0 = sourceModel()->index(sourceRow, 0, sourceParent);
    67     QModelIndex index1 = sourceModel()->index(sourceRow, 1, sourceParent);
    68 
    69     return (sourceModel()->data(index0).toString().contains(filterRegExp()) );
    70 }
    71 
    72 /*
    73 bool MySortFilterProxyModel::lessThan(const QModelIndex &left,
    74                                       const QModelIndex &right) const
    75 {
    76     QVariant leftData = sourceModel()->data(left);
    77     QVariant rightData = sourceModel()->data(right);
    78     if (leftData.type() == QVariant::DateTime) {
    79         return leftData.toDateTime() < rightData.toDateTime();
    80     } else {
    81         QRegExp *emailPattern = new QRegExp("([\\w\\.]*@[\\w\\.]*)");
    82 
    83         QString leftString = leftData.toString();
    84         if(left.column() == 1 && emailPattern->indexIn(leftString) != -1)
    85             leftString = emailPattern->cap(1);
    86 
    87         QString rightString = rightData.toString();
    88         if(right.column() == 1 && emailPattern->indexIn(rightString) != -1)
    89             rightString = emailPattern->cap(1);
    90 
    91         return QString::localeAwareCompare(leftString, rightString) < 0;
    92     }
    93 }
    94 bool MySortFilterProxyModel::dateInRange(const QDate &date) const
    95 {
    96     return (!minDate.isValid() || date > minDate)
    97            && (!maxDate.isValid() || date < maxDate);
    98 }
    99 */