QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
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
6  Email : [email protected]
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 
26 class QgsMapLayerModel;
27 class QgsMapLayer;
28 class QgsProject;
29 
34 class CORE_EXPORT QgsMapLayerProxyModel : public QSortFilterProxyModel
35 {
36  Q_OBJECT
37 
38  Q_PROPERTY( Qgis::LayerFilters filters READ filters WRITE setFilters )
39  Q_PROPERTY( QList<QgsMapLayer *> exceptedLayerList READ exceptedLayerList WRITE setExceptedLayerList )
40  Q_PROPERTY( QStringList exceptedLayerIds READ exceptedLayerIds WRITE setExceptedLayerIds )
41 
42  public:
43 
48  explicit QgsMapLayerProxyModel( QObject *parent SIP_TRANSFERTHIS = nullptr );
49 
53  QgsMapLayerModel *sourceLayerModel() const { return mModel; }
54 
61  QgsMapLayerProxyModel *setFilters( Qgis::LayerFilters filters );
62 
69  Q_DECL_DEPRECATED void setFilters( int filters ) SIP_DEPRECATED { setFilters( static_cast<Qgis::LayerFilters>( filters ) ); }
70 
77  const Qgis::LayerFilters &filters() const { return mFilters; }
78 
86  void setProject( QgsProject *project );
87 
92  static bool layerMatchesFilters( const QgsMapLayer *layer, const Qgis::LayerFilters &filters );
93 
105  Q_DECL_DEPRECATED void setLayerWhitelist( const QList<QgsMapLayer *> &layers ) SIP_DEPRECATED;
106 
118  void setLayerAllowlist( const QList<QgsMapLayer *> &layers );
119 
130  Q_DECL_DEPRECATED QList<QgsMapLayer *> layerWhitelist() SIP_DEPRECATED {return mLayerAllowlist;}
131 
142  QList<QgsMapLayer *> layerAllowlist() {return mLayerAllowlist;}
143 
150  void setExceptedLayerList( const QList<QgsMapLayer *> &exceptList );
151 
158  QList<QgsMapLayer *> exceptedLayerList() {return mExceptList;}
159 
165  void setExceptedLayerIds( const QStringList &ids );
166 
172  QStringList exceptedLayerIds() const;
173 
178  void setExcludedProviders( const QStringList &providers );
179 
184  QStringList excludedProviders() const { return mExcludedProviders; }
185 
192  QString filterString() const { return mFilterString; }
193 
199  bool acceptsLayer( QgsMapLayer *layer ) const;
200 
201  bool filterAcceptsRow( int source_row, const QModelIndex &source_parent ) const override;
202  bool lessThan( const QModelIndex &left, const QModelIndex &right ) const override;
203 
204  public slots:
205 
213  void setFilterString( const QString &filter );
214 
215  private:
216  Qgis::LayerFilters mFilters;
217  QList<QgsMapLayer *> mExceptList;
218  QList<QgsMapLayer *> mLayerAllowlist;
219  QgsMapLayerModel *mModel = nullptr;
220  QStringList mExcludedProviders;
221  QString mFilterString;
222 };
223 
224 #endif // QGSMAPLAYERPROXYMODEL_H
QFlags< LayerFilter > LayerFilters
Definition: qgis.h:151
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...
Q_DECL_DEPRECATED QList< QgsMapLayer * > layerWhitelist()
Returns the list of layers which are excluded from the model.
QgsMapLayerModel * sourceLayerModel() const
layerModel returns the QgsMapLayerModel used in this QSortFilterProxyModel
QList< QgsMapLayer * > layerAllowlist()
Returns the list of layers which are excluded from the model.
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.
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.
QString filterString() const
Returns the current filter string, if set.
Base class for all map layer types.
Definition: qgsmaplayer.h:75
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