Skip to content

Commit 3104c10

Browse files
alexbruywonder-sk
authored andcommittedMar 30, 2023
do not index input point cloud layers in pdal algorithms
1 parent 48fcb57 commit 3104c10

21 files changed

+37
-31
lines changed
 

‎python/core/auto_generated/processing/qgsprocessingalgorithm.sip.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -921,9 +921,10 @@ Evaluates the parameter with matching ``name`` to a matrix/table of values.
921921
Tables are collapsed to a 1 dimensional list.
922922
%End
923923

924-
QList< QgsMapLayer *> parameterAsLayerList( const QVariantMap &parameters, const QString &name, QgsProcessingContext &context ) const;
924+
QList< QgsMapLayer *> parameterAsLayerList( const QVariantMap &parameters, const QString &name, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags = QgsProcessing::LayerOptionsFlags() ) const;
925925
%Docstring
926926
Evaluates the parameter with matching ``name`` to a list of map layers.
927+
The ``flags`` are used to set options for loading layers (e.g. skip index generation).
927928
%End
928929

929930
QStringList parameterAsFileList( const QVariantMap &parameters, const QString &name, QgsProcessingContext &context ) const;

‎python/core/auto_generated/processing/qgsprocessingparameters.sip.in

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1434,14 +1434,16 @@ Tables are collapsed to a 1 dimensional list.
14341434
.. versionadded:: 3.4
14351435
%End
14361436

1437-
static QList< QgsMapLayer *> parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1437+
static QList< QgsMapLayer *> parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags = QgsProcessing::LayerOptionsFlags() );
14381438
%Docstring
14391439
Evaluates the parameter with matching ``definition`` to a list of map layers.
1440+
The ``flags`` are used to set options for loading layers (e.g. skip index generation).
14401441
%End
14411442

1442-
static QList< QgsMapLayer *> parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1443+
static QList< QgsMapLayer *> parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags = QgsProcessing::LayerOptionsFlags() );
14431444
%Docstring
14441445
Evaluates the parameter with matching ``definition`` and ``value`` to a list of map layers.
1446+
The ``flags`` are used to set options for loading layers (e.g. skip index generation).
14451447

14461448
.. versionadded:: 3.4
14471449
%End

‎src/analysis/processing/pdal/qgsalgorithmpdalboundary.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ QStringList QgsPdalBoundaryAlgorithm::createArgumentLists( const QVariantMap &pa
6969
{
7070
Q_UNUSED( feedback );
7171

72-
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context );
72+
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
7373
if ( !layer )
7474
throw QgsProcessingException( invalidPointCloudError( parameters, QStringLiteral( "INPUT" ) ) );
7575

‎src/analysis/processing/pdal/qgsalgorithmpdalbuildvpc.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ QStringList QgsPdalBuildVpcAlgorithm::createArgumentLists( const QVariantMap &pa
6767
{
6868
Q_UNUSED( feedback );
6969

70-
const QList< QgsMapLayer * > layers = parameterAsLayerList( parameters, QStringLiteral( "LAYERS" ), context );
70+
const QList< QgsMapLayer * > layers = parameterAsLayerList( parameters, QStringLiteral( "LAYERS" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
7171
if ( layers.empty() )
7272
{
7373
feedback->reportError( QObject::tr( "No layers selected" ), true );

‎src/analysis/processing/pdal/qgsalgorithmpdalclip.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ void QgsPdalClipAlgorithm::initAlgorithm( const QVariantMap & )
6767

6868
QStringList QgsPdalClipAlgorithm::createArgumentLists( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback )
6969
{
70-
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context );
70+
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
7171
if ( !layer )
7272
throw QgsProcessingException( invalidPointCloudError( parameters, QStringLiteral( "INPUT" ) ) );
7373

‎src/analysis/processing/pdal/qgsalgorithmpdalconvertformat.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ QStringList QgsPdalConvertFormatAlgorithm::createArgumentLists( const QVariantMa
6767
{
6868
Q_UNUSED( feedback );
6969

70-
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context );
70+
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
7171
if ( !layer )
7272
throw QgsProcessingException( invalidPointCloudError( parameters, QStringLiteral( "INPUT" ) ) );
7373

‎src/analysis/processing/pdal/qgsalgorithmpdaldensity.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ QStringList QgsPdalDensityAlgorithm::createArgumentLists( const QVariantMap &par
7777
{
7878
Q_UNUSED( feedback );
7979

80-
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context );
80+
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
8181
if ( !layer )
8282
throw QgsProcessingException( invalidPointCloudError( parameters, QStringLiteral( "INPUT" ) ) );
8383

‎src/analysis/processing/pdal/qgsalgorithmpdalexportraster.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ QStringList QgsPdalExportRasterAlgorithm::createArgumentLists( const QVariantMap
9393
{
9494
Q_UNUSED( feedback );
9595

96-
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context );
96+
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
9797
if ( !layer )
9898
throw QgsProcessingException( invalidPointCloudError( parameters, QStringLiteral( "INPUT" ) ) );
9999

‎src/analysis/processing/pdal/qgsalgorithmpdalexportrastertin.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ QStringList QgsPdalExportRasterTinAlgorithm::createArgumentLists( const QVariant
7777
{
7878
Q_UNUSED( feedback );
7979

80-
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context );
80+
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
8181
if ( !layer )
8282
throw QgsProcessingException( invalidPointCloudError( parameters, QStringLiteral( "INPUT" ) ) );
8383

‎src/analysis/processing/pdal/qgsalgorithmpdalexportvector.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ QStringList QgsPdalExportVectorAlgorithm::createArgumentLists( const QVariantMap
8383
{
8484
Q_UNUSED( feedback );
8585

86-
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context );
86+
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
8787
if ( !layer )
8888
throw QgsProcessingException( invalidPointCloudError( parameters, QStringLiteral( "INPUT" ) ) );
8989

‎src/analysis/processing/pdal/qgsalgorithmpdalfilter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ QStringList QgsPdalFilterAlgorithm::createArgumentLists( const QVariantMap &para
6868
{
6969
Q_UNUSED( feedback );
7070

71-
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context );
71+
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
7272
if ( !layer )
7373
throw QgsProcessingException( invalidPointCloudError( parameters, QStringLiteral( "INPUT" ) ) );
7474

‎src/analysis/processing/pdal/qgsalgorithmpdalfixprojection.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ QStringList QgsPdalFixProjectionAlgorithm::createArgumentLists( const QVariantMa
6868
{
6969
Q_UNUSED( feedback );
7070

71-
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context );
71+
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
7272
if ( !layer )
7373
throw QgsProcessingException( invalidPointCloudError( parameters, QStringLiteral( "INPUT" ) ) );
7474

‎src/analysis/processing/pdal/qgsalgorithmpdalinformation.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ QStringList QgsPdalInformationAlgorithm::createArgumentLists( const QVariantMap
131131
{
132132
Q_UNUSED( feedback );
133133

134-
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context );
134+
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
135135
if ( !layer )
136136
throw QgsProcessingException( invalidPointCloudError( parameters, QStringLiteral( "INPUT" ) ) );
137137

‎src/analysis/processing/pdal/qgsalgorithmpdalmerge.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ QStringList QgsPdalMergeAlgorithm::createArgumentLists( const QVariantMap &param
6767
{
6868
Q_UNUSED( feedback );
6969

70-
const QList< QgsMapLayer * > layers = parameterAsLayerList( parameters, QStringLiteral( "LAYERS" ), context );
70+
const QList< QgsMapLayer * > layers = parameterAsLayerList( parameters, QStringLiteral( "LAYERS" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
7171
if ( layers.empty() )
7272
{
7373
feedback->reportError( QObject::tr( "No layers selected" ), true );

‎src/analysis/processing/pdal/qgsalgorithmpdalreproject.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ QStringList QgsPdalReprojectAlgorithm::createArgumentLists( const QVariantMap &p
7474
{
7575
Q_UNUSED( feedback );
7676

77-
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context );
77+
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
7878
if ( !layer )
7979
throw QgsProcessingException( invalidPointCloudError( parameters, QStringLiteral( "INPUT" ) ) );
8080

‎src/analysis/processing/pdal/qgsalgorithmpdalthin.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ QStringList QgsPdalThinAlgorithm::createArgumentLists( const QVariantMap &parame
6969
{
7070
Q_UNUSED( feedback );
7171

72-
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context );
72+
QgsPointCloudLayer *layer = parameterAsPointCloudLayer( parameters, QStringLiteral( "INPUT" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
7373
if ( !layer )
7474
throw QgsProcessingException( invalidPointCloudError( parameters, QStringLiteral( "INPUT" ) ) );
7575

‎src/analysis/processing/pdal/qgsalgorithmpdaltile.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ QStringList QgsPdalTileAlgorithm::createArgumentLists( const QVariantMap &parame
7474
{
7575
Q_UNUSED( feedback );
7676

77-
const QList< QgsMapLayer * > layers = parameterAsLayerList( parameters, QStringLiteral( "LAYERS" ), context );
77+
const QList< QgsMapLayer * > layers = parameterAsLayerList( parameters, QStringLiteral( "LAYERS" ), context, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
7878
if ( layers.empty() )
7979
{
8080
feedback->reportError( QObject::tr( "No layers selected" ), true );

‎src/core/processing/qgsprocessingalgorithm.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -820,9 +820,9 @@ QVariantList QgsProcessingAlgorithm::parameterAsMatrix( const QVariantMap &param
820820
return QgsProcessingParameters::parameterAsMatrix( parameterDefinition( name ), parameters, context );
821821
}
822822

823-
QList<QgsMapLayer *> QgsProcessingAlgorithm::parameterAsLayerList( const QVariantMap &parameters, const QString &name, QgsProcessingContext &context ) const
823+
QList<QgsMapLayer *> QgsProcessingAlgorithm::parameterAsLayerList( const QVariantMap &parameters, const QString &name, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags ) const
824824
{
825-
return QgsProcessingParameters::parameterAsLayerList( parameterDefinition( name ), parameters, context );
825+
return QgsProcessingParameters::parameterAsLayerList( parameterDefinition( name ), parameters, context, flags );
826826
}
827827

828828
QStringList QgsProcessingAlgorithm::parameterAsFileList( const QVariantMap &parameters, const QString &name, QgsProcessingContext &context ) const

‎src/core/processing/qgsprocessingalgorithm.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -925,8 +925,9 @@ class CORE_EXPORT QgsProcessingAlgorithm
925925

926926
/**
927927
* Evaluates the parameter with matching \a name to a list of map layers.
928+
* The \a flags are used to set options for loading layers (e.g. skip index generation).
928929
*/
929-
QList< QgsMapLayer *> parameterAsLayerList( const QVariantMap &parameters, const QString &name, QgsProcessingContext &context ) const;
930+
QList< QgsMapLayer *> parameterAsLayerList( const QVariantMap &parameters, const QString &name, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags = QgsProcessing::LayerOptionsFlags() ) const;
930931

931932
/**
932933
* Evaluates the parameter with matching \a name to a list of files (for QgsProcessingParameterMultipleLayers in QgsProcessing:TypeFile mode).

‎src/core/processing/qgsprocessingparameters.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1752,15 +1752,15 @@ QVariantList QgsProcessingParameters::parameterAsMatrix( const QgsProcessingPara
17521752
return result;
17531753
}
17541754

1755-
QList<QgsMapLayer *> QgsProcessingParameters::parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context )
1755+
QList<QgsMapLayer *> QgsProcessingParameters::parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags )
17561756
{
17571757
if ( !definition )
17581758
return QList<QgsMapLayer *>();
17591759

1760-
return parameterAsLayerList( definition, parameters.value( definition->name() ), context );
1760+
return parameterAsLayerList( definition, parameters.value( definition->name() ), context, flags );
17611761
}
17621762

1763-
QList<QgsMapLayer *> QgsProcessingParameters::parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context )
1763+
QList<QgsMapLayer *> QgsProcessingParameters::parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags )
17641764
{
17651765
if ( !definition )
17661766
return QList<QgsMapLayer *>();
@@ -1774,7 +1774,7 @@ QList<QgsMapLayer *> QgsProcessingParameters::parameterAsLayerList( const QgsPro
17741774
QList<QgsMapLayer *> layers;
17751775

17761776
std::function< void( const QVariant &var ) > processVariant;
1777-
processVariant = [ &layers, &context, &definition, &processVariant ]( const QVariant & var )
1777+
processVariant = [ &layers, &context, &definition, &processVariant, flags ]( const QVariant & var )
17781778
{
17791779
if ( var.type() == QVariant::List )
17801780
{
@@ -1810,7 +1810,7 @@ QList<QgsMapLayer *> QgsProcessingParameters::parameterAsLayerList( const QgsPro
18101810
}
18111811
else
18121812
{
1813-
QgsMapLayer *alayer = QgsProcessingUtils::mapLayerFromString( var.toString(), context );
1813+
QgsMapLayer *alayer = QgsProcessingUtils::mapLayerFromString( var.toString(), context, flags );
18141814
if ( alayer )
18151815
layers << alayer;
18161816
}
@@ -4156,7 +4156,7 @@ bool QgsProcessingParameterMultipleLayers::checkValueIsAcceptable( const QVarian
41564156
return true;
41574157

41584158
if ( mLayerType != QgsProcessing::TypeFile )
4159-
return QgsProcessingUtils::mapLayerFromString( input.toString(), *context );
4159+
return QgsProcessingUtils::mapLayerFromString( input.toString(), *context, true, QgsProcessingUtils::LayerHint::UnknownType, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration );
41604160
else
41614161
return true;
41624162
}
@@ -4179,7 +4179,7 @@ bool QgsProcessingParameterMultipleLayers::checkValueIsAcceptable( const QVarian
41794179
if ( qobject_cast< QgsMapLayer * >( qvariant_cast<QObject *>( v ) ) )
41804180
continue;
41814181

4182-
if ( !QgsProcessingUtils::mapLayerFromString( v.toString(), *context ) )
4182+
if ( !QgsProcessingUtils::mapLayerFromString( v.toString(), *context, true, QgsProcessingUtils::LayerHint::UnknownType, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration ) )
41834183
return false;
41844184
}
41854185
}
@@ -4201,7 +4201,7 @@ bool QgsProcessingParameterMultipleLayers::checkValueIsAcceptable( const QVarian
42014201
const auto constToStringList = input.toStringList();
42024202
for ( const QString &v : constToStringList )
42034203
{
4204-
if ( !QgsProcessingUtils::mapLayerFromString( v, *context ) )
4204+
if ( !QgsProcessingUtils::mapLayerFromString( v, *context, true, QgsProcessingUtils::LayerHint::UnknownType, QgsProcessing::LayerOptionsFlag::SkipIndexGeneration ) )
42054205
return false;
42064206
}
42074207
}

‎src/core/processing/qgsprocessingparameters.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1535,14 +1535,16 @@ class CORE_EXPORT QgsProcessingParameters
15351535

15361536
/**
15371537
* Evaluates the parameter with matching \a definition to a list of map layers.
1538+
* The \a flags are used to set options for loading layers (e.g. skip index generation).
15381539
*/
1539-
static QList< QgsMapLayer *> parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1540+
static QList< QgsMapLayer *> parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags = QgsProcessing::LayerOptionsFlags() );
15401541

15411542
/**
15421543
* Evaluates the parameter with matching \a definition and \a value to a list of map layers.
1544+
* The \a flags are used to set options for loading layers (e.g. skip index generation).
15431545
* \since QGIS 3.4
15441546
*/
1545-
static QList< QgsMapLayer *> parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1547+
static QList< QgsMapLayer *> parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags = QgsProcessing::LayerOptionsFlags() );
15461548

15471549
/**
15481550
* Evaluates the parameter with matching \a definition to a list of files (for QgsProcessingParameterMultipleLayers in QgsProcessing:TypeFile mode).

0 commit comments

Comments
 (0)
Please sign in to comment.