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