-
-
Notifications
You must be signed in to change notification settings - Fork 3k
/
qgis.h
6592 lines (6074 loc) · 271 KB
/
qgis.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/***************************************************************************
qgis.h - QGIS namespace
-------------------
begin : Sat Jun 30 2002
copyright : (C) 2002 by Gary E.Sherman
email : sherman at mrcc.com
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef QGIS_H
#define QGIS_H
#include <QMetaEnum>
#include <cfloat>
#include <memory>
#include <cmath>
#include "qgis_core.h"
#include "qgis_sip.h"
#ifdef SIP_RUN
% ModuleHeaderCode
#include <qgis.h>
% End
% ModuleCode
int QgisEvent = QEvent::User + 1;
% End
#endif
#ifndef SIP_RUN
// qHash implementation for scoped enum type
// https://gitlab.com/frostasm/programming-knowledge-base/-/snippets/20120
#define QHASH_FOR_CLASS_ENUM(T) \
inline uint qHash(const T &t, uint seed) { \
return ::qHash(static_cast<typename std::underlying_type<T>::type>(t), seed); \
}
#endif
/**
* \ingroup core
* \brief The Qgis class provides global constants for use throughout the application.
*/
class CORE_EXPORT Qgis
{
Q_GADGET
Q_CLASSINFO( "RegisterEnumClassesUnscoped", "false" )
public:
/**
* Version string.
*
* \since QGIS 3.12
*/
static QString version();
/**
* Version number used for comparing versions using the "Check QGIS Version" function
*
* \since QGIS 3.12
*/
static int versionInt();
/**
* Release name
*
* \since QGIS 3.12
*/
static QString releaseName();
//! The development version
static const char *QGIS_DEV_VERSION;
/**
* The development version
*
* \since QGIS 3.12
*/
static QString devVersion();
// Enumerations
//
/**
* Authentication configuration storage capabilities.
*
* \since QGIS 3.40
*/
enum class AuthConfigurationStorageCapability: int SIP_ENUM_BASETYPE( IntFlag )
{
ClearStorage = 1 << 0, //!< Can clear all configurations from storage
ReadConfiguration = 1 << 1, //!< Can read an authentication configuration
UpdateConfiguration = 1 << 2, //!< Can update an authentication configuration
DeleteConfiguration = 1 << 3, //!< Can deleet an authentication configuration
CreateConfiguration = 1 << 4, //!< Can create a new authentication configuration
ReadCertificateIdentity = 1 << 5, //!< Can read a certificate identity
UpdateCertificateIdentity = 1 << 6, //!< Can update a certificate identity
DeleteCertificateIdentity = 1 << 7, //!< Can delete a certificate identity
CreateCertificateIdentity = 1 << 8, //!< Can create a new certificate identity
ReadSslCertificateCustomConfig = 1 << 9, //!< Can read a SSL certificate custom config
UpdateSslCertificateCustomConfig = 1 << 10, //!< Can update a SSL certificate custom config
DeleteSslCertificateCustomConfig = 1 << 11, //!< Can delete a SSL certificate custom config
CreateSslCertificateCustomConfig = 1 << 12, //!< Can create a new SSL certificate custom config
ReadCertificateAuthority = 1 << 13, //!< Can read a certificate authority
UpdateCertificateAuthority = 1 << 14, //!< Can update a certificate authority
DeleteCertificateAuthority = 1 << 15, //!< Can delete a certificate authority
CreateCertificateAuthority = 1 << 16, //!< Can create a new certificate authority
ReadCertificateTrustPolicy = 1 << 17, //!< Can read a certificate trust policy
UpdateCertificateTrustPolicy = 1 << 18, //!< Can update a certificate trust policy
DeleteCertificateTrustPolicy = 1 << 19, //!< Can delete a certificate trust policy
CreateCertificateTrustPolicy = 1 << 20, //!< Can create a new certificate trust policy
ReadMasterPassword = 1 << 21, //!< Can read the master password
UpdateMasterPassword = 1 << 22, //!< Can update the master password
DeleteMasterPassword = 1 << 23, //!< Can delete the master password
CreateMasterPassword = 1 << 24, //!< Can create a new master password
ReadSetting = 1 << 25, //!< Can read the authentication settings
UpdateSetting = 1 << 26, //!< Can update the authentication setting
DeleteSetting = 1 << 27, //!< Can delete the authentication setting
CreateSetting = 1 << 28, //!< Can create a new authentication setting
};
Q_ENUM( AuthConfigurationStorageCapability )
/**
* Authentication configuration storage capabilities
* \since QGIS 3.40
*/
Q_DECLARE_FLAGS( AuthConfigurationStorageCapabilities, AuthConfigurationStorageCapability )
Q_FLAG( AuthConfigurationStorageCapabilities )
/**
* \brief Level for messages
* This will be used both for message log and message bar in application.
*/
enum MessageLevel
{
Info = 0, //!< Information message
Warning = 1, //!< Warning message
Critical = 2, //!< Critical/error message
Success = 3, //!< Used for reporting a successful operation
NoLevel = 4, //!< No level
};
Q_ENUM( MessageLevel )
/**
* Types of layers that can be added to a map
*
* \since QGIS 3.30. Prior to 3.30 this was available as QgsMapLayerType.
*/
enum class LayerType SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsMapLayer, LayerType ) : int
{
Vector SIP_MONKEYPATCH_COMPAT_NAME( VectorLayer ), //!< Vector layer
Raster SIP_MONKEYPATCH_COMPAT_NAME( RasterLayer ), //!< Raster layer
Plugin SIP_MONKEYPATCH_COMPAT_NAME( PluginLayer ), //!< Plugin based layer
Mesh SIP_MONKEYPATCH_COMPAT_NAME( MeshLayer ), //!< Mesh layer. Added in QGIS 3.2
VectorTile SIP_MONKEYPATCH_COMPAT_NAME( VectorTileLayer ), //!< Vector tile layer. Added in QGIS 3.14
Annotation SIP_MONKEYPATCH_COMPAT_NAME( AnnotationLayer ), //!< Contains freeform, georeferenced annotations. Added in QGIS 3.16
PointCloud SIP_MONKEYPATCH_COMPAT_NAME( PointCloudLayer ), //!< Point cloud layer. Added in QGIS 3.18
Group SIP_MONKEYPATCH_COMPAT_NAME( GroupLayer ), //!< Composite group layer. Added in QGIS 3.24
TiledScene, //!< Tiled scene layer. Added in QGIS 3.34
};
Q_ENUM( LayerType )
/**
* Filter for layers
*
* \since QGIS 3.34. Prior to 3.34 this was available as QgsMapLayerProxyModel::Filter.
*/
enum class LayerFilter SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsMapLayerProxyModel, Filter ) : int SIP_ENUM_BASETYPE( IntFlag )
{
RasterLayer = 1,
NoGeometry = 2,
PointLayer = 4,
LineLayer = 8,
PolygonLayer = 16,
HasGeometry = PointLayer | LineLayer | PolygonLayer,
VectorLayer = NoGeometry | HasGeometry,
PluginLayer = 32,
WritableLayer = 64,
MeshLayer = 128, //!< QgsMeshLayer \since QGIS 3.6
VectorTileLayer = 256, //!< QgsVectorTileLayer \since QGIS 3.14
PointCloudLayer = 512, //!< QgsPointCloudLayer \since QGIS 3.18
AnnotationLayer = 1024, //!< QgsAnnotationLayer \since QGIS 3.22
TiledSceneLayer = 2048, //!< QgsTiledSceneLayer \since QGIS 3.34
All = RasterLayer | VectorLayer | PluginLayer | MeshLayer | VectorTileLayer | PointCloudLayer | AnnotationLayer | TiledSceneLayer, //!< All layers
SpatialLayer = RasterLayer | HasGeometry | PluginLayer | MeshLayer | VectorTileLayer | PointCloudLayer | AnnotationLayer | TiledSceneLayer //!< All spatial layers. \since QGIS 3.24
};
Q_DECLARE_FLAGS( LayerFilters, LayerFilter )
Q_FLAG( LayerFilters )
/**
* Flags for loading layer styles.
*
* \since QGIS 3.38
*/
enum class LoadStyleFlag : int SIP_ENUM_BASETYPE( IntFlag )
{
IgnoreMissingStyleErrors = 1 << 0, //!< If the style is missing, then don't flag it as an error. This flag can be used when the caller is not certain that a style exists, and accordingly a failure to find the style does not indicate an issue with loading the style itself.
};
Q_ENUM( LoadStyleFlag )
/**
* Flags for loading layer styles.
*
* \since QGIS 3.38
*/
Q_DECLARE_FLAGS( LoadStyleFlags, LoadStyleFlag )
Q_FLAG( LoadStyleFlags )
/**
* The WKB type describes the number of dimensions a geometry has
*
* - Point
* - LineString
* - Polygon
*
* as well as the number of dimensions for each individual vertex
*
* - X (always)
* - Y (always)
* - Z (optional)
* - M (measurement value, optional)
*
* it also has values for multi types, collections, unknown geometry,
* null geometry, no geometry and curve support.
*
* These classes of geometry are often used for data sources to
* communicate what kind of geometry should be expected for a given
* geometry field. It is also used for tools or algorithms to decide
* if they should be available for a given geometry type or act in
* a different mode.
*
* \note Prior to 3.30 this was available as QgsWkbTypes.Type.
*
* \since QGIS 3.30
*/
enum class WkbType SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsWkbTypes, Type ) : quint32
{
Unknown = 0, //!< Unknown
Point = 1, //!< Point
LineString = 2, //!< LineString
Polygon = 3, //!< Polygon
Triangle = 17, //!< Triangle
MultiPoint = 4, //!< MultiPoint
MultiLineString = 5, //!< MultiLineString
MultiPolygon = 6, //!< MultiPolygon
GeometryCollection = 7, //!< GeometryCollection
CircularString = 8, //!< CircularString
CompoundCurve = 9, //!< CompoundCurve
CurvePolygon = 10, //!< CurvePolygon
MultiCurve = 11, //!< MultiCurve
MultiSurface = 12, //!< MultiSurface
PolyhedralSurface = 15, //!< PolyhedralSurface \since QGIS 3.40
TIN = 16, //!< TIN \since QGIS 3.40
NoGeometry = 100, //!< No geometry
PointZ = 1001, //!< PointZ
LineStringZ = 1002, //!< LineStringZ
PolygonZ = 1003, //!< PolygonZ
TriangleZ = 1017, //!< TriangleZ
MultiPointZ = 1004, //!< MultiPointZ
MultiLineStringZ = 1005, //!< MultiLineStringZ
MultiPolygonZ = 1006, //!< MultiPolygonZ
GeometryCollectionZ = 1007, //!< GeometryCollectionZ
CircularStringZ = 1008, //!< CircularStringZ
CompoundCurveZ = 1009, //!< CompoundCurveZ
CurvePolygonZ = 1010, //!< CurvePolygonZ
MultiCurveZ = 1011, //!< MultiCurveZ
MultiSurfaceZ = 1012, //!< MultiSurfaceZ
PolyhedralSurfaceZ = 1015, //!< PolyhedralSurfaceZ
TINZ = 1016, //!< TINZ
PointM = 2001, //!< PointM
LineStringM = 2002, //!< LineStringM
PolygonM = 2003, //!< PolygonM
TriangleM = 2017, //!< TriangleM
MultiPointM = 2004, //!< MultiPointM
MultiLineStringM = 2005, //!< MultiLineStringM
MultiPolygonM = 2006, //!< MultiPolygonM
GeometryCollectionM = 2007, //!< GeometryCollectionM
CircularStringM = 2008, //!< CircularStringM
CompoundCurveM = 2009, //!< CompoundCurveM
CurvePolygonM = 2010, //!< CurvePolygonM
MultiCurveM = 2011, //!< MultiCurveM
MultiSurfaceM = 2012, //!< MultiSurfaceM
PolyhedralSurfaceM = 2015, //!< PolyhedralSurfaceM
TINM = 2016, //!< TINM
PointZM = 3001, //!< PointZM
LineStringZM = 3002, //!< LineStringZM
PolygonZM = 3003, //!< PolygonZM
MultiPointZM = 3004, //!< MultiPointZM
MultiLineStringZM = 3005, //!< MultiLineStringZM
MultiPolygonZM = 3006, //!< MultiPolygonZM
GeometryCollectionZM = 3007, //!< GeometryCollectionZM
CircularStringZM = 3008, //!< CircularStringZM
CompoundCurveZM = 3009, //!< CompoundCurveZM
CurvePolygonZM = 3010, //!< CurvePolygonZM
MultiCurveZM = 3011, //!< MultiCurveZM
MultiSurfaceZM = 3012, //!< MultiSurfaceZM
PolyhedralSurfaceZM = 3015, //!< PolyhedralSurfaceM
TINZM = 3016, //!< TINZM
TriangleZM = 3017, //!< TriangleZM
Point25D = 0x80000001, //!< Point25D
LineString25D, //!< LineString25D
Polygon25D, //!< Polygon25D
MultiPoint25D, //!< MultiPoint25D
MultiLineString25D, //!< MultiLineString25D
MultiPolygon25D //!< MultiPolygon25D
};
Q_ENUM( WkbType )
/**
* The geometry types are used to group Qgis::WkbType in a
* coarse way.
*
* \note Prior to 3.30 this was available as QgsWkbTypes.GeometryType.
*
* \since QGIS 3.30
*/
enum class GeometryType SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsWkbTypes, GeometryType ) : int
{
Point SIP_MONKEYPATCH_COMPAT_NAME( PointGeometry ), //!< Points
Line SIP_MONKEYPATCH_COMPAT_NAME( LineGeometry ), //!< Lines
Polygon SIP_MONKEYPATCH_COMPAT_NAME( PolygonGeometry ), //!< Polygons
Unknown SIP_MONKEYPATCH_COMPAT_NAME( UnknownGeometry ), //!< Unknown types
Null SIP_MONKEYPATCH_COMPAT_NAME( NullGeometry ), //!< No geometry
};
Q_ENUM( GeometryType )
/**
* Raster data types.
* This is modified and extended copy of GDALDataType.
*/
enum class DataType SIP_MONKEYPATCH_SCOPEENUM_UNNEST( Qgis, DataType ) : int
{
UnknownDataType = 0, //!< Unknown or unspecified type
Byte = 1, //!< Eight bit unsigned integer (quint8)
Int8 = 14, //!< Eight bit signed integer (qint8) (added in QGIS 3.30)
UInt16 = 2, //!< Sixteen bit unsigned integer (quint16)
Int16 = 3, //!< Sixteen bit signed integer (qint16)
UInt32 = 4, //!< Thirty two bit unsigned integer (quint32)
Int32 = 5, //!< Thirty two bit signed integer (qint32)
Float32 = 6, //!< Thirty two bit floating point (float)
Float64 = 7, //!< Sixty four bit floating point (double)
CInt16 = 8, //!< Complex Int16
CInt32 = 9, //!< Complex Int32
CFloat32 = 10, //!< Complex Float32
CFloat64 = 11, //!< Complex Float64
ARGB32 = 12, //!< Color, alpha, red, green, blue, 4 bytes the same as QImage::Format_ARGB32
ARGB32_Premultiplied = 13 //!< Color, alpha, red, green, blue, 4 bytes the same as QImage::Format_ARGB32_Premultiplied
};
Q_ENUM( DataType )
/**
* Capture technique.
*
* \since QGIS 3.26
*/
enum class CaptureTechnique : int
{
StraightSegments, //!< Default capture mode - capture occurs with straight line segments
CircularString, //!< Capture in circular strings
Streaming, //!< Streaming points digitizing mode (points are automatically added as the mouse cursor moves).
Shape, //!< Digitize shapes.
};
Q_ENUM( CaptureTechnique )
/**
* Vector layer type flags.
*
* \since QGIS 3.24
*/
enum class VectorLayerTypeFlag : int SIP_ENUM_BASETYPE( IntFlag )
{
SqlQuery = 1 << 0 //!< SQL query layer
};
Q_ENUM( VectorLayerTypeFlag )
//! Vector layer type flags
Q_DECLARE_FLAGS( VectorLayerTypeFlags, VectorLayerTypeFlag )
Q_FLAG( VectorLayerTypeFlags )
/**
* Authorisation to run Python Embedded in projects
* \since QGIS 3.40
*/
enum class PythonEmbeddedMode SIP_MONKEYPATCH_SCOPEENUM_UNNEST( Qgis, PythonMacroMode ) : int
{
Never = 0, //!< Python embedded never run
Ask = 1, //!< User is prompt before running
SessionOnly = 2, //!< Only during this session
Always = 3, //!< Python embedded is always run
NotForThisSession, //!< Python embedded will not be run for this session
};
Q_ENUM( PythonEmbeddedMode )
/**
* Type of Python Embedded in projects
* \since QGIS 3.40
*/
enum class PythonEmbeddedType : int
{
Macro = 0,
ExpressionFunction = 1,
};
Q_ENUM( PythonEmbeddedType )
/**
* Flags which control data provider construction.
*
* \note Prior to QGIS 3.40 this was available as QgsDataProvider::ReadFlag
*
* \since QGIS 3.40
*/
enum class DataProviderReadFlag SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsDataProvider, ReadFlag ) : int SIP_ENUM_BASETYPE( IntFlag )
{
TrustDataSource SIP_MONKEYPATCH_COMPAT_NAME( FlagTrustDataSource ) = 1 << 0, //!< Trust datasource config (primary key unicity, geometry type and srid, etc). Improves provider load time by skipping expensive checks like primary key unicity, geometry type and srid and by using estimated metadata on data load \since QGIS 3.16
SkipFeatureCount = 1 << 1, //!< Make featureCount() return -1 to indicate unknown, and subLayers() to return a unknown feature count as well. Since QGIS 3.18. Only implemented by OGR provider at time of writing.
LoadDefaultStyle SIP_MONKEYPATCH_COMPAT_NAME( FlagLoadDefaultStyle ) = 1 << 2, //!< Reset the layer's style to the default for the datasource
SkipGetExtent = 1 << 3, //!< Skip the extent from provider
SkipFullScan = 1 << 4, //!< Skip expensive full scan on files (i.e. on delimited text) \since QGIS 3.24
ForceReadOnly = 1 << 5, //!< Open layer in a read-only mode \since QGIS 3.28
SkipCredentialsRequest = 1 << 6, //!< Skip credentials if the provided one are not valid, let the provider be invalid, avoiding to block the thread creating the provider if it is not the main thread \since QGIS 3.32
ParallelThreadLoading = 1 << 7, //!< Provider is created in a parallel thread than the one where it will live \since QGIS 3.32.1
};
Q_ENUM( DataProviderReadFlag )
/**
* Flags which control data provider construction.
*
* \note Prior to QGIS 3.40 this was available as QgsDataProvider::ReadFlags
*
* \since QGIS 3.40
*/
Q_DECLARE_FLAGS( DataProviderReadFlags, DataProviderReadFlag ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsDataProvider, ReadFlags )
Q_FLAG( DataProviderReadFlags )
// TODO QGIS 4 -- remove NoCapabilities and rely on VectorProviderCapabilities() instead
/**
* Vector data provider capabilities.
*
* \note Prior to QGIS 3.40 this was available as QgsVectorDataProvider::Capability
*
* \since QGIS 3.40
*/
enum class VectorProviderCapability SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsVectorDataProvider, Capability ) : int SIP_ENUM_BASETYPE( IntFlag )
{
NoCapabilities = 0, //!< Provider has no capabilities
AddFeatures = 1, //!< Allows adding features
DeleteFeatures = 1 << 1, //!< Allows deletion of features
ChangeAttributeValues = 1 << 2, //!< Allows modification of attribute values
AddAttributes = 1 << 3, //!< Allows addition of new attributes (fields)
DeleteAttributes = 1 << 4, //!< Allows deletion of attributes (fields)
CreateSpatialIndex = 1 << 6, //!< Allows creation of spatial index
SelectAtId = 1 << 7, //!< Fast access to features using their ID
ChangeGeometries = 1 << 8, //!< Allows modifications of geometries
SelectEncoding = 1 << 13, //!< Allows user to select encoding
CreateAttributeIndex = 1 << 12, //!< Can create indexes on provider's fields
SimplifyGeometries = 1 << 14, //!< Supports simplification of geometries on provider side according to a distance tolerance
SimplifyGeometriesWithTopologicalValidation = 1 << 15, //!< Supports topological simplification of geometries on provider side according to a distance tolerance
TransactionSupport = 1 << 16, //!< Supports transactions
CircularGeometries = 1 << 17, //!< Supports circular geometry types (circularstring, compoundcurve, curvepolygon)
ChangeFeatures = 1 << 18, //!< Supports joint updates for attributes and geometry. Providers supporting this should still define ChangeGeometries | ChangeAttributeValues.
RenameAttributes = 1 << 19, //!< Supports renaming attributes (fields) \since QGIS 2.16
FastTruncate = 1 << 20, //!< Supports fast truncation of the layer (removing all features) \since QGIS 3.0
ReadLayerMetadata = 1 << 21, //!< Provider can read layer metadata from data store. Since QGIS 3.0. See QgsDataProvider::layerMetadata()
WriteLayerMetadata = 1 << 22, //!< Provider can write layer metadata to the data store. Since QGIS 3.0. See QgsDataProvider::writeLayerMetadata()
CancelSupport = 1 << 23, //!< Supports interruption of pending queries from a separated thread \since QGIS 3.2
CreateRenderer = 1 << 24, //!< Provider can create feature renderers using backend-specific formatting information. Since QGIS 3.2. See QgsVectorDataProvider::createRenderer().
CreateLabeling = 1 << 25, //!< Provider can set labeling settings using backend-specific formatting information. Since QGIS 3.6. See QgsVectorDataProvider::createLabeling().
ReloadData = 1 << 26, //!< Provider is able to force reload data
FeatureSymbology = 1 << 27, //!< Provider is able retrieve embedded symbology associated with individual features \since QGIS 3.20
EditingCapabilities = AddFeatures | DeleteFeatures | ChangeAttributeValues | ChangeGeometries | AddAttributes | DeleteAttributes | RenameAttributes, //!< Bitmask of all editing capabilities
};
Q_ENUM( VectorProviderCapability )
/**
* Vector data provider capabilities.
*
* \note Prior to QGIS 3.40 this was available as QgsVectorDataProvider::Capabilities
*
* \since QGIS 3.40
*/
Q_DECLARE_FLAGS( VectorProviderCapabilities, VectorProviderCapability ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsVectorDataProvider, Capabilities )
Q_FLAG( VectorProviderCapabilities )
/**
* \ingroup core
* \brief Enumeration of feature count states
* \since QGIS 3.20
*/
enum class FeatureCountState SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsVectorDataProvider, FeatureCountState ) : int
{
Uncounted = -2, //!< Feature count not yet computed
UnknownCount = -1, //!< Provider returned an unknown feature count
};
Q_ENUM( FeatureCountState )
/**
* Enumeration of spatial index presence states.
*
* \note Prior to QGIS 3.36 this was available as QgsFeatureSource::SpatialIndexPresence
* \since QGIS 3.36
*/
enum class SpatialIndexPresence SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsFeatureSource, SpatialIndexPresence ) : int
{
Unknown SIP_MONKEYPATCH_COMPAT_NAME( SpatialIndexUnknown ) = 0, //!< Spatial index presence cannot be determined, index may or may not exist
NotPresent SIP_MONKEYPATCH_COMPAT_NAME( SpatialIndexNotPresent ) = 1, //!< No spatial index exists for the source
Present SIP_MONKEYPATCH_COMPAT_NAME( SpatialIndexPresent ) = 2, //!< A valid spatial index exists for the source
};
Q_ENUM( SpatialIndexPresence )
/**
* Possible return value for QgsFeatureSource::hasFeatures() to determine if a source is empty.
*
* It is implemented as a three-value logic, so it can return if
* there are features available for sure, if there are no features
* available for sure or if there might be features available but
* there is no guarantee for this.
*
* \note Prior to QGIS 3.36 this was available as QgsFeatureSource::FeatureAvailability
* \since QGIS 3.36
*/
enum class FeatureAvailability SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsFeatureSource, FeatureAvailability ) : int
{
NoFeaturesAvailable = 0, //!< There are certainly no features available in this source
FeaturesAvailable, //!< There is at least one feature available in this source
FeaturesMaybeAvailable //!< There may be features available in this source
};
Q_ENUM( FeatureAvailability )
/**
* Attribute editing capabilities which may be supported by vector data providers.
*
* \since QGIS 3.32
*/
enum class VectorDataProviderAttributeEditCapability : int SIP_ENUM_BASETYPE( IntFlag )
{
EditAlias = 1 << 0, //!< Allows editing aliases
EditComment = 1 << 1, //!< Allows editing comments
};
Q_ENUM( VectorDataProviderAttributeEditCapability )
/**
* Attribute editing capabilities which may be supported by vector data providers.
*
* \since QGIS 3.32
*/
Q_DECLARE_FLAGS( VectorDataProviderAttributeEditCapabilities, VectorDataProviderAttributeEditCapability )
Q_FLAG( VectorDataProviderAttributeEditCapabilities )
/**
* \brief Symbol types
* \since QGIS 3.20
*/
enum class SymbolType SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsSymbol, SymbolType ) : int
{
Marker, //!< Marker symbol
Line, //!< Line symbol
Fill, //!< Fill symbol
Hybrid //!< Hybrid symbol
};
Q_ENUM( SymbolType )
/**
* \brief Scale methods
*
* \since QGIS 3.20
*/
enum class ScaleMethod SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsSymbol, ScaleMethod ) : int
{
ScaleArea, //!< Calculate scale by the area
ScaleDiameter //!< Calculate scale by the diameter
};
Q_ENUM( ScaleMethod )
/**
* Types of settings entries
* \since QGIS 3.26
*/
enum class SettingsType SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsSettingsEntryBase, SettingsType ) : int
{
Custom, //!< Custom implementation
Variant, //!< Generic variant
String, //!< String
StringList, //!< List of strings
VariantMap, //!< Map of strings
Bool, //!< Boolean
Integer, //!< Integer
Double, //!< Double precision number
EnumFlag, //!< Enum or Flag
Color //!< Color
};
Q_ENUM( SettingsType )
/**
* Type of tree node
* \since QGIS 3.30
*/
enum class SettingsTreeNodeType
{
Root, //!< Root Node
Standard, //!< Normal Node
NamedList, //!< Named List Node
};
Q_ENUM( SettingsTreeNodeType )
/**
* Options for named list nodes
* \since QGIS 3.30
*/
enum class SettingsTreeNodeOption : int SIP_ENUM_BASETYPE( IntFlag )
{
NamedListSelectedItemSetting = 1 << 0, //!< Creates a setting to store which is the current item
};
Q_ENUM( SettingsTreeNodeOption )
Q_DECLARE_FLAGS( SettingsTreeNodeOptions, SettingsTreeNodeOption )
Q_FLAG( SettingsTreeNodeOptions )
/**
* Property types
*
* \note Prior to QGIS 3.36 this was available as QgsProperty::Type
*
* \since QGIS 3.36
*/
enum class PropertyType SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsProperty, Type ): int
{
Invalid SIP_MONKEYPATCH_COMPAT_NAME( InvalidProperty ), //!< Invalid (not set) property
Static SIP_MONKEYPATCH_COMPAT_NAME( StaticProperty ), //!< Static property
Field SIP_MONKEYPATCH_COMPAT_NAME( FieldBasedProperty ), //!< Field based property
Expression SIP_MONKEYPATCH_COMPAT_NAME( ExpressionBasedProperty ), //!< Expression based property
};
Q_ENUM( PropertyType )
/**
* \brief SLD export options
*
* \since QGIS 3.30
*/
enum class SldExportOption : int SIP_ENUM_BASETYPE( IntFlag )
{
NoOptions = 0, //!< Default SLD export
Svg = 1 << 0, //!< Export complex styles to separate SVG files for better compatibility with OGC servers
Png = 1 << 1, //!< Export complex styles to separate PNG files for better compatibility with OGC servers
};
Q_ENUM( SldExportOption )
Q_DECLARE_FLAGS( SldExportOptions, SldExportOption )
Q_FLAG( SldExportOptions )
/**
* \brief SLD export vendor extensions, allow the use of vendor extensions when exporting to SLD.
*
* \since QGIS 3.30
*/
enum class SldExportVendorExtension : int SIP_ENUM_BASETYPE( IntFlag )
{
NoVendorExtension = 0, //!< No vendor extensions
GeoServerVendorExtension = 1 << 1, //!< Use GeoServer vendor extensions when required
DeegreeVendorExtension = 1 << 2, //!< Use Deegree vendor extensions when required
};
Q_ENUM( SldExportVendorExtension )
/**
* Settings options
* \since QGIS 3.26
*/
enum class SettingsOption : int SIP_ENUM_BASETYPE( IntFlag )
{
SaveFormerValue = 1 << 1, //!< Save the former value of the settings
SaveEnumFlagAsInt = 1 << 2, //!< The enum/flag will be saved as an integer value instead of text
};
Q_ENUM( SettingsOption )
Q_DECLARE_FLAGS( SettingsOptions, SettingsOption )
Q_FLAG( SettingsOptions )
/**
* SnappingMode defines on which layer the snapping is performed
* \since QGIS 3.26
*/
enum class SnappingMode SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsSnappingConfig, SnappingMode ) : int
{
ActiveLayer = 1, //!< On the active layer
AllLayers = 2, //!< On all vector layers
AdvancedConfiguration = 3, //!< On a per layer configuration basis
};
Q_ENUM( SnappingMode )
/**
* SnappingTypeFlag defines on what object the snapping is performed
* \since QGIS 3.26
*/
enum class SnappingType SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsSnappingConfig, SnappingTypes ) : int SIP_ENUM_BASETYPE( IntFlag )
{
NoSnap SIP_MONKEYPATCH_COMPAT_NAME( NoSnapFlag ) = 0, //!< No snapping
Vertex SIP_MONKEYPATCH_COMPAT_NAME( VertexFlag ) = 1 << 0, //!< On vertices
Segment SIP_MONKEYPATCH_COMPAT_NAME( SegmentFlag ) = 1 << 1, //!< On segments
Area SIP_MONKEYPATCH_COMPAT_NAME( AreaFlag ) = 1 << 2, //!< On Area
Centroid SIP_MONKEYPATCH_COMPAT_NAME( CentroidFlag ) = 1 << 3, //!< On centroid
MiddleOfSegment SIP_MONKEYPATCH_COMPAT_NAME( MiddleOfSegmentFlag ) = 1 << 4, //!< On Middle segment
LineEndpoint SIP_MONKEYPATCH_COMPAT_NAME( LineEndpointFlag ) = 1 << 5, //!< Start or end points of lines, or first vertex in polygon rings only \since QGIS 3.20
};
Q_ENUM( SnappingType )
//! Snapping types
Q_DECLARE_FLAGS( SnappingTypes, SnappingType ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsSnappingConfig, SnappingTypeFlag )
Q_FLAG( SnappingTypes )
/**
* \brief Flags controlling behavior of symbols during rendering
*
* \since QGIS 3.20
*/
enum class SymbolRenderHint SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsSymbol, RenderHint ) : int SIP_ENUM_BASETYPE( IntFlag )
{
DynamicRotation = 1 << 1, //!< Rotation of symbol may be changed during rendering and symbol should not be cached
IsSymbolLayerSubSymbol = 1 << 2, //!< Symbol is being rendered as a sub-symbol of a QgsSymbolLayer \since QGIS 3.38
ForceVectorRendering = 1 << 3, //!< Symbol must be rendered using vector methods, and optimisations like pre-rendered images must be disabled \since QGIS 3.40
ExcludeSymbolBuffers = 1 << 4, //!< Do not render symbol buffers. \since QGIS 3.40
};
Q_ENUM( SymbolRenderHint )
//! Symbol render hints
Q_DECLARE_FLAGS( SymbolRenderHints, SymbolRenderHint ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsSymbol, RenderHints )
Q_FLAG( SymbolRenderHints )
/**
* \brief Modes for handling how symbol and text entity rotation is handled when maps are rotated.
*
* \since QGIS 3.32
*/
enum class SymbolRotationMode : int
{
RespectMapRotation, //!< Entity is rotated along with the map
IgnoreMapRotation, //!< Entity ignores map rotation
};
Q_ENUM( SymbolRotationMode )
/**
* \brief Flags controlling behavior of vector feature renderers.
*
* \since QGIS 3.40
*/
enum class FeatureRendererFlag : int SIP_ENUM_BASETYPE( IntFlag )
{
AffectsLabeling = 1 << 0, //!< If present, indicates that the renderer will participate in the map labeling problem
};
Q_ENUM( FeatureRendererFlag )
/**
* \brief Flags controlling behavior of vector feature renderers.
*
* \since QGIS 3.40
*/
Q_DECLARE_FLAGS( FeatureRendererFlags, FeatureRendererFlag )
Q_FLAG( FeatureRendererFlags )
/**
* \brief Flags controlling behavior of symbols
*
* \since QGIS 3.20
*/
enum class SymbolFlag : int SIP_ENUM_BASETYPE( IntFlag )
{
RendererShouldUseSymbolLevels = 1 << 0, //!< If present, indicates that a QgsFeatureRenderer using the symbol should use symbol levels for best results
AffectsLabeling = 1 << 1, //!< If present, indicates that the symbol will participate in the map labeling problem \since QGIS 3.40
};
Q_ENUM( SymbolFlag )
//! Symbol flags
Q_DECLARE_FLAGS( SymbolFlags, SymbolFlag )
Q_FLAG( SymbolFlags )
/**
* Flags for controlling how symbol preview images are generated.
*
* \since QGIS 3.20
*/
enum class SymbolPreviewFlag SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsSymbol, PreviewFlag ) : int SIP_ENUM_BASETYPE( IntFlag )
{
FlagIncludeCrosshairsForMarkerSymbols = 1 << 0, //!< Include a crosshairs reference image in the background of marker symbol previews
};
Q_ENUM( SymbolPreviewFlag )
//! Symbol preview flags
Q_DECLARE_FLAGS( SymbolPreviewFlags, SymbolPreviewFlag ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsSymbol, SymbolPreviewFlags )
Q_FLAG( SymbolPreviewFlags )
/**
* \brief Flags controlling behavior of symbol layers
*
* \note These differ from Qgis::SymbolLayerUserFlag in that Qgis::SymbolLayerFlag flags are used to reflect the inbuilt properties
* of a symbol layer type, whereas Qgis::SymbolLayerUserFlag are optional, user controlled flags which can be toggled
* for a symbol layer.
*
* \since QGIS 3.22
*/
enum class SymbolLayerFlag : int SIP_ENUM_BASETYPE( IntFlag )
{
DisableFeatureClipping = 1 << 0, //!< If present, indicates that features should never be clipped to the map extent during rendering
CanCalculateMaskGeometryPerFeature = 1 << 1, //!< If present, indicates that mask geometry can safely be calculated per feature for the symbol layer. This avoids using the entire symbol layer's mask geometry for every feature rendered, considerably simplifying vector exports and resulting in much smaller file sizes. \since QGIS 3.38
AffectsLabeling = 1 << 2, //!< If present, indicates that the symbol layer will participate in the map labeling problem \since QGIS 3.40
};
Q_ENUM( SymbolLayerFlag )
//! Symbol layer flags
Q_DECLARE_FLAGS( SymbolLayerFlags, SymbolLayerFlag )
Q_FLAG( SymbolLayerFlags )
/**
* \brief User-specified flags controlling behavior of symbol layers.
*
* \note These differ from Qgis::SymbolLayerFlag in that Qgis::SymbolLayerFlag flags are used to reflect the inbuilt properties
* of a symbol layer type, whereas Qgis::SymbolLayerUserFlag are optional, user controlled flags which can be toggled
* for a symbol layer.
*
* \since QGIS 3.34
*/
enum class SymbolLayerUserFlag : int SIP_ENUM_BASETYPE( IntFlag )
{
DisableSelectionRecoloring = 1 << 0, //!< If present, indicates that the symbol layer should not be recolored when rendering selected features
};
Q_ENUM( SymbolLayerUserFlag )
/**
* Symbol layer user flags.
*
* \since QGIS 3.34
*/
Q_DECLARE_FLAGS( SymbolLayerUserFlags, SymbolLayerUserFlag )
Q_FLAG( SymbolLayerUserFlags )
/**
* Browser item types.
*
* \since QGIS 3.20
*/
enum class BrowserItemType SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsDataItem, Type ) : int
{
Collection, //!< A collection of items
Directory, //!< Represents a file directory
Layer, //!< Represents a map layer
Error, //!< Contains an error message
Favorites, //!< Represents a favorite item
Project, //!< Represents a QGIS project
Custom, //!< Custom item type
Fields, //!< Collection of fields
Field, //!< Vector layer field
};
Q_ENUM( BrowserItemType )
/**
* Browser item states.
*
* \since QGIS 3.20
*/
enum class BrowserItemState SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsDataItem, State ) : int
{
NotPopulated, //!< Children not yet created
Populating, //!< Creating children in separate thread (populating or refreshing)
Populated, //!< Children created
};
Q_ENUM( BrowserItemState )
/**
* Browser item capabilities.
*
* \since QGIS 3.20
*/
enum class BrowserItemCapability SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsDataItem, Capability ) : int SIP_ENUM_BASETYPE( IntFlag )
{
NoCapabilities = 0, //!< Item has no capabilities
SetCrs = 1 << 0, //!< Can set CRS on layer or group of layers. deprecated since QGIS 3.6 -- no longer used by QGIS and will be removed in QGIS 4.0
Fertile = 1 << 1, //!< Can create children. Even items without this capability may have children, but cannot create them, it means that children are created by item ancestors.
Fast = 1 << 2, //!< CreateChildren() is fast enough to be run in main thread when refreshing items, most root items (wms,wfs,wcs,postgres...) are considered fast because they are reading data only from QgsSettings
Collapse = 1 << 3, //!< The collapse/expand status for this items children should be ignored in order to avoid undesired network connections (wms etc.)
Rename = 1 << 4, //!< Item can be renamed
Delete = 1 << 5, //!< Item can be deleted
ItemRepresentsFile = 1 << 6, //!< Item's path() directly represents a file on disk \since QGIS 3.22
RefreshChildrenWhenItemIsRefreshed = 1 << 7, //!< When the item is refreshed, all its populated children will also be refreshed in turn \since QGIS 3.26
ReadOnly = 1 << 8, //!< Item is read only \since QGIS 3.40
};
Q_ENUM( BrowserItemCapability )
//! Browser item capabilities
Q_DECLARE_FLAGS( BrowserItemCapabilities, BrowserItemCapability ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsDataItem, Capabilities )
Q_FLAG( BrowserItemCapabilities )
/**
* Capabilities for data item providers.
*
* \note Prior to QGIS 3.36 this was available as QgsDataProvider::DataCapability
*
* \since QGIS 3.36
*/
enum class DataItemProviderCapability SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsDataProvider, DataCapability ) : int SIP_ENUM_BASETYPE( IntFlag )
{
NoCapabilities SIP_MONKEYPATCH_COMPAT_NAME( NoDataCapabilities ) = 0, //!< No capabilities
Files SIP_MONKEYPATCH_COMPAT_NAME( File ) = 1, //!< Can provides items which corresponds to files
Directories SIP_MONKEYPATCH_COMPAT_NAME( Dir ) = 1 << 1, //!< Can provides items which corresponds to directories
Databases SIP_MONKEYPATCH_COMPAT_NAME( Database ) = 1 << 2, //!< Can provides items which corresponds to databases
NetworkSources SIP_MONKEYPATCH_COMPAT_NAME( Net ) = 1 << 3, //!< Network/internet source
};
Q_ENUM( DataItemProviderCapability )
/**
* Capabilities for data item providers.
*
* \note Prior to QGIS 3.36 this was available as QgsDataProvider::DataCapabilities
*
* \since QGIS 3.36
*/
Q_DECLARE_FLAGS( DataItemProviderCapabilities, DataItemProviderCapability ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsDataProvider, DataCapabilities )
Q_FLAG( DataItemProviderCapabilities )
/**
* Browser item layer types
*
* \since QGIS 3.20
*/
enum class BrowserLayerType SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsLayerItem, LayerType ) : int
{
NoType, //!< No type
Vector, //!< Generic vector layer
Raster, //!< Raster layer
Point, //!< Vector point layer
Line, //!< Vector line layer
Polygon, //!< Vector polygon layer
TableLayer, //!< Vector non-spatial layer
Database, //!< Database layer
Table, //!< Database table
Plugin, //!< Plugin based layer
Mesh, //!< Mesh layer
VectorTile, //!< Vector tile layer
PointCloud, //!< Point cloud layer
TiledScene, //!< Tiled scene layer \since QGIS 3.34
};
Q_ENUM( BrowserLayerType )
/**
* Browser directory item monitoring switches.
*
* \since QGIS 3.20
*/
enum class BrowserDirectoryMonitoring : int
{
Default, //!< Use default logic to determine whether directory should be monitored
NeverMonitor, //!< Never monitor the directory, regardless of the default logic
AlwaysMonitor, //!< Always monitor the directory, regardless of the default logic
};
Q_ENUM( BrowserDirectoryMonitoring )
/**
* Different methods of HTTP requests
* \since QGIS 3.22
*/
enum class HttpMethod : int
{
Get = 0, //!< GET method
Post = 1 //!< POST method
};
Q_ENUM( HttpMethod )
/**
* Vector layer export result codes.
*
* \since QGIS 3.20
*/
enum class VectorExportResult SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsVectorLayerExporter, ExportError ) : int
{
Success SIP_MONKEYPATCH_COMPAT_NAME( NoError ) = 0, //!< No errors were encountered
ErrorCreatingDataSource SIP_MONKEYPATCH_COMPAT_NAME( ErrCreateDataSource ), //!< Could not create the destination data source
ErrorCreatingLayer SIP_MONKEYPATCH_COMPAT_NAME( ErrCreateLayer ), //!< Could not create destination layer
ErrorAttributeTypeUnsupported SIP_MONKEYPATCH_COMPAT_NAME( ErrAttributeTypeUnsupported ), //!< Source layer has an attribute type which could not be handled by destination
ErrorAttributeCreationFailed SIP_MONKEYPATCH_COMPAT_NAME( ErrAttributeCreationFailed ), //!< Destination provider was unable to create an attribute
ErrorProjectingFeatures SIP_MONKEYPATCH_COMPAT_NAME( ErrProjection ), //!< An error occurred while reprojecting features to destination CRS
ErrorFeatureWriteFailed SIP_MONKEYPATCH_COMPAT_NAME( ErrFeatureWriteFailed ), //!< An error occurred while writing a feature to the destination
ErrorInvalidLayer SIP_MONKEYPATCH_COMPAT_NAME( ErrInvalidLayer ), //!< Could not access newly created destination layer
ErrorInvalidProvider SIP_MONKEYPATCH_COMPAT_NAME( ErrInvalidProvider ), //!< Could not find a matching provider key
ErrorProviderUnsupportedFeature SIP_MONKEYPATCH_COMPAT_NAME( ErrProviderUnsupportedFeature ), //!< Provider does not support creation of empty layers
ErrorConnectionFailed SIP_MONKEYPATCH_COMPAT_NAME( ErrConnectionFailed ), //!< Could not connect to destination
UserCanceled SIP_MONKEYPATCH_COMPAT_NAME( ErrUserCanceled ), //!< User canceled the export
};
Q_ENUM( VectorExportResult )
/**
* Capabilities supported by a QgsVectorFileWriter object.