QGIS API Documentation  3.20.0-Odense (decaadbb31)
Public Types | Public Member Functions | Static Public Member Functions | Protected Slots | Protected Attributes | Properties | List of all members
QgsMapLayerModel Class Reference

The QgsMapLayerModel class is a model to display layers in widgets. More...

#include <qgsmaplayermodel.h>

Inheritance diagram for QgsMapLayerModel:
Inheritance graph
[legend]

Public Types

enum  ItemDataRole { LayerIdRole = Qt::UserRole + 1 , LayerRole , EmptyRole , AdditionalRole }
 Item data roles. More...
 

Public Member Functions

 QgsMapLayerModel (const QList< QgsMapLayer * > &layers, QObject *parent=nullptr, QgsProject *project=nullptr)
 QgsMapLayerModel creates a model to display a specific list of layers in a widget. More...
 
 QgsMapLayerModel (QObject *parent=nullptr, QgsProject *project=nullptr)
 QgsMapLayerModel creates a model to display layers in widgets. More...
 
QStringList additionalItems () const
 Returns the list of additional (non map layer) items included at the end of the model. More...
 
bool allowEmptyLayer () const
 Returns true if the model allows the empty layer ("not set") choice. More...
 
bool canDropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const override
 
void checkAll (Qt::CheckState checkState)
 checkAll changes the checkstate for all the layers More...
 
int columnCount (const QModelIndex &parent=QModelIndex()) const override
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 
bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
 
Qt::ItemFlags flags (const QModelIndex &index) const override
 
QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const override
 
QModelIndex indexFromLayer (QgsMapLayer *layer) const
 indexFromLayer returns the model index for a given layer More...
 
bool insertRows (int row, int count, const QModelIndex &parent=QModelIndex()) override
 
bool itemsCanBeReordered () const
 Returns true if items in the model can be reordered via drag and drop. More...
 
bool itemsCheckable () const
 returns if the items can be checked or not More...
 
QgsMapLayerlayerFromIndex (const QModelIndex &index) const
 Returns the map layer corresponding to the specified index. More...
 
QList< QgsMapLayer * > layersChecked (Qt::CheckState checkState=Qt::Checked)
 layersChecked returns the list of layers which are checked (or unchecked) More...
 
QMimeData * mimeData (const QModelIndexList &indexes) const override
 
QStringList mimeTypes () const override
 
QModelIndex parent (const QModelIndex &child) const override
 
bool removeRows (int row, int count, const QModelIndex &parent=QModelIndex()) override
 
QHash< int, QByteArray > roleNames () const override
 Returns strings for all roles supported by this model. More...
 
int rowCount (const QModelIndex &parent=QModelIndex()) const override
 
void setAdditionalItems (const QStringList &items)
 Sets a list of additional (non map layer) items to include at the end of the model. More...
 
void setAllowEmptyLayer (bool allowEmpty, const QString &text=QString(), const QIcon &icon=QIcon())
 Sets whether an optional empty layer ("not set") option is present in the model. More...
 
bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
 
void setItemsCanBeReordered (bool allow)
 Sets whether items in the model can be reordered via drag and drop. More...
 
void setItemsCheckable (bool checkable)
 setItemsCheckable defines if layers should be selectable in the widget More...
 
void setLayersChecked (const QList< QgsMapLayer * > &layers)
 Sets which layers are checked in the model. More...
 
void setShowCrs (bool showCrs)
 Sets whether the CRS of layers is also included in the model's display role. More...
 
bool showCrs () const
 Returns true if the model includes layer's CRS in the display role. More...
 
Qt::DropActions supportedDropActions () const override
 

Static Public Member Functions

static QIcon iconForLayer (QgsMapLayer *layer)
 Returns the icon corresponding to a specified map layer. More...
 

Protected Slots

void addLayers (const QList< QgsMapLayer * > &layers)
 
void removeLayers (const QStringList &layerIds)
 

Protected Attributes

bool mCanReorder = false
 
bool mItemCheckable = false
 
QList< QgsMapLayer * > mLayers
 
QMap< QString, Qt::CheckState > mLayersChecked
 
QgsProjectmProject = nullptr
 

Properties

QStringList additionalItems
 
bool allowEmptyLayer
 
bool itemsCheckable
 
bool showCrs
 

Detailed Description

The QgsMapLayerModel class is a model to display layers in widgets.

See also
QgsMapLayerProxyModel to sort and/filter the layers
QgsFieldModel to combine in with a field selector.
Since
QGIS 2.3

Definition at line 37 of file qgsmaplayermodel.h.

Member Enumeration Documentation

◆ ItemDataRole

Item data roles.

Enumerator
LayerIdRole 

Stores the map layer ID.

LayerRole 

Stores pointer to the map layer itself.

EmptyRole 

True if index corresponds to the empty (not set) value.

AdditionalRole 

True if index corresponds to an additional (non map layer) item.

Definition at line 49 of file qgsmaplayermodel.h.

Constructor & Destructor Documentation

◆ QgsMapLayerModel() [1/2]

QgsMapLayerModel::QgsMapLayerModel ( QObject *  parent = nullptr,
QgsProject project = nullptr 
)
explicit

QgsMapLayerModel creates a model to display layers in widgets.

If a specific project is not specified then the QgsProject::instance() project will be used to populate the model.

Definition at line 33 of file qgsmaplayermodel.cpp.

◆ QgsMapLayerModel() [2/2]

QgsMapLayerModel::QgsMapLayerModel ( const QList< QgsMapLayer * > &  layers,
QObject *  parent = nullptr,
QgsProject project = nullptr 
)
explicit

QgsMapLayerModel creates a model to display a specific list of layers in a widget.

If a specific project is not specified then the QgsProject::instance() project will be used to populate the model.

Definition at line 25 of file qgsmaplayermodel.cpp.

Member Function Documentation

◆ additionalItems()

QStringList QgsMapLayerModel::additionalItems ( ) const
inline

Returns the list of additional (non map layer) items included at the end of the model.

See also
setAdditionalItems()
Since
QGIS 3.0

Definition at line 171 of file qgsmaplayermodel.h.

◆ addLayers

void QgsMapLayerModel::addLayers ( const QList< QgsMapLayer * > &  layers)
protectedslot

Definition at line 184 of file qgsmaplayermodel.cpp.

◆ allowEmptyLayer()

bool QgsMapLayerModel::allowEmptyLayer ( ) const
inline

Returns true if the model allows the empty layer ("not set") choice.

See also
setAllowEmptyLayer()
Since
QGIS 3.0

Definition at line 115 of file qgsmaplayermodel.h.

◆ canDropMimeData()

bool QgsMapLayerModel::canDropMimeData ( const QMimeData *  data,
Qt::DropAction  action,
int  row,
int  column,
const QModelIndex &  parent 
) const
override

Definition at line 447 of file qgsmaplayermodel.cpp.

◆ checkAll()

void QgsMapLayerModel::checkAll ( Qt::CheckState  checkState)

checkAll changes the checkstate for all the layers

Definition at line 57 of file qgsmaplayermodel.cpp.

◆ columnCount()

int QgsMapLayerModel::columnCount ( const QModelIndex &  parent = QModelIndex()) const
override

Definition at line 237 of file qgsmaplayermodel.cpp.

◆ data()

QVariant QgsMapLayerModel::data ( const QModelIndex &  index,
int  role = Qt::DisplayRole 
) const
override

Definition at line 244 of file qgsmaplayermodel.cpp.

◆ dropMimeData()

bool QgsMapLayerModel::dropMimeData ( const QMimeData *  data,
Qt::DropAction  action,
int  row,
int  column,
const QModelIndex &  parent 
)
override

Definition at line 478 of file qgsmaplayermodel.cpp.

◆ flags()

Qt::ItemFlags QgsMapLayerModel::flags ( const QModelIndex &  index) const
override

Definition at line 369 of file qgsmaplayermodel.cpp.

◆ iconForLayer()

QIcon QgsMapLayerModel::iconForLayer ( QgsMapLayer layer)
static

Returns the icon corresponding to a specified map layer.

Since
QGIS 3.0

Definition at line 517 of file qgsmaplayermodel.cpp.

◆ index()

QModelIndex QgsMapLayerModel::index ( int  row,
int  column,
const QModelIndex &  parent = QModelIndex() 
) const
override

Definition at line 203 of file qgsmaplayermodel.cpp.

◆ indexFromLayer()

QModelIndex QgsMapLayerModel::indexFromLayer ( QgsMapLayer layer) const

indexFromLayer returns the model index for a given layer

See also
layerFromIndex()

Definition at line 125 of file qgsmaplayermodel.cpp.

◆ insertRows()

bool QgsMapLayerModel::insertRows ( int  row,
int  count,
const QModelIndex &  parent = QModelIndex() 
)
override

Definition at line 396 of file qgsmaplayermodel.cpp.

◆ itemsCanBeReordered()

bool QgsMapLayerModel::itemsCanBeReordered ( ) const

Returns true if items in the model can be reordered via drag and drop.

See also
setItemsCanBeReordered()
Since
QGIS 3.14

Definition at line 52 of file qgsmaplayermodel.cpp.

◆ itemsCheckable()

bool QgsMapLayerModel::itemsCheckable ( ) const
inline

returns if the items can be checked or not

Definition at line 142 of file qgsmaplayermodel.h.

◆ layerFromIndex()

QgsMapLayer * QgsMapLayerModel::layerFromIndex ( const QModelIndex &  index) const

Returns the map layer corresponding to the specified index.

See also
indexFromLayer()
Since
QGIS 3.0

Definition at line 133 of file qgsmaplayermodel.cpp.

◆ layersChecked()

QList< QgsMapLayer * > QgsMapLayerModel::layersChecked ( Qt::CheckState  checkState = Qt::Checked)

layersChecked returns the list of layers which are checked (or unchecked)

Definition at line 97 of file qgsmaplayermodel.cpp.

◆ mimeData()

QMimeData * QgsMapLayerModel::mimeData ( const QModelIndexList &  indexes) const
override

Definition at line 454 of file qgsmaplayermodel.cpp.

◆ mimeTypes()

QStringList QgsMapLayerModel::mimeTypes ( ) const
override

Definition at line 440 of file qgsmaplayermodel.cpp.

◆ parent()

QModelIndex QgsMapLayerModel::parent ( const QModelIndex &  child) const
override

Definition at line 222 of file qgsmaplayermodel.cpp.

◆ removeLayers

void QgsMapLayerModel::removeLayers ( const QStringList &  layerIds)
protectedslot

Definition at line 163 of file qgsmaplayermodel.cpp.

◆ removeRows()

bool QgsMapLayerModel::removeRows ( int  row,
int  count,
const QModelIndex &  parent = QModelIndex() 
)
override

Definition at line 413 of file qgsmaplayermodel.cpp.

◆ roleNames()

QHash< int, QByteArray > QgsMapLayerModel::roleNames ( ) const
override

Returns strings for all roles supported by this model.

Note
Available only with Qt5 (Python and c++)

Definition at line 360 of file qgsmaplayermodel.cpp.

◆ rowCount()

int QgsMapLayerModel::rowCount ( const QModelIndex &  parent = QModelIndex()) const
override

Definition at line 229 of file qgsmaplayermodel.cpp.

◆ setAdditionalItems()

void QgsMapLayerModel::setAdditionalItems ( const QStringList &  items)

Sets a list of additional (non map layer) items to include at the end of the model.

These may represent additional layers such as layers which are not included in the map layer registry, or paths to layers which have not yet been loaded into QGIS.

See also
additionalItems()
Since
QGIS 3.0

Definition at line 138 of file qgsmaplayermodel.cpp.

◆ setAllowEmptyLayer()

void QgsMapLayerModel::setAllowEmptyLayer ( bool  allowEmpty,
const QString &  text = QString(),
const QIcon &  icon = QIcon() 
)

Sets whether an optional empty layer ("not set") option is present in the model.

Since QGIS 3.20, the optional text and icon arguments allows the text and icon for the empty layer item to be set.

See also
allowEmptyLayer()
Since
QGIS 3.0

Definition at line 67 of file qgsmaplayermodel.cpp.

◆ setData()

bool QgsMapLayerModel::setData ( const QModelIndex &  index,
const QVariant &  value,
int  role = Qt::EditRole 
)
override

Definition at line 522 of file qgsmaplayermodel.cpp.

◆ setItemsCanBeReordered()

void QgsMapLayerModel::setItemsCanBeReordered ( bool  allow)

Sets whether items in the model can be reordered via drag and drop.

See also
itemsCanBeReordered()
Since
QGIS 3.14

Definition at line 47 of file qgsmaplayermodel.cpp.

◆ setItemsCheckable()

void QgsMapLayerModel::setItemsCheckable ( bool  checkable)

setItemsCheckable defines if layers should be selectable in the widget

Definition at line 42 of file qgsmaplayermodel.cpp.

◆ setLayersChecked()

void QgsMapLayerModel::setLayersChecked ( const QList< QgsMapLayer * > &  layers)

Sets which layers are checked in the model.

Definition at line 111 of file qgsmaplayermodel.cpp.

◆ setShowCrs()

void QgsMapLayerModel::setShowCrs ( bool  showCrs)

Sets whether the CRS of layers is also included in the model's display role.

See also
showCrs()
Since
QGIS 3.0

Definition at line 88 of file qgsmaplayermodel.cpp.

◆ showCrs()

bool QgsMapLayerModel::showCrs ( ) const
inline

Returns true if the model includes layer's CRS in the display role.

See also
setShowCrs()
Since
QGIS 3.0

Definition at line 129 of file qgsmaplayermodel.h.

◆ supportedDropActions()

Qt::DropActions QgsMapLayerModel::supportedDropActions ( ) const
override

Definition at line 512 of file qgsmaplayermodel.cpp.

Member Data Documentation

◆ mCanReorder

bool QgsMapLayerModel::mCanReorder = false
protected

Definition at line 210 of file qgsmaplayermodel.h.

◆ mItemCheckable

bool QgsMapLayerModel::mItemCheckable = false
protected

Definition at line 209 of file qgsmaplayermodel.h.

◆ mLayers

QList<QgsMapLayer *> QgsMapLayerModel::mLayers
protected

Definition at line 207 of file qgsmaplayermodel.h.

◆ mLayersChecked

QMap<QString, Qt::CheckState> QgsMapLayerModel::mLayersChecked
protected

Definition at line 208 of file qgsmaplayermodel.h.

◆ mProject

QgsProject* QgsMapLayerModel::mProject = nullptr
protected

Definition at line 212 of file qgsmaplayermodel.h.

Property Documentation

◆ additionalItems

QStringList QgsMapLayerModel::additionalItems
readwrite

Definition at line 1 of file qgsmaplayermodel.h.

◆ allowEmptyLayer

bool QgsMapLayerModel::allowEmptyLayer
readwrite

Definition at line 1 of file qgsmaplayermodel.h.

◆ itemsCheckable

bool QgsMapLayerModel::itemsCheckable
readwrite

Definition at line 1 of file qgsmaplayermodel.h.

◆ showCrs

bool QgsMapLayerModel::showCrs
readwrite

Definition at line 1 of file qgsmaplayermodel.h.


The documentation for this class was generated from the following files: