16 #ifndef QGSMAPLAYERMODEL_H
17 #define QGSMAPLAYERMODEL_H
19 #include <QAbstractItemModel>
20 #include <QSortFilterProxyModel>
21 #include <QStringList>
23 #include "qgis_core.h"
40 Q_PROPERTY(
bool allowEmptyLayer READ allowEmptyLayer WRITE setAllowEmptyLayer )
41 Q_PROPERTY(
bool showCrs READ showCrs WRITE setShowCrs )
42 Q_PROPERTY(
bool itemsCheckable READ itemsCheckable WRITE setItemsCheckable )
43 Q_PROPERTY( QStringList additionalItems READ additionalItems WRITE setAdditionalItems )
50 LayerIdRole = Qt::UserRole + 1,
55 Q_ENUM( ItemDataRole )
76 void setItemsCheckable(
bool checkable );
84 void setItemsCanBeReordered(
bool allow );
92 bool itemsCanBeReordered()
const;
97 void checkAll( Qt::CheckState checkState );
104 void setAllowEmptyLayer(
bool allowEmpty );
118 void setShowCrs(
bool showCrs );
130 QList<QgsMapLayer *> layersChecked( Qt::CheckState checkState = Qt::Checked );
135 void setLayersChecked(
const QList< QgsMapLayer * > &layers );
144 QModelIndex indexFromLayer(
QgsMapLayer *layer )
const;
151 QgsMapLayer *layerFromIndex(
const QModelIndex &index )
const;
160 void setAdditionalItems(
const QStringList &items );
170 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex() )
const override;
171 QModelIndex parent(
const QModelIndex &child )
const override;
172 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
173 int columnCount(
const QModelIndex &parent = QModelIndex() )
const override;
174 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole )
const override;
175 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole )
override;
176 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
177 bool insertRows(
int row,
int count,
const QModelIndex &parent = QModelIndex() )
override;
178 bool removeRows(
int row,
int count,
const QModelIndex &parent = QModelIndex() )
override;
179 QStringList mimeTypes()
const override;
180 bool canDropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent )
const override;
181 QMimeData *mimeData(
const QModelIndexList &indexes )
const override;
182 bool dropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent )
override;
183 Qt::DropActions supportedDropActions()
const override;
190 QHash<int, QByteArray> roleNames() const override
SIP_SKIP;
199 void removeLayers( const QStringList &layerIds );
200 void addLayers( const QList<
QgsMapLayer *> &layers );
204 QMap<QString, Qt::CheckState> mLayersChecked;
205 bool mItemCheckable = false;
206 bool mCanReorder = false;
212 bool mAllowEmpty = false;
213 bool mShowCrs = false;
214 QStringList mAdditionalItems;
The QgsMapLayerModel class is a model to display layers in widgets.
bool itemsCheckable() const
returns if the items can be checked or not
ItemDataRole
Item data roles.
@ EmptyRole
True if index corresponds to the empty (not set) value.
@ LayerRole
Stores pointer to the map layer itself.
@ AdditionalRole
True if index corresponds to an additional (non map layer) item.
bool showCrs() const
Returns true if the model includes layer's CRS in the display role.
QStringList additionalItems() const
Returns the list of additional (non map layer) items included at the end of the model.
bool allowEmptyLayer() const
Returns true if the model allows the empty layer ("not set") choice.
Base class for all map layer types.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...