Skip to content

Commit d05f95f

Browse files
committedMay 10, 2018
[processing] Ensure unset parameters are translated to Python
None values when representing parameters as pythong strings
1 parent e55bb55 commit d05f95f

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed
 

‎src/core/processing/qgsprocessingparameters.cpp

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1225,6 +1225,9 @@ bool QgsProcessingParameterDefinition::checkValueIsAcceptable( const QVariant &i
12251225

12261226
QString QgsProcessingParameterDefinition::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
12271227
{
1228+
if ( !value.isValid() )
1229+
return QStringLiteral( "None" );
1230+
12281231
if ( value.canConvert<QgsProperty>() )
12291232
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
12301233

@@ -1291,6 +1294,9 @@ QgsProcessingParameterDefinition *QgsProcessingParameterBoolean::clone() const
12911294

12921295
QString QgsProcessingParameterBoolean::valueAsPythonString( const QVariant &val, QgsProcessingContext & ) const
12931296
{
1297+
if ( !val.isValid() )
1298+
return QStringLiteral( "None" );
1299+
12941300
if ( val.canConvert<QgsProperty>() )
12951301
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( val.value< QgsProperty >().asExpression() );
12961302
return val.toBool() ? QStringLiteral( "True" ) : QStringLiteral( "False" );
@@ -1344,6 +1350,9 @@ bool QgsProcessingParameterCrs::checkValueIsAcceptable( const QVariant &input, Q
13441350

13451351
QString QgsProcessingParameterCrs::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
13461352
{
1353+
if ( !value.isValid() )
1354+
return QStringLiteral( "None" );
1355+
13471356
if ( value.canConvert<QgsProperty>() )
13481357
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
13491358

@@ -1405,6 +1414,9 @@ bool QgsProcessingParameterMapLayer::checkValueIsAcceptable( const QVariant &inp
14051414

14061415
QString QgsProcessingParameterMapLayer::valueAsPythonString( const QVariant &val, QgsProcessingContext &context ) const
14071416
{
1417+
if ( !val.isValid() )
1418+
return QStringLiteral( "None" );
1419+
14081420
if ( val.canConvert<QgsProperty>() )
14091421
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( val.value< QgsProperty >().asExpression() );
14101422

@@ -1487,6 +1499,9 @@ bool QgsProcessingParameterExtent::checkValueIsAcceptable( const QVariant &input
14871499

14881500
QString QgsProcessingParameterExtent::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
14891501
{
1502+
if ( !value.isValid() )
1503+
return QStringLiteral( "None" );
1504+
14901505
if ( value.canConvert<QgsProperty>() )
14911506
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
14921507

@@ -1574,6 +1589,9 @@ bool QgsProcessingParameterPoint::checkValueIsAcceptable( const QVariant &input,
15741589

15751590
QString QgsProcessingParameterPoint::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
15761591
{
1592+
if ( !value.isValid() )
1593+
return QStringLiteral( "None" );
1594+
15771595
if ( value.canConvert<QgsProperty>() )
15781596
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
15791597

@@ -1714,6 +1732,9 @@ bool QgsProcessingParameterMatrix::checkValueIsAcceptable( const QVariant &input
17141732

17151733
QString QgsProcessingParameterMatrix::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
17161734
{
1735+
if ( !value.isValid() )
1736+
return QStringLiteral( "None" );
1737+
17171738
if ( value.canConvert<QgsProperty>() )
17181739
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
17191740

@@ -1874,6 +1895,9 @@ bool QgsProcessingParameterMultipleLayers::checkValueIsAcceptable( const QVarian
18741895

18751896
QString QgsProcessingParameterMultipleLayers::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
18761897
{
1898+
if ( !value.isValid() )
1899+
return QStringLiteral( "None" );
1900+
18771901
if ( value.canConvert<QgsProperty>() )
18781902
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
18791903

@@ -2025,6 +2049,9 @@ bool QgsProcessingParameterNumber::checkValueIsAcceptable( const QVariant &input
20252049

20262050
QString QgsProcessingParameterNumber::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
20272051
{
2052+
if ( !value.isValid() )
2053+
return QStringLiteral( "None" );
2054+
20282055
if ( value.canConvert<QgsProperty>() )
20292056
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
20302057

@@ -2155,6 +2182,9 @@ bool QgsProcessingParameterRange::checkValueIsAcceptable( const QVariant &input,
21552182

21562183
QString QgsProcessingParameterRange::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
21572184
{
2185+
if ( !value.isValid() )
2186+
return QStringLiteral( "None" );
2187+
21582188
if ( value.canConvert<QgsProperty>() )
21592189
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
21602190

@@ -2241,6 +2271,9 @@ bool QgsProcessingParameterRasterLayer::checkValueIsAcceptable( const QVariant &
22412271

22422272
QString QgsProcessingParameterRasterLayer::valueAsPythonString( const QVariant &val, QgsProcessingContext &context ) const
22432273
{
2274+
if ( !val.isValid() )
2275+
return QStringLiteral( "None" );
2276+
22442277
if ( val.canConvert<QgsProperty>() )
22452278
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( val.value< QgsProperty >().asExpression() );
22462279

@@ -2330,6 +2363,9 @@ bool QgsProcessingParameterEnum::checkValueIsAcceptable( const QVariant &input,
23302363

23312364
QString QgsProcessingParameterEnum::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
23322365
{
2366+
if ( !value.isValid() )
2367+
return QStringLiteral( "None" );
2368+
23332369
if ( value.canConvert<QgsProperty>() )
23342370
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
23352371

@@ -2443,6 +2479,9 @@ QgsProcessingParameterDefinition *QgsProcessingParameterString::clone() const
24432479

24442480
QString QgsProcessingParameterString::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
24452481
{
2482+
if ( !value.isValid() )
2483+
return QStringLiteral( "None" );
2484+
24462485
if ( value.canConvert<QgsProperty>() )
24472486
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
24482487

@@ -2525,6 +2564,9 @@ QgsProcessingParameterDefinition *QgsProcessingParameterExpression::clone() cons
25252564

25262565
QString QgsProcessingParameterExpression::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
25272566
{
2567+
if ( !value.isValid() )
2568+
return QStringLiteral( "None" );
2569+
25282570
if ( value.canConvert<QgsProperty>() )
25292571
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
25302572

@@ -2623,6 +2665,9 @@ bool QgsProcessingParameterVectorLayer::checkValueIsAcceptable( const QVariant &
26232665

26242666
QString QgsProcessingParameterVectorLayer::valueAsPythonString( const QVariant &val, QgsProcessingContext &context ) const
26252667
{
2668+
if ( !val.isValid() )
2669+
return QStringLiteral( "None" );
2670+
26262671
if ( val.canConvert<QgsProperty>() )
26272672
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( val.value< QgsProperty >().asExpression() );
26282673

@@ -2723,6 +2768,9 @@ bool QgsProcessingParameterField::checkValueIsAcceptable( const QVariant &input,
27232768

27242769
QString QgsProcessingParameterField::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
27252770
{
2771+
if ( !value.isValid() )
2772+
return QStringLiteral( "None" );
2773+
27262774
if ( value.canConvert<QgsProperty>() )
27272775
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
27282776

@@ -2942,6 +2990,9 @@ bool QgsProcessingParameterFeatureSource::checkValueIsAcceptable( const QVariant
29422990

29432991
QString QgsProcessingParameterFeatureSource::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
29442992
{
2993+
if ( !value.isValid() )
2994+
return QStringLiteral( "None" );
2995+
29452996
if ( value.canConvert<QgsProperty>() )
29462997
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
29472998

@@ -3120,6 +3171,9 @@ bool QgsProcessingParameterFeatureSink::checkValueIsAcceptable( const QVariant &
31203171

31213172
QString QgsProcessingParameterFeatureSink::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
31223173
{
3174+
if ( !value.isValid() )
3175+
return QStringLiteral( "None" );
3176+
31233177
if ( value.canConvert<QgsProperty>() )
31243178
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
31253179

@@ -3322,6 +3376,9 @@ bool QgsProcessingParameterRasterDestination::checkValueIsAcceptable( const QVar
33223376

33233377
QString QgsProcessingParameterRasterDestination::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
33243378
{
3379+
if ( !value.isValid() )
3380+
return QStringLiteral( "None" );
3381+
33253382
if ( value.canConvert<QgsProperty>() )
33263383
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
33273384

@@ -3415,6 +3472,9 @@ bool QgsProcessingParameterFileDestination::checkValueIsAcceptable( const QVaria
34153472

34163473
QString QgsProcessingParameterFileDestination::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
34173474
{
3475+
if ( !value.isValid() )
3476+
return QStringLiteral( "None" );
3477+
34183478
if ( value.canConvert<QgsProperty>() )
34193479
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
34203480

@@ -3628,6 +3688,9 @@ bool QgsProcessingParameterVectorDestination::checkValueIsAcceptable( const QVar
36283688

36293689
QString QgsProcessingParameterVectorDestination::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
36303690
{
3691+
if ( !value.isValid() )
3692+
return QStringLiteral( "None" );
3693+
36313694
if ( value.canConvert<QgsProperty>() )
36323695
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
36333696

@@ -3800,6 +3863,9 @@ bool QgsProcessingParameterBand::checkValueIsAcceptable( const QVariant &input,
38003863

38013864
QString QgsProcessingParameterBand::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
38023865
{
3866+
if ( !value.isValid() )
3867+
return QStringLiteral( "None" );
3868+
38033869
if ( value.canConvert<QgsProperty>() )
38043870
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
38053871

0 commit comments

Comments
 (0)
Please sign in to comment.