QGIS API Documentation  2.99.0-Master (40f86b2)
qgsmaplayermodel.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmaplayermodel.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 QGSMAPLAYERMODEL_H
17 #define QGSMAPLAYERMODEL_H
18 
19 #include <QAbstractItemModel>
20 #include <QSortFilterProxyModel>
21 #include <QStringList>
22 
23 #include "qgis_core.h"
24 
25 class QgsMapLayer;
26 
27 
34 class CORE_EXPORT QgsMapLayerModel : public QAbstractItemModel
35 {
36  Q_OBJECT
37 
38  Q_PROPERTY( bool allowEmptyLayer READ allowEmptyLayer WRITE setAllowEmptyLayer )
39  Q_PROPERTY( bool showCrs READ showCrs WRITE setShowCrs )
40  Q_PROPERTY( bool itemsCheckable READ itemsCheckable WRITE setItemsCheckable )
41  Q_PROPERTY( QStringList additionalItems READ additionalItems WRITE setAdditionalItems )
42 
43  public:
44 
47  {
48  LayerIdRole = Qt::UserRole + 1,
52  };
53 
57  explicit QgsMapLayerModel( QObject *parent = nullptr );
58 
62  explicit QgsMapLayerModel( const QList<QgsMapLayer *> &layers, QObject *parent = nullptr );
63 
67  void setItemsCheckable( bool checkable );
68 
72  void checkAll( Qt::CheckState checkState );
73 
79  void setAllowEmptyLayer( bool allowEmpty );
80 
86  bool allowEmptyLayer() const { return mAllowEmpty; }
87 
93  void setShowCrs( bool showCrs );
94 
100  bool showCrs() const { return mShowCrs; }
101 
105  QList<QgsMapLayer *> layersChecked( Qt::CheckState checkState = Qt::Checked );
107  bool itemsCheckable() const { return mItemCheckable; }
108 
112  QModelIndex indexFromLayer( QgsMapLayer *layer ) const;
113 
121  void setAdditionalItems( const QStringList &items );
122 
128  QStringList additionalItems() const { return mAdditionalItems; }
129 
130  protected slots:
131  void removeLayers( const QStringList &layerIds );
132  void addLayers( const QList<QgsMapLayer *> &layers );
133 
134  protected:
135  QList<QgsMapLayer *> mLayers;
136  QMap<QString, Qt::CheckState> mLayersChecked;
138 
139  // QAbstractItemModel interface
140  public:
141  QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const override;
142  QModelIndex parent( const QModelIndex &child ) const override;
143  int rowCount( const QModelIndex &parent = QModelIndex() ) const override;
144  int columnCount( const QModelIndex &parent = QModelIndex() ) const override;
145  QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const override;
146 
152  QHash<int, QByteArray> roleNames() const override;
153 
154  bool setData( const QModelIndex &index, const QVariant &value, int role = Qt::EditRole ) override;
155  Qt::ItemFlags flags( const QModelIndex &index ) const override;
156 
157  private:
158 
159  bool mAllowEmpty;
160  bool mShowCrs;
161  QStringList mAdditionalItems;
162 };
163 
164 #endif // QGSMAPLAYERMODEL_H
static unsigned index
Base class for all map layer types.
Definition: qgsmaplayer.h:52
ItemDataRole
Item data roles.
Stores pointer to the map layer itself.
bool allowEmptyLayer() const
Returns true if the model allows the empty layer ("not set") choice.
True if index corresponds to an additional (non map layer) item.
QStringList additionalItems() const
Return the list of additional (non map layer) items included at the end of the model.
The QgsMapLayerModel class is a model to display layers in widgets.
QMap< QString, Qt::CheckState > mLayersChecked
QList< QgsMapLayer * > mLayers
bool showCrs() const
Returns true if the model includes layer&#39;s CRS in the display role.
bool itemsCheckable() const
returns if the items can be checked or not
True if index corresponds to the empty (not set) value.