17#include "moc_qgsmaplayercombobox.cpp" 
   20#include <QDragEnterEvent> 
   28  setModel( mProxyModel );
 
   34  setSizeAdjustPolicy( QComboBox::AdjustToMinimumContentsLengthWithIcon );
 
   36  setAcceptDrops( 
true );
 
 
  102    setCurrentIndex( -1 );
 
  110    const QModelIndex proxyIdx = mProxyModel->mapFromSource( idx );
 
  111    if ( proxyIdx.isValid() )
 
  113      setCurrentIndex( proxyIdx.row() );
 
  118  setCurrentIndex( -1 );
 
 
  124  return layer( currentIndex() );
 
 
  129  const QModelIndex proxyIndex = mProxyModel->index( layerIndex, 0 );
 
  130  if ( !proxyIndex.isValid() )
 
  135  const QModelIndex index = mProxyModel->mapToSource( proxyIndex );
 
  136  if ( !index.isValid() )
 
 
  163  else if ( count() == 0 )
 
 
  169QgsMapLayer *QgsMapLayerComboBox::compatibleMapLayerFromMimeData( 
const QMimeData *data )
 const 
  186  if ( !( event->possibleActions() & Qt::CopyAction ) )
 
  192  if ( compatibleMapLayerFromMimeData( event->mimeData() ) )
 
  195    event->setDropAction( Qt::CopyAction );
 
 
  222  if ( !( event->possibleActions() & Qt::CopyAction ) )
 
  228  if ( 
QgsMapLayer *
layer = compatibleMapLayerFromMimeData( event->mimeData() ) )
 
  231    setFocus( Qt::MouseFocusReason );
 
  232    event->setDropAction( Qt::CopyAction );
 
 
  247  QComboBox::paintEvent( e );
 
  248  if ( mDragActive || mHighlight )
 
  252    p.setPen( QPen( palette().highlight(), width ) );
 
  253    const QRect r = rect().adjusted( width, width, -width, -width );
 
 
void dragLeaveEvent(QDragLeaveEvent *event) override
 
QStringList additionalItems() const
Returns the list of additional (non map layer) items included at the end of the combo box.
 
void setAdditionalLayers(const QList< QgsMapLayer * > &layers)
Sets a list of additional layers to include in the combobox.
 
QgsMapLayerComboBox(QWidget *parent=nullptr)
QgsMapLayerComboBox creates a combo box to display the list of layers currently in the project.
 
void paintEvent(QPaintEvent *e) override
 
void setLayer(QgsMapLayer *layer)
Sets the current layer selected in the combo box.
 
void setProject(QgsProject *project)
Sets the project from which map layers are shown.
 
QStringList excludedProviders
 
void setExcludedProviders(const QStringList &providers)
Sets a list of data providers which should be excluded from the combobox.
 
void dropEvent(QDropEvent *event) override
 
QgsMapLayer * layer(int layerIndex) const
Returns the layer currently shown at the specified index within the combo box.
 
void setShowCrs(bool showCrs)
Sets whether the CRS of layers is also included in the combo box text.
 
void setAllowEmptyLayer(bool allowEmpty, const QString &text=QString(), const QIcon &icon=QIcon())
Sets whether an optional empty layer ("not set") option is shown in the combo box.
 
void setAdditionalItems(const QStringList &items)
Sets a list of additional (non map layer) items to include at the end of the combobox.
 
void layerChanged(QgsMapLayer *layer)
Emitted whenever the currently selected layer changes.
 
QList< QgsMapLayer * > additionalLayers() const
Returns the list of additional layers added to the combobox.
 
void dragEnterEvent(QDragEnterEvent *event) override
 
QgsMapLayer * currentLayer() const
Returns the current layer selected in the combo box.
 
void setShowCrs(bool showCrs)
Sets whether the CRS of layers is also included in the model's display role.
 
QModelIndex indexFromLayer(QgsMapLayer *layer) const
indexFromLayer returns the model index for a given layer
 
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.
 
void setAdditionalItems(const QStringList &items)
Sets a list of additional (non map layer) items to include at the end of the model.
 
QList< QgsMapLayer * > additionalLayers() const
Returns the list of additional layers added to the model.
 
QStringList additionalItems
 
void setAdditionalLayers(const QList< QgsMapLayer * > &layers)
Sets a list of additional layers to include in the model.
 
A proxy model which provides an easy to use model to display the list of layers in widgets.
 
bool acceptsLayer(QgsMapLayer *layer) const
Returns true if the proxy model accepts the specified map layer.
 
void setExcludedProviders(const QStringList &providers)
Sets a blocklist of data providers which should be excluded from the model.
 
QgsMapLayerModel * sourceLayerModel() const
layerModel returns the QgsMapLayerModel used in this QSortFilterProxyModel
 
void setProject(QgsProject *project)
Sets the project from which map layers are shown.
 
QStringList excludedProviders() const
Returns the blocklist of data providers which are excluded from the model.
 
Base class for all map layer types.
 
virtual bool accept(QgsStyleEntityVisitorInterface *visitor) const
Accepts the specified symbology visitor, causing it to visit all symbols associated with the layer.
 
QList< QgsMimeDataUtils::Uri > UriList
 
static UriList decodeUriList(const QMimeData *data)
 
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...