move enum QgsMapLayerProxyModel::Filter to Qgis (#54891)

This commit is contained in:
Denis Rouzaud 2023-10-11 13:57:01 +02:00 committed by GitHub
parent 6467a47eed
commit c76b86e26b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
44 changed files with 317 additions and 211 deletions

View File

@ -98,7 +98,7 @@ def _qgssettings_flag_value(self, key, flagDefaultValue, section=QgsSettings.NoS
"""
# There is an issue in SIP, flags.__class__ does not return the proper class
# (e.g. Filters instead of QgsMapLayerProxyModel.Filters)
# (e.g. Filters instead of Qgis.LayerFilters)
# dirty hack to get the parent class
__import__(flagDefaultValue.__module__)
baseClass = None

View File

@ -40,6 +40,60 @@ QgsMapLayer.TiledScene.__doc__ = "Tiled scene layer. Added in QGIS 3.34"
Qgis.LayerType.__doc__ = "Types of layers that can be added to a map\n\n.. versionadded:: 3.30.\n\n" + '* ``VectorLayer``: ' + Qgis.LayerType.Vector.__doc__ + '\n' + '* ``RasterLayer``: ' + Qgis.LayerType.Raster.__doc__ + '\n' + '* ``PluginLayer``: ' + Qgis.LayerType.Plugin.__doc__ + '\n' + '* ``MeshLayer``: ' + Qgis.LayerType.Mesh.__doc__ + '\n' + '* ``VectorTileLayer``: ' + Qgis.LayerType.VectorTile.__doc__ + '\n' + '* ``AnnotationLayer``: ' + Qgis.LayerType.Annotation.__doc__ + '\n' + '* ``PointCloudLayer``: ' + Qgis.LayerType.PointCloud.__doc__ + '\n' + '* ``GroupLayer``: ' + Qgis.LayerType.Group.__doc__ + '\n' + '* ``TiledScene``: ' + Qgis.LayerType.TiledScene.__doc__
# --
Qgis.LayerType.baseClass = Qgis
QgsMapLayerProxyModel.Filter = Qgis.LayerFilter
# monkey patching scoped based enum
QgsMapLayerProxyModel.RasterLayer = Qgis.LayerFilter.RasterLayer
QgsMapLayerProxyModel.RasterLayer.is_monkey_patched = True
QgsMapLayerProxyModel.RasterLayer.__doc__ = ""
QgsMapLayerProxyModel.NoGeometry = Qgis.LayerFilter.NoGeometry
QgsMapLayerProxyModel.NoGeometry.is_monkey_patched = True
QgsMapLayerProxyModel.NoGeometry.__doc__ = ""
QgsMapLayerProxyModel.PointLayer = Qgis.LayerFilter.PointLayer
QgsMapLayerProxyModel.PointLayer.is_monkey_patched = True
QgsMapLayerProxyModel.PointLayer.__doc__ = ""
QgsMapLayerProxyModel.LineLayer = Qgis.LayerFilter.LineLayer
QgsMapLayerProxyModel.LineLayer.is_monkey_patched = True
QgsMapLayerProxyModel.LineLayer.__doc__ = ""
QgsMapLayerProxyModel.PolygonLayer = Qgis.LayerFilter.PolygonLayer
QgsMapLayerProxyModel.PolygonLayer.is_monkey_patched = True
QgsMapLayerProxyModel.PolygonLayer.__doc__ = ""
QgsMapLayerProxyModel.HasGeometry = Qgis.LayerFilter.HasGeometry
QgsMapLayerProxyModel.HasGeometry.is_monkey_patched = True
QgsMapLayerProxyModel.HasGeometry.__doc__ = ""
QgsMapLayerProxyModel.VectorLayer = Qgis.LayerFilter.VectorLayer
QgsMapLayerProxyModel.VectorLayer.is_monkey_patched = True
QgsMapLayerProxyModel.VectorLayer.__doc__ = ""
QgsMapLayerProxyModel.PluginLayer = Qgis.LayerFilter.PluginLayer
QgsMapLayerProxyModel.PluginLayer.is_monkey_patched = True
QgsMapLayerProxyModel.PluginLayer.__doc__ = ""
QgsMapLayerProxyModel.WritableLayer = Qgis.LayerFilter.WritableLayer
QgsMapLayerProxyModel.WritableLayer.is_monkey_patched = True
QgsMapLayerProxyModel.WritableLayer.__doc__ = ""
QgsMapLayerProxyModel.MeshLayer = Qgis.LayerFilter.MeshLayer
QgsMapLayerProxyModel.MeshLayer.is_monkey_patched = True
QgsMapLayerProxyModel.MeshLayer.__doc__ = "QgsMeshLayer \since QGIS 3.6"
QgsMapLayerProxyModel.VectorTileLayer = Qgis.LayerFilter.VectorTileLayer
QgsMapLayerProxyModel.VectorTileLayer.is_monkey_patched = True
QgsMapLayerProxyModel.VectorTileLayer.__doc__ = "QgsVectorTileLayer \since QGIS 3.14"
QgsMapLayerProxyModel.PointCloudLayer = Qgis.LayerFilter.PointCloudLayer
QgsMapLayerProxyModel.PointCloudLayer.is_monkey_patched = True
QgsMapLayerProxyModel.PointCloudLayer.__doc__ = "QgsPointCloudLayer \since QGIS 3.18"
QgsMapLayerProxyModel.AnnotationLayer = Qgis.LayerFilter.AnnotationLayer
QgsMapLayerProxyModel.AnnotationLayer.is_monkey_patched = True
QgsMapLayerProxyModel.AnnotationLayer.__doc__ = "QgsAnnotationLayer \since QGIS 3.22"
QgsMapLayerProxyModel.TiledSceneLayer = Qgis.LayerFilter.TiledSceneLayer
QgsMapLayerProxyModel.TiledSceneLayer.is_monkey_patched = True
QgsMapLayerProxyModel.TiledSceneLayer.__doc__ = "QgsTiledSceneLayer \since QGIS 3.34"
QgsMapLayerProxyModel.All = Qgis.LayerFilter.All
QgsMapLayerProxyModel.All.is_monkey_patched = True
QgsMapLayerProxyModel.All.__doc__ = ""
QgsMapLayerProxyModel.SpatialLayer = Qgis.LayerFilter.SpatialLayer
QgsMapLayerProxyModel.SpatialLayer.is_monkey_patched = True
QgsMapLayerProxyModel.SpatialLayer.__doc__ = "\since QGIS 3.24"
Qgis.LayerFilter.__doc__ = "Filter for layers\n\n.. versionadded:: 3.34.\n\n" + '* ``RasterLayer``: ' + Qgis.LayerFilter.RasterLayer.__doc__ + '\n' + '* ``NoGeometry``: ' + Qgis.LayerFilter.NoGeometry.__doc__ + '\n' + '* ``PointLayer``: ' + Qgis.LayerFilter.PointLayer.__doc__ + '\n' + '* ``LineLayer``: ' + Qgis.LayerFilter.LineLayer.__doc__ + '\n' + '* ``PolygonLayer``: ' + Qgis.LayerFilter.PolygonLayer.__doc__ + '\n' + '* ``HasGeometry``: ' + Qgis.LayerFilter.HasGeometry.__doc__ + '\n' + '* ``VectorLayer``: ' + Qgis.LayerFilter.VectorLayer.__doc__ + '\n' + '* ``PluginLayer``: ' + Qgis.LayerFilter.PluginLayer.__doc__ + '\n' + '* ``WritableLayer``: ' + Qgis.LayerFilter.WritableLayer.__doc__ + '\n' + '* ``MeshLayer``: ' + Qgis.LayerFilter.MeshLayer.__doc__ + '\n' + '* ``VectorTileLayer``: ' + Qgis.LayerFilter.VectorTileLayer.__doc__ + '\n' + '* ``PointCloudLayer``: ' + Qgis.LayerFilter.PointCloudLayer.__doc__ + '\n' + '* ``AnnotationLayer``: ' + Qgis.LayerFilter.AnnotationLayer.__doc__ + '\n' + '* ``TiledSceneLayer``: ' + Qgis.LayerFilter.TiledSceneLayer.__doc__ + '\n' + '* ``All``: ' + Qgis.LayerFilter.All.__doc__ + '\n' + '* ``SpatialLayer``: ' + Qgis.LayerFilter.SpatialLayer.__doc__
# --
Qgis.LayerFilters.baseClass = Qgis
LayerFilters = Qgis # dirty hack since SIP seems to introduce the flags in module
QgsWkbTypes.Type = Qgis.WkbType
# monkey patching scoped based enum
QgsWkbTypes.Unknown = Qgis.WkbType.Unknown

View File

@ -1,3 +0,0 @@
# The following has been generated automatically from src/core/qgsmaplayerproxymodel.h
QgsMapLayerProxyModel.Filters.baseClass = QgsMapLayerProxyModel
Filters = QgsMapLayerProxyModel # dirty hack since SIP seems to introduce the flags in module

View File

@ -61,7 +61,7 @@ Rerturns the layer tree model
Sets the layer tree model
%End
void setFilters( const QgsMapLayerProxyModel::Filters &filters );
void setFilters( Qgis::LayerFilters filters );
%Docstring
Defines the type layers (vector, raster, etc) shown in the tree
If the list is empty, all types are shown.

View File

@ -87,6 +87,28 @@ The development version
TiledScene,
};
enum class LayerFilter
{
RasterLayer,
NoGeometry,
PointLayer,
LineLayer,
PolygonLayer,
HasGeometry,
VectorLayer,
PluginLayer,
WritableLayer,
MeshLayer,
VectorTileLayer,
PointCloudLayer,
AnnotationLayer,
TiledSceneLayer,
All,
SpatialLayer
};
typedef QFlags<Qgis::LayerFilter> LayerFilters;
enum class WkbType
{
Unknown,
@ -2441,6 +2463,8 @@ QFlags<Qgis::TiledSceneRendererFlag> operator|(Qgis::TiledSceneRendererFlag f1,
QFlags<Qgis::FieldConfigurationFlag> operator|(Qgis::FieldConfigurationFlag f1, QFlags<Qgis::FieldConfigurationFlag> f2);
QFlags<Qgis::LayerFilter> operator|(Qgis::LayerFilter f1, QFlags<Qgis::LayerFilter> f2);

View File

@ -22,27 +22,6 @@ The :py:class:`QgsMapLayerProxyModel` class provides an easy to use model to dis
#include "qgsmaplayerproxymodel.h"
%End
public:
enum Filter
{
RasterLayer,
NoGeometry,
PointLayer,
LineLayer,
PolygonLayer,
HasGeometry,
VectorLayer,
PluginLayer,
WritableLayer,
MeshLayer,
VectorTileLayer,
PointCloudLayer,
AnnotationLayer,
TiledSceneLayer,
All,
SpatialLayer
};
typedef QFlags<QgsMapLayerProxyModel::Filter> Filters;
explicit QgsMapLayerProxyModel( QObject *parent /TransferThis/ = 0 );
%Docstring
@ -55,7 +34,7 @@ It can be used to filter the layers list in a widget.
layerModel returns the :py:class:`QgsMapLayerModel` used in this QSortFilterProxyModel
%End
QgsMapLayerProxyModel *setFilters( QgsMapLayerProxyModel::Filters filters );
QgsMapLayerProxyModel *setFilters( Qgis::LayerFilters filters );
%Docstring
Sets ``filter`` flags which affect how layers are filtered within the model.
@ -64,7 +43,21 @@ Sets ``filter`` flags which affect how layers are filtered within the model.
.. versionadded:: 2.3
%End
const Filters &filters() const;
void setFilters( int filters ) /Deprecated/;
%Docstring
Filters according to layer type and/or geometry type.
.. note::
for API compatibility
.. versionadded:: 3.34
.. deprecated:: QGIS 3.34
use the flag signature instead
%End
const Qgis::LayerFilters &filters() const;
%Docstring
Returns the filter flags which affect how layers are filtered within the model.
@ -82,7 +75,7 @@ If ``project`` is ``None`` then :py:func:`QgsProject.instance()` will be used.
.. versionadded:: 3.24
%End
static bool layerMatchesFilters( const QgsMapLayer *layer, const Filters &filters );
static bool layerMatchesFilters( const QgsMapLayer *layer, const Qgis::LayerFilters &filters );
%Docstring
Returns if the ``layer`` matches the given ``filters``
@ -238,9 +231,6 @@ specified string will be shown.
};
QFlags<QgsMapLayerProxyModel::Filter> operator|(QgsMapLayerProxyModel::Filter f1, QFlags<QgsMapLayerProxyModel::Filter> f2);
/************************************************************************
* This file has been generated automatically from *
* *

View File

@ -30,12 +30,26 @@ QgsMapLayerComboBox creates a combo box to display the list of layers (currently
The layers can be filtered and/or ordered.
%End
void setFilters( QgsMapLayerProxyModel::Filters filters );
void setFilters( Qgis::LayerFilters filters );
%Docstring
setFilters allows filtering according to layer type and/or geometry type.
Filters according to layer type and/or geometry type.
%End
QgsMapLayerProxyModel::Filters filters() const;
void setFilters( int filters ) /Deprecated/;
%Docstring
Filters according to layer type and/or geometry type.
.. note::
for API compatibility
.. versionadded:: 3.34
.. deprecated:: QGIS 3.34
use the flag signature instead
%End
Qgis::LayerFilters filters() const;
%Docstring
currently used filter on list layers
%End

View File

@ -25,16 +25,19 @@ from qgis.PyQt import uic
from qgis.PyQt.QtCore import pyqtSignal
from qgis.PyQt.QtWidgets import (QTreeWidgetItem,
QComboBox)
from qgis.core import (QgsApplication,
QgsMapLayerProxyModel,
QgsWkbTypes,
QgsRectangle,
QgsReferencedRectangle,
QgsCoordinateReferenceSystem,
QgsProcessingUtils,
QgsProcessingParameterNumber,
QgsProcessingParameterDefinition,
QgsFieldProxyModel)
from qgis.core import (
Qgis,
QgsApplication,
QgsMapLayerProxyModel,
QgsWkbTypes,
QgsRectangle,
QgsReferencedRectangle,
QgsCoordinateReferenceSystem,
QgsProcessingUtils,
QgsProcessingParameterNumber,
QgsProcessingParameterDefinition,
QgsFieldProxyModel
)
from qgis.gui import QgsDoubleSpinBox
from qgis.analysis import QgsInterpolator
@ -99,7 +102,7 @@ class InterpolationDataWidget(BASE, WIDGET):
self.btnRemove.clicked.connect(self.removeLayer)
self.cmbLayers.layerChanged.connect(self.layerChanged)
self.cmbLayers.setFilters(QgsMapLayerProxyModel.VectorLayer)
self.cmbLayers.setFilters(Qgis.LayerFilter.VectorLayer)
self.cmbFields.setFilters(QgsFieldProxyModel.Numeric)
self.cmbFields.setLayer(self.cmbLayers.currentLayer())

View File

@ -36,7 +36,8 @@ from qgis.PyQt.QtCore import QCoreApplication, pyqtSignal
from qgis.gui import QgsMapLayerComboBox
from qgis.utils import iface
from qgis.core import (QgsProcessingParameterDefinition,
from qgis.core import (Qgis,
QgsProcessingParameterDefinition,
QgsProcessingParameters,
QgsProject,
QgsReferencedRectangle,
@ -63,7 +64,7 @@ class LayerSelectionDialog(QDialog):
vl.addWidget(QLabel(self.tr('Use extent from')))
self.combo = QgsMapLayerComboBox()
self.combo.setFilters(
QgsMapLayerProxyModel.HasGeometry | QgsMapLayerProxyModel.RasterLayer | QgsMapLayerProxyModel.MeshLayer)
Qgis.LayerFilter.HasGeometry | Qgis.LayerFilter.RasterLayer | Qgis.LayerFilter.MeshLayer)
self.combo.setShowCrs(ProcessingConfig.getSetting(ProcessingConfig.SHOW_CRS_DEF))
vl.addWidget(self.combo)

View File

@ -92,7 +92,7 @@ Qgs3DMapConfigWidget::Qgs3DMapConfigWidget( Qgs3DMapSettings *map, QgsMapCanvas
mDebugDepthMapSizeSpinBox->setClearValue( 0.1 );
cboTerrainLayer->setAllowEmptyLayer( true );
cboTerrainLayer->setFilters( QgsMapLayerProxyModel::RasterLayer );
cboTerrainLayer->setFilters( Qgis::LayerFilter::RasterLayer );
cboTerrainType->addItem( tr( "Flat Terrain" ), QgsTerrainGenerator::Flat );
cboTerrainType->addItem( tr( "DEM (Raster Layer)" ), QgsTerrainGenerator::Dem );
@ -109,7 +109,7 @@ Qgs3DMapConfigWidget::Qgs3DMapConfigWidget( Qgs3DMapSettings *map, QgsMapCanvas
spinTerrainResolution->setValue( demTerrainGen->resolution() );
spinTerrainSkirtHeight->setValue( demTerrainGen->skirtHeight() );
cboTerrainLayer->setLayer( demTerrainGen->layer() );
cboTerrainLayer->setFilters( QgsMapLayerProxyModel::RasterLayer );
cboTerrainLayer->setFilters( Qgis::LayerFilter::RasterLayer );
}
else if ( terrainGen && terrainGen->type() == QgsTerrainGenerator::Online )
{
@ -122,7 +122,7 @@ Qgs3DMapConfigWidget::Qgs3DMapConfigWidget( Qgs3DMapSettings *map, QgsMapCanvas
{
cboTerrainType->setCurrentIndex( cboTerrainType->findData( QgsTerrainGenerator::Mesh ) );
QgsMeshTerrainGenerator *meshTerrain = static_cast<QgsMeshTerrainGenerator *>( terrainGen );
cboTerrainLayer->setFilters( QgsMapLayerProxyModel::MeshLayer );
cboTerrainLayer->setFilters( Qgis::LayerFilter::MeshLayer );
cboTerrainLayer->setLayer( meshTerrain->meshLayer() );
mMeshSymbolWidget->setLayer( meshTerrain->meshLayer(), false );
mMeshSymbolWidget->setSymbol( meshTerrain->symbol() );
@ -408,11 +408,11 @@ void Qgs3DMapConfigWidget::onTerrainTypeChanged()
QgsMapLayer *oldTerrainLayer = cboTerrainLayer->currentLayer();
if ( cboTerrainType->currentData() == QgsTerrainGenerator::Dem )
{
cboTerrainLayer->setFilters( QgsMapLayerProxyModel::RasterLayer );
cboTerrainLayer->setFilters( Qgis::LayerFilter::RasterLayer );
}
else if ( cboTerrainType->currentData() == QgsTerrainGenerator::Mesh )
{
cboTerrainLayer->setFilters( QgsMapLayerProxyModel::MeshLayer );
cboTerrainLayer->setFilters( Qgis::LayerFilter::MeshLayer );
}
if ( cboTerrainLayer->currentLayer() != oldTerrainLayer )

View File

@ -91,7 +91,7 @@ QgsGpsToolBar::QgsGpsToolBar( QgsAppGpsConnection *connection, QgsMapCanvas *can
mDestinationLayerModel = new QgsMapLayerProxyModel( this );
mDestinationLayerModel->setProject( QgsProject::instance() );
mDestinationLayerModel->setFilters( QgsMapLayerProxyModel::Filter::HasGeometry | QgsMapLayerProxyModel::Filter::WritableLayer );
mDestinationLayerModel->setFilters( Qgis::LayerFilter::HasGeometry | Qgis::LayerFilter::WritableLayer );
mDestinationLayerMenu = new QMenu( this );
connect( mDestinationLayerMenu, &QMenu::aboutToShow, this, &QgsGpsToolBar::destinationMenuAboutToShow );

View File

@ -28,7 +28,7 @@ QgsReportSectionFieldGroupWidget::QgsReportSectionFieldGroupWidget( QgsReportOrg
{
setupUi( this );
mLayerComboBox->setFilters( QgsMapLayerProxyModel::VectorLayer );
mLayerComboBox->setFilters( Qgis::LayerFilter::VectorLayer );
connect( mLayerComboBox, &QgsMapLayerComboBox::layerChanged, mFieldComboBox, &QgsFieldComboBox::setLayer );
connect( mButtonEditBody, &QPushButton::clicked, this, &QgsReportSectionFieldGroupWidget::editBody );
connect( mButtonEditHeader, &QPushButton::clicked, this, &QgsReportSectionFieldGroupWidget::editHeader );

View File

@ -46,7 +46,7 @@ QgsMeshCalculatorDialog::QgsMeshCalculatorDialog( QgsMeshLayer *meshLayer, QWidg
setupUi( this );
QgsGui::enableAutoGeometryRestore( this );
cboLayerMask->setFilters( QgsMapLayerProxyModel::PolygonLayer );
cboLayerMask->setFilters( Qgis::LayerFilter::PolygonLayer );
QgsMeshDatasetGroupListModel *model = new QgsMeshDatasetGroupListModel( this );
model->syncToLayer( meshLayer );
model->setDisplayProviderName( true );

View File

@ -58,7 +58,7 @@ QgsNewMeshLayerDialog::QgsNewMeshLayerDialog( QWidget *parent, Qt::WindowFlags f
mFormatComboBox->setCurrentIndex( -1 );
mFileWidget->setStorageMode( QgsFileWidget::SaveFile );
mFileWidget->setFilter( filters.join( QLatin1String( ";;" ) ) );
mMeshProjectComboBox->setFilters( QgsMapLayerProxyModel::MeshLayer );
mMeshProjectComboBox->setFilters( Qgis::LayerFilter::MeshLayer );
connect( mFormatComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ),
this, &QgsNewMeshLayerDialog::onFormatChanged );

View File

@ -30,11 +30,11 @@ QgsProjectElevationSettingsWidget::QgsProjectElevationSettingsWidget( QWidget *p
mDemOffsetSpinBox->setClearValue( 0.0 );
mDemScaleSpinBox->setClearValue( 1.0 );
mComboDemLayer->setFilters( QgsMapLayerProxyModel::RasterLayer );
mComboDemLayer->setFilters( Qgis::LayerFilter::RasterLayer );
mMeshOffsetSpinBox->setClearValue( 0.0 );
mMeshScaleSpinBox->setClearValue( 1.0 );
mComboMeshLayer->setFilters( QgsMapLayerProxyModel::MeshLayer );
mComboMeshLayer->setFilters( Qgis::LayerFilter::MeshLayer );
mComboTerrainType->addItem( tr( "Flat Terrain" ), QStringLiteral( "flat" ) );
mComboTerrainType->addItem( tr( "DEM (Raster Layer)" ), QStringLiteral( "raster" ) );

View File

@ -106,14 +106,14 @@ QgsLayerStylingWidget::QgsLayerStylingWidget( QgsMapCanvas *canvas, QgsMessageBa
connect( mLayerCombo, &QgsMapLayerComboBox::layerChanged, this, &QgsLayerStylingWidget::setLayer );
connect( mLiveApplyCheck, &QAbstractButton::toggled, this, &QgsLayerStylingWidget::liveApplyToggled );
mLayerCombo->setFilters( QgsMapLayerProxyModel::Filter::HasGeometry
| QgsMapLayerProxyModel::Filter::RasterLayer
| QgsMapLayerProxyModel::Filter::PluginLayer
| QgsMapLayerProxyModel::Filter::MeshLayer
| QgsMapLayerProxyModel::Filter::VectorTileLayer
| QgsMapLayerProxyModel::Filter::PointCloudLayer
| QgsMapLayerProxyModel::Filter::TiledSceneLayer
| QgsMapLayerProxyModel::Filter::AnnotationLayer );
mLayerCombo->setFilters( Qgis::LayerFilter::HasGeometry
| Qgis::LayerFilter::RasterLayer
| Qgis::LayerFilter::PluginLayer
| Qgis::LayerFilter::MeshLayer
| Qgis::LayerFilter::VectorTileLayer
| Qgis::LayerFilter::PointCloudLayer
| Qgis::LayerFilter::TiledSceneLayer
| Qgis::LayerFilter::AnnotationLayer );
mLayerCombo->setAdditionalLayers( { QgsProject::instance()->mainAnnotationLayer() } );
mStackedWidget->setCurrentIndex( 0 );

View File

@ -40,11 +40,11 @@ QgsCreateRelationDialog::QgsCreateRelationDialog( QWidget *parent )
setupUi( this );
mReferencedLayerCombobox = new QgsMapLayerComboBox( this );
mReferencedLayerCombobox->setFilters( QgsMapLayerProxyModel::VectorLayer );
mReferencedLayerCombobox->setFilters( Qgis::LayerFilter::VectorLayer );
mFieldsMappingTable->setCellWidget( 0, 0, mReferencedLayerCombobox );
mReferencingLayerCombobox = new QgsMapLayerComboBox( this );
mReferencingLayerCombobox->setFilters( QgsMapLayerProxyModel::VectorLayer );
mReferencingLayerCombobox->setFilters( Qgis::LayerFilter::VectorLayer );
mFieldsMappingTable->setCellWidget( 0, 1, mReferencingLayerCombobox );
mRelationStrengthComboBox->addItem( tr( "Association" ), static_cast< int >( Qgis::RelationshipStrength::Association ) );

View File

@ -62,7 +62,7 @@ QgsStatisticalSummaryDockWidget::QgsStatisticalSummaryDockWidget( QWidget *paren
mFieldExpressionWidget->registerExpressionContextGenerator( this );
mLayerComboBox->setFilters( QgsMapLayerProxyModel::VectorLayer );
mLayerComboBox->setFilters( Qgis::LayerFilter::VectorLayer );
mFieldExpressionWidget->setFilters( QgsFieldProxyModel::Numeric |
QgsFieldProxyModel::String |
QgsFieldProxyModel::Date );

View File

@ -104,7 +104,7 @@ QgsVectorLayerDigitizingPropertiesPage::QgsVectorLayerDigitizingPropertiesPage(
mGapCheckAllowExceptionsActivatedCheckBox->setLayout( layout );
topologyCheckLayout->addWidget( mGapCheckAllowExceptionsActivatedCheckBox );
mGapCheckAllowExceptionsLayerComboBox = new QgsMapLayerComboBox();
mGapCheckAllowExceptionsLayerComboBox->setFilters( QgsMapLayerProxyModel::PolygonLayer );
mGapCheckAllowExceptionsLayerComboBox->setFilters( Qgis::LayerFilter::PolygonLayer );
mGapCheckAllowExceptionsLayerComboBox->setExceptedLayerList( QList<QgsMapLayer *> { vlayer } );
mGapCheckAllowExceptionsLayerComboBox->setLayer( QgsProject::instance()->mapLayer( gapCheckConfig.value( QStringLiteral( "allowedGapsLayer" ) ).toString() ) );
layout->addWidget( new QLabel( tr( "Layer" ) ), 0, 0 );

View File

@ -107,7 +107,7 @@ void QgsLayerTreeFilterProxyModel::setLayerTreeModel( QgsLayerTreeModel *layerTr
QSortFilterProxyModel::setSourceModel( layerTreeModel );
}
void QgsLayerTreeFilterProxyModel::setFilters( const QgsMapLayerProxyModel::Filters &filters )
void QgsLayerTreeFilterProxyModel::setFilters( Qgis::LayerFilters filters )
{
mFilters = filters;
invalidateFilter();

View File

@ -66,7 +66,7 @@ class CORE_EXPORT QgsLayerTreeFilterProxyModel : public QSortFilterProxyModel
* Defines the type layers (vector, raster, etc) shown in the tree
* If the list is empty, all types are shown.
*/
void setFilters( const QgsMapLayerProxyModel::Filters &filters );
void setFilters( Qgis::LayerFilters filters );
virtual int columnCount( const QModelIndex &parent ) const override;
virtual Qt::ItemFlags flags( const QModelIndex &idx ) const override;
@ -105,7 +105,7 @@ class CORE_EXPORT QgsLayerTreeFilterProxyModel : public QSortFilterProxyModel
QgsLayerTreeModel *mLayerTreeModel = nullptr;
QList<QgsMapLayer *> mCheckedLayers;
QString mFilterText;
QgsMapLayerProxyModel::Filters mFilters = QgsMapLayerProxyModel::All;
Qgis::LayerFilters mFilters = Qgis::LayerFilter::All;
};
#endif // QGSLAYERTREEFILTERPROXYMODEL_H

View File

@ -124,6 +124,33 @@ class CORE_EXPORT Qgis
};
Q_ENUM( LayerType )
/**
* Filter for layers
*
* \since QGIS 3.34. Prior to 3.34 this was available as QgsMapLayerProxyModel::Filter.
*/
enum class LayerFilter SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsMapLayerProxyModel, Filter ) : int
{
RasterLayer = 1,
NoGeometry = 2,
PointLayer = 4,
LineLayer = 8,
PolygonLayer = 16,
HasGeometry = PointLayer | LineLayer | PolygonLayer,
VectorLayer = NoGeometry | HasGeometry,
PluginLayer = 32,
WritableLayer = 64,
MeshLayer = 128, //!< QgsMeshLayer \since QGIS 3.6
VectorTileLayer = 256, //!< QgsVectorTileLayer \since QGIS 3.14
PointCloudLayer = 512, //!< QgsPointCloudLayer \since QGIS 3.18
AnnotationLayer = 1024, //!< QgsAnnotationLayer \since QGIS 3.22
TiledSceneLayer = 2048, //!< QgsTiledSceneLayer \since QGIS 3.34
All = RasterLayer | VectorLayer | PluginLayer | MeshLayer | VectorTileLayer | PointCloudLayer | AnnotationLayer | TiledSceneLayer,
SpatialLayer = RasterLayer | HasGeometry | PluginLayer | MeshLayer | VectorTileLayer | PointCloudLayer | AnnotationLayer | TiledSceneLayer //!< \since QGIS 3.24
};
Q_DECLARE_FLAGS( LayerFilters, LayerFilter )
Q_FLAG( LayerFilters )
/**
* The WKB type describes the number of dimensions a geometry has
*
@ -4153,6 +4180,7 @@ Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::TiledSceneProviderCapabilities )
Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::TiledSceneRequestFlags )
Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::TiledSceneRendererFlags )
Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::FieldConfigurationFlags )
Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::LayerFilters )
// hack to workaround warnings when casting void pointers
// retrieved from QLibrary::resolve to function pointers.

View File

@ -21,7 +21,7 @@
QgsMapLayerProxyModel::QgsMapLayerProxyModel( QObject *parent )
: QSortFilterProxyModel( parent )
, mFilters( All )
, mFilters( Qgis::LayerFilter::All )
, mModel( new QgsMapLayerModel( parent ) )
{
setSourceModel( mModel );
@ -31,48 +31,48 @@ QgsMapLayerProxyModel::QgsMapLayerProxyModel( QObject *parent )
sort( 0 );
}
QgsMapLayerProxyModel *QgsMapLayerProxyModel::setFilters( Filters filters )
QgsMapLayerProxyModel *QgsMapLayerProxyModel::setFilters( Qgis::LayerFilters filters )
{
mFilters = filters;
invalidateFilter();
return this;
}
bool QgsMapLayerProxyModel::layerMatchesFilters( const QgsMapLayer *layer, const Filters &filters )
bool QgsMapLayerProxyModel::layerMatchesFilters( const QgsMapLayer *layer, const Qgis::LayerFilters &filters )
{
if ( filters.testFlag( All ) )
if ( filters.testFlag( Qgis::LayerFilter::All ) )
return true;
// layer type
if ( ( filters.testFlag( RasterLayer ) && layer->type() == Qgis::LayerType::Raster ) ||
( filters.testFlag( VectorLayer ) && layer->type() == Qgis::LayerType::Vector ) ||
( filters.testFlag( MeshLayer ) && layer->type() == Qgis::LayerType::Mesh ) ||
( filters.testFlag( VectorTileLayer ) && layer->type() == Qgis::LayerType::VectorTile ) ||
( filters.testFlag( PointCloudLayer ) && layer->type() == Qgis::LayerType::PointCloud ) ||
( filters.testFlag( AnnotationLayer ) && layer->type() == Qgis::LayerType::Annotation ) ||
( filters.testFlag( TiledSceneLayer ) && layer->type() == Qgis::LayerType::TiledScene ) ||
( filters.testFlag( PluginLayer ) && layer->type() == Qgis::LayerType::Plugin ) )
if ( ( filters.testFlag( Qgis::LayerFilter::RasterLayer ) && layer->type() == Qgis::LayerType::Raster ) ||
( filters.testFlag( Qgis::LayerFilter::VectorLayer ) && layer->type() == Qgis::LayerType::Vector ) ||
( filters.testFlag( Qgis::LayerFilter::MeshLayer ) && layer->type() == Qgis::LayerType::Mesh ) ||
( filters.testFlag( Qgis::LayerFilter::VectorTileLayer ) && layer->type() == Qgis::LayerType::VectorTile ) ||
( filters.testFlag( Qgis::LayerFilter::PointCloudLayer ) && layer->type() == Qgis::LayerType::PointCloud ) ||
( filters.testFlag( Qgis::LayerFilter::AnnotationLayer ) && layer->type() == Qgis::LayerType::Annotation ) ||
( filters.testFlag( Qgis::LayerFilter::TiledSceneLayer ) && layer->type() == Qgis::LayerType::TiledScene ) ||
( filters.testFlag( Qgis::LayerFilter::PluginLayer ) && layer->type() == Qgis::LayerType::Plugin ) )
return true;
// geometry type
const bool detectGeometry = filters.testFlag( NoGeometry ) ||
filters.testFlag( PointLayer ) ||
filters.testFlag( LineLayer ) ||
filters.testFlag( PolygonLayer ) ||
filters.testFlag( HasGeometry );
const bool detectGeometry = filters.testFlag( Qgis::LayerFilter::NoGeometry ) ||
filters.testFlag( Qgis::LayerFilter::PointLayer ) ||
filters.testFlag( Qgis::LayerFilter::LineLayer ) ||
filters.testFlag( Qgis::LayerFilter::PolygonLayer ) ||
filters.testFlag( Qgis::LayerFilter::HasGeometry );
if ( detectGeometry && layer->type() == Qgis::LayerType::Vector )
{
if ( const QgsVectorLayer *vl = qobject_cast<const QgsVectorLayer *>( layer ) )
{
if ( filters.testFlag( HasGeometry ) && vl->isSpatial() )
if ( filters.testFlag( Qgis::LayerFilter::HasGeometry ) && vl->isSpatial() )
return true;
if ( filters.testFlag( NoGeometry ) && vl->geometryType() == Qgis::GeometryType::Null )
if ( filters.testFlag( Qgis::LayerFilter::NoGeometry ) && vl->geometryType() == Qgis::GeometryType::Null )
return true;
if ( filters.testFlag( PointLayer ) && vl->geometryType() == Qgis::GeometryType::Point )
if ( filters.testFlag( Qgis::LayerFilter::PointLayer ) && vl->geometryType() == Qgis::GeometryType::Point )
return true;
if ( filters.testFlag( LineLayer ) && vl->geometryType() == Qgis::GeometryType::Line )
if ( filters.testFlag( Qgis::LayerFilter::LineLayer ) && vl->geometryType() == Qgis::GeometryType::Line )
return true;
if ( filters.testFlag( PolygonLayer ) && vl->geometryType() == Qgis::GeometryType::Polygon )
if ( filters.testFlag( Qgis::LayerFilter::PolygonLayer ) && vl->geometryType() == Qgis::GeometryType::Polygon )
return true;
}
}
@ -153,7 +153,7 @@ bool QgsMapLayerProxyModel::acceptsLayer( QgsMapLayer *layer ) const
if ( layer->dataProvider() && mExcludedProviders.contains( layer->providerType() ) )
return false;
if ( mFilters.testFlag( WritableLayer ) && layer->readOnly() )
if ( mFilters.testFlag( Qgis::LayerFilter::WritableLayer ) && layer->readOnly() )
return false;
if ( !layer->name().contains( mFilterString, Qt::CaseInsensitive ) )
@ -170,7 +170,7 @@ void QgsMapLayerProxyModel::setFilterString( const QString &filter )
bool QgsMapLayerProxyModel::filterAcceptsRow( int source_row, const QModelIndex &source_parent ) const
{
if ( mFilters.testFlag( All ) && mExceptList.isEmpty() && mLayerAllowlist.isEmpty() && mExcludedProviders.isEmpty() && mFilterString.isEmpty() )
if ( mFilters.testFlag( Qgis::LayerFilter::All ) && mExceptList.isEmpty() && mLayerAllowlist.isEmpty() && mExcludedProviders.isEmpty() && mFilterString.isEmpty() )
return true;
const QModelIndex index = sourceModel()->index( source_row, 0, source_parent );

View File

@ -21,6 +21,7 @@
#include "qgis_core.h"
#include "qgis_sip.h"
#include "qgis.h"
class QgsMapLayerModel;
class QgsMapLayer;
@ -35,32 +36,11 @@ class CORE_EXPORT QgsMapLayerProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
Q_PROPERTY( QgsMapLayerProxyModel::Filters filters READ filters WRITE setFilters )
Q_PROPERTY( Qgis::LayerFilters filters READ filters WRITE setFilters )
Q_PROPERTY( QList<QgsMapLayer *> exceptedLayerList READ exceptedLayerList WRITE setExceptedLayerList )
Q_PROPERTY( QStringList exceptedLayerIds READ exceptedLayerIds WRITE setExceptedLayerIds )
public:
enum Filter
{
RasterLayer = 1,
NoGeometry = 2,
PointLayer = 4,
LineLayer = 8,
PolygonLayer = 16,
HasGeometry = PointLayer | LineLayer | PolygonLayer,
VectorLayer = NoGeometry | HasGeometry,
PluginLayer = 32,
WritableLayer = 64,
MeshLayer = 128, //!< QgsMeshLayer \since QGIS 3.6
VectorTileLayer = 256, //!< QgsVectorTileLayer \since QGIS 3.14
PointCloudLayer = 512, //!< QgsPointCloudLayer \since QGIS 3.18
AnnotationLayer = 1024, //!< QgsAnnotationLayer \since QGIS 3.22
TiledSceneLayer = 2048, //!< QgsTiledSceneLayer \since QGIS 3.34
All = RasterLayer | VectorLayer | PluginLayer | MeshLayer | VectorTileLayer | PointCloudLayer | AnnotationLayer | TiledSceneLayer,
SpatialLayer = RasterLayer | HasGeometry | PluginLayer | MeshLayer | VectorTileLayer | PointCloudLayer | AnnotationLayer | TiledSceneLayer //!< \since QGIS 3.24
};
Q_DECLARE_FLAGS( Filters, Filter )
Q_FLAG( Filters )
/**
* \brief QgsMapLayerProxModel creates a proxy model with a QgsMapLayerModel as source model.
@ -80,7 +60,15 @@ class CORE_EXPORT QgsMapLayerProxyModel : public QSortFilterProxyModel
*
* \since QGIS 2.3
*/
QgsMapLayerProxyModel *setFilters( QgsMapLayerProxyModel::Filters filters );
QgsMapLayerProxyModel *setFilters( Qgis::LayerFilters filters );
/**
* Filters according to layer type and/or geometry type.
* \note for API compatibility
* \since QGIS 3.34
* \deprecated since QGIS 3.34 use the flag signature instead
*/
Q_DECL_DEPRECATED void setFilters( int filters ) SIP_DEPRECATED { setFilters( static_cast<Qgis::LayerFilters>( filters ) ); }
/**
* Returns the filter flags which affect how layers are filtered within the model.
@ -89,7 +77,7 @@ class CORE_EXPORT QgsMapLayerProxyModel : public QSortFilterProxyModel
*
* \since QGIS 2.3
*/
const Filters &filters() const { return mFilters; }
const Qgis::LayerFilters &filters() const { return mFilters; }
/**
* Sets the \a project from which map layers are shown.
@ -104,7 +92,7 @@ class CORE_EXPORT QgsMapLayerProxyModel : public QSortFilterProxyModel
* Returns if the \a layer matches the given \a filters
* \since QGIS 3.14
*/
static bool layerMatchesFilters( const QgsMapLayer *layer, const Filters &filters );
static bool layerMatchesFilters( const QgsMapLayer *layer, const Qgis::LayerFilters &filters );
/**
* Sets an allowlist of \a layers to include within the model. Only layers
@ -230,7 +218,7 @@ class CORE_EXPORT QgsMapLayerProxyModel : public QSortFilterProxyModel
void setFilterString( const QString &filter );
private:
Filters mFilters;
Qgis::LayerFilters mFilters;
QList<QgsMapLayer *> mExceptList;
QList<QgsMapLayer *> mLayerAllowlist;
QgsMapLayerModel *mModel = nullptr;
@ -238,6 +226,4 @@ class CORE_EXPORT QgsMapLayerProxyModel : public QSortFilterProxyModel
QString mFilterString;
};
Q_DECLARE_OPERATORS_FOR_FLAGS( QgsMapLayerProxyModel::Filters )
#endif // QGSMAPLAYERPROXYMODEL_H

View File

@ -24,7 +24,7 @@ QgsValueRelationConfigDlg::QgsValueRelationConfigDlg( QgsVectorLayer *vl, int fi
: QgsEditorConfigWidget( vl, fieldIdx, parent )
{
setupUi( this );
mLayerName->setFilters( QgsMapLayerProxyModel::VectorLayer );
mLayerName->setFilters( Qgis::LayerFilter::VectorLayer );
mKeyColumn->setLayer( mLayerName->currentLayer() );
mValueColumn->setLayer( mLayerName->currentLayer() );
mDescriptionExpression->setLayer( mLayerName->currentLayer() );

View File

@ -43,7 +43,7 @@ QgsLayoutAtlasWidget::QgsLayoutAtlasWidget( QWidget *parent, QgsPrintLayout *lay
connect( mAtlasFeatureFilterButton, &QToolButton::clicked, this, &QgsLayoutAtlasWidget::mAtlasFeatureFilterButton_clicked );
connect( mAtlasFeatureFilterCheckBox, &QCheckBox::stateChanged, this, &QgsLayoutAtlasWidget::mAtlasFeatureFilterCheckBox_stateChanged );
mAtlasCoverageLayerComboBox->setFilters( QgsMapLayerProxyModel::VectorLayer );
mAtlasCoverageLayerComboBox->setFilters( Qgis::LayerFilter::VectorLayer );
connect( mAtlasCoverageLayerComboBox, &QgsMapLayerComboBox::layerChanged, mAtlasSortExpressionWidget, &QgsFieldExpressionWidget::setLayer );
connect( mAtlasCoverageLayerComboBox, &QgsMapLayerComboBox::layerChanged, mPageNameWidget, &QgsFieldExpressionWidget::setLayer );

View File

@ -106,7 +106,7 @@ QgsLayoutAttributeTableWidget::QgsLayoutAttributeTableWidget( QgsLayoutFrame *fr
//update relations combo when relations modified in project
connect( QgsProject::instance()->relationManager(), &QgsRelationManager::changed, this, &QgsLayoutAttributeTableWidget::updateRelationsCombo );
mLayerComboBox->setFilters( QgsMapLayerProxyModel::VectorLayer );
mLayerComboBox->setFilters( Qgis::LayerFilter::VectorLayer );
connect( mLayerComboBox, &QgsMapLayerComboBox::layerChanged, this, &QgsLayoutAttributeTableWidget::changeLayer );
mComposerMapComboBox->setCurrentLayout( mTable->layout() );

View File

@ -123,7 +123,7 @@ void QgsPointCloudLayerSaveAsDialog::setup()
mExtentGroupBox->setCollapsed( true );
// polygon layer filter group box
mFilterGeometryLayerComboBox->setFilters( QgsMapLayerProxyModel::PolygonLayer );
mFilterGeometryLayerComboBox->setFilters( Qgis::LayerFilter::PolygonLayer );
// ZRange group box
mMinimumZSpinBox->setRange( std::numeric_limits<double>::lowest(), std::numeric_limits<double>::max() );

View File

@ -46,7 +46,7 @@ QgsProcessingAggregatePanelWidget::QgsProcessingAggregatePanelWidget( QWidget *p
mModel = mFieldsView->model();
mLayerCombo->setAllowEmptyLayer( true );
mLayerCombo->setFilters( QgsMapLayerProxyModel::VectorLayer );
mLayerCombo->setFilters( Qgis::LayerFilter::VectorLayer );
connect( mResetButton, &QPushButton::clicked, this, &QgsProcessingAggregatePanelWidget::loadFieldsFromLayer );
connect( mAddButton, &QPushButton::clicked, this, &QgsProcessingAggregatePanelWidget::addField );

View File

@ -46,7 +46,7 @@ QgsProcessingFieldMapPanelWidget::QgsProcessingFieldMapPanelWidget( QWidget *par
mFieldsView->setDestinationEditable( true );
mLayerCombo->setAllowEmptyLayer( true );
mLayerCombo->setFilters( QgsMapLayerProxyModel::VectorLayer );
mLayerCombo->setFilters( Qgis::LayerFilter::VectorLayer );
connect( mResetButton, &QPushButton::clicked, this, &QgsProcessingFieldMapPanelWidget::loadFieldsFromLayer );
connect( mAddButton, &QPushButton::clicked, this, &QgsProcessingFieldMapPanelWidget::addField );

View File

@ -110,7 +110,7 @@ QgsProcessingMapLayerComboBox::QgsProcessingMapLayerComboBox( const QgsProcessin
vl->setSpacing( 6 );
vl->addLayout( layout );
QgsMapLayerProxyModel::Filters filters = QgsMapLayerProxyModel::Filters();
Qgis::LayerFilters filters = Qgis::LayerFilters();
if ( mParameter->type() == QgsProcessingParameterFeatureSource::typeName() && type == QgsProcessingGui::Standard )
{
@ -129,27 +129,27 @@ QgsProcessingMapLayerComboBox::QgsProcessingMapLayerComboBox( const QgsProcessin
dataTypes = static_cast< QgsProcessingParameterVectorLayer *>( mParameter.get() )->dataTypes();
if ( dataTypes.contains( QgsProcessing::TypeVectorAnyGeometry ) || dataTypes.isEmpty() )
filters = QgsMapLayerProxyModel::HasGeometry;
filters = Qgis::LayerFilter::HasGeometry;
if ( dataTypes.contains( QgsProcessing::TypeVectorPoint ) )
filters |= QgsMapLayerProxyModel::PointLayer;
filters |= Qgis::LayerFilter::PointLayer;
if ( dataTypes.contains( QgsProcessing::TypeVectorLine ) )
filters |= QgsMapLayerProxyModel::LineLayer;
filters |= Qgis::LayerFilter::LineLayer;
if ( dataTypes.contains( QgsProcessing::TypeVectorPolygon ) )
filters |= QgsMapLayerProxyModel::PolygonLayer;
filters |= Qgis::LayerFilter::PolygonLayer;
if ( !filters )
filters = QgsMapLayerProxyModel::VectorLayer;
filters = Qgis::LayerFilter::VectorLayer;
}
else if ( mParameter->type() == QgsProcessingParameterRasterLayer::typeName() )
{
filters = QgsMapLayerProxyModel::RasterLayer;
filters = Qgis::LayerFilter::RasterLayer;
}
else if ( mParameter->type() == QgsProcessingParameterMeshLayer::typeName() )
{
filters = QgsMapLayerProxyModel::MeshLayer;
filters = Qgis::LayerFilter::MeshLayer;
}
else if ( mParameter->type() == QgsProcessingParameterPointCloudLayer::typeName() )
{
filters = QgsMapLayerProxyModel::PointCloudLayer;
filters = Qgis::LayerFilter::PointCloudLayer;
}
else if ( mParameter->type() == QgsProcessingParameterMapLayer::typeName() )
{
@ -157,21 +157,21 @@ QgsProcessingMapLayerComboBox::QgsProcessingMapLayerComboBox( const QgsProcessin
dataTypes = static_cast< QgsProcessingParameterMapLayer *>( mParameter.get() )->dataTypes();
if ( dataTypes.contains( QgsProcessing::TypeVectorAnyGeometry ) )
filters |= QgsMapLayerProxyModel::HasGeometry;
filters |= Qgis::LayerFilter::HasGeometry;
if ( dataTypes.contains( QgsProcessing::TypeVectorPoint ) )
filters |= QgsMapLayerProxyModel::PointLayer;
filters |= Qgis::LayerFilter::PointLayer;
if ( dataTypes.contains( QgsProcessing::TypeVectorLine ) )
filters |= QgsMapLayerProxyModel::LineLayer;
filters |= Qgis::LayerFilter::LineLayer;
if ( dataTypes.contains( QgsProcessing::TypeVectorPolygon ) )
filters |= QgsMapLayerProxyModel::PolygonLayer;
filters |= Qgis::LayerFilter::PolygonLayer;
if ( dataTypes.contains( QgsProcessing::TypeRaster ) )
filters |= QgsMapLayerProxyModel::RasterLayer;
filters |= Qgis::LayerFilter::RasterLayer;
if ( dataTypes.contains( QgsProcessing::TypeMesh ) )
filters |= QgsMapLayerProxyModel::MeshLayer;
filters |= Qgis::LayerFilter::MeshLayer;
if ( dataTypes.contains( QgsProcessing::TypePointCloud ) )
filters |= QgsMapLayerProxyModel::PointCloudLayer;
filters |= Qgis::LayerFilter::PointCloudLayer;
if ( !filters )
filters = QgsMapLayerProxyModel::All;
filters = Qgis::LayerFilter::All;
}
QgsSettings settings;

View File

@ -23,7 +23,7 @@ QgsProcessingTinInputLayersWidget::QgsProcessingTinInputLayersWidget( QgsProject
mInputLayersModel( project )
{
setupUi( this );
mComboLayers->setFilters( QgsMapLayerProxyModel::VectorLayer );
mComboLayers->setFilters( Qgis::LayerFilter::VectorLayer );
connect( mComboLayers, &QgsMapLayerComboBox::layerChanged, this, &QgsProcessingTinInputLayersWidget::onLayerChanged );
connect( mButtonAdd, &QToolButton::clicked, this, &QgsProcessingTinInputLayersWidget::onCurrentLayerAdded );

View File

@ -7568,7 +7568,7 @@ void QgsProcessingAnnotationLayerWidgetWrapper::setWidgetContext( const QgsProce
QWidget *QgsProcessingAnnotationLayerWidgetWrapper::createWidget()
{
mComboBox = new QgsMapLayerComboBox( );
mComboBox->setFilters( QgsMapLayerProxyModel::AnnotationLayer );
mComboBox->setFilters( Qgis::LayerFilter::AnnotationLayer );
switch ( type() )
{

View File

@ -53,7 +53,7 @@ QgsExtentWidget::QgsExtentWidget( QWidget *parent, WidgetStyle style )
mButtonCalcFromLayer->setMenu( mLayerMenu );
connect( mLayerMenu, &QMenu::aboutToShow, this, &QgsExtentWidget::layerMenuAboutToShow );
mMapLayerModel = new QgsMapLayerProxyModel( this );
mMapLayerModel->setFilters( QgsMapLayerProxyModel::Filter::SpatialLayer );
mMapLayerModel->setFilters( Qgis::LayerFilter::SpatialLayer );
mLayoutMenu = new QMenu( tr( "Calculate from Layout Map" ), this );
mButtonCalcFromLayout->setMenu( mLayoutMenu );

View File

@ -34,7 +34,7 @@ class QgsVectorLayer;
class GUI_EXPORT QgsMapLayerComboBox : public QComboBox
{
Q_OBJECT
Q_PROPERTY( QgsMapLayerProxyModel::Filters filters READ filters WRITE setFilters )
Q_PROPERTY( Qgis::LayerFilters filters READ filters WRITE setFilters )
Q_PROPERTY( bool allowEmptyLayer READ allowEmptyLayer WRITE setAllowEmptyLayer )
Q_PROPERTY( bool showCrs READ showCrs WRITE setShowCrs )
Q_PROPERTY( QStringList excludedProviders READ excludedProviders WRITE setExcludedProviders )
@ -47,11 +47,19 @@ class GUI_EXPORT QgsMapLayerComboBox : public QComboBox
*/
explicit QgsMapLayerComboBox( QWidget *parent SIP_TRANSFERTHIS = nullptr );
//! setFilters allows filtering according to layer type and/or geometry type.
void setFilters( QgsMapLayerProxyModel::Filters filters ) { mProxyModel->setFilters( filters ); }
//! Filters according to layer type and/or geometry type.
void setFilters( Qgis::LayerFilters filters ) { mProxyModel->setFilters( filters ); }
/**
* Filters according to layer type and/or geometry type.
* \note for API compatibility
* \since QGIS 3.34
* \deprecated since QGIS 3.34 use the flag signature instead
*/
Q_DECL_DEPRECATED void setFilters( int filters ) SIP_DEPRECATED { setFilters( static_cast<Qgis::LayerFilters>( filters ) ); }
//! currently used filter on list layers
QgsMapLayerProxyModel::Filters filters() const { return mProxyModel->filters(); }
Qgis::LayerFilters filters() const { return mProxyModel->filters(); }
//! except a list of layers not to be listed
void setExceptedLayerList( const QList<QgsMapLayer *> &layerList ) { mProxyModel->setExceptedLayerList( layerList );}

View File

@ -53,7 +53,7 @@ QgsJoinDialog::QgsJoinDialog( QgsVectorLayer *layer, QList<QgsMapLayer *> alread
mUpsertOnEditCheckBox->setToolTip( tr( "Automatically adds a matching row to the joined table, but if one already exists then update that matching row instead" ) );
mDeleteCascadeCheckBox->setToolTip( tr( "Automatically delete the corresponding feature of the linked layer if one exists" ) );
mJoinLayerComboBox->setFilters( QgsMapLayerProxyModel::VectorLayer );
mJoinLayerComboBox->setFilters( Qgis::LayerFilter::VectorLayer );
mJoinLayerComboBox->setExceptedLayerList( alreadyJoinedLayers );
connect( mJoinLayerComboBox, &QgsMapLayerComboBox::layerChanged, mJoinFieldComboBox, &QgsFieldComboBox::setLayer );
connect( mJoinLayerComboBox, &QgsMapLayerComboBox::layerChanged, this, &QgsJoinDialog::joinedLayerChanged );

View File

@ -28,7 +28,7 @@ QgsEmbeddedLayerSelectDialog::QgsEmbeddedLayerSelectDialog( QWidget *parent )
QgsGui::enableAutoGeometryRestore( this );
mLayerProxyModel->setFilters( QgsMapLayerProxyModel::Filter::VectorLayer );
mLayerProxyModel->setFilters( Qgis::LayerFilter::VectorLayer );
mLayers->setModel( mLayerProxyModel );
mSearchLineEdit->setShowSearchIcon( true );

View File

@ -429,20 +429,20 @@ void TestQgsMapLayer::customEnumFlagProperties()
QCOMPARE( v3ss, QStringLiteral( "Centimeters" ) );
// Flags
const QgsMapLayerProxyModel::Filters pointAndLine = QgsMapLayerProxyModel::Filters( QgsMapLayerProxyModel::PointLayer | QgsMapLayerProxyModel::LineLayer );
const QgsMapLayerProxyModel::Filters pointAndPolygon = QgsMapLayerProxyModel::Filters( QgsMapLayerProxyModel::PointLayer | QgsMapLayerProxyModel::PolygonLayer );
const Qgis::LayerFilters pointAndLine = Qgis::LayerFilters( Qgis::LayerFilter::PointLayer | Qgis::LayerFilter::LineLayer );
const Qgis::LayerFilters pointAndPolygon = Qgis::LayerFilters( Qgis::LayerFilter::PointLayer | Qgis::LayerFilter::PolygonLayer );
ml->setCustomProperty( QStringLiteral( "my_property_for_a_flag" ), 1e8 ); // invalid
const QgsMapLayerProxyModel::Filters v4 = ml->customFlagProperty( QStringLiteral( "my_property_for_a_flag" ), pointAndLine );
const Qgis::LayerFilters v4 = ml->customFlagProperty( QStringLiteral( "my_property_for_a_flag" ), pointAndLine );
QCOMPARE( v4, pointAndLine );
ml->setCustomProperty( QStringLiteral( "my_property_for_a_flag" ), static_cast<int>( pointAndPolygon ) );
const QgsMapLayerProxyModel::Filters v5 = ml->customFlagProperty( QStringLiteral( "my_property_for_a_flag" ), pointAndLine );
const Qgis::LayerFilters v5 = ml->customFlagProperty( QStringLiteral( "my_property_for_a_flag" ), pointAndLine );
QCOMPARE( v5, pointAndPolygon );
// auto conversion of old property (int to str)
QCOMPARE( ml->customProperty( "my_property_for_a_flag" ).toString(), QStringLiteral( "PointLayer|PolygonLayer" ) );
ml->setCustomFlagProperty( QStringLiteral( "my_property_for_a_flag_as_string" ), pointAndPolygon );
const QgsMapLayerProxyModel::Filters v5s = ml->customFlagProperty( QStringLiteral( "my_property_for_a_flag_as_string" ), pointAndLine );
const Qgis::LayerFilters v5s = ml->customFlagProperty( QStringLiteral( "my_property_for_a_flag_as_string" ), pointAndLine );
QCOMPARE( v5s, pointAndPolygon );
const QString v5ss = ml->customProperty( QStringLiteral( "my_property_for_a_flag_as_string" ), QStringLiteral( "myDummyString" ) ).toString();
QCOMPARE( v5ss, QStringLiteral( "PointLayer|PolygonLayer" ) );

View File

@ -70,20 +70,20 @@ void TestQgsSettings::enumValue()
void TestQgsSettings::flagValue()
{
QgsSettings settings;
const QgsMapLayerProxyModel::Filters pointAndLine = QgsMapLayerProxyModel::Filters( QgsMapLayerProxyModel::PointLayer | QgsMapLayerProxyModel::LineLayer );
const QgsMapLayerProxyModel::Filters pointAndPolygon = QgsMapLayerProxyModel::Filters( QgsMapLayerProxyModel::PointLayer | QgsMapLayerProxyModel::PolygonLayer );
const Qgis::LayerFilters pointAndLine = Qgis::LayerFilters( Qgis::LayerFilter::PointLayer | Qgis::LayerFilter::LineLayer );
const Qgis::LayerFilters pointAndPolygon = Qgis::LayerFilters( Qgis::LayerFilter::PointLayer | Qgis::LayerFilter::PolygonLayer );
settings.setValue( QStringLiteral( "qgis/testing/my_value_for_a_flag" ), 1e8 ); // invalid
const QgsMapLayerProxyModel::Filters v4 = settings.flagValue( QStringLiteral( "qgis/testing/my_value_for_a_flag" ), pointAndLine );
const Qgis::LayerFilters v4 = settings.flagValue( QStringLiteral( "qgis/testing/my_value_for_a_flag" ), pointAndLine );
QCOMPARE( v4, pointAndLine );
settings.setValue( QStringLiteral( "qgis/testing/my_value_for_a_flag" ), static_cast<int>( pointAndPolygon ) );
const QgsMapLayerProxyModel::Filters v5 = settings.flagValue( QStringLiteral( "qgis/testing/my_value_for_a_flag" ), pointAndLine, QgsSettings::NoSection );
const Qgis::LayerFilters v5 = settings.flagValue( QStringLiteral( "qgis/testing/my_value_for_a_flag" ), pointAndLine, QgsSettings::NoSection );
QCOMPARE( v5, pointAndPolygon );
// auto conversion of old settings (int to str)
QCOMPARE( settings.value( "qgis/testing/my_value_for_a_flag" ).toString(), QStringLiteral( "PointLayer|PolygonLayer" ) );
settings.setFlagValue( QStringLiteral( "qgis/testing/my_value_for_a_flag_as_string" ), pointAndPolygon, QgsSettings::NoSection );
const QgsMapLayerProxyModel::Filters v5s = settings.flagValue( QStringLiteral( "qgis/testing/my_value_for_a_flag_as_string" ), pointAndLine, QgsSettings::NoSection );
const Qgis::LayerFilters v5s = settings.flagValue( QStringLiteral( "qgis/testing/my_value_for_a_flag_as_string" ), pointAndLine, QgsSettings::NoSection );
QCOMPARE( v5s, pointAndPolygon );
const QString v5ss = settings.value( QStringLiteral( "qgis/testing/my_value_for_a_flag_as_string" ), QStringLiteral( "myDummyString" ), QgsSettings::NoSection ).toString();
QCOMPARE( v5ss, QStringLiteral( "PointLayer|PolygonLayer" ) );

View File

@ -133,21 +133,21 @@ void TestQgsSettingsEntry::enumValue()
void TestQgsSettingsEntry::flagValue()
{
const QString settingsKey( QStringLiteral( "my_flag_value_for_units" ) );
const QgsMapLayerProxyModel::Filters pointAndLine = QgsMapLayerProxyModel::Filters( QgsMapLayerProxyModel::PointLayer | QgsMapLayerProxyModel::LineLayer );
const QgsMapLayerProxyModel::Filters pointAndPolygon = QgsMapLayerProxyModel::Filters( QgsMapLayerProxyModel::PointLayer | QgsMapLayerProxyModel::PolygonLayer );
const QgsMapLayerProxyModel::Filters hasGeometry = QgsMapLayerProxyModel::Filters( QgsMapLayerProxyModel::HasGeometry );
const Qgis::LayerFilters pointAndLine = Qgis::LayerFilters( Qgis::LayerFilter::PointLayer | Qgis::LayerFilter::LineLayer );
const Qgis::LayerFilters pointAndPolygon = Qgis::LayerFilters( Qgis::LayerFilter::PointLayer | Qgis::LayerFilter::PolygonLayer );
const Qgis::LayerFilters hasGeometry = Qgis::LayerFilters( Qgis::LayerFilter::HasGeometry );
// Make sure the setting is not existing
QgsSettings().remove( settingsKey );
const QgsSettingsEntryEnumFlag settingsEntryFlag( settingsKey, mSettingsSection, QgsMapLayerProxyModel::Filters(), QStringLiteral( "Filters" ) );
const QgsSettingsEntryEnumFlag settingsEntryFlag( settingsKey, mSettingsSection, Qgis::LayerFilters(), QStringLiteral( "Filters" ) );
// Check default value
QCOMPARE( settingsEntryFlag.defaultValue(), QgsMapLayerProxyModel::Filters() );
QCOMPARE( settingsEntryFlag.defaultValue(), Qgis::LayerFilters() );
// check no value
QCOMPARE( settingsEntryFlag.exists(), false );
QCOMPARE( settingsEntryFlag.value(), QgsMapLayerProxyModel::Filters() );
QCOMPARE( settingsEntryFlag.value(), Qgis::LayerFilters() );
QCOMPARE( settingsEntryFlag.valueWithDefaultOverride( pointAndLine ), pointAndLine );
@ -155,7 +155,7 @@ void TestQgsSettingsEntry::flagValue()
{
const bool success = settingsEntryFlag.setValue( hasGeometry );
QCOMPARE( success, true );
const QgsMapLayerProxyModel::Filters qgsSettingsValue = QgsSettings().flagValue( QStringLiteral( "%1/%2" ).arg( mSettingsSection, settingsKey ), pointAndLine );
const Qgis::LayerFilters qgsSettingsValue = QgsSettings().flagValue( QStringLiteral( "%1/%2" ).arg( mSettingsSection, settingsKey ), pointAndLine );
QCOMPARE( qgsSettingsValue, hasGeometry );
}
@ -167,7 +167,7 @@ void TestQgsSettingsEntry::flagValue()
QCOMPARE( settingsEntryFlag.settingsType(), Qgis::SettingsType::EnumFlag );
// check that value is stored as string
QCOMPARE( settingsEntryFlag.valueAsVariant().toByteArray(), QMetaEnum::fromType<QgsMapLayerProxyModel::Filters>().valueToKeys( pointAndLine ) );
QCOMPARE( settingsEntryFlag.valueAsVariant().toByteArray(), QMetaEnum::fromType<Qgis::LayerFilters>().valueToKeys( pointAndLine ) );
// auto conversion of old settings (int to str)
QSettings().setValue( QStringLiteral( "%1/%2" ).arg( mSettingsSection, settingsKey ), static_cast<int>( pointAndPolygon ) );

View File

@ -13,7 +13,7 @@ import qgis # NOQA
from qgis.PyQt.QtCore import QCoreApplication, QEvent
from qgis.PyQt.QtTest import QSignalSpy
from qgis.core import (
QgsMapLayerProxyModel,
Qgis,
QgsMeshLayer,
QgsProject,
QgsVectorLayer,
@ -46,8 +46,8 @@ class TestQgsMapLayerComboBox(QgisTestCase):
l2 = create_layer('l2')
QgsProject.instance().addMapLayer(l2)
m.setFilters(QgsMapLayerProxyModel.LineLayer | QgsMapLayerProxyModel.WritableLayer)
self.assertEqual(m.filters(), QgsMapLayerProxyModel.LineLayer | QgsMapLayerProxyModel.WritableLayer)
m.setFilters(Qgis.LayerFilter.LineLayer | Qgis.LayerFilter.WritableLayer)
self.assertEqual(m.filters(), Qgis.LayerFilters(Qgis.LayerFilter.LineLayer | Qgis.LayerFilter.WritableLayer))
m.setExceptedLayerList([l2])
self.assertEqual(m.exceptedLayerList(), [l2])
@ -62,8 +62,8 @@ class TestQgsMapLayerComboBox(QgisTestCase):
l2 = create_layer('l2')
QgsProject.instance().addMapLayer(l2)
m.setFilters(QgsMapLayerProxyModel.MeshLayer)
self.assertEqual(m.filters(), QgsMapLayerProxyModel.MeshLayer)
m.setFilters(Qgis.LayerFilter.MeshLayer)
self.assertEqual(m.filters(), Qgis.LayerFilter.MeshLayer)
self.assertEqual(m.count(), 1)
self.assertEqual(m.itemText(0), 'l1')
@ -85,39 +85,39 @@ class TestQgsMapLayerComboBox(QgisTestCase):
'layer 4', "memory")
QgsProject.instance().addMapLayer(l4)
m.setFilters(QgsMapLayerProxyModel.PolygonLayer)
m.setFilters(Qgis.LayerFilter.PolygonLayer)
self.assertEqual(m.count(), 1)
self.assertEqual(m.itemText(0), 'layer 2')
m.setFilters(QgsMapLayerProxyModel.PointLayer)
m.setFilters(Qgis.LayerFilter.PointLayer)
self.assertEqual(m.count(), 1)
self.assertEqual(m.itemText(0), 'layer 1')
m.setFilters(QgsMapLayerProxyModel.LineLayer)
m.setFilters(Qgis.LayerFilter.LineLayer)
self.assertEqual(m.count(), 1)
self.assertEqual(m.itemText(0), 'layer 4')
m.setFilters(QgsMapLayerProxyModel.NoGeometry)
m.setFilters(Qgis.LayerFilter.NoGeometry)
self.assertEqual(m.count(), 1)
self.assertEqual(m.itemText(0), 'layer 3')
m.setFilters(QgsMapLayerProxyModel.HasGeometry)
m.setFilters(Qgis.LayerFilter.HasGeometry)
self.assertEqual(m.count(), 3)
self.assertEqual(m.itemText(0), 'layer 1')
self.assertEqual(m.itemText(1), 'layer 2')
self.assertEqual(m.itemText(2), 'layer 4')
m.setFilters(QgsMapLayerProxyModel.VectorLayer)
m.setFilters(Qgis.LayerFilter.VectorLayer)
self.assertEqual(m.count(), 4)
self.assertEqual(m.itemText(0), 'layer 1')
self.assertEqual(m.itemText(1), 'layer 2')
self.assertEqual(m.itemText(2), 'layer 3')
self.assertEqual(m.itemText(3), 'layer 4')
m.setFilters(QgsMapLayerProxyModel.PluginLayer)
m.setFilters(Qgis.LayerFilter.PluginLayer)
self.assertEqual(m.count(), 0)
m.setFilters(QgsMapLayerProxyModel.RasterLayer)
m.setFilters(Qgis.LayerFilter.RasterLayer)
self.assertEqual(m.count(), 0)
def testFilterByLayer(self):

View File

@ -12,6 +12,7 @@ __copyright__ = 'Copyright 2018, The QGIS Project'
import qgis # NOQA
from qgis.core import (
Qgis,
QgsAnnotationLayer,
QgsMapLayerProxyModel,
QgsMeshLayer,
@ -45,8 +46,8 @@ class TestQgsMapLayerProxyModel(QgisTestCase):
l2 = create_layer('l2')
QgsProject.instance().addMapLayer(l2)
m.setFilters(QgsMapLayerProxyModel.LineLayer | QgsMapLayerProxyModel.WritableLayer)
self.assertEqual(m.filters(), QgsMapLayerProxyModel.LineLayer | QgsMapLayerProxyModel.WritableLayer)
m.setFilters(Qgis.LayerFilter.LineLayer | Qgis.LayerFilter.WritableLayer)
self.assertEqual(m.filters(), Qgis.LayerFilters(Qgis.LayerFilter.LineLayer | Qgis.LayerFilter.WritableLayer))
m.setExceptedLayerIds([l2.id()])
self.assertEqual(m.exceptedLayerIds(), [l2.id()])
@ -70,8 +71,8 @@ class TestQgsMapLayerProxyModel(QgisTestCase):
l2 = create_layer('l2')
QgsProject.instance().addMapLayer(l2)
m.setFilters(QgsMapLayerProxyModel.MeshLayer)
self.assertEqual(m.filters(), QgsMapLayerProxyModel.MeshLayer)
m.setFilters(Qgis.LayerFilter.MeshLayer)
self.assertEqual(m.filters(), Qgis.LayerFilter.MeshLayer)
self.assertEqual(m.rowCount(), 1)
self.assertEqual(m.data(m.index(0, 0)), 'l1')
@ -92,8 +93,8 @@ class TestQgsMapLayerProxyModel(QgisTestCase):
l2 = create_layer('l2')
QgsProject.instance().addMapLayer(l2)
m.setFilters(QgsMapLayerProxyModel.AnnotationLayer)
self.assertEqual(m.filters(), QgsMapLayerProxyModel.AnnotationLayer)
m.setFilters(Qgis.LayerFilter.AnnotationLayer)
self.assertEqual(m.filters(), Qgis.LayerFilter.AnnotationLayer)
self.assertEqual(m.rowCount(), 1)
self.assertEqual(m.data(m.index(0, 0)), 'annotation 1')
@ -101,14 +102,14 @@ class TestQgsMapLayerProxyModel(QgisTestCase):
self.assertTrue(m.acceptsLayer(l1))
self.assertFalse(m.acceptsLayer(l2))
m.setFilters(QgsMapLayerProxyModel.VectorLayer)
m.setFilters(Qgis.LayerFilter.VectorLayer)
self.assertEqual(m.rowCount(), 1)
self.assertEqual(m.data(m.index(0, 0)), 'l2')
self.assertFalse(m.acceptsLayer(l1))
self.assertTrue(m.acceptsLayer(l2))
m.setFilters(QgsMapLayerProxyModel.All)
m.setFilters(Qgis.LayerFilter.All)
self.assertEqual(m.rowCount(), 2)
self.assertEqual(m.data(m.index(0, 0)), 'annotation 1')
self.assertEqual(m.data(m.index(1, 0)), 'l2')
@ -133,7 +134,7 @@ class TestQgsMapLayerProxyModel(QgisTestCase):
'layer 4', "memory")
QgsProject.instance().addMapLayer(l4)
m.setFilters(QgsMapLayerProxyModel.PolygonLayer)
m.setFilters(Qgis.LayerFilter.PolygonLayer)
self.assertEqual(m.rowCount(), 1)
self.assertEqual(m.data(m.index(0, 0)), 'layer 2')
@ -142,7 +143,7 @@ class TestQgsMapLayerProxyModel(QgisTestCase):
self.assertFalse(m.acceptsLayer(l3))
self.assertFalse(m.acceptsLayer(l4))
m.setFilters(QgsMapLayerProxyModel.PointLayer)
m.setFilters(Qgis.LayerFilter.PointLayer)
self.assertEqual(m.rowCount(), 1)
self.assertEqual(m.data(m.index(0, 0)), 'layer 1')
@ -151,7 +152,7 @@ class TestQgsMapLayerProxyModel(QgisTestCase):
self.assertFalse(m.acceptsLayer(l3))
self.assertFalse(m.acceptsLayer(l4))
m.setFilters(QgsMapLayerProxyModel.LineLayer)
m.setFilters(Qgis.LayerFilter.LineLayer)
self.assertEqual(m.rowCount(), 1)
self.assertEqual(m.data(m.index(0, 0)), 'layer 4')
@ -160,7 +161,7 @@ class TestQgsMapLayerProxyModel(QgisTestCase):
self.assertFalse(m.acceptsLayer(l3))
self.assertTrue(m.acceptsLayer(l4))
m.setFilters(QgsMapLayerProxyModel.NoGeometry)
m.setFilters(Qgis.LayerFilter.NoGeometry)
self.assertEqual(m.rowCount(), 1)
self.assertEqual(m.data(m.index(0, 0)), 'layer 3')
@ -169,7 +170,7 @@ class TestQgsMapLayerProxyModel(QgisTestCase):
self.assertTrue(m.acceptsLayer(l3))
self.assertFalse(m.acceptsLayer(l4))
m.setFilters(QgsMapLayerProxyModel.HasGeometry)
m.setFilters(Qgis.LayerFilter.HasGeometry)
self.assertEqual(m.rowCount(), 3)
self.assertEqual(m.data(m.index(0, 0)), 'layer 1')
self.assertEqual(m.data(m.index(1, 0)), 'layer 2')
@ -180,7 +181,7 @@ class TestQgsMapLayerProxyModel(QgisTestCase):
self.assertFalse(m.acceptsLayer(l3))
self.assertTrue(m.acceptsLayer(l4))
m.setFilters(QgsMapLayerProxyModel.VectorLayer)
m.setFilters(Qgis.LayerFilter.VectorLayer)
self.assertEqual(m.rowCount(), 4)
self.assertEqual(m.data(m.index(0, 0)), 'layer 1')
self.assertEqual(m.data(m.index(1, 0)), 'layer 2')
@ -192,7 +193,7 @@ class TestQgsMapLayerProxyModel(QgisTestCase):
self.assertTrue(m.acceptsLayer(l3))
self.assertTrue(m.acceptsLayer(l4))
m.setFilters(QgsMapLayerProxyModel.PluginLayer)
m.setFilters(Qgis.LayerFilter.PluginLayer)
self.assertEqual(m.rowCount(), 0)
self.assertFalse(m.acceptsLayer(l1))
@ -200,7 +201,7 @@ class TestQgsMapLayerProxyModel(QgisTestCase):
self.assertFalse(m.acceptsLayer(l3))
self.assertFalse(m.acceptsLayer(l4))
m.setFilters(QgsMapLayerProxyModel.RasterLayer)
m.setFilters(Qgis.LayerFilter.RasterLayer)
self.assertEqual(m.rowCount(), 0)
self.assertFalse(m.acceptsLayer(l1))

View File

@ -432,14 +432,14 @@ class TestQgsSettings(QgisTestCase):
self.assertEqual(self.settings.enumValue('enum', Qgis.MapToolUnit.Pixels), Qgis.MapToolUnit.Pixels)
def test_flagValue(self):
pointAndLine = QgsMapLayerProxyModel.Filters(QgsMapLayerProxyModel.PointLayer | QgsMapLayerProxyModel.LineLayer)
pointAndPolygon = QgsMapLayerProxyModel.Filters(QgsMapLayerProxyModel.PointLayer | QgsMapLayerProxyModel.PolygonLayer)
pointAndLine = Qgis.LayerFilters(Qgis.LayerFilter.PointLayer | Qgis.LayerFilter.LineLayer)
pointAndPolygon = Qgis.LayerFilters(Qgis.LayerFilter.PointLayer | Qgis.LayerFilter.PolygonLayer)
self.settings.setValue('flag', 'PointLayer|PolygonLayer')
self.assertEqual(self.settings.flagValue('flag', pointAndLine), pointAndPolygon)
self.settings.setValue('flag', 'dummy_setting')
self.assertEqual(self.settings.flagValue('flag', pointAndLine), pointAndLine)
self.assertEqual(type(self.settings.flagValue('enum', pointAndLine)), QgsMapLayerProxyModel.Filters)
self.assertEqual(type(self.settings.flagValue('enum', pointAndLine)), Qgis.LayerFilters)
def test_overwriteDefaultValues(self):
"""Test that unchanged values are not stored"""

View File

@ -415,9 +415,9 @@ class TestQgsSettingsEntry(QgisTestCase):
settingsKey = "settingsEntryFlag/flagValue"
settingsKeyComplete = f"plugins/{self.pluginName}/{settingsKey}"
pointAndLine = QgsMapLayerProxyModel.Filters(QgsMapLayerProxyModel.PointLayer | QgsMapLayerProxyModel.LineLayer)
pointAndPolygon = QgsMapLayerProxyModel.Filters(QgsMapLayerProxyModel.PointLayer | QgsMapLayerProxyModel.PolygonLayer)
hasGeometry = QgsMapLayerProxyModel.Filters(QgsMapLayerProxyModel.HasGeometry)
pointAndLine = Qgis.LayerFilters(Qgis.LayerFilter.PointLayer | Qgis.LayerFilter.LineLayer)
pointAndPolygon = Qgis.LayerFilters(Qgis.LayerFilter.PointLayer | Qgis.LayerFilter.PolygonLayer)
hasGeometry = Qgis.LayerFilters(Qgis.LayerFilter.HasGeometry)
# Make sure settings does not exists
QgsSettings().remove(settingsKeyComplete)