mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-24 00:47:57 -05: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 *
|
|
************************************************************************/
|