2 * Copyright © 2006-2007 Fredrik Höglund <fredrik@kde.org>
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public
6 * License version 2 or at your option version 3 as published
7 * by the Free Software Foundation.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; see the file COPYING. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
21 #include "sortproxymodel.h"
22 #include "cursortheme.h"
25 int SortProxyModel::compare(const QModelIndex
&left
, const QModelIndex
&right
, int role
) const
27 const QAbstractItemModel
*model
= sourceModel();
29 QString first
= model
->data(left
, role
).toString();
30 QString second
= model
->data(right
, role
).toString();
32 if (filterCaseSensitivity() == Qt::CaseSensitive
)
34 first
= first
.toLower();
35 second
= second
.toLower();
38 return QString::localeAwareCompare(first
, second
);
42 bool SortProxyModel::lessThan(const QModelIndex
&left
, const QModelIndex
&right
) const
44 const int result
= compare(left
, right
, Qt::DisplayRole
);
49 return compare(left
, right
, CursorTheme::DisplayDetailRole
) < 0;