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