24 #include "qgis_core.h"
34 #include <QStringList>
35 #include <QTranslator>
103 Q_PROPERTY( QStringList nonIdentifiableLayers READ nonIdentifiableLayers WRITE setNonIdentifiableLayers NOTIFY nonIdentifiableLayersChanged )
104 Q_PROPERTY( QString fileName READ fileName WRITE setFileName NOTIFY fileNameChanged )
105 Q_PROPERTY( QString homePath READ homePath WRITE setPresetHomePath NOTIFY homePathChanged )
108 Q_PROPERTY( QString ellipsoid READ ellipsoid WRITE setEllipsoid NOTIFY ellipsoidChanged )
109 Q_PROPERTY(
QgsMapThemeCollection *mapThemeCollection READ mapThemeCollection NOTIFY mapThemeCollectionChanged )
110 Q_PROPERTY(
QgsSnappingConfig snappingConfig READ snappingConfig WRITE setSnappingConfig NOTIFY snappingConfigChanged )
112 Q_PROPERTY(
AvoidIntersectionsMode avoidIntersectionsMode READ avoidIntersectionsMode WRITE setAvoidIntersectionsMode NOTIFY avoidIntersectionsModeChanged )
113 Q_PROPERTY( QList<QgsVectorLayer *> avoidIntersectionsLayers READ avoidIntersectionsLayers WRITE setAvoidIntersectionsLayers NOTIFY avoidIntersectionsLayersChanged )
114 Q_PROPERTY(
QgsProjectMetadata metadata READ metadata WRITE setMetadata NOTIFY metadataChanged )
115 Q_PROPERTY( QColor backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY backgroundColorChanged )
116 Q_PROPERTY( QColor selectionColor READ selectionColor WRITE setSelectionColor NOTIFY selectionColorChanged )
117 Q_PROPERTY(
bool topologicalEditing READ topologicalEditing WRITE setTopologicalEditing NOTIFY topologicalEditingChanged )
127 FlagDontResolveLayers = 1 << 0,
128 FlagDontLoadLayouts = 1 << 1,
129 FlagTrustLayerMetadata = 1 << 2,
130 FlagDontStoreOriginalStyles = 1 << 3,
131 FlagDontLoad3DViews = 1 << 4,
133 Q_DECLARE_FLAGS( ReadFlags, ReadFlag )
153 AvoidIntersectionsCurrentLayer,
154 AvoidIntersectionsLayers,
156 Q_ENUM( AvoidIntersectionsMode )
170 WMSOnlineResource = 2,
184 static void setInstance(
QgsProject *project ) ;
205 void setTitle(
const QString &title );
213 QString title()
const;
222 QString saveUser()
const;
231 QString saveUserFullName()
const;
238 QDateTime lastSaveDateTime()
const;
250 bool isDirty()
const;
258 void setFileName(
const QString &name );
266 QString fileName()
const;
279 void setOriginalPath(
const QString &path );
292 QString originalPath()
const;
318 QDateTime lastModified() const;
325 QString absoluteFilePath() const;
332 QString absolutePath() const;
338 QString baseName() const;
346 Qgis::FilePathType filePathStorage() const;
354 void setFilePathStorage(
Qgis::FilePathType type );
381 QString ellipsoid() const;
389 void setEllipsoid( const QString &ellipsoid );
448 bool readLayer( const QDomNode &layerNode );
458 bool write( const QString &filename );
478 bool writeEntry( const QString &scope, const QString &key,
bool value )
SIP_PYNAME( writeEntryBool );
491 bool writeEntry( const QString &scope, const QString &key,
double value )
SIP_PYNAME( writeEntryDouble );
503 bool writeEntry( const QString &scope, const QString &key,
int value );
515 bool writeEntry( const QString &scope, const QString &key, const QString &value );
527 bool writeEntry( const QString &scope, const QString &key, const QStringList &value );
539 QStringList readListEntry( const QString &scope, const QString &key, const QStringList &def = QStringList(),
bool *ok
SIP_OUT =
nullptr ) const;
551 QString readEntry( const QString &scope, const QString &key, const QString &def = QString(),
bool *ok
SIP_OUT =
nullptr ) const;
563 int readNumEntry( const QString &scope, const QString &key,
int def = 0,
bool *ok
SIP_OUT =
nullptr ) const;
575 double readDoubleEntry( const QString &scope, const QString &key,
double def = 0,
bool *ok
SIP_OUT =
nullptr ) const;
587 bool readBoolEntry( const QString &scope, const QString &key,
bool def = false,
bool *ok
SIP_OUT =
nullptr ) const;
592 bool removeEntry( const QString &scope, const QString &key );
602 QStringList entryList( const QString &scope, const QString &key ) const;
612 QStringList subkeyList( const QString &scope, const QString &key ) const;
620 void dumpProperties() const;
634 QString writePath( const QString &filename ) const;
639 QString readPath( const QString &filename ) const;
642 QString error() const;
655 QString layerIsEmbedded( const QString &
id ) const;
665 bool createEmbeddedLayer( const QString &layerId, const QString &projectFilePath, QList<QDomNode> &brokenNodes,
675 QgsLayerTreeGroup *createEmbeddedGroup( const QString &groupName, const QString &projectFilePath, const QStringList &invisibleLayers,
QgsProject::ReadFlags flags =
QgsProject::ReadFlags() );
678 void setTopologicalEditing(
bool enabled );
681 bool topologicalEditing() const;
697 void setDistanceUnits(
QgsUnitTypes::DistanceUnit unit );
726 QString homePath() const;
740 QString presetHomePath() const;
873 Q_DECL_DEPRECATED
void setNonIdentifiableLayers( const QList<
QgsMapLayer *> &layers );
879 Q_DECL_DEPRECATED
void setNonIdentifiableLayers( const QStringList &layerIds );
885 Q_DECL_DEPRECATED QStringList nonIdentifiableLayers() const;
894 bool autoTransaction() const;
905 void setAutoTransaction(
bool autoTransaction );
924 QgsTransactionGroup *transactionGroup( const QString &providerKey, const QString &connString );
931 bool evaluateDefaultValues() const;
938 void setEvaluateDefaultValues(
bool evaluateDefaultValues );
963 void setAvoidIntersectionsLayers( const QList<
QgsVectorLayer *> &layers );
984 QVariantMap customVariables()
const;
990 void setCustomVariables(
const QVariantMap &customVariables );
1024 int validCount()
const;
1033 Q_INVOKABLE
QgsMapLayer *mapLayer(
const QString &layerId )
const;
1055 return qobject_cast<T>( mapLayer( layerId ) );
1066 QList<QgsMapLayer *> mapLayersByName(
const QString &layerName )
const;
1077 QList<QgsMapLayer *> mapLayersByShortName(
const QString &shortName )
const;
1088 QMap<QString, QgsMapLayer *> mapLayers(
const bool validOnly =
false )
const;
1093 bool isZipped()
const;
1108 template <
typename T>
1111 return mLayerStore->layers<T>();
1125 template <
typename T>
1129 const auto constMapLayers { mLayerStore->layers<T>() };
1130 for (
const auto l : constMapLayers )
1132 if ( ! l->shortName().isEmpty() )
1134 if ( l->shortName() == shortName )
1137 else if ( l->name() == shortName )
1172 QList<QgsMapLayer *> addMapLayers(
const QList<QgsMapLayer *> &mapLayers
SIP_TRANSFER,
1173 bool addToLegend =
true,
1204 bool addToLegend =
true,
1221 void removeMapLayers(
const QStringList &layerIds );
1238 void removeMapLayers(
const QList<QgsMapLayer *> &layers );
1253 void removeMapLayer(
const QString &layerId );
1302 void removeAllMapLayers();
1309 void reloadAllLayers();
1328 void setTrustLayerMetadata(
bool trust );
1364 QString createAttachedFile( const QString &nameTemplate );
1372 QStringList attachedFiles() const;
1381 bool removeAttachedFile( const QString &path );
1391 QString attachmentIdentifier( const QString &attachedFile ) const;
1399 QString resolveAttachmentIdentifier( const QString &identifier ) const;
1425 Q_DECL_DEPRECATED QSet<
QgsMapLayer *> requiredLayers() const;
1435 Q_DECL_DEPRECATED
void setRequiredLayers( const QSet<
QgsMapLayer *> &layers );
1451 void setBackgroundColor( const QColor &color );
1459 QColor backgroundColor() const;
1467 void setSelectionColor( const QColor &color );
1475 QColor selectionColor() const;
1488 Q_DECL_DEPRECATED
void setMapScales( const QVector<
double> &scales )
SIP_DEPRECATED;
1501 Q_DECL_DEPRECATED QVector<
double> mapScales() const
SIP_DEPRECATED;
1511 Q_DECL_DEPRECATED
void setUseProjectScales(
bool enabled )
SIP_DEPRECATED;
1527 void generateTsFile( const QString &locale );
1539 QString translate( const QString &context, const QString &sourceText, const
char *disambiguation =
nullptr,
int n = -1 ) const override;
1553 SIP_PYOBJECT __repr__();
1555 QString
str = QStringLiteral(
"<QgsProject: '%1'%2>" ).arg( sipCpp->fileName(),
1557 sipRes = PyUnicode_FromString(
str.toUtf8().constData() );
1936 void setDirty(
bool b = true );
1946 void setPresetHomePath( const QString &path );
1984 void onMapLayersAdded( const QList<
QgsMapLayer *> &layers );
1985 void onMapLayersRemoved( const QList<
QgsMapLayer *> &layers );
1986 void cleanTransactionGroups(
bool force = false );
2001 bool _getMapLayers( const QDomDocument &doc, QList<QDomNode> &brokenNodes,
QgsProject::ReadFlags flags =
QgsProject::ReadFlags() );
2007 void setError( const QString &errorMessage )
SIP_SKIP;
2038 bool readProjectFile( const QString &filename,
QgsProject::ReadFlags flags =
QgsProject::ReadFlags() );
2041 bool writeProjectFile( const QString &filename );
2047 bool zip( const QString &filename );
2050 bool saveAuxiliaryStorage( const QString &filename = QString() );
2057 QString mErrorMessage;
2066 QHash< QString, QPair< QString,
bool> > mEmbeddedLayers;
2098 QVariantMap mCustomVariables;
2106 QString mOriginalPath;
2109 QString mSaveUserFull;
2110 QDateTime mSaveDateTime;
2118 mutable QString mCachedHomePath;
2120 QColor mBackgroundColor;
2121 QColor mSelectionColor;
2124 bool mAutoTransaction = false;
2125 bool mEvaluateDefaultValues = false;
2127 bool mDirty = false;
2128 int mDirtyBlockCount = 0;
2129 bool mTrustLayerMetadata = false;
2139 bool mIsBeingDeleted = false;
2145 int mBlockSnappingUpdates = 0;
2155 friend class TestQgsProject;
2193 : mProject( project )
2195 mProject->mDirtyBlockCount++;
2206 mProject->mDirtyBlockCount--;
2231 GetNamedProjectColor(
const QgsProject *project );
2237 GetNamedProjectColor(
const QHash< QString, QColor > &colors );
2244 QHash< QString, QColor > mColors;
The Qgis class provides global constants for use throughout the application.
Represents a map layer containing a set of georeferenced annotations, e.g.
Manages storage of a set of QgsAnnotation annotation objects.
Class allowing to manage the zip/unzip actions.
This is a container for attribute editors, used to group them visually in the attribute form if it is...
Class providing some utility methods to manage auxiliary storage.
Manages storage of a set of bookmarks.
This class represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
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...
An expression node for expression functions.
Class for parsing and evaluation of expressions (formerly called "search strings").
Stores global configuration for labeling engine.
Layer tree group node serves as a container for layers and further groups.
Listens to the updates in map layer registry and does changes in layer tree.
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.
Container class that allows storage of map themes consisting of visible map layers and layer styles.
Manages storage of a set of views.
Resolves relative paths into absolute paths and vice versa.
Interface for classes that handle missing layer files when reading project file.
Temporarily blocks QgsProject "dirtying" for the lifetime of the object.
QgsProjectDirtyBlocker & operator=(const QgsProjectDirtyBlocker &other)=delete
QgsProjectDirtyBlocker cannot be copied.
QgsProjectDirtyBlocker(QgsProject *project)
Constructor for QgsProjectDirtyBlocker.
~QgsProjectDirtyBlocker()
QgsProjectDirtyBlocker(const QgsProjectDirtyBlocker &other)=delete
QgsProjectDirtyBlocker cannot be copied.
Contains settings and properties relating to how a QgsProject should display values such as map coord...
Project property key node.
Abstract interface for project storage - to be implemented by various backends and registered in QgsP...
Contains temporal settings and properties for the project, this may be used when animating maps or sh...
Wherever an object of this class is available, the derived translate function can be called from.
A class to describe 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,...
void layersRemoved(const QStringList &layerIds)
Emitted after one or more layers were removed from the registry.
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...
void fileNameChanged()
Emitted when the file name of the project changes.
void writeMapLayer(QgsMapLayer *mapLayer, QDomElement &layerElem, QDomDocument &doc)
Emitted when a layer is being saved.
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 snappingConfigChanged(const QgsSnappingConfig &config)
Emitted whenever the configuration for snapping has changed.
void layerWasAdded(QgsMapLayer *layer)
Emitted when a layer was added to the registry.
void crsChanged()
Emitted when the CRS of the project has changed.
void avoidIntersectionsLayersChanged()
Emitted whenever avoidIntersectionsLayers has changed.
void layerWillBeRemoved(const QString &layerId)
Emitted when a layer is about to be removed from the registry.
void readMapLayer(QgsMapLayer *mapLayer, const QDomElement &layerNode)
Emitted after the basic initialization of a layer from the project file is done.
QgsMapThemeCollection * mapThemeCollection()
Returns pointer to the project's map theme collection.
void cleared()
Emitted when the project is cleared (and additionally when an open project is cleared just before a n...
DataDefinedServerProperty
Data defined properties.
Q_DECL_DEPRECATED void oldProjectVersionWarning(const QString &)
Emitted when an old project file is read.
void metadataChanged()
Emitted when the project's metadata is changed.
QVector< T > layers() const
Returns a list of registered map layers with a specified layer type.
AvoidIntersectionsMode
Flags which control how intersections of pre-existing feature are handled when digitizing new feature...
void ellipsoidChanged(const QString &ellipsoid)
Emitted when the project ellipsoid is changed.
void projectColorsChanged()
Emitted whenever the project's color scheme has been 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.
void readProject(const QDomDocument &)
Emitted when a project is being read.
T mapLayer(const QString &layerId) const
Retrieve a pointer to a registered layer by layerId converted to type T.
void missingDatumTransforms(const QStringList &missingTransforms)
Emitted when datum transforms stored in the project are not available locally.
void readProjectWithContext(const QDomDocument &, QgsReadWriteContext &context)
Emitted when a project is being read.
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.
FileFormat
Flags which control project read behavior.
void writeProject(QDomDocument &)
Emitted when the project is being written.
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.
bool trustLayerMetadata() const
Returns true if the trust option is activated, false otherwise.
void layerLoaded(int i, int n)
Emitted when a layer from a projects was read.
void selectionColorChanged()
Emitted whenever the project's selection color has been changed.
void removeAll()
Emitted when all layers are removed, before layersWillBeRemoved() and layerWillBeRemoved() signals ar...
QVector< T > mapLayersByShortName(const QString &shortName) const
Retrieves a list of matching registered layers by layer shortName with a specified layer type,...
void backgroundColorChanged()
Emitted whenever the project's canvas background color has been changed.
ReadFlag
Flags which control project read behavior.
void transformContextChanged()
Emitted when the project transformContext() is changed.
void legendLayersAdded(const QList< QgsMapLayer * > &layers)
Emitted, when a layer was added to the registry and the legend.
void layerRemoved(const QString &layerId)
Emitted after a layer was removed from the registry.
void homePathChanged()
Emitted when the home path of the project changes.
void dirtySet()
Emitted when setDirty(true) is called.
void layersAdded(const QList< QgsMapLayer * > &layers)
Emitted when one or more layers were added to the registry.
void isDirtyChanged(bool dirty)
Emitted when the project dirty status changes.
void topologicalEditingChanged()
Emitted when the topological editing flag has changed.
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 a integer key value.
A registry / canonical manager of data providers.
The class is used as a container of context for various read/write operations on other objects.
This class manages a set of relations between layers.
Expression function for use within a QgsExpressionContextScope.
The QgsServer class provides OGC web services.
This class is a composition of two QSettings instances:
This is a container for configuration of the snapping of the project.
An interface for classes which can visit style entity (e.g.
This is the class is providing tolerance value in map unit values.
Used for the collecting of strings from projects for translation and creation of ts files.
Helper functions for various unit types.
Represents a vector layer which manages a vector based data sets.
QList< QPair< QColor, QString > > QgsNamedColorList
List of colors paired with a friendly display name identifying the color.
CORE_EXPORT bool unzip(const QString &zip, const QString &dir, QStringList &files)
Unzip a zip file in an output directory.
CORE_EXPORT bool zip(const QString &zip, const QStringList &files)
Zip the list of files in the zip file.
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
#define SIP_MONKEYPATCH_SCOPEENUM
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
CORE_EXPORT QgsProjectVersion getVersion(QDomDocument const &doc)
Returns the version string found in the given DOM document.
QMap< int, QgsPropertyDefinition > QgsPropertiesDefinition
Definition of available properties.
const QgsCoordinateReferenceSystem & crs