16 #ifndef QGSMAPLAYERMODEL_H
17 #define QGSMAPLAYERMODEL_H
19 #include <QAbstractItemModel>
20 #include <QSortFilterProxyModel>
21 #include <QStringList>
24 #include "qgis_core.h"
41 Q_PROPERTY(
bool allowEmptyLayer READ allowEmptyLayer WRITE setAllowEmptyLayer )
42 Q_PROPERTY(
bool showCrs READ showCrs WRITE setShowCrs )
43 Q_PROPERTY(
bool itemsCheckable READ itemsCheckable WRITE setItemsCheckable )
44 Q_PROPERTY( QStringList additionalItems READ additionalItems WRITE setAdditionalItems )
51 LayerIdRole = Qt::UserRole + 1,
56 Q_ENUM( ItemDataRole )
77 void setItemsCheckable(
bool checkable );
92 void setItemsCanBeReordered(
bool allow );
100 bool itemsCanBeReordered()
const;
105 void checkAll( Qt::CheckState checkState );
115 void setAllowEmptyLayer(
bool allowEmpty,
const QString &text = QString(),
const QIcon &icon = QIcon() );
129 void setShowCrs(
bool showCrs );
141 QList<QgsMapLayer *> layersChecked( Qt::CheckState checkState = Qt::Checked );
146 void setLayersChecked(
const QList< QgsMapLayer * > &layers );
155 QModelIndex indexFromLayer(
QgsMapLayer *layer )
const;
162 QgsMapLayer *layerFromIndex(
const QModelIndex &index )
const;
171 void setAdditionalItems(
const QStringList &items );
189 void setAdditionalLayers(
const QList<QgsMapLayer *> &layers );
197 QList< QgsMapLayer * > additionalLayers()
const;
200 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex() )
const override;
201 QModelIndex parent(
const QModelIndex &child )
const override;
202 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
203 int columnCount(
const QModelIndex &parent = QModelIndex() )
const override;
204 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole )
const override;
205 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole )
override;
206 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
207 bool insertRows(
int row,
int count,
const QModelIndex &parent = QModelIndex() )
override;
208 bool removeRows(
int row,
int count,
const QModelIndex &parent = QModelIndex() )
override;
209 QStringList mimeTypes()
const override;
210 bool canDropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent )
const override;
211 QMimeData *mimeData(
const QModelIndexList &indexes )
const override;
212 bool dropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
const QModelIndex &parent )
override;
213 Qt::DropActions supportedDropActions()
const override;
220 QHash<int, QByteArray> roleNames() const override
SIP_SKIP;
229 void removeLayers( const QStringList &layerIds );
230 void addLayers( const QList<
QgsMapLayer *> &layers );
235 QMap<QString, Qt::CheckState> mLayersChecked;
236 bool mItemCheckable = false;
237 bool mCanReorder = false;
243 bool mAllowEmpty = false;
246 bool mShowCrs = false;
247 QStringList mAdditionalItems;
250 #endif // QGSMAPLAYERMODEL_H