/** * @brief The QgsMapLayerComboBox class is a combo box which displays the list of layers * @note added in 2.3 */ class QgsMapLayerComboBox : QComboBox { %TypeHeaderCode #include "qgsmaplayercombobox.h" %End public: /** * @brief QgsMapLayerComboBox creates a combo box to dislpay the list of layers (currently in the registry). * The layers can be filtered and/or ordered. */ explicit QgsMapLayerComboBox( QWidget *parent /TransferThis/ = 0 ); //! setFilters allows fitering according to layer type and/or geometry type. void setFilters( const QgsMapLayerProxyModel::Filters& filters ); //! currently used filter on list layers QgsMapLayerProxyModel::Filters filters() const; //! except a list of layers not to be listed void setExceptedLayerList( const QList& layerList ); //! returns the list of excepted layers QList exceptedLayerList() const; /** * Sets a list of data providers which should be excluded from the combobox. * @note added in QGIS 3.0 * @see excludedProviders() */ void setExcludedProviders( const QStringList& providers ); /** * Returns the list of data providers which are excluded from the combobox. * @see setExcludedProviders() * @note added in QGIS 3.0 */ QStringList excludedProviders() const; /** * Sets whether an optional empty layer ("not set") option is shown in the combo box. * @see allowEmptyLayer() * @note added in QGIS 3.0 */ void setAllowEmptyLayer( bool allowEmpty ); /** * Returns true if the combo box allows the empty layer ("not set") choice. * @see setAllowEmptyLayer() * @note added in QGIS 3.0 */ bool allowEmptyLayer() const; /** * Sets whether the CRS of layers is also included in the combo box text. * @see showCrs() * @note added in QGIS 3.0 */ void setShowCrs( bool showCrs ); /** * Returns true if the combo box shows the layer's CRS. * @see setShowCrs() * @note added in QGIS 3.0 */ bool showCrs() const; /** * Sets a list of additional (non map layer) items to include at the end of the combobox. * 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 additionalItems() * @note added in QGIS 3.0 */ void setAdditionalItems( const QStringList& items ); /** * Return the list of additional (non map layer) items included at the end of the combo box. * @see setAdditionalItems() * @note added in QGIS 3.0 */ QStringList additionalItems() const; /** Returns the current layer selected in the combo box. * @see layer */ QgsMapLayer* currentLayer() const; /** Return the layer currently shown at the specified index within the combo box. * @param layerIndex position of layer to return * @note added in QGIS 2.10 * @see currentLayer */ QgsMapLayer* layer( int layerIndex ) const; public slots: //! setLayer set the current layer selected in the combo void setLayer( QgsMapLayer* layer ); signals: //! layerChanged this signal is emitted whenever the currently selected layer changes void layerChanged( QgsMapLayer* layer ); protected slots: void indexChanged( int i ); void rowsChanged(); };