QGIS API Documentation 4.1.0-Master (376402f9aeb)
Loading...
Searching...
No Matches
qgsproject.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsproject.h
3
4 Implements persistent project state.
5
6 -------------------
7 begin : July 23, 2004
8 copyright : (C) 2004 by Mark Coletti
9 email : mcoletti at gmail.com
10 ***************************************************************************/
11
12/***************************************************************************
13 * *
14 * This program is free software; you can redistribute it and/or modify *
15 * it under the terms of the GNU General Public License as published by *
16 * the Free Software Foundation; either version 2 of the License, or *
17 * (at your option) any later version. *
18 * *
19 ***************************************************************************/
20
21#ifndef QGSPROJECT_H
22#define QGSPROJECT_H
23
24#include <memory>
25
26#include "qgis.h"
27#include "qgis_core.h"
28#include "qgis_sip.h"
29#include "qgsabstractsensor.h"
30#include "qgsarchive.h"
31#include "qgscolorscheme.h"
37#include "qgsmaplayerstore.h"
40#include "qgsprojectmetadata.h"
41#include "qgsprojectproperty.h"
43#include "qgsprojectversion.h"
45#include "qgsreadwritecontext.h"
46#include "qgsrelationmanager.h"
47#include "qgssettings.h"
48#include "qgssnappingconfig.h"
51
52#include <QFileInfo>
53#include <QHash>
54#include <QList>
55#include <QObject>
56#include <QPair>
57#include <QString>
58#include <QStringList>
59#include <QTranslator>
60
61using namespace Qt::StringLiterals;
62
63class QFileInfo;
64class QDomDocument;
65class QDomElement;
66class QDomNode;
67
70class QgsMapLayer;
71class QgsPathResolver;
74class QgsTolerance;
76class QgsVectorLayer;
80class QgsLayerTree;
83class QgsMapLayer;
99
112
114{
115 Q_OBJECT
117 Q_PROPERTY( QString title READ title WRITE setTitle NOTIFY titleChanged )
118 Q_PROPERTY( QString fileName READ fileName WRITE setFileName NOTIFY fileNameChanged )
119 Q_PROPERTY( QString homePath READ homePath WRITE setPresetHomePath NOTIFY homePathChanged )
120 Q_PROPERTY( QgsCoordinateReferenceSystem crs READ crs WRITE setCrs NOTIFY crsChanged )
122 Q_PROPERTY( QString ellipsoid READ ellipsoid WRITE setEllipsoid NOTIFY ellipsoidChanged )
132 Q_PROPERTY( Qgis::DistanceUnit distanceUnits READ distanceUnits WRITE setDistanceUnits NOTIFY distanceUnitsChanged )
133 Q_PROPERTY( Qgis::AreaUnit areaUnits READ areaUnits WRITE setAreaUnits NOTIFY areaUnitsChanged )
135 Q_PROPERTY( Qgis::TransactionMode transactionMode READ transactionMode WRITE setTransactionMode NOTIFY transactionModeChanged )
136 Q_PROPERTY( Qgis::ScaleCalculationMethod scaleMethod READ scaleMethod WRITE setScaleMethod NOTIFY scaleMethodChanged )
137
138 public:
142
143 // *INDENT-OFF*
144
154 {
155 NoProperty = 0,
156 AllProperties = 1,
157 WMSOnlineResource = 2,
158 };
159 // *INDENT-ON*
160
162 static QgsProject *instance();
163
172 static void setInstance( QgsProject *project );
173
182 explicit QgsProject( QObject *parent SIP_TRANSFERTHIS = nullptr, Qgis::ProjectCapabilities capabilities = Qgis::ProjectCapability::ProjectStyles );
183
184 ~QgsProject() override;
185
194 void setTitle( const QString &title );
195
202 QString title() const;
203
210 Qgis::ProjectCapabilities capabilities() const { return mCapabilities; }
211
220 Qgis::ProjectFlags flags() const { return mFlags; }
221
230 void setFlags( Qgis::ProjectFlags flags );
231
240 void setFlag( Qgis::ProjectFlag flag, bool enabled = true );
241
249 QString saveUser() const;
250
258 QString saveUserFullName() const;
259
265 QDateTime lastSaveDateTime() const;
266
272 QgsProjectVersion lastSaveVersion() const;
273
277 bool isDirty() const;
278
285 void setFileName( const QString &name );
286
293 QString fileName() const;
294
306 void setOriginalPath( const QString &path );
307
319 QString originalPath() const;
320
331 Q_DECL_DEPRECATED QFileInfo fileInfo() const SIP_DEPRECATED;
332
339 QgsProjectStorage *projectStorage() const;
340
345 QDateTime lastModified() const;
346
352 QString absoluteFilePath() const;
353
359 QString absolutePath() const;
360
365 QString baseName() const;
366
373 Qgis::FilePathType filePathStorage() const;
374
381 void setFilePathStorage( Qgis::FilePathType type );
382
396
415 QgsCoordinateReferenceSystem crs3D() const;
416
431 void setCrs( const QgsCoordinateReferenceSystem &crs, bool adjustEllipsoid = false );
432
440 QString ellipsoid() const;
441
449 void setEllipsoid( const QString &ellipsoid );
450
469 QgsCoordinateReferenceSystem verticalCrs() const;
470
490 bool setVerticalCrs( const QgsCoordinateReferenceSystem &crs, QString *errorMessage SIP_OUT = nullptr );
491
500 QgsCoordinateTransformContext transformContext() const;
501
510 void setTransformContext( const QgsCoordinateTransformContext &context );
511
516 void clear();
517
524 bool read( const QString &filename, Qgis::ProjectReadFlags flags = Qgis::ProjectReadFlags() );
525
534 bool read( Qgis::ProjectReadFlags flags = Qgis::ProjectReadFlags() );
535
545 bool readLayer( const QDomNode &layerNode );
546
554 bool write( const QString &filename );
555
561 bool write();
562
574 bool writeEntry( const QString &scope, const QString &key, bool value ) SIP_PYNAME( writeEntryBool );
575
587 bool writeEntry( const QString &scope, const QString &key, double value ) SIP_PYNAME( writeEntryDouble );
588
599 bool writeEntry( const QString &scope, const QString &key, int value );
600
611 bool writeEntry( const QString &scope, const QString &key, const QString &value );
612
623 bool writeEntry( const QString &scope, const QString &key, const QStringList &value );
624
635 QStringList readListEntry( const QString &scope, const QString &key, const QStringList &def = QStringList(), bool *ok SIP_OUT = nullptr ) const;
636
647 QString readEntry( const QString &scope, const QString &key, const QString &def = QString(), bool *ok SIP_OUT = nullptr ) const;
648
659 int readNumEntry( const QString &scope, const QString &key, int def = 0, bool *ok SIP_OUT = nullptr ) const;
660
671 double readDoubleEntry( const QString &scope, const QString &key, double def = 0, bool *ok SIP_OUT = nullptr ) const;
672
683 bool readBoolEntry( const QString &scope, const QString &key, bool def = false, bool *ok SIP_OUT = nullptr ) const;
684
688 bool removeEntry( const QString &scope, const QString &key );
689
698 QStringList entryList( const QString &scope, const QString &key ) const;
699
708 QStringList subkeyList( const QString &scope, const QString &key ) const;
709
710 // TODO Now slightly broken since re-factoring. Won't print out top-level key
711 // and redundantly prints sub-keys.
712
716 void dumpProperties() const;
717
722 QgsPathResolver pathResolver() const;
723
729 QString writePath( const QString &filename ) const;
730
734 QString readPath( const QString &filename ) const;
735
737 QString error() const;
738
743 void setBadLayerHandler( QgsProjectBadLayerHandler *handler SIP_TRANSFER );
744
750 QString layerIsEmbedded( const QString &id ) const;
751
760 bool createEmbeddedLayer( const QString &layerId, const QString &projectFilePath, QList<QDomNode> &brokenNodes, bool saveFlag = true, Qgis::ProjectReadFlags flags = Qgis::ProjectReadFlags() )
761 SIP_SKIP;
762
769 std::unique_ptr< QgsLayerTreeGroup > createEmbeddedGroup(
770 const QString &groupName, const QString &projectFilePath, const QStringList &invisibleLayers, Qgis::ProjectReadFlags flags = Qgis::ProjectReadFlags()
771 );
772
774 void setTopologicalEditing( bool enabled );
775
777 bool topologicalEditing() const;
778
784 Qgis::DistanceUnit distanceUnits() const { return mDistanceUnits; }
785
791 void setDistanceUnits( Qgis::DistanceUnit unit );
792
797 Qgis::AreaUnit areaUnits() const { return mAreaUnits; }
798
804 void setAreaUnits( Qgis::AreaUnit unit );
805
813 Qgis::ScaleCalculationMethod scaleMethod() const { return mScaleMethod; }
814
822 void setScaleMethod( Qgis::ScaleCalculationMethod method );
823
836 QString homePath() const;
837
850 QString presetHomePath() const;
851
852 QgsRelationManager *relationManager() const;
853
859 const QgsLayoutManager *layoutManager() const SIP_SKIP;
860
865 QgsLayoutManager *layoutManager();
866
873 const QgsElevationProfileManager *elevationProfileManager() const SIP_SKIP;
874
880 QgsElevationProfileManager *elevationProfileManager();
881
888 const QgsSelectiveMaskingSourceSetManager *selectiveMaskingSourceSetManager() const SIP_SKIP;
889
895 QgsSelectiveMaskingSourceSetManager *selectiveMaskingSourceSetManager();
896
903 const QgsMapViewsManager *viewsManager() const SIP_SKIP;
904
910 QgsMapViewsManager *viewsManager();
911
918 const QgsBookmarkManager *bookmarkManager() const SIP_SKIP;
919
925 QgsBookmarkManager *bookmarkManager();
926
933 const QgsSensorManager *sensorManager() const SIP_SKIP;
934
940 QgsSensorManager *sensorManager();
941
949 const QgsProjectViewSettings *viewSettings() const SIP_SKIP;
950
957 QgsProjectViewSettings *viewSettings();
958
966 const QgsProjectStyleSettings *styleSettings() const SIP_SKIP;
967
974 QgsProjectStyleSettings *styleSettings();
975
983 const QgsProjectTimeSettings *timeSettings() const SIP_SKIP;
984
991 QgsProjectTimeSettings *timeSettings();
992
999 const QgsProjectElevationProperties *elevationProperties() const SIP_SKIP;
1000
1006 QgsProjectElevationProperties *elevationProperties();
1007
1014 const QgsProjectDisplaySettings *displaySettings() const SIP_SKIP;
1015
1022
1030
1037
1041 QgsLayerTree *layerTreeRoot() const;
1042
1046 QgsLayerTreeRegistryBridge *layerTreeRegistryBridge() const { return mLayerTreeRegistryBridge.get(); }
1047
1053
1058
1063
1068 Q_DECL_DEPRECATED void setNonIdentifiableLayers( const QList<QgsMapLayer *> &layers );
1069
1074 Q_DECL_DEPRECATED void setNonIdentifiableLayers( const QStringList &layerIds );
1075
1080 Q_DECL_DEPRECATED QStringList nonIdentifiableLayers() const;
1081
1089 Q_DECL_DEPRECATED bool autoTransaction() const SIP_DEPRECATED;
1090
1100 Q_DECL_DEPRECATED void setAutoTransaction( bool autoTransaction ) SIP_DEPRECATED;
1101
1108 Qgis::TransactionMode transactionMode() const;
1109
1119 bool setTransactionMode( Qgis::TransactionMode transactionMode );
1120
1128 QMap< QPair< QString, QString>, QgsTransactionGroup *> transactionGroups() SIP_SKIP;
1129
1137 QgsTransactionGroup *transactionGroup( const QString &providerKey, const QString &connString );
1138
1145
1151 Q_DECL_DEPRECATED bool evaluateDefaultValues() const SIP_DEPRECATED;
1152
1158 Q_DECL_DEPRECATED void setEvaluateDefaultValues( bool evaluateDefaultValues ) SIP_DEPRECATED;
1159
1162
1168
1174
1181 void setAvoidIntersectionsLayers( const QList<QgsVectorLayer *> &layers );
1182
1188 void setAvoidIntersectionsMode( const Qgis::AvoidIntersectionsMode mode );
1189
1195 Qgis::AvoidIntersectionsMode avoidIntersectionsMode() const { return mAvoidIntersectionsMode; }
1196
1202 QVariantMap customVariables() const;
1203
1208 void setCustomVariables( const QVariantMap &customVariables );
1209
1213 void setLabelingEngineSettings( const QgsLabelingEngineSettings &settings );
1214
1218 const QgsLabelingEngineSettings &labelingEngineSettings() const;
1219
1220 //
1221 // Functionality from QgsMapLayerRegistry
1222 //
1223
1227 QgsMapLayerStore *layerStore();
1228
1232 SIP_SKIP const QgsMapLayerStore *layerStore() const;
1233
1235 int count() const;
1236
1238 int validCount() const;
1239
1247 Q_INVOKABLE QgsMapLayer *mapLayer( const QString &layerId ) const;
1248
1249#ifndef SIP_RUN
1250
1266 template<class T> T mapLayer( const QString &layerId ) const { return qobject_cast<T>( mapLayer( layerId ) ); }
1267#endif
1268
1276 Q_INVOKABLE QList<QgsMapLayer *> mapLayersByName( const QString &layerName ) const;
1277
1287 QList<QgsMapLayer *> mapLayersByShortName( const QString &shortName ) const;
1288
1289
1298 QMap<QString, QgsMapLayer *> mapLayers( const bool validOnly = false ) const;
1299
1303 bool isZipped() const;
1304
1305#ifndef SIP_RUN
1306
1317 template<typename T> QVector<T> layers() const { return mLayerStore->layers<T>(); }
1318
1330 template<typename T> QVector<T> mapLayersByShortName( const QString &shortName ) const
1331 {
1332 QVector<T> layers;
1333 const auto constMapLayers { mLayerStore->layers<T>() };
1334 for ( const auto l : constMapLayers )
1335 {
1336 if ( !l->serverProperties()->shortName().isEmpty() )
1337 {
1338 if ( l->serverProperties()->shortName() == shortName )
1339 layers << l;
1340 }
1341 else if ( l->name() == shortName )
1342 {
1343 layers << l;
1344 }
1345 }
1346 return layers;
1347 }
1348
1349#endif
1350
1375 QList<QgsMapLayer *> addMapLayers( const QList<QgsMapLayer *> &mapLayers SIP_TRANSFER, bool addToLegend = true, bool takeOwnership SIP_PYARGREMOVE = true );
1376
1404 QgsMapLayer *addMapLayer( QgsMapLayer *mapLayer SIP_TRANSFER, bool addToLegend = true, bool takeOwnership SIP_PYARGREMOVE = true );
1405
1406#ifndef SIP_RUN
1420 void removeMapLayers( const QStringList &layerIds );
1421
1422 //TODO QGIS 5.0 - add PyName alias to avoid list type conversion error
1423
1437 void removeMapLayers( const QList<QgsMapLayer *> &layers );
1438#else
1439 // clang-format off
1440
1454 void removeMapLayers( SIP_PYOBJECT layers SIP_TYPEHINT( Union[List[QgsVectorLayer], List[str]] ) );
1455 % MethodCode
1456 if ( !PyList_Check( a0 ) )
1457 {
1458 sipIsErr = 1;
1459 PyErr_SetString( PyExc_TypeError, "Expected a list of layers or layers IDs" );
1460 }
1461 else if ( PyList_GET_SIZE( a0 ) )
1462 {
1463 PyObject *firstLayerPyObj = PyList_GetItem( a0, 0 );
1464 if ( firstLayerPyObj )
1465 {
1466 int state;
1467 if ( sipCanConvertToType( firstLayerPyObj, sipType_QgsMapLayer, SIP_NOT_NONE ) )
1468 {
1469 const sipTypeDef *qlist_type = sipFindType( "QList<QgsMapLayer *>" );
1470 QList<QgsMapLayer *> *layersList = reinterpret_cast<QList<QgsMapLayer *> *>( sipConvertToType( a0, qlist_type, 0, SIP_NOT_NONE, &state, &sipIsErr ) );
1471 if ( !sipIsErr )
1472 {
1473 sipCpp->removeMapLayers( *layersList );
1474 }
1475 sipReleaseType( layersList, qlist_type, state );
1476 }
1477 else if ( sipCanConvertToType( firstLayerPyObj, sipType_QString, SIP_NOT_NONE ) )
1478 {
1479 QStringList *layersId = reinterpret_cast<QStringList *>( sipConvertToType( a0, sipType_QStringList, 0, SIP_NOT_NONE, &state, &sipIsErr ) );
1480 if ( !sipIsErr )
1481 {
1482 sipCpp->removeMapLayers( *layersId );
1483 }
1484 sipReleaseType( layersId, sipType_QStringList, state );
1485 }
1486 else
1487 {
1488 sipIsErr = 1;
1489 PyErr_SetString( PyExc_TypeError, "Expected a list of layers or layers IDs" );
1490 }
1491 }
1492 }
1493 % End
1494// clang-format on
1495#endif
1496
1510 void removeMapLayer( const QString &layerId );
1511
1525 void removeMapLayer( QgsMapLayer *layer );
1526
1533 QgsMapLayer *takeMapLayer( QgsMapLayer *layer ) SIP_TRANSFERBACK;
1534
1546 QgsAnnotationLayer *mainAnnotationLayer();
1547
1558 void removeAllMapLayers();
1559
1565 void reloadAllLayers();
1566
1571 QgsCoordinateReferenceSystem defaultCrsForNewLayers() const;
1572
1584 Q_DECL_DEPRECATED void setTrustLayerMetadata( bool trust ) SIP_DEPRECATED;
1585
1596 Q_DECL_DEPRECATED bool trustLayerMetadata() const SIP_DEPRECATED;
1597
1602 const QgsAuxiliaryStorage *auxiliaryStorage() const SIP_SKIP;
1603
1608 QgsAuxiliaryStorage *auxiliaryStorage();
1609
1618 QString createAttachedFile( const QString &nameTemplate );
1619
1626 QStringList attachedFiles() const;
1627
1635 bool removeAttachedFile( const QString &path );
1636
1645 QString attachmentIdentifier( const QString &attachedFile ) const;
1646
1653 QString resolveAttachmentIdentifier( const QString &identifier ) const;
1654
1661 const QgsProjectMetadata &metadata() const;
1662
1669 void setMetadata( const QgsProjectMetadata &metadata );
1670
1679 Q_DECL_DEPRECATED QSet<QgsMapLayer *> requiredLayers() const;
1680
1689 Q_DECL_DEPRECATED void setRequiredLayers( const QSet<QgsMapLayer *> &layers );
1690
1697 void setProjectColors( const QgsNamedColorList &colors );
1698
1705 void setBackgroundColor( const QColor &color );
1706
1713 QColor backgroundColor() const;
1714
1721 void setSelectionColor( const QColor &color );
1722
1729 QColor selectionColor() const;
1730
1742 Q_DECL_DEPRECATED void setMapScales( const QVector<double> &scales ) SIP_DEPRECATED;
1743
1755 Q_DECL_DEPRECATED QVector<double> mapScales() const SIP_DEPRECATED;
1756
1765 Q_DECL_DEPRECATED void setUseProjectScales( bool enabled ) SIP_DEPRECATED;
1766
1775 Q_DECL_DEPRECATED bool useProjectScales() const SIP_DEPRECATED;
1776
1781 void generateTsFile( const QString &locale );
1782
1783 QString translate( const QString &context, const QString &sourceText, const char *disambiguation = nullptr, int n = -1 ) const override;
1784
1794 bool accept( QgsStyleEntityVisitorInterface *visitor ) const;
1795
1805 bool accept( QgsObjectEntityVisitorInterface *visitor, const QgsObjectVisitorContext &context ) const;
1806
1812 QgsElevationShadingRenderer elevationShadingRenderer() const;
1813
1819 void setElevationShadingRenderer( const QgsElevationShadingRenderer &elevationShadingRenderer );
1820
1829 bool loadFunctionsFromProject( bool force = false ) SIP_SKIP;
1830
1838 void cleanFunctionsFromProject() SIP_SKIP;
1839
1840#ifdef SIP_RUN
1841 // clang-format off
1842 SIP_PYOBJECT __repr__();
1843 % MethodCode
1844 QString str = u"<QgsProject: '%1'%2>"_s.arg( sipCpp->fileName(),
1845 sipCpp == QgsProject::instance() ? u" (singleton instance)"_s : QString() ); // skip-keyword-check
1846 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
1847 % End
1848// clang-format on
1849#endif
1850
1851 signals :
1852
1860 void cleared();
1861
1869
1873 void readProject( const QDomDocument &document );
1874
1878 void readProjectWithContext( const QDomDocument &document, QgsReadWriteContext &context );
1879
1883 void writeProject( QDomDocument &document );
1884
1893 void readMapLayer( QgsMapLayer *mapLayer, const QDomElement &layerNode );
1894
1903 void writeMapLayer( QgsMapLayer *mapLayer, QDomElement &layerElem, QDomDocument &doc );
1904
1909
1915 Q_DECL_DEPRECATED void oldProjectVersionWarning( const QString &warning ) SIP_DEPRECATED;
1916
1927 void readVersionMismatchOccurred( const QString &fileVersion );
1928
1934 void layerLoaded( int i, int n );
1935
1937 void loadingLayer( const QString &layerName );
1938
1945 void loadingLayerMessageReceived( const QString &layerName, const QList<QgsReadWriteContext::ReadWriteMessage> &messages );
1946
1951 Q_DECL_DEPRECATED void nonIdentifiableLayersChanged( QStringList nonIdentifiableLayers );
1952
1958
1961
1969
1974
1981
1986
1996
2008
2025
2032 void ellipsoidChanged( const QString &ellipsoid );
2033
2041
2049
2058
2065
2069 void missingDatumTransforms( const QStringList &missingTransforms );
2070
2076
2083
2089
2095
2107
2112
2120
2128
2136
2144
2145 //
2146 // signals from QgsMapLayerRegistry
2147 //
2148
2156 void layersWillBeRemoved( const QStringList &layerIds );
2157
2165 void layersWillBeRemoved( const QList<QgsMapLayer *> &layers );
2166
2176 void layerWillBeRemoved( const QString &layerId );
2177
2188
2195 void layersRemoved( const QStringList &layerIds );
2196
2205 void layerRemoved( const QString &layerId );
2206
2207 //TODO QGIS 5.0 - rename to past tense
2208
2216
2227 void layersAdded( const QList<QgsMapLayer *> &layers );
2228
2236
2248 void legendLayersAdded( const QList<QgsMapLayer *> &layers );
2249
2258 void layersAddedWithoutLegend( const QList<QgsMapLayer *> &layers );
2259
2267 void isDirtyChanged( bool dirty );
2268
2276 void dirtySet();
2277
2286 Q_DECL_DEPRECATED void mapScalesChanged() SIP_DEPRECATED;
2287
2294
2295 public slots:
2296
2302
2303 // TODO QGIS 5.0 - rename b to dirty
2304
2311 void setDirty( bool b = true );
2312
2321 void setPresetHomePath( const QString &path );
2322
2332 void registerTranslatableContainers( QgsTranslationContext *translationContext, QgsAttributeEditorContainer *parent, const QString &layerId );
2333
2340 void registerTranslatableObjects( QgsTranslationContext *translationContext );
2341
2348 void setDataDefinedServerProperties( const QgsPropertyCollection &properties );
2349
2357
2374 bool startEditing( QgsVectorLayer *vectorLayer = nullptr );
2375
2405 bool commitChanges( QStringList &commitErrors SIP_OUT, bool stopEditing = true, QgsVectorLayer *vectorLayer = nullptr );
2406
2423 bool rollBack( QStringList &rollbackErrors SIP_OUT, bool stopEditing = true, QgsVectorLayer *vectorLayer = nullptr );
2424
2425 private slots:
2426 void onMapLayersAdded( const QList<QgsMapLayer *> &layers );
2427 void onMapLayersRemoved( const QList<QgsMapLayer *> &layers );
2428 void cleanTransactionGroups( bool force = false );
2429 void updateTransactionGroups();
2430
2431 private:
2432 static QgsProject *sProject;
2433
2434
2443 bool _getMapLayers( const QDomDocument &doc, QList<QDomNode> &brokenNodes, Qgis::ProjectReadFlags flags = Qgis::ProjectReadFlags() );
2444
2449 void setError( const QString &errorMessage ) SIP_SKIP;
2450
2455 void clearError() SIP_SKIP;
2456
2466 bool addLayer( const QDomElement &layerElem, QList<QDomNode> &brokenNodes, QgsReadWriteContext &context, Qgis::ProjectReadFlags flags = Qgis::ProjectReadFlags(), QgsDataProvider *provider = nullptr )
2467 SIP_SKIP;
2468
2472 void removeAuxiliaryLayer( const QgsMapLayer *ml );
2473
2479 void initializeEmbeddedSubtree( const QString &projectFilePath, QgsLayerTreeGroup *group, Qgis::ProjectReadFlags flags = Qgis::ProjectReadFlags() ) SIP_SKIP;
2480
2485 bool loadEmbeddedNodes( QgsLayerTreeGroup *group, Qgis::ProjectReadFlags flags = Qgis::ProjectReadFlags() ) SIP_SKIP;
2486
2488 bool readProjectFile( const QString &filename, Qgis::ProjectReadFlags flags = Qgis::ProjectReadFlags() );
2489
2491 bool writeProjectFile( const QString &filename );
2492
2494 bool unzip( const QString &filename, Qgis::ProjectReadFlags flags = Qgis::ProjectReadFlags() );
2495
2497 bool zip( const QString &filename );
2498
2500 bool saveAuxiliaryStorage( const QString &filename = QString() );
2501
2503 void loadProjectFlags( const QDomDocument *doc );
2504
2506 static QgsPropertiesDefinition &dataDefinedServerPropertyDefinitions();
2507
2509 void preloadProviders(
2510 const QVector<QDomNode> &asynchronusLayerNodes, const QgsReadWriteContext &context, QMap<QString, QgsDataProvider *> &loadedProviders, QgsMapLayer::ReadFlags layerReadFlags, int totalProviderCount
2511 );
2512
2517 void releaseHandlesToProjectArchive();
2518
2519 bool rebuildCrs3D( QString *error = nullptr );
2520
2521 Qgis::ProjectCapabilities mCapabilities;
2522
2523 std::unique_ptr< QgsMapLayerStore > mLayerStore;
2524
2525 QString mErrorMessage;
2526
2527 std::unique_ptr<QgsProjectBadLayerHandler> mBadLayerHandler;
2528
2534 QHash< QString, QPair< QString, bool> > mEmbeddedLayers;
2535
2536 QgsSnappingConfig mSnappingConfig;
2537 Qgis::AvoidIntersectionsMode mAvoidIntersectionsMode = Qgis::AvoidIntersectionsMode::AllowIntersections;
2538
2539 std::unique_ptr<QgsRelationManager> mRelationManager;
2540
2541 std::unique_ptr<QgsAnnotationManager> mAnnotationManager;
2542 std::unique_ptr<QgsLayoutManager> mLayoutManager;
2543 std::unique_ptr<QgsElevationProfileManager> mElevationProfileManager;
2544 std::unique_ptr<QgsSelectiveMaskingSourceSetManager> mSelectiveMaskingSourceSetManager;
2545 std::unique_ptr<QgsMapViewsManager> m3DViewsManager;
2546
2547 QgsBookmarkManager *mBookmarkManager = nullptr;
2548
2549 QgsSensorManager *mSensorManager = nullptr;
2550
2551 QgsProjectViewSettings *mViewSettings = nullptr;
2552
2553 QgsProjectStyleSettings *mStyleSettings = nullptr;
2554
2555 QgsProjectTimeSettings *mTimeSettings = nullptr;
2556
2557 QgsProjectElevationProperties *mElevationProperties = nullptr;
2558
2559 QgsProjectDisplaySettings *mDisplaySettings = nullptr;
2560
2561 QgsProjectGpsSettings *mGpsSettings = nullptr;
2562
2563 std::unique_ptr<QgsLayerTree> mRootGroup;
2564
2565 std::unique_ptr<QgsLayerTreeRegistryBridge> mLayerTreeRegistryBridge;
2566
2567 QgsAnnotationLayer *mMainAnnotationLayer = nullptr;
2568
2570 QMap< QPair< QString, QString>, QgsTransactionGroup *> mTransactionGroups;
2571
2572 QgsVectorLayerEditBufferGroup mEditBufferGroup;
2573
2574 std::unique_ptr<QgsMapThemeCollection> mMapThemeCollection;
2575
2576 std::unique_ptr<QgsLabelingEngineSettings> mLabelingEngineSettings;
2577
2578 QVariantMap mCustomVariables;
2579
2580 std::unique_ptr<QgsArchive> mArchive;
2581
2582 std::unique_ptr<QgsAuxiliaryStorage> mAuxiliaryStorage;
2583
2584 QFile mFile; // current physical project file
2585
2586 QString mOriginalPath;
2587
2588 QString mSaveUser; // last saved user.
2589 QString mSaveUserFull; // last saved user full name.
2590 QDateTime mSaveDateTime;
2591 QgsProjectVersion mSaveVersion;
2592
2597 QString mHomePath;
2598 mutable QString mCachedHomePath;
2599
2600 QColor mBackgroundColor;
2601 QColor mSelectionColor;
2602
2603 Qgis::DistanceUnit mDistanceUnits = Qgis::DistanceUnit::Meters;
2604 Qgis::AreaUnit mAreaUnits = Qgis::AreaUnit::SquareMeters;
2605 Qgis::ScaleCalculationMethod mScaleMethod = Qgis::ScaleCalculationMethod::HorizontalMiddle;
2606
2607 mutable QgsProjectPropertyKey mProperties; // property hierarchy, TODO: this shouldn't be mutable
2608 Qgis::TransactionMode mTransactionMode = Qgis::TransactionMode::Disabled; // transaction grouped editing
2609
2610 Qgis::ProjectFlags mFlags;
2612 QgsCoordinateReferenceSystem mVerticalCrs;
2614
2615 bool mDirty = false; // project has been modified since it has been read or saved
2616 int mDirtyBlockCount = 0;
2617
2618 QgsPropertyCollection mDataDefinedServerProperties;
2619
2620 QgsCoordinateTransformContext mTransformContext;
2621
2622 QgsProjectMetadata mMetadata;
2623
2624 std::unique_ptr< QTranslator > mTranslator;
2625
2626 bool mIsBeingDeleted = false;
2627
2628 QgsSettings mSettings;
2629
2630 mutable std::unique_ptr< QgsExpressionContextScope > mProjectScope;
2631
2632 bool mBlockChangeSignalsDuringClear = false;
2633 bool mBlockEllipsoidChangedSignal = false;
2634 int mBlockSnappingUpdates = 0;
2635
2636 QgsElevationShadingRenderer mElevationShadingRenderer;
2637
2638 friend class QgsApplication;
2639
2641
2642 // Required to avoid creating a new project in it's destructor
2644
2645 // Required by QGIS Server for switching the current project instance
2646 friend class QgsServer;
2647
2648 friend class TestQgsProject;
2649
2650 Q_DISABLE_COPY( QgsProject )
2651};
2652
2674class CORE_EXPORT QgsProjectDirtyBlocker
2675{
2676 public:
2683 : mProject( project )
2684 {
2685 mProject->mDirtyBlockCount++;
2686 }
2687
2690
2691 ~QgsProjectDirtyBlocker() { mProject->mDirtyBlockCount--; }
2692
2693 private:
2694 QgsProject *mProject = nullptr;
2695
2696#ifdef SIP_RUN
2698#endif
2699};
2700
2706CORE_EXPORT QgsProjectVersion getVersion( QDomDocument const &doc ) SIP_SKIP;
2707
2708
2710#ifndef SIP_RUN
2711class GetNamedProjectColor : public QgsScopedExpressionFunction
2712{
2713 public:
2714 GetNamedProjectColor( const QgsProject *project );
2715
2720 GetNamedProjectColor( const QHash< QString, QColor > &colors );
2721
2722 QVariant func( const QVariantList &values, const QgsExpressionContext *, QgsExpression *, const QgsExpressionNodeFunction * ) override;
2723 QgsScopedExpressionFunction *clone() const override;
2724
2725 private:
2726 QHash< QString, QColor > mColors;
2727};
2728
2729class GetNamedProjectColorObject : public QgsScopedExpressionFunction
2730{
2731 public:
2732 GetNamedProjectColorObject( const QgsProject *project );
2733
2738 GetNamedProjectColorObject( const QHash< QString, QColor > &colors );
2739
2740 QVariant func( const QVariantList &values, const QgsExpressionContext *, QgsExpression *, const QgsExpressionNodeFunction * ) override;
2741 QgsScopedExpressionFunction *clone() const override;
2742
2743 private:
2744 QHash< QString, QColor > mColors;
2745};
2746
2747
2748class GetSensorData : public QgsScopedExpressionFunction
2749{
2750 public:
2751 GetSensorData( const QMap<QString, QgsAbstractSensor::SensorData> &sensorData = QMap<QString, QgsAbstractSensor::SensorData>() );
2752 QVariant func( const QVariantList &values, const QgsExpressionContext *, QgsExpression *, const QgsExpressionNodeFunction * ) override;
2753 QgsScopedExpressionFunction *clone() const override;
2754
2755 private:
2756 QMap<QString, QgsAbstractSensor::SensorData> mSensorData;
2757};
2758#endif
2760
2761#endif
Provides global constants and enumerations for use throughout the application.
Definition qgis.h:62
QFlags< ProjectCapability > ProjectCapabilities
Flags which control project capabilities.
Definition qgis.h:4615
DistanceUnit
Units of distance.
Definition qgis.h:5326
@ ProjectStyles
Enable the project embedded style library. Enabling this flag can increase the time required to clear...
Definition qgis.h:4606
AreaUnit
Units of area.
Definition qgis.h:5403
ProjectFlag
Flags which control the behavior of QgsProjects.
Definition qgis.h:4287
ScaleCalculationMethod
Scale calculation logic.
Definition qgis.h:5603
QFlags< ProjectFlag > ProjectFlags
Definition qgis.h:4295
Represents a map layer containing a set of georeferenced annotations, e.g.
Manages storage of a set of QgsAnnotation annotation objects.
Manages zip/unzip operations for an archive.
Definition qgsarchive.h:36
A container for attribute editors, used to group them visually in the attribute form if it is set to ...
Providing some utility methods to manage auxiliary storage.
Manages storage of a set of bookmarks.
Represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
Abstract base class for spatial data provider implementations.
Manages storage of a set of elevation profiles.
Renders elevation shading on an image with different methods (eye dome lighting, hillshading,...
Abstract interface for generating an expression context.
Abstract interface for generating an expression context scope.
Single scope for storing variables and functions for use within a QgsExpressionContext.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Stores global configuration for labeling engine.
Layer tree group node serves as a container for layers and further groups.
Listens to layer changes from a QgsProject and applies changes to a QgsLayerTree.
Namespace with helper functions for layer tree operations.
Manages storage of a set of layouts.
A storage object for map layers, in which the layers are owned by the store and have their lifetime b...
Base class for all map layer types.
Definition qgsmaplayer.h:83
Container class that allows storage of map themes consisting of visible map layers and layer styles.
Manages storage of a set of views.
An interface for classes which can visit various object entity (e.g.
A QgsObjectEntityVisitorInterface context object.
Resolves relative paths into absolute paths and vice versa.
Interface for classes that handle missing layer files when reading project files.
Temporarily blocks QgsProject "dirtying" for the lifetime of the object.
QgsProjectDirtyBlocker & operator=(const QgsProjectDirtyBlocker &other)=delete
QgsProjectDirtyBlocker(QgsProject *project)
Constructor for QgsProjectDirtyBlocker.
QgsProjectDirtyBlocker(const QgsProjectDirtyBlocker &other)=delete
Contains settings and properties relating to how a QgsProject should display values such as map coord...
Contains elevation properties for a QgsProject.
Contains settings and properties relating to how a QgsProject should interact with a GPS device.
A structured metadata store for a project.
Project property key node.
Abstract interface for project storage - to be implemented by various backends and registered in QgsP...
Contains settings and properties relating to how a QgsProject should handle styling.
Contains temporal settings and properties for the project, this may be used when animating maps or sh...
An interface for objects which can translate project strings.
Describes the version of a project.
Contains settings and properties relating to how a QgsProject should be displayed inside map canvas,...
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition qgsproject.h:114
QgsRelationManager * relationManager
Definition qgsproject.h:125
QgsProject(QObject *parent=nullptr, Qgis::ProjectCapabilities capabilities=Qgis::ProjectCapability::ProjectStyles)
Create a new QgsProject.
Q_DECL_DEPRECATED void oldProjectVersionWarning(const QString &warning)
Emitted when an old project file is read.
Q_DECL_DEPRECATED bool evaluateDefaultValues() const
Should default values be evaluated on provider side when requested and not when committed.
Qgis::DistanceUnit distanceUnits
Definition qgsproject.h:132
void layersAddedWithoutLegend(const QList< QgsMapLayer * > &layers)
Emitted when layers were added to the registry without adding to the legend.
void layersRemoved(const QStringList &layerIds)
Emitted after one or more layers were removed from the registry.
QString error() const
Returns error message from previous read/write.
void readProjectWithContext(const QDomDocument &document, QgsReadWriteContext &context)
Emitted when a project is being read.
Q_DECL_DEPRECATED void setNonIdentifiableLayers(const QList< QgsMapLayer * > &layers)
Set a list of layers which should not be taken into account on map identification.
Qgis::ProjectFlags flags() const
Returns the project's flags, which dictate the behavior of the project.
Definition qgsproject.h:220
void setBackgroundColor(const QColor &color)
Sets the default background color used by default map canvases.
void setCrs(const QgsCoordinateReferenceSystem &crs, bool adjustEllipsoid=false)
Sets the project's native coordinate reference system.
QColor selectionColor
Definition qgsproject.h:130
bool commitChanges(QStringList &commitErrors, bool stopEditing=true, QgsVectorLayer *vectorLayer=nullptr)
Attempts to commit to the underlying data provider any buffered changes made since the last to call t...
void mapThemeCollectionChanged()
Emitted when the map theme collection changes.
static QgsProject * instance()
Returns the QgsProject singleton instance.
Q_DECL_DEPRECATED void mapScalesChanged()
Emitted when the list of custom project map scales changes.
void readVersionMismatchOccurred(const QString &fileVersion)
Emitted when a project is read and the version of QGIS used to save the project differs from the curr...
QString ellipsoid
Definition qgsproject.h:122
void fileNameChanged()
Emitted when the file name of the project changes.
friend class QgsProviderRegistry
void titleChanged()
Emitted when the title of the project changes.
Q_INVOKABLE QgsMapLayer * mapLayer(const QString &layerId) const
Retrieve a pointer to a registered layer by layer ID.
QString title
Definition qgsproject.h:117
void writeMapLayer(QgsMapLayer *mapLayer, QDomElement &layerElem, QDomDocument &doc)
Emitted when a layer is being saved.
void setSnappingConfig(const QgsSnappingConfig &snappingConfig)
The snapping configuration for this project.
void areaUnitsChanged()
Emitted when the default area units changes.
QgsPropertyCollection dataDefinedServerProperties() const
Returns the data defined properties used for overrides in user defined server parameters.
Q_DECL_DEPRECATED void nonIdentifiableLayersChanged(QStringList nonIdentifiableLayers)
Emitted when the list of layer which are excluded from map identification changes.
void layersWillBeRemoved(const QStringList &layerIds)
Emitted when one or more layers are about to be removed from the registry.
void setScaleMethod(Qgis::ScaleCalculationMethod method)
Sets the method to use for map scale calculations for the project.
QgsVectorLayerEditBufferGroup * editBufferGroup()
Returns the edit buffer group.
void setSelectionColor(const QColor &color)
Sets the color used to highlight selected features.
bool rollBack(QStringList &rollbackErrors, bool stopEditing=true, QgsVectorLayer *vectorLayer=nullptr)
Stops a current editing operation on vectorLayer and discards any uncommitted edits.
void snappingConfigChanged(const QgsSnappingConfig &config)
Emitted whenever the configuration for snapping has changed.
Q_DECL_DEPRECATED void setEvaluateDefaultValues(bool evaluateDefaultValues)
Defines if default values should be evaluated on provider side when requested and not when committed.
void layerWasAdded(QgsMapLayer *layer)
Emitted when a layer was added to the registry.
Qgis::AreaUnit areaUnits
Definition qgsproject.h:133
void crsChanged()
Emitted when the crs() of the project has changed.
Qgis::AreaUnit areaUnits() const
Convenience function to query default area measurement units for project.
Definition qgsproject.h:797
QgsSnappingConfig snappingConfig
Definition qgsproject.h:124
const QgsProjectGpsSettings * gpsSettings() const
Returns the project's GPS settings, which contains settings and properties relating to how a QgsProje...
void setFileName(const QString &name)
Sets the file name associated with the project.
void avoidIntersectionsLayersChanged()
Emitted whenever avoidIntersectionsLayers has changed.
void setDataDefinedServerProperties(const QgsPropertyCollection &properties)
Sets the data defined properties used for overrides in user defined server parameters to properties.
void registerTranslatableObjects(QgsTranslationContext *translationContext)
Registers the objects that require translation into the translationContext.
void layerWillBeRemoved(const QString &layerId)
Emitted when a layer is about to be removed from the registry.
void distanceUnitsChanged()
Emitted when the default distance units changes.
friend class QgsServer
void readMapLayer(QgsMapLayer *mapLayer, const QDomElement &layerNode)
Emitted after the basic initialization of a layer from the project file is done.
Q_DECL_DEPRECATED void setAutoTransaction(bool autoTransaction)
Transactional editing means that on supported datasources (postgres databases) the edit state of all ...
DataDefinedServerProperty
Data defined properties.
Definition qgsproject.h:154
bool startEditing(QgsVectorLayer *vectorLayer=nullptr)
Makes the layer editable.
void aboutToBeCleared()
Emitted when the project is about to be cleared.
void cleared()
Emitted when the project is cleared (and additionally when an open project is cleared just before a n...
QgsExpressionContext createExpressionContext() const override
This method needs to be reimplemented in all classes which implement this interface and return an exp...
void metadataChanged()
Emitted when the project's metadata is changed.
QgsLayerTreeRegistryBridge * layerTreeRegistryBridge() const
Returns pointer to the helper class that synchronizes map layer registry with layer tree.
void crs3DChanged()
Emitted when the crs3D() of the project has changed.
void scaleMethodChanged()
Emitted when the project's scale method is changed.
friend class QgsApplication
QList< QgsVectorLayer * > avoidIntersectionsLayers
Definition qgsproject.h:127
QgsExpressionContextScope * createExpressionContextScope() const override
This method needs to be reimplemented in all classes which implement this interface and return an exp...
void ellipsoidChanged(const QString &ellipsoid)
Emitted when the project ellipsoid is changed.
QgsMapThemeCollection * mapThemeCollection
Definition qgsproject.h:123
Qgis::TransactionMode transactionMode
Definition qgsproject.h:135
QgsAnnotationManager * annotationManager()
Returns pointer to the project's annotation manager.
QgsProjectDisplaySettings * displaySettings
Definition qgsproject.h:134
QgsProjectMetadata metadata
Definition qgsproject.h:128
void projectColorsChanged()
Emitted whenever the project's color scheme has been changed.
QVector< T > layers() const
Returns a list of registered map layers with a specified layer type.
bool setTransactionMode(Qgis::TransactionMode transactionMode)
Set transaction mode.
QgsCoordinateTransformContext transformContext
Definition qgsproject.h:121
void transactionModeChanged()
Emitted when the transaction mode has changed.
void labelingEngineSettingsChanged()
Emitted when global configuration of the labeling engine changes.
void customVariablesChanged()
Emitted whenever the expression variables stored in the project have been changed.
QgsLayerTree * layerTreeRoot() const
Returns pointer to the root (invisible) node of the project's layer tree.
void elevationShadingRendererChanged()
Emitted when the map shading renderer changes.
QString fileName
Definition qgsproject.h:118
Q_DECL_DEPRECATED bool autoTransaction() const
Transactional editing means that on supported datasources (postgres databases) the edit state of all ...
void setMetadata(const QgsProjectMetadata &metadata)
Sets the project's metadata store.
T mapLayer(const QString &layerId) const
Retrieve a pointer to a registered layer by layerId converted to type T.
QgsMapThemeCollection * mapThemeCollection()
Returns pointer to the project's map theme collection.
void missingDatumTransforms(const QStringList &missingTransforms)
Emitted when datum transforms stored in the project are not available locally.
QgsTransactionGroup * transactionGroup(const QString &providerKey, const QString &connString)
Returns the matching transaction group from a provider key and connection string.
QgsCoordinateReferenceSystem crs
Definition qgsproject.h:120
QStringList nonIdentifiableLayers
Definition qgsproject.h:116
void setAvoidIntersectionsMode(const Qgis::AvoidIntersectionsMode mode)
Sets the avoid intersections mode.
void layerWillBeRemoved(QgsMapLayer *layer)
Emitted when a layer is about to be removed from the registry.
void transactionGroupsChanged()
Emitted whenever a new transaction group has been created or a transaction group has been removed.
void loadingLayerMessageReceived(const QString &layerName, const QList< QgsReadWriteContext::ReadWriteMessage > &messages)
Emitted when loading layers has produced some messages.
QVector< T > mapLayersByShortName(const QString &shortName) const
Retrieves a list of matching registered layers by layer shortName with a specified layer type,...
Qgis::ScaleCalculationMethod scaleMethod() const
Returns the method to use for map scale calculations for the project.
Definition qgsproject.h:813
void setAreaUnits(Qgis::AreaUnit unit)
Sets the default area measurement units for the project.
void setTitle(const QString &title)
Sets the project's title.
QMap< QPair< QString, QString >, QgsTransactionGroup * > transactionGroups()
Map of transaction groups.
static const QgsSettingsEntryBool * settingsAnonymizeSavedProjects
Definition qgsproject.h:140
Qgis::ProjectCapabilities capabilities() const
Returns the project's capabilities, which dictate optional functionality which can be selectively ena...
Definition qgsproject.h:210
void projectSaved()
Emitted when the project file has been written and closed.
void layersWillBeRemoved(const QList< QgsMapLayer * > &layers)
Emitted when one or more layers are about to be removed from the registry.
void setEllipsoid(const QString &ellipsoid)
Sets the project's ellipsoid from a proj string representation, e.g., "WGS84".
void readProject(const QDomDocument &document)
Emitted when a project is being read.
void setTransformContext(const QgsCoordinateTransformContext &context)
Sets the project's coordinate transform context, which stores various information regarding which dat...
QColor backgroundColor
Definition qgsproject.h:129
void layerLoaded(int i, int n)
Emitted when a layer from a projects was read.
static const QgsSettingsEntryBool * settingsAnonymizeNewProjects
Definition qgsproject.h:139
void selectionColorChanged()
Emitted whenever the project's selection color has been changed.
bool topologicalEditing
Definition qgsproject.h:131
void removeAll()
Emitted when all layers are removed, before layersWillBeRemoved() and layerWillBeRemoved() signals ar...
void setDirty(bool b=true)
Flag the project as dirty (modified).
void backgroundColorChanged()
Emitted whenever the project's canvas background color has been changed.
void registerTranslatableContainers(QgsTranslationContext *translationContext, QgsAttributeEditorContainer *parent, const QString &layerId)
Registers the containers that require translation into the translationContext.
Qgis::ScaleCalculationMethod scaleMethod
Definition qgsproject.h:136
void transformContextChanged()
Emitted when the project transformContext() is changed.
void setTopologicalEditing(bool enabled)
Convenience function to set topological editing.
Qgis::AvoidIntersectionsMode avoidIntersectionsMode
Definition qgsproject.h:126
void legendLayersAdded(const QList< QgsMapLayer * > &layers)
Emitted when layers were added to the registry and the legend.
void setAvoidIntersectionsLayers(const QList< QgsVectorLayer * > &layers)
Sets the list of layers with which intersections should be avoided.
void layerRemoved(const QString &layerId)
Emitted after a layer was removed from the registry.
friend class TestQgsProject
void homePathChanged()
Emitted when the home path of the project changes.
void dirtySet()
Emitted when setDirty(true) is called.
friend class QgsProjectDirtyBlocker
void writeProject(QDomDocument &document)
Emitted when the project is being written.
void layersAdded(const QList< QgsMapLayer * > &layers)
Emitted when one or more layers were added to the registry.
QString homePath
Definition qgsproject.h:119
void isDirtyChanged(bool dirty)
Emitted when the project dirty status changes.
void setDistanceUnits(Qgis::DistanceUnit unit)
Sets the default distance measurement units for the project.
void setPresetHomePath(const QString &path)
Sets the project's home path.
void verticalCrsChanged()
Emitted when the verticalCrs() of the project has changed.
void topologicalEditingChanged()
Emitted when the topological editing flag has changed.
static const QgsSettingsEntryBool * settingsDefaultProjectPathsRelative
Definition qgsproject.h:141
void avoidIntersectionsModeChanged()
Emitted whenever the avoid intersections mode has changed.
void loadingLayer(const QString &layerName)
Emitted when a layer is loaded.
A grouped map of multiple QgsProperty objects, each referenced by an integer key value.
A container for the context for various read/write operations on objects.
Manages a set of relations between layers.
Manages storage of a set of selective masking source sets.
Manages sensors.
A boolean settings entry.
Stores settings for use within QGIS.
Definition qgssettings.h:68
Stores configuration of snapping settings for the project.
Provides calculations for tolerance values in map units.
Represents a transaction group.
Used for the collecting of strings from projects for translation and creation of ts files.
The edit buffer group manages a group of edit buffers.
Represents a vector layer which manages a vector based dataset.
QList< QPair< QColor, QString > > QgsNamedColorList
List of colors paired with a friendly display name identifying the color.
#define SIP_TYPEHINT(type)
Definition qgis_sip.h:239
#define SIP_DEPRECATED
Definition qgis_sip.h:113
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:52
#define SIP_SKIP
Definition qgis_sip.h:133
#define SIP_MONKEYPATCH_SCOPEENUM_UNNEST(OUTSIDE_CLASS, FORMERNAME)
Definition qgis_sip.h:267
#define SIP_PYNAME(name)
Definition qgis_sip.h:88
#define SIP_PYARGREMOVE
Definition qgis_sip.h:158
#define SIP_TRANSFER
Definition qgis_sip.h:35
#define SIP_OUT
Definition qgis_sip.h:57
#define SIP_TRANSFERBACK
Definition qgis_sip.h:47
QgsProjectVersion getVersion(const QDomDocument &doc)
Returns the version string found in the given DOM document.
QMap< int, QgsPropertyDefinition > QgsPropertiesDefinition
Definition of available properties.