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