File indexing completed on 2024-04-14 03:48:10

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2014 Levente Kurusa <levex@linux.com>
0004 
0005 #ifndef TREEVIEWDECORATORMODEL_H
0006 #define TREEVIEWDECORATORMODEL_H
0007 
0008 #include <QSortFilterProxyModel>
0009 
0010 namespace Marble
0011 {
0012 
0013 
0014 class TreeViewDecoratorModel : public QSortFilterProxyModel
0015 {
0016     Q_OBJECT
0017 
0018 public Q_SLOTS:
0019     void trackExpandedState( const QModelIndex &index );
0020     void trackCollapsedState( const QModelIndex &index );
0021 
0022 public:
0023     explicit TreeViewDecoratorModel( QObject *parent = nullptr );
0024     QVariant data( const QModelIndex & proxyIndex, int role = Qt::DisplayRole ) const override;
0025 
0026 protected:
0027     bool filterAcceptsRow( int sourceRow, const QModelIndex &sourceParent ) const override;
0028 
0029 private:
0030     QList<QPersistentModelIndex> m_expandedRows;
0031 
0032 };
0033 
0034 }
0035 
0036 #endif // TREEVIEWDECORATORMODEL_H