File indexing completed on 2024-05-05 04:51:44

0001 /*
0002     SPDX-FileCopyrightText: 2010 Michal Malek <michalm@jabster.pl>
0003     SPDX-FileCopyrightText: 1998-2010 Sebastian Trueg <trueg@k3b.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #include "k3bdataprojectsortproxymodel.h"
0009 #include "k3bdataprojectmodel.h"
0010 
0011 namespace K3b {
0012 
0013 DataProjectSortProxyModel::DataProjectSortProxyModel( QObject* parent )
0014 :
0015     QSortFilterProxyModel( parent )
0016 {
0017     setDynamicSortFilter( true );
0018     setSortLocaleAware( true );
0019     setSortCaseSensitivity( Qt::CaseInsensitive );
0020     setSortRole( DataProjectModel::SortRole );
0021 }
0022 
0023 
0024 bool DataProjectSortProxyModel::lessThan( const QModelIndex& left, const QModelIndex& right ) const
0025 {
0026     const int leftType = left.data( DataProjectModel::ItemTypeRole ).toInt();
0027     const int rightType = right.data( DataProjectModel::ItemTypeRole ).toInt();
0028     if( leftType == DataProjectModel::DirItemType && rightType == DataProjectModel::FileItemType )
0029         return sortOrder() == Qt::AscendingOrder;
0030     else if( leftType == DataProjectModel::FileItemType && rightType == DataProjectModel::DirItemType )
0031         return sortOrder() == Qt::DescendingOrder;
0032     else
0033         return QSortFilterProxyModel::lessThan( left, right );
0034 }
0035 
0036 } // namespace K3b