@@ -2096,8 +2096,9 @@ QgsProcessingParameterExpression *QgsProcessingParameterExpression::fromScriptCo
20962096 return new QgsProcessingParameterExpression ( name, description, definition, QString (), isOptional );
20972097}
20982098
2099- QgsProcessingParameterVectorLayer::QgsProcessingParameterVectorLayer ( const QString &name, const QString &description, const QVariant &defaultValue, bool optional )
2099+ QgsProcessingParameterVectorLayer::QgsProcessingParameterVectorLayer ( const QString &name, const QString &description, const QList< int > &types, const QVariant &defaultValue, bool optional )
21002100 : QgsProcessingParameterDefinition( name, description, defaultValue, optional )
2101+ , mDataTypes( types )
21012102{
21022103
21032104}
@@ -2142,9 +2143,43 @@ QString QgsProcessingParameterVectorLayer::valueAsPythonString( const QVariant &
21422143 return layer ? QgsProcessingUtils::normalizeLayerSource ( layer->source () ).prepend ( ' \' ' ).append ( ' \' ' ) : QString ();
21432144}
21442145
2146+ QList<int > QgsProcessingParameterVectorLayer::dataTypes () const
2147+ {
2148+ return mDataTypes ;
2149+ }
2150+
2151+ void QgsProcessingParameterVectorLayer::setDataTypes ( const QList<int > &types )
2152+ {
2153+ mDataTypes = types;
2154+ }
2155+
2156+ QVariantMap QgsProcessingParameterVectorLayer::toVariantMap () const
2157+ {
2158+ QVariantMap map = QgsProcessingParameterDefinition::toVariantMap ();
2159+ QVariantList types;
2160+ Q_FOREACH ( int type, mDataTypes )
2161+ {
2162+ types << type;
2163+ }
2164+ map.insert ( QStringLiteral ( " data_types" ), types );
2165+ return map;
2166+ }
2167+
2168+ bool QgsProcessingParameterVectorLayer::fromVariantMap ( const QVariantMap &map )
2169+ {
2170+ QgsProcessingParameterDefinition::fromVariantMap ( map );
2171+ mDataTypes .clear ();
2172+ QVariantList values = map.value ( QStringLiteral ( " data_types" ) ).toList ();
2173+ Q_FOREACH ( const QVariant &val, values )
2174+ {
2175+ mDataTypes << val.toInt ();
2176+ }
2177+ return true ;
2178+ }
2179+
21452180QgsProcessingParameterVectorLayer *QgsProcessingParameterVectorLayer::fromScriptCode ( const QString &name, const QString &description, bool isOptional, const QString &definition )
21462181{
2147- return new QgsProcessingParameterVectorLayer ( name, description, definition.isEmpty () ? QVariant () : definition, isOptional );
2182+ return new QgsProcessingParameterVectorLayer ( name, description, QList< int >(), definition.isEmpty () ? QVariant () : definition, isOptional );
21482183}
21492184
21502185QgsProcessingParameterField::QgsProcessingParameterField ( const QString &name, const QString &description, const QVariant &defaultValue, const QString &parentLayerParameterName, DataType type, bool allowMultiple, bool optional )
0 commit comments