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;
217 #endif // QGSMAPLAYERMODEL_H