@@ -1356,12 +1356,7 @@ void QgsSelectByLocationAlgorithm::initAlgorithm( const QVariantMap & )
1356
1356
1357
1357
addParameter ( new QgsProcessingParameterVectorLayer ( QStringLiteral ( " INPUT" ), QObject::tr ( " Select features from" ),
1358
1358
QList< int >() << QgsProcessing::TypeVectorAnyGeometry ) );
1359
-
1360
-
1361
- addParameter ( new QgsProcessingParameterEnum ( QStringLiteral ( " PREDICATE" ),
1362
- QObject::tr ( " Where the features are (geometric predicate)" ),
1363
- predicateOptionsList (), true , QVariant::fromValue ( QList< int >() << 0 ) ) );
1364
-
1359
+ addPredicateParameter ();
1365
1360
addParameter ( new QgsProcessingParameterFeatureSource ( QStringLiteral ( " INTERSECT" ),
1366
1361
QObject::tr ( " By comparing to the features from" ),
1367
1362
QList< int >() << QgsProcessing::TypeVectorAnyGeometry ) );
@@ -1529,6 +1524,23 @@ void QgsLocationBasedAlgorithm::process( QgsFeatureSource *targetSource,
1529
1524
}
1530
1525
}
1531
1526
1527
+ void QgsLocationBasedAlgorithm::addPredicateParameter ()
1528
+ {
1529
+ std::unique_ptr< QgsProcessingParameterEnum > predicateParam ( new QgsProcessingParameterEnum ( QStringLiteral ( " PREDICATE" ),
1530
+ QObject::tr ( " Where the features are (geometric predicate)" ),
1531
+ predicateOptionsList (), true , QVariant::fromValue ( QList< int >() << 0 ) ) );
1532
+
1533
+ QVariantMap predicateMetadata;
1534
+ QVariantMap widgetMetadata;
1535
+ widgetMetadata.insert ( QStringLiteral ( " class" ), QStringLiteral ( " processing.gui.wrappers.EnumWidgetWrapper" ) );
1536
+ widgetMetadata.insert ( QStringLiteral ( " useCheckBoxes" ), true );
1537
+ widgetMetadata.insert ( QStringLiteral ( " columns" ), 2 );
1538
+ predicateMetadata.insert ( QStringLiteral ( " widget_wrapper" ), widgetMetadata );
1539
+ predicateParam->setMetadata ( predicateMetadata );
1540
+
1541
+ addParameter ( predicateParam.release () );
1542
+ }
1543
+
1532
1544
QgsLocationBasedAlgorithm::Predicate QgsLocationBasedAlgorithm::reversePredicate ( QgsLocationBasedAlgorithm::Predicate predicate ) const
1533
1545
{
1534
1546
switch ( predicate )
@@ -1572,11 +1584,7 @@ void QgsExtractByLocationAlgorithm::initAlgorithm( const QVariantMap & )
1572
1584
{
1573
1585
addParameter ( new QgsProcessingParameterVectorLayer ( QStringLiteral ( " INPUT" ), QObject::tr ( " Extract features from" ),
1574
1586
QList< int >() << QgsProcessing::TypeVectorAnyGeometry ) );
1575
-
1576
- addParameter ( new QgsProcessingParameterEnum ( QStringLiteral ( " PREDICATE" ),
1577
- QObject::tr ( " Where the features are (geometric predicate)" ),
1578
- predicateOptionsList (), true , QVariant::fromValue ( QList< int >() << 0 ) ) );
1579
-
1587
+ addPredicateParameter ();
1580
1588
addParameter ( new QgsProcessingParameterFeatureSource ( QStringLiteral ( " INTERSECT" ),
1581
1589
QObject::tr ( " By comparing to the features from" ),
1582
1590
QList< int >() << QgsProcessing::TypeVectorAnyGeometry ) );
0 commit comments