QGIS API Documentation 3.27.0-Master (0a97e3138f)
qgsmaplayercombobox.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmaplayercombobox.h
3 --------------------------------------
4 Date : 01.04.2014
5 Copyright : (C) 2014 Denis Rouzaud
7***************************************************************************
8* *
9* This program is free software; you can redistribute it and/or modify *
10* it under the terms of the GNU General Public License as published by *
11* the Free Software Foundation; either version 2 of the License, or *
12* (at your option) any later version. *
13* *
14***************************************************************************/
15
16#ifndef QGSMAPLAYERCOMBOBOX_H
17#define QGSMAPLAYERCOMBOBOX_H
18
19#include <QComboBox>
20
22#include "qgis_gui.h"
23
24#include "qgis_sip.h"
25
26class QgsMapLayer;
27class QgsVectorLayer;
28
34class GUI_EXPORT QgsMapLayerComboBox : public QComboBox
35{
36 Q_OBJECT
37 Q_PROPERTY( QgsMapLayerProxyModel::Filters filters READ filters WRITE setFilters )
38 Q_PROPERTY( bool allowEmptyLayer READ allowEmptyLayer WRITE setAllowEmptyLayer )
39 Q_PROPERTY( bool showCrs READ showCrs WRITE setShowCrs )
40 Q_PROPERTY( QStringList excludedProviders READ excludedProviders WRITE setExcludedProviders )
41
42 public:
43
48 explicit QgsMapLayerComboBox( QWidget *parent SIP_TRANSFERTHIS = nullptr );
49
51 void setFilters( QgsMapLayerProxyModel::Filters filters ) { mProxyModel->setFilters( filters ); }
52
54 QgsMapLayerProxyModel::Filters filters() const { return mProxyModel->filters(); }
55
57 void setExceptedLayerList( const QList<QgsMapLayer *> &layerList ) { mProxyModel->setExceptedLayerList( layerList );}
58
60 QList<QgsMapLayer *> exceptedLayerList() const {return mProxyModel->exceptedLayerList();}
61
67 void setExcludedProviders( const QStringList &providers );
68
74 QStringList excludedProviders() const;
75
83 void setProject( QgsProject *project );
84
85
94 void setAllowEmptyLayer( bool allowEmpty, const QString &text = QString(), const QIcon &icon = QIcon() );
95
101 bool allowEmptyLayer() const;
102
108 void setShowCrs( bool showCrs );
109
115 bool showCrs() const;
116
124 void setAdditionalItems( const QStringList &items );
125
131 QStringList additionalItems() const;
132
142 void setAdditionalLayers( const QList<QgsMapLayer *> &layers );
143
150 QList< QgsMapLayer * > additionalLayers() const;
151
156 QgsMapLayer *currentLayer() const;
157
164 QgsMapLayer *layer( int layerIndex ) const;
165
166 public slots:
168 void setLayer( QgsMapLayer *layer );
169
170 signals:
172 void layerChanged( QgsMapLayer *layer );
173
174 protected:
175
176 void dragEnterEvent( QDragEnterEvent *event ) override;
177 void dragLeaveEvent( QDragLeaveEvent *event ) override;
178 void dropEvent( QDropEvent *event ) override;
179 void paintEvent( QPaintEvent *e ) override;
180
181 protected slots:
182 void indexChanged( int i );
183 void rowsChanged();
184
185 private:
186 QgsMapLayerProxyModel *mProxyModel = nullptr;
187 bool mDragActive = false;
188 bool mHighlight = false;
189
194 QgsMapLayer *compatibleMapLayerFromMimeData( const QMimeData *data ) const;
195
196 friend class QgsProcessingMapLayerComboBox;
197};
198
199#endif // QGSMAPLAYERCOMBOBOX_H
The QgsMapLayerComboBox class is a combo box which displays the list of layers.
void setFilters(QgsMapLayerProxyModel::Filters filters)
setFilters allows filtering according to layer type and/or geometry type.
QList< QgsMapLayer * > exceptedLayerList() const
returns the list of excepted layers
void setExceptedLayerList(const QList< QgsMapLayer * > &layerList)
except a list of layers not to be listed
QgsMapLayerProxyModel::Filters filters() const
currently used filter on list layers
void layerChanged(QgsMapLayer *layer)
Emitted whenever the currently selected layer changes.
The QgsMapLayerProxyModel class provides an easy to use model to display the list of layers in widget...
Base class for all map layer types.
Definition: qgsmaplayer.h:73
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition: qgsproject.h:104
Represents a vector layer which manages a vector based data sets.
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53