QGIS API Documentation 3.34.0-Prizren (ffbdd678812)
Loading...
Searching...
No Matches
qgsmaplayerproxymodel.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmaplayerproxymodel.h
3 --------------------------------------
4 Date : 01.04.2014
5 Copyright : (C) 2014 Denis Rouzaud
7***************************************************************************
8* *
9* This program is free software; you can redistribute it and/or modify *
10* it under the terms of the GNU General Public License as published by *
11* the Free Software Foundation; either version 2 of the License, or *
12* (at your option) any later version. *
13* *
14***************************************************************************/
15
16#ifndef QGSMAPLAYERPROXYMODEL_H
17#define QGSMAPLAYERPROXYMODEL_H
18
19#include <QSortFilterProxyModel>
20#include <QStringList>
21
22#include "qgis_core.h"
23#include "qgis_sip.h"
24#include "qgis.h"
25
27class QgsMapLayer;
28class QgsProject;
29
35class CORE_EXPORT QgsMapLayerProxyModel : public QSortFilterProxyModel
36{
37 Q_OBJECT
38
39 Q_PROPERTY( Qgis::LayerFilters filters READ filters WRITE setFilters )
40 Q_PROPERTY( QList<QgsMapLayer *> exceptedLayerList READ exceptedLayerList WRITE setExceptedLayerList )
41 Q_PROPERTY( QStringList exceptedLayerIds READ exceptedLayerIds WRITE setExceptedLayerIds )
42
43 public:
44
49 explicit QgsMapLayerProxyModel( QObject *parent SIP_TRANSFERTHIS = nullptr );
50
54 QgsMapLayerModel *sourceLayerModel() const { return mModel; }
55
63 QgsMapLayerProxyModel *setFilters( Qgis::LayerFilters filters );
64
71 Q_DECL_DEPRECATED void setFilters( int filters ) SIP_DEPRECATED { setFilters( static_cast<Qgis::LayerFilters>( filters ) ); }
72
80 const Qgis::LayerFilters &filters() const { return mFilters; }
81
89 void setProject( QgsProject *project );
90
95 static bool layerMatchesFilters( const QgsMapLayer *layer, const Qgis::LayerFilters &filters );
96
108 Q_DECL_DEPRECATED void setLayerWhitelist( const QList<QgsMapLayer *> &layers ) SIP_DEPRECATED;
109
121 void setLayerAllowlist( const QList<QgsMapLayer *> &layers );
122
133 Q_DECL_DEPRECATED QList<QgsMapLayer *> layerWhitelist() SIP_DEPRECATED {return mLayerAllowlist;}
134
145 QList<QgsMapLayer *> layerAllowlist() {return mLayerAllowlist;}
146
153 void setExceptedLayerList( const QList<QgsMapLayer *> &exceptList );
154
161 QList<QgsMapLayer *> exceptedLayerList() {return mExceptList;}
162
168 void setExceptedLayerIds( const QStringList &ids );
169
175 QStringList exceptedLayerIds() const;
176
182 void setExcludedProviders( const QStringList &providers );
183
189 QStringList excludedProviders() const { return mExcludedProviders; }
190
197 QString filterString() const { return mFilterString; }
198
204 bool acceptsLayer( QgsMapLayer *layer ) const;
205
206 bool filterAcceptsRow( int source_row, const QModelIndex &source_parent ) const override;
207 bool lessThan( const QModelIndex &left, const QModelIndex &right ) const override;
208
209 public slots:
210
218 void setFilterString( const QString &filter );
219
220 private:
221 Qgis::LayerFilters mFilters;
222 QList<QgsMapLayer *> mExceptList;
223 QList<QgsMapLayer *> mLayerAllowlist;
224 QgsMapLayerModel *mModel = nullptr;
225 QStringList mExcludedProviders;
226 QString mFilterString;
227};
228
229#endif // QGSMAPLAYERPROXYMODEL_H
The QgsMapLayerModel class is a model to display layers in widgets.
The QgsMapLayerProxyModel class provides an easy to use model to display the list of layers in widget...
const Qgis::LayerFilters & filters() const
Returns the filter flags which affect how layers are filtered within the model.
QList< QgsMapLayer * > exceptedLayerList()
Returns the blocklist of layers which are excluded from the model.
QList< QgsMapLayer * > layerAllowlist()
Returns the list of layers which are excluded from the model.
Q_DECL_DEPRECATED void setFilters(int filters)
Filters according to layer type and/or geometry type.
QStringList excludedProviders() const
Returns the blocklist of data providers which are excluded from the model.
Q_DECL_DEPRECATED QList< QgsMapLayer * > layerWhitelist()
Returns the list of layers which are excluded from the model.
QString filterString() const
Returns the current filter string, if set.
Base class for all map layer types.
Definition qgsmaplayer.h:74
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition qgsproject.h:107
#define SIP_DEPRECATED
Definition qgis_sip.h:106
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:53