38 if ( !input.isValid() )
41 if ( input.type() != QVariant::List )
44 const QVariantList inputList = input.toList();
45 for (
const QVariant &inputItem : inputList )
47 if ( inputItem.type() != QVariant::Map )
49 QVariantMap inputItemMap = inputItem.toMap();
52 if ( !inputItemMap.contains(
"layer" ) )
55 const QVariant inputItemLayer = inputItemMap[
"layer"];
57 if ( qobject_cast< QgsVectorLayer * >( qvariant_cast<QObject *>( inputItemLayer ) ) )
73 const QList<QgsVectorTileWriter::Layer> layers =
parameterAsLayers( value, context );
76 QStringList layerDefParts;
78 if ( !layer.filterExpression().isEmpty() )
80 if ( !layer.layerName().isEmpty() )
82 if ( layer.minZoom() >= 0 )
84 if ( layer.maxZoom() >= 0 )
87 const QString layerDef = QStringLiteral(
"{ %1 }" ).arg( layerDefParts.join(
',' ) );
90 return parts.join(
',' ).prepend(
'[' ).append(
']' );
99 QString code = QStringLiteral(
"QgsProcessingParameterVectorTileWriterLayers('%1', %2)" )
109 QList<QgsVectorTileWriter::Layer> layers;
110 const QVariantList layersVariantList = layersVariant.toList();
111 for (
const QVariant &layerItem : layersVariantList )
113 const QVariantMap layerVariantMap = layerItem.toMap();
121 const QVariant layerVariant = layerVariantMap[
"layer"];
124 if ( ( inputLayer = qobject_cast< QgsVectorLayer * >( qvariant_cast<QObject *>( layerVariant ) ) ) )
138 if ( layerVariantMap.contains(
"filterExpression" ) )
140 if ( layerVariantMap.contains(
"minZoom" ) )
141 writerLayer.
setMinZoom( layerVariantMap[
"minZoom"].toInt() );
142 if ( layerVariantMap.contains(
"maxZoom" ) )
143 writerLayer.
setMaxZoom( layerVariantMap[
"maxZoom"].toInt() );
144 if ( layerVariantMap.contains(
"layerName" ) )
145 writerLayer.
setLayerName( layerVariantMap[
"layerName"].toString() );
153 if ( !layer.
layer() )
156 vm[
"layer"] = layer.
layer()->
id();
157 vm[
"minZoom"] = layer.
minZoom();
158 vm[
"maxZoom"] = layer.
maxZoom();
QString id() const
Returns the layer's unique ID, which is used to access this layer from QgsProject.
Contains information about the context in which a processing algorithm is executed.
Base class for the definition of processing parameters.
Flags mFlags
Parameter flags.
QString description() const
Returns the description for the parameter.
@ FlagOptional
Parameter is optional.
QString name() const
Returns the name of the parameter.
QString valueAsPythonString(const QVariant &value, QgsProcessingContext &context) const override
Returns a string version of the parameter input value, which is suitable for use as an input paramete...
static QList< QgsVectorTileWriter::Layer > parameterAsLayers(const QVariant &layersVariant, QgsProcessingContext &context)
Converts a QVariant value (a QVariantList) to a list of input layers.
QgsProcessingParameterDefinition * clone() const override
Creates a clone of the parameter definition.
static QgsVectorTileWriter::Layer variantMapAsLayer(const QVariantMap &layerVariantMap, QgsProcessingContext &context)
Converts a QVariant value (a QVariantMap) to a single input layer.
static QVariantMap layerAsVariantMap(const QgsVectorTileWriter::Layer &layer)
Converts a single input layer to QVariant representation (a QVariantMap)
bool checkValueIsAcceptable(const QVariant &input, QgsProcessingContext *context=nullptr) const override
Checks whether the specified input value is acceptable for the parameter.
QgsProcessingParameterVectorTileWriterLayers(const QString &name, const QString &description=QString())
Constructor for QgsProcessingParameterVectorTileWriterLayers.
QString asPythonString(QgsProcessing::PythonOutputType outputType=QgsProcessing::PythonQgsProcessingAlgorithmSubclass) const override
Returns the parameter definition as a Python command which can be used within a Python Processing scr...
QString type() const override
Unique parameter type name.
static QString typeName()
Returns the type name for the parameter class.
static QString stringToPythonLiteral(const QString &string)
Converts a string to a Python string literal.
static QString normalizeLayerSource(const QString &source)
Normalizes a layer source string for safe comparison across different operating system environments.
static QString variantToPythonLiteral(const QVariant &value)
Converts a variant to a Python literal.
static QgsMapLayer * mapLayerFromString(const QString &string, QgsProcessingContext &context, bool allowLoadingNewLayers=true, QgsProcessingUtils::LayerHint typeHint=QgsProcessingUtils::LayerHint::UnknownType)
Interprets a string as a map layer within the supplied context.
PythonOutputType
Available Python output types.
@ PythonQgsProcessingAlgorithmSubclass
Full Python QgsProcessingAlgorithm subclass.
Represents a vector layer which manages a vector based data sets.
Configuration of a single input vector layer to be included in the output.
QString layerName() const
Returns layer name in the output. If not set, layer()->name() will be used.
QgsVectorLayer * layer() const
Returns vector layer of this entry.
void setLayerName(const QString &name)
Sets layer name in the output. If not set, layer()->name() will be used.
void setMaxZoom(int maxzoom)
Sets maximum zoom level at which this layer will be used. Negative value means no max....
void setFilterExpression(const QString &expr)
Sets filter expression. If not empty, only features matching the expression will be used.
void setMinZoom(int minzoom)
Sets minimum zoom level at which this layer will be used. Negative value means no min....
QString filterExpression() const
Returns filter expression. If not empty, only features matching the expression will be used.
int maxZoom() const
Returns maximum zoom level at which this layer will be used. Negative value means no max....
int minZoom() const
Returns minimum zoom level at which this layer will be used. Negative value means no min....