mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-28 00:17:30 -05:00
Reorder arguments in parameterAsSink to avoid requiring wkb type and crs
This commit is contained in:
parent
46b4f2468c
commit
dbf21d1969
@ -357,9 +357,8 @@ class QgsProcessingAlgorithm
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
QgsFeatureSink *parameterAsSink( const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context,
|
||||
const QgsFields &fields, QgsWkbTypes::Type geometryType, const QgsCoordinateReferenceSystem &crs,
|
||||
QString &destinationIdentifier /Out/ ) const /Factory/;
|
||||
QgsFeatureSink *parameterAsSink( const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context, QString &destinationIdentifier /Out/,
|
||||
const QgsFields &fields, QgsWkbTypes::Type geometryType = QgsWkbTypes::NoGeometry, const QgsCoordinateReferenceSystem &crs = QgsCoordinateReferenceSystem() ) const /Factory/;
|
||||
%Docstring
|
||||
Evaluates the parameter with matching ``name`` to a feature sink.
|
||||
|
||||
|
@ -91,7 +91,7 @@ QVariantMap QgsCentroidAlgorithm::processAlgorithm( const QVariantMap ¶meter
|
||||
return QVariantMap();
|
||||
|
||||
QString dest;
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT_LAYER" ), context, source->fields(), QgsWkbTypes::Point, source->sourceCrs(), dest ) );
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT_LAYER" ), context, dest, source->fields(), QgsWkbTypes::Point, source->sourceCrs() ) );
|
||||
if ( !sink )
|
||||
return QVariantMap();
|
||||
|
||||
@ -166,7 +166,7 @@ QVariantMap QgsBufferAlgorithm::processAlgorithm( const QVariantMap ¶meters,
|
||||
return QVariantMap();
|
||||
|
||||
QString dest;
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT_LAYER" ), context, source->fields(), QgsWkbTypes::Polygon, source->sourceCrs(), dest ) );
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT_LAYER" ), context, dest, source->fields(), QgsWkbTypes::Polygon, source->sourceCrs() ) );
|
||||
if ( !sink )
|
||||
return QVariantMap();
|
||||
|
||||
@ -270,7 +270,7 @@ QVariantMap QgsDissolveAlgorithm::processAlgorithm( const QVariantMap ¶meter
|
||||
return QVariantMap();
|
||||
|
||||
QString dest;
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, source->fields(), QgsWkbTypes::multiType( source->wkbType() ), source->sourceCrs(), dest ) );
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, dest, source->fields(), QgsWkbTypes::multiType( source->wkbType() ), source->sourceCrs() ) );
|
||||
|
||||
if ( !sink )
|
||||
return QVariantMap();
|
||||
@ -417,7 +417,7 @@ QVariantMap QgsClipAlgorithm::processAlgorithm( const QVariantMap ¶meters, Q
|
||||
return QVariantMap();
|
||||
|
||||
QString dest;
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, featureSource->fields(), QgsWkbTypes::multiType( featureSource->wkbType() ), featureSource->sourceCrs(), dest ) );
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, dest, featureSource->fields(), QgsWkbTypes::multiType( featureSource->wkbType() ), featureSource->sourceCrs() ) );
|
||||
|
||||
if ( !sink )
|
||||
return QVariantMap();
|
||||
@ -563,7 +563,7 @@ QVariantMap QgsTransformAlgorithm::processAlgorithm( const QVariantMap ¶mete
|
||||
QgsCoordinateReferenceSystem targetCrs = parameterAsCrs( parameters, QStringLiteral( "TARGET_CRS" ), context );
|
||||
|
||||
QString dest;
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, source->fields(), source->wkbType(), targetCrs, dest ) );
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, dest, source->fields(), source->wkbType(), targetCrs ) );
|
||||
if ( !sink )
|
||||
return QVariantMap();
|
||||
|
||||
@ -626,8 +626,8 @@ QVariantMap QgsSubdivideAlgorithm::processAlgorithm( const QVariantMap ¶mete
|
||||
|
||||
int maxNodes = parameterAsInt( parameters, QStringLiteral( "MAX_NODES" ), context );
|
||||
QString dest;
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, source->fields(),
|
||||
QgsWkbTypes::multiType( source->wkbType() ), source->sourceCrs(), dest ) );
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, dest, source->fields(),
|
||||
QgsWkbTypes::multiType( source->wkbType() ), source->sourceCrs() ) );
|
||||
if ( !sink )
|
||||
return QVariantMap();
|
||||
|
||||
@ -693,8 +693,8 @@ QVariantMap QgsMultipartToSinglepartAlgorithm::processAlgorithm( const QVariantM
|
||||
QgsWkbTypes::Type sinkType = QgsWkbTypes::singleType( source->wkbType() );
|
||||
|
||||
QString dest;
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, source->fields(),
|
||||
sinkType, source->sourceCrs(), dest ) );
|
||||
std::unique_ptr< QgsFeatureSink > sink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, dest, source->fields(),
|
||||
sinkType, source->sourceCrs() ) );
|
||||
if ( !sink )
|
||||
return QVariantMap();
|
||||
|
||||
@ -775,20 +775,19 @@ QVariantMap QgsExtractByExpressionAlgorithm::processAlgorithm( const QVariantMap
|
||||
QString expressionString = parameterAsExpression( parameters, QStringLiteral( "EXPRESSION" ), context );
|
||||
|
||||
QString matchingSinkId;
|
||||
std::unique_ptr< QgsFeatureSink > matchingSink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, source->fields(),
|
||||
source->wkbType(), source->sourceCrs(), matchingSinkId ) );
|
||||
std::unique_ptr< QgsFeatureSink > matchingSink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, matchingSinkId, source->fields(),
|
||||
source->wkbType(), source->sourceCrs() ) );
|
||||
if ( !matchingSink )
|
||||
return QVariantMap();
|
||||
|
||||
QString nonMatchingSinkId;
|
||||
std::unique_ptr< QgsFeatureSink > nonMatchingSink( parameterAsSink( parameters, QStringLiteral( "FAIL_OUTPUT" ), context, source->fields(),
|
||||
source->wkbType(), source->sourceCrs(), nonMatchingSinkId ) );
|
||||
std::unique_ptr< QgsFeatureSink > nonMatchingSink( parameterAsSink( parameters, QStringLiteral( "FAIL_OUTPUT" ), context, nonMatchingSinkId, source->fields(),
|
||||
source->wkbType(), source->sourceCrs() ) );
|
||||
|
||||
QgsExpression expression( expressionString );
|
||||
if ( expression.hasParserError() )
|
||||
{
|
||||
// raise GeoAlgorithmExecutionException(expression.parserErrorString())
|
||||
return QVariantMap();
|
||||
throw QgsProcessingException( expression.parserErrorString() );
|
||||
}
|
||||
|
||||
QgsExpressionContext expressionContext = createExpressionContext( parameters, context );
|
||||
@ -904,14 +903,14 @@ QVariantMap QgsExtractByAttributeAlgorithm::processAlgorithm( const QVariantMap
|
||||
QString value = parameterAsString( parameters, QStringLiteral( "VALUE" ), context );
|
||||
|
||||
QString matchingSinkId;
|
||||
std::unique_ptr< QgsFeatureSink > matchingSink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, source->fields(),
|
||||
source->wkbType(), source->sourceCrs(), matchingSinkId ) );
|
||||
std::unique_ptr< QgsFeatureSink > matchingSink( parameterAsSink( parameters, QStringLiteral( "OUTPUT" ), context, matchingSinkId, source->fields(),
|
||||
source->wkbType(), source->sourceCrs() ) );
|
||||
if ( !matchingSink )
|
||||
return QVariantMap();
|
||||
|
||||
QString nonMatchingSinkId;
|
||||
std::unique_ptr< QgsFeatureSink > nonMatchingSink( parameterAsSink( parameters, QStringLiteral( "FAIL_OUTPUT" ), context, source->fields(),
|
||||
source->wkbType(), source->sourceCrs(), nonMatchingSinkId ) );
|
||||
std::unique_ptr< QgsFeatureSink > nonMatchingSink( parameterAsSink( parameters, QStringLiteral( "FAIL_OUTPUT" ), context, nonMatchingSinkId, source->fields(),
|
||||
source->wkbType(), source->sourceCrs() ) );
|
||||
|
||||
|
||||
int idx = source->fields().lookupField( fieldName );
|
||||
|
@ -369,7 +369,7 @@ bool QgsProcessingAlgorithm::parameterAsBool( const QVariantMap ¶meters, con
|
||||
return QgsProcessingParameters::parameterAsBool( parameterDefinition( name ), parameters, context );
|
||||
}
|
||||
|
||||
QgsFeatureSink *QgsProcessingAlgorithm::parameterAsSink( const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context, const QgsFields &fields, QgsWkbTypes::Type geometryType, const QgsCoordinateReferenceSystem &crs, QString &destinationIdentifier ) const
|
||||
QgsFeatureSink *QgsProcessingAlgorithm::parameterAsSink( const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context, QString &destinationIdentifier, const QgsFields &fields, QgsWkbTypes::Type geometryType, const QgsCoordinateReferenceSystem &crs ) const
|
||||
{
|
||||
return QgsProcessingParameters::parameterAsSink( parameterDefinition( name ), parameters, fields, geometryType, crs, context, destinationIdentifier );
|
||||
}
|
||||
|
@ -358,9 +358,8 @@ class CORE_EXPORT QgsProcessingAlgorithm
|
||||
*
|
||||
* This function creates a new object and the caller takes responsibility for deleting the returned object.
|
||||
*/
|
||||
QgsFeatureSink *parameterAsSink( const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context,
|
||||
const QgsFields &fields, QgsWkbTypes::Type geometryType, const QgsCoordinateReferenceSystem &crs,
|
||||
QString &destinationIdentifier SIP_OUT ) const SIP_FACTORY;
|
||||
QgsFeatureSink *parameterAsSink( const QVariantMap ¶meters, const QString &name, QgsProcessingContext &context, QString &destinationIdentifier SIP_OUT,
|
||||
const QgsFields &fields, QgsWkbTypes::Type geometryType = QgsWkbTypes::NoGeometry, const QgsCoordinateReferenceSystem &crs = QgsCoordinateReferenceSystem() ) const SIP_FACTORY;
|
||||
|
||||
/**
|
||||
* Evaluates the parameter with matching \a definition to a feature source.
|
||||
|
Loading…
x
Reference in New Issue
Block a user