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

0001 /*
0002     SPDX-FileCopyrightText: 2009 Gustavo Pichorim Boiko <gustavo.boiko@kdemail.net>
0003     SPDX-FileCopyrightText: 2010-2011 Michal Malek <michalm@jabster.pl>
0004     SPDX-FileCopyrightText: 1998-2009 Sebastian Trueg <trueg@k3b.org>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #include "k3bdirproxymodel.h"
0010 #include "k3bdataprojectmodel.h"
0011 
0012 
0013 K3b::DirProxyModel::DirProxyModel(QObject *parent)
0014 : QSortFilterProxyModel(parent)
0015 {
0016     setDynamicSortFilter( true );
0017     sort( DataProjectModel::FilenameColumn, Qt::AscendingOrder );
0018 }
0019 
0020 K3b::DirProxyModel::~DirProxyModel()
0021 {
0022 }
0023 
0024 
0025 bool K3b::DirProxyModel::filterAcceptsRow( int source_row, const QModelIndex & source_parent ) const
0026 {
0027     QAbstractItemModel *model = sourceModel();
0028     QModelIndex index = model->index(source_row, 0, source_parent);
0029 
0030     QVariant data = index.data( DataProjectModel::ItemTypeRole );
0031     DataProjectModel::ItemType type = DataProjectModel::FileItemType;
0032 
0033     if (data.isValid())
0034         type = (DataProjectModel::ItemType) index.data( DataProjectModel::ItemTypeRole ).toInt();
0035 
0036     return (type == DataProjectModel::DirItemType);
0037 }
0038 
0039 bool K3b::DirProxyModel::lessThan( const QModelIndex& left, const QModelIndex& right ) const
0040 {
0041     if( !left.parent().isValid() && !right.parent().isValid() ) {
0042         return left.row() < right.row();
0043     } else {
0044         return QSortFilterProxyModel::lessThan( left, right );
0045     }
0046 }
0047 
0048 #include "moc_k3bdirproxymodel.cpp"