11
11
12
12
13
13
14
-
15
14
class QgsProcessingFeatureSourceDefinition
16
15
{
17
16
%Docstring
@@ -1308,8 +1307,72 @@ class QgsProcessingParameterFeatureSource : QgsProcessingParameterDefinition
1308
1307
1309
1308
};
1310
1309
1310
+ class QgsProcessingDestinationParameter : QgsProcessingParameterDefinition
1311
+ {
1312
+ %Docstring
1313
+ Base class for all parameter definitions which represent file or layer destinations, e.g. parameters
1314
+ which are used for the destination for layers output by an algorithm.
1315
+ .. versionadded:: 3.0
1316
+ %End
1311
1317
1312
- class QgsProcessingParameterFeatureSink : QgsProcessingParameterDefinition
1318
+ %TypeHeaderCode
1319
+ #include "qgsprocessingparameters.h"
1320
+ %End
1321
+ public:
1322
+
1323
+ QgsProcessingDestinationParameter( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
1324
+ bool optional = false );
1325
+ %Docstring
1326
+ Constructor for QgsProcessingDestinationParameter.
1327
+ %End
1328
+
1329
+ virtual bool isDestination() const;
1330
+ virtual QVariantMap toVariantMap() const;
1331
+
1332
+ virtual bool fromVariantMap( const QVariantMap &map );
1333
+
1334
+
1335
+ virtual QgsProcessingOutputDefinition *toOutputDefinition() const = 0 /Factory/;
1336
+ %Docstring
1337
+ Returns a new QgsProcessingOutputDefinition corresponding to the definition of the destination
1338
+ parameter.
1339
+ :rtype: QgsProcessingOutputDefinition
1340
+ %End
1341
+
1342
+ bool supportsNonFileBasedOutputs() const;
1343
+ %Docstring
1344
+ Returns true if the destination parameter supports non filed-based outputs,
1345
+ such as memory layers or direct database outputs.
1346
+ .. seealso:: setSupportsNonFileBasedOutputs()
1347
+ :rtype: bool
1348
+ %End
1349
+
1350
+ void setSupportsNonFileBasedOutputs( bool supportsNonFileBasedOutputs );
1351
+ %Docstring
1352
+ Sets whether the destination parameter supports non filed-based outputs,
1353
+ such as memory layers or direct database outputs.
1354
+ .. seealso:: supportsNonFileBasedOutputs()
1355
+ %End
1356
+
1357
+ virtual QString defaultFileExtension() const = 0;
1358
+ %Docstring
1359
+ Returns the default file extension for destination file paths
1360
+ associated with this parameter.
1361
+ :rtype: str
1362
+ %End
1363
+
1364
+ virtual QString generateTemporaryDestination() const;
1365
+ %Docstring
1366
+ Generates a temporary destination value for this parameter. The returned
1367
+ value will be a file path or QGIS data provider URI suitable for
1368
+ temporary storage of created layers and files.
1369
+ :rtype: str
1370
+ %End
1371
+
1372
+ };
1373
+
1374
+
1375
+ class QgsProcessingParameterFeatureSink : QgsProcessingDestinationParameter
1313
1376
{
1314
1377
%Docstring
1315
1378
A feature sink output for processing algorithms.
@@ -1330,11 +1393,14 @@ class QgsProcessingParameterFeatureSink : QgsProcessingParameterDefinition
1330
1393
%End
1331
1394
1332
1395
virtual QString type() const;
1333
- virtual bool isDestination() const;
1334
1396
virtual bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = 0 ) const;
1335
1397
1336
1398
virtual QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const;
1337
1399
1400
+ virtual QgsProcessingOutputDefinition *toOutputDefinition() const /Factory/;
1401
+
1402
+ virtual QString defaultFileExtension() const;
1403
+
1338
1404
1339
1405
QgsProcessingParameterDefinition::LayerType dataType() const;
1340
1406
%Docstring
@@ -1360,11 +1426,13 @@ class QgsProcessingParameterFeatureSink : QgsProcessingParameterDefinition
1360
1426
1361
1427
virtual bool fromVariantMap( const QVariantMap &map );
1362
1428
1429
+ virtual QString generateTemporaryDestination() const;
1430
+
1363
1431
1364
1432
};
1365
1433
1366
1434
1367
- class QgsProcessingParameterVectorOutput : QgsProcessingParameterDefinition
1435
+ class QgsProcessingParameterVectorOutput : QgsProcessingDestinationParameter
1368
1436
{
1369
1437
%Docstring
1370
1438
A vector layer output parameter. Consider using the more flexible QgsProcessingParameterFeatureSink wherever
@@ -1384,11 +1452,14 @@ class QgsProcessingParameterVectorOutput : QgsProcessingParameterDefinition
1384
1452
%End
1385
1453
1386
1454
virtual QString type() const;
1387
- virtual bool isDestination() const;
1388
1455
virtual bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = 0 ) const;
1389
1456
1390
1457
virtual QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const;
1391
1458
1459
+ virtual QgsProcessingOutputDefinition *toOutputDefinition() const /Factory/;
1460
+
1461
+ virtual QString defaultFileExtension() const;
1462
+
1392
1463
1393
1464
QgsProcessingParameterDefinition::LayerType dataType() const;
1394
1465
%Docstring
@@ -1417,7 +1488,7 @@ class QgsProcessingParameterVectorOutput : QgsProcessingParameterDefinition
1417
1488
1418
1489
};
1419
1490
1420
- class QgsProcessingParameterRasterOutput : QgsProcessingParameterDefinition
1491
+ class QgsProcessingParameterRasterOutput : QgsProcessingDestinationParameter
1421
1492
{
1422
1493
%Docstring
1423
1494
A raster layer output parameter.
@@ -1437,14 +1508,17 @@ class QgsProcessingParameterRasterOutput : QgsProcessingParameterDefinition
1437
1508
%End
1438
1509
1439
1510
virtual QString type() const;
1440
- virtual bool isDestination() const;
1441
1511
virtual bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = 0 ) const;
1442
1512
1443
1513
virtual QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const;
1444
1514
1515
+ virtual QgsProcessingOutputDefinition *toOutputDefinition() const /Factory/;
1516
+
1517
+ virtual QString defaultFileExtension() const;
1518
+
1445
1519
};
1446
1520
1447
- class QgsProcessingParameterFileOutput : QgsProcessingParameterDefinition
1521
+ class QgsProcessingParameterFileOutput : QgsProcessingDestinationParameter
1448
1522
{
1449
1523
%Docstring
1450
1524
A generic file based output parameter.
@@ -1465,11 +1539,14 @@ class QgsProcessingParameterFileOutput : QgsProcessingParameterDefinition
1465
1539
%End
1466
1540
1467
1541
virtual QString type() const;
1468
- virtual bool isDestination() const;
1469
1542
virtual bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = 0 ) const;
1470
1543
1471
1544
virtual QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const;
1472
1545
1546
+ virtual QgsProcessingOutputDefinition *toOutputDefinition() const /Factory/;
1547
+
1548
+ virtual QString defaultFileExtension() const;
1549
+
1473
1550
1474
1551
QString fileFilter() const;
1475
1552
%Docstring
@@ -1491,7 +1568,7 @@ class QgsProcessingParameterFileOutput : QgsProcessingParameterDefinition
1491
1568
1492
1569
};
1493
1570
1494
- class QgsProcessingParameterFolderOutput : QgsProcessingParameterDefinition
1571
+ class QgsProcessingParameterFolderOutput : QgsProcessingDestinationParameter
1495
1572
{
1496
1573
%Docstring
1497
1574
A folder output parameter.
@@ -1511,9 +1588,12 @@ class QgsProcessingParameterFolderOutput : QgsProcessingParameterDefinition
1511
1588
%End
1512
1589
1513
1590
virtual QString type() const;
1514
- virtual bool isDestination() const;
1515
1591
virtual bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = 0 ) const;
1516
1592
1593
+ virtual QgsProcessingOutputDefinition *toOutputDefinition() const /Factory/;
1594
+
1595
+ virtual QString defaultFileExtension() const;
1596
+
1517
1597
1518
1598
};
1519
1599
0 commit comments