mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-10-30 00:07:09 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			395 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			395 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/qgsauxiliarystorage.h                                       *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | |
|  ************************************************************************/
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| class QgsAuxiliaryLayer : QgsVectorLayer
 | |
| {
 | |
| %Docstring(signature="appended")
 | |
| 
 | |
| 
 | |
| Class allowing to manage the auxiliary storage for a vector layer.
 | |
| 
 | |
| Such auxiliary data are data used mostly for the needs of QGIS (symbology)
 | |
| and have no real interest in being stored with the native raw geospatial
 | |
| data.
 | |
| 
 | |
| The need arises from the restrictions existing in the manual placement of
 | |
| labels. Manual placement of labels are possible in QGIS by setting some
 | |
| labeling properties (X and Y position, and rotation angle optionally) as
 | |
| being "data-defined", meaning that values come from a column (or an
 | |
| expression). But setting this up on an existing layer requires either to
 | |
| add new columns to the source layer, while it is not always possible or
 | |
| desirable.
 | |
| 
 | |
| This :py:class:`QgsAuxiliaryLayer` provides the solution to this limitation. Actually
 | |
| it's an editable join to the original vector layer with some
 | |
| synchronisation mechanisms activated such as "Upsert On Edit" or "Delete
 | |
| Cascade". Thus, auxiliary fields are editable even if the
 | |
| source layer is not and edition of a joined field is also possible.
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgsauxiliarystorage.h"
 | |
| %End
 | |
|   public:
 | |
| 
 | |
|     QgsAuxiliaryLayer( const QString &pkField, const QString &filename, const QString &table, QgsVectorLayer *vlayer );
 | |
| %Docstring
 | |
| Constructor
 | |
| 
 | |
| :param pkField: The primary key to use for joining
 | |
| :param filename: The database path
 | |
| :param table: The table name
 | |
| :param vlayer: The target vector layer in join definition
 | |
| %End
 | |
| 
 | |
| 
 | |
| 
 | |
|     SIP_PYOBJECT __repr__();
 | |
| %MethodCode
 | |
|     QString str = QStringLiteral( "<QgsAuxiliaryLayer: '%1'>" ).arg( sipCpp->name() );
 | |
|     sipRes = PyUnicode_FromString( str.toUtf8().constData() );
 | |
| %End
 | |
| 
 | |
| 
 | |
|     QgsAuxiliaryLayer *clone( QgsVectorLayer *layer ) const /Factory/;
 | |
| %Docstring
 | |
| Returns a new instance equivalent to this one. The underlying table
 | |
| is duplicate for the layer given in parameter. Note that the current
 | |
| auxiliary layer should be saved to have a proper duplicated table.
 | |
| 
 | |
| :param layer: The layer for which the clone is made
 | |
| %End
 | |
| 
 | |
|     QgsVectorLayer *toSpatialLayer() const;
 | |
| %Docstring
 | |
| An auxiliary layer is not spatial. This method returns a spatial
 | |
| representation of auxiliary data.
 | |
| 
 | |
| :return: A new spatial vector layer
 | |
| %End
 | |
| 
 | |
|     bool clear();
 | |
| %Docstring
 | |
| Deletes all features from the layer. Changes are automatically committed
 | |
| and the layer remains editable.
 | |
| 
 | |
| :return: ``True`` if changes are committed without error, ``False`` otherwise.
 | |
| %End
 | |
| 
 | |
|     QgsVectorLayerJoinInfo joinInfo() const;
 | |
| %Docstring
 | |
| Returns information to use for joining with primary key and so on.
 | |
| %End
 | |
| 
 | |
|     bool exists( const QgsPropertyDefinition &definition ) const;
 | |
| %Docstring
 | |
| Returns ``True`` if the property is stored in the layer already, ``False``
 | |
| otherwise.
 | |
| 
 | |
| :param definition: The property definition to check
 | |
| 
 | |
| :return: ``True`` if the property is stored, ``False`` otherwise
 | |
| %End
 | |
| 
 | |
|     bool addAuxiliaryField( const QgsPropertyDefinition &definition );
 | |
| %Docstring
 | |
| Adds an auxiliary field for the given property. Setup for widget
 | |
| editors are updated in the target layer as well as the attribute
 | |
| table config to hide auxiliary fields by default.
 | |
| 
 | |
| :param definition: The definition of the property to add
 | |
| 
 | |
| :return: ``True`` if the auxiliary field is well added, ``False`` otherwise
 | |
| %End
 | |
| 
 | |
|     QgsFields auxiliaryFields() const;
 | |
| %Docstring
 | |
| Returns a list of all auxiliary fields currently managed by the layer.
 | |
| %End
 | |
| 
 | |
|     bool save();
 | |
| %Docstring
 | |
| Commits changes and starts editing then.
 | |
| 
 | |
| :return: ``True`` if commit step passed, ``False`` otherwise
 | |
| %End
 | |
| 
 | |
|     virtual bool deleteAttribute( int attr );
 | |
| 
 | |
| %Docstring
 | |
| Removes attribute from the layer and commits changes. The layer remains
 | |
| editable.
 | |
| 
 | |
| :param attr: The index of the attribute to remove
 | |
| 
 | |
| :return: ``True`` if the attribute is well deleted, ``False`` otherwise
 | |
| %End
 | |
| 
 | |
|     bool isHiddenProperty( int index ) const;
 | |
| %Docstring
 | |
| Returns ``True`` if the underlying field has to be hidden from editing
 | |
| tools like attribute table, ``False`` otherwise.
 | |
| 
 | |
| :param index: The index of the field for which visibility is checked
 | |
| %End
 | |
| 
 | |
|     int indexOfPropertyDefinition( const QgsPropertyDefinition &definition ) const;
 | |
| %Docstring
 | |
| Returns the index of the auxiliary field for a specific property
 | |
| definition.
 | |
| 
 | |
| :param definition: The property definition
 | |
| 
 | |
| :return: The index of the field corresponding to the property or -1
 | |
| %End
 | |
| 
 | |
|     int propertyFromIndex( int index ) const;
 | |
| %Docstring
 | |
| Returns the underlying property key for the field index. The key may be
 | |
| a PAL, diagram or symbology property according to the underlying
 | |
| property definition of the field. The key -1 is returned if an error
 | |
| happened.
 | |
| 
 | |
| :param index: The index of the field
 | |
| %End
 | |
| 
 | |
|     QgsPropertyDefinition propertyDefinitionFromIndex( int index ) const;
 | |
| %Docstring
 | |
| Returns the property definition for the underlying field index.
 | |
| 
 | |
| :param index: The index of the field
 | |
| %End
 | |
| 
 | |
|     static int createProperty( QgsPalLayerSettings::Property property, QgsVectorLayer *vlayer, bool overwriteExisting = true );
 | |
| %Docstring
 | |
| Creates if necessary a new auxiliary field for a PAL property and
 | |
| activates this property in settings.
 | |
| 
 | |
| :param property: The property to create
 | |
| :param vlayer: The vector layer
 | |
| :param overwriteExisting: since QGIS 3.22, controls whether an existing property should be completely overwritten or upgraded to a coalesce("new aux field", 'existing' || 'property' || 'expression') type property
 | |
| 
 | |
| :return: The index of the auxiliary field or -1
 | |
| %End
 | |
| 
 | |
|     static int createProperty( QgsDiagramLayerSettings::Property property, QgsVectorLayer *vlayer, bool overwriteExisting = true );
 | |
| %Docstring
 | |
| Creates if necessary a new auxiliary field for a diagram's property and
 | |
| activates this property in settings.
 | |
| 
 | |
| :param property: The property to create
 | |
| :param vlayer: The vector layer
 | |
| :param overwriteExisting: since QGIS 3.22, controls whether an existing property should be completely overwritten or upgraded to a coalesce("new aux field", 'existing' || 'property' || 'expression') type property
 | |
| 
 | |
| :return: The index of the auxiliary field or -1
 | |
| %End
 | |
| 
 | |
|     static int createProperty( QgsCallout::Property property, QgsVectorLayer *vlayer, bool overwriteExisting = true );
 | |
| %Docstring
 | |
| Creates if necessary a new auxiliary field for a callout's property and
 | |
| activates this property in settings.
 | |
| 
 | |
| :param property: The property to create
 | |
| :param vlayer: The vector layer
 | |
| :param overwriteExisting: since QGIS 3.22, controls whether an existing property should be completely overwritten or upgraded to a coalesce("new aux field", 'existing' || 'property' || 'expression') type property
 | |
| 
 | |
| :return: The index of the auxiliary field or -1
 | |
| 
 | |
| .. versionadded:: 3.20
 | |
| %End
 | |
| 
 | |
|     static QgsField createAuxiliaryField( const QgsPropertyDefinition &definition );
 | |
| %Docstring
 | |
| Creates a new auxiliary field from a property definition.
 | |
| 
 | |
| :param definition: The property definition of the auxiliary field to create
 | |
| %End
 | |
| 
 | |
|     static QgsField createAuxiliaryField( const QgsField &field );
 | |
| %Docstring
 | |
| Creates a new auxiliary field from a field.
 | |
| 
 | |
| :param field: The field to use to create the auxiliary field
 | |
| %End
 | |
| 
 | |
|     static QString nameFromProperty( const QgsPropertyDefinition &def, bool joined = false );
 | |
| %Docstring
 | |
| Returns the name of the auxiliary field for a property definition.
 | |
| 
 | |
| :param def: The property definition
 | |
| :param joined: The join prefix is taken into account if ``True``
 | |
| %End
 | |
| 
 | |
|     static QgsPropertyDefinition propertyDefinitionFromField( const QgsField &field );
 | |
| %Docstring
 | |
| Returns the property definition from an auxiliary field.
 | |
| 
 | |
| :param field: The auxiliary field
 | |
| %End
 | |
| 
 | |
| };
 | |
| 
 | |
| 
 | |
| class QgsAuxiliaryStorage
 | |
| {
 | |
| %Docstring(signature="appended")
 | |
| 
 | |
| 
 | |
| Class providing some utility methods to manage auxiliary storage.
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgsauxiliarystorage.h"
 | |
| %End
 | |
|   public:
 | |
| 
 | |
|     QgsAuxiliaryStorage( const QgsProject &project, bool copy = true );
 | |
| %Docstring
 | |
| Constructor.
 | |
| 
 | |
| The project filename is used to build a database path at the same
 | |
| location, but with a different extension. Then, it's the same logic as
 | |
| described for :py:class:`QgsAuxiliaryStorage`.
 | |
| 
 | |
| :param project: The project for which the auxiliary storage has to be used
 | |
| :param copy: Parameter indicating if a copy of the database has to be used
 | |
| %End
 | |
| 
 | |
|     QgsAuxiliaryStorage( const QString &filename = QString(), bool copy = true );
 | |
| %Docstring
 | |
| Constructor.
 | |
| 
 | |
| If a valid database path is given in parameter and copy mode is
 | |
| deactivated, then every changes is directly committed on the original
 | |
| database. But if the copy mode is activated, then changes are committed
 | |
| on a copy of the database (a temporary file) and a save action is
 | |
| therefore necessary to keep modifications in the original file.
 | |
| 
 | |
| If an empty string for the database path is given in parameter, then
 | |
| a database is created in a temporary file whatever the copy mode.
 | |
| 
 | |
| If the database path given in parameter is not empty but does not exist,
 | |
| then a database is created at this location when copy mode is
 | |
| deactivated. When copy mode is activated, a temporary database is used
 | |
| instead and a save action will be necessary to create the database at
 | |
| the original location given in parameter.
 | |
| 
 | |
| :param filename: The path of the database
 | |
| :param copy: Parameter indicating if a copy of the database has to be used
 | |
| %End
 | |
| 
 | |
|     virtual ~QgsAuxiliaryStorage();
 | |
| 
 | |
|     bool isValid() const;
 | |
| %Docstring
 | |
| Returns the status of the auxiliary storage currently defined.
 | |
| 
 | |
| :return: ``True`` if the auxiliary storage is valid, ``False`` otherwise
 | |
| %End
 | |
| 
 | |
|     QString fileName() const;
 | |
| %Docstring
 | |
| Returns the target filename of the database.
 | |
| %End
 | |
| 
 | |
|     QString currentFileName() const;
 | |
| %Docstring
 | |
| Returns the path of the current database used. It may be different from
 | |
| the target filename if the auxiliary storage is opened in copy mode.
 | |
| %End
 | |
| 
 | |
|     QString errorString() const;
 | |
| %Docstring
 | |
| Returns the underlying error string describing potential errors
 | |
| happening in :py:func:`~QgsAuxiliaryStorage.saveAs`. Empty by default.
 | |
| 
 | |
| .. versionadded:: 3.4
 | |
| %End
 | |
| 
 | |
|     bool saveAs( const QString &filename );
 | |
| %Docstring
 | |
| Saves the current database to a new path.
 | |
| 
 | |
| :return: ``True`` if everything is saved, ``False`` otherwise
 | |
| %End
 | |
| 
 | |
|     bool saveAs( const QgsProject &project );
 | |
| %Docstring
 | |
| Saves the current database to a new path for a specific project.
 | |
| Actually, the current filename of the project is used to deduce the
 | |
| path of the database to save.
 | |
| 
 | |
| :return: ``True`` if everything is saved, ``False`` otherwise
 | |
| %End
 | |
| 
 | |
|     bool save() const;
 | |
| %Docstring
 | |
| Saves the current database.
 | |
| 
 | |
| :return: ``True`` if everything is saved, ``False`` otherwise
 | |
| %End
 | |
| 
 | |
|     QgsAuxiliaryLayer *createAuxiliaryLayer( const QgsField &field, QgsVectorLayer *layer ) const /Factory/;
 | |
| %Docstring
 | |
| Creates an auxiliary layer for a vector layer. A new table is created if
 | |
| necessary. The primary key to use to construct the auxiliary layer is
 | |
| given in parameter.
 | |
| 
 | |
| :param field: The primary key to join
 | |
| :param layer: The vector layer for which the auxiliary layer has to be created
 | |
| 
 | |
| :return: A new auxiliary layer or ``None`` if an error happened.
 | |
| %End
 | |
| 
 | |
|     static bool deleteTable( const QgsDataSourceUri &uri );
 | |
| %Docstring
 | |
| Removes a table from the auxiliary storage.
 | |
| 
 | |
| :param uri: The uri of the table to remove
 | |
| 
 | |
| :return: ``True`` if the table is well deleted, ``False`` otherwise
 | |
| %End
 | |
| 
 | |
|     static bool duplicateTable( const QgsDataSourceUri &uri, const QString &newTable );
 | |
| %Docstring
 | |
| Duplicates a table and its content.
 | |
| 
 | |
| :param uri: The uri of the table to duplicate
 | |
| :param newTable: The name of the new table
 | |
| 
 | |
| :return: ``True`` if the table is well duplicated, ``False`` otherwise
 | |
| %End
 | |
| 
 | |
|     static QString extension();
 | |
| %Docstring
 | |
| Returns the extension used for auxiliary databases.
 | |
| %End
 | |
| 
 | |
|     static bool exists( const QgsProject &project );
 | |
| %Docstring
 | |
| Returns ``True`` if the auxiliary database yet exists for a project, ``False`` otherwise.
 | |
| 
 | |
| :param project: The project for which the database is checked
 | |
| 
 | |
| .. versionadded:: 3.2
 | |
| %End
 | |
| 
 | |
| };
 | |
| 
 | |
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/qgsauxiliarystorage.h                                       *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | |
|  ************************************************************************/
 |