File indexing completed on 2023-05-30 10:45:26

0001 /*
0002     SPDX-FileCopyrightText: 2007-2010 Peter Hedlund <peter.hedlund@kdemail.net>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef KWQSORTFILTERMODEL_H
0007 #define KWQSORTFILTERMODEL_H
0008 
0009 #include <QSortFilterProxyModel>
0010 
0011 /**
0012   @author Peter Hedlund <peter.hedlund@kdemail.net>
0013 */
0014 
0015 class KWQTableModel;
0016 
0017 class KWQSortFilterModel : public QSortFilterProxyModel
0018 {
0019   Q_OBJECT
0020   public:
0021     explicit KWQSortFilterModel(QObject *parent = nullptr);
0022 
0023     void setTableModel(KWQTableModel * sourceModel);
0024     KWQTableModel * sourceModel() const;
0025 
0026   public Q_SLOTS:
0027     void restoreNativeOrder();
0028     void shuffle();
0029 
0030   protected:
0031     bool lessThan(const QModelIndex & left, const QModelIndex & right) const override;
0032 
0033     // Disable from public calls; use setTableModel instead.
0034     //void setSourceModel(QAbstractItemModel *sourceModel);
0035 
0036   private:
0037     KWQTableModel * m_sourceModel;
0038 
0039     bool m_restoreNativeOrder;
0040     bool m_shuffle;
0041     QList<int> m_shuffleList;
0042 };
0043 
0044 #endif