QGIS API Documentation
3.6.0-Noosa (5873452)
|
This class manages a set of relations between layers. More...
#include <qgsrelationmanager.h>
Public Slots | |
void | updateRelationsStatus () |
Updates relations status. More... | |
Signals | |
void | changed () |
Emitted when relations are added or removed to the manager. More... | |
void | relationsLoaded () |
This signal is emitted when the relations were loaded after reading a project. More... | |
Public Member Functions | |
QgsRelationManager (QgsProject *project=nullptr) | |
Constructor for QgsRelationManager. More... | |
void | addRelation (const QgsRelation &relation) |
Add a relation. More... | |
void | clear () |
Remove any relation managed by this class. More... | |
QList< QgsRelation > | referencedRelations (QgsVectorLayer *layer=nullptr) const |
Gets all relations where this layer is the referenced part (i.e. More... | |
QList< QgsRelation > | referencingRelations (const QgsVectorLayer *layer=nullptr, int fieldIdx=-2) const |
Gets all relations where the specified layer (and field) is the referencing part (i.e. More... | |
Q_INVOKABLE QgsRelation | relation (const QString &id) const |
Gets access to a relation by its id. More... | |
QMap< QString, QgsRelation > | relations () const |
Gets access to the relations managed by this class. More... | |
QList< QgsRelation > | relationsByName (const QString &name) const |
Returns a list of relations with matching names. More... | |
void | removeRelation (const QString &id) |
Remove a relation. More... | |
void | removeRelation (const QgsRelation &relation) |
Remove a relation. More... | |
void | setRelations (const QList< QgsRelation > &relations) |
Will set the specified relations and remove any relation currently set. More... | |
Static Public Member Functions | |
static QList< QgsRelation > | discoverRelations (const QList< QgsRelation > &existingRelations, const QList< QgsVectorLayer *> &layers) |
Discover all the relations available from the current layers. More... | |
This class manages a set of relations between layers.
Definition at line 34 of file qgsrelationmanager.h.
|
explicit |
Constructor for QgsRelationManager.
project | associated project (used to notify project of changes) |
Definition at line 24 of file qgsrelationmanager.cpp.
void QgsRelationManager::addRelation | ( | const QgsRelation & | relation | ) |
Add a relation.
Invalid relations are added only if both referencing layer and referenced layer exist.
relation | The relation to add. |
Definition at line 51 of file qgsrelationmanager.cpp.
|
signal |
Emitted when relations are added or removed to the manager.
void QgsRelationManager::clear | ( | ) |
Remove any relation managed by this class.
Definition at line 104 of file qgsrelationmanager.cpp.
|
static |
Discover all the relations available from the current layers.
existingRelations | the existing relations to filter them out |
layers | the current layers |
Definition at line 244 of file qgsrelationmanager.cpp.
QList< QgsRelation > QgsRelationManager::referencedRelations | ( | QgsVectorLayer * | layer = nullptr | ) | const |
Gets all relations where this layer is the referenced part (i.e.
the parent table with the primary key being referenced from another layer).
layer | The layer which should be searched for. |
Definition at line 147 of file qgsrelationmanager.cpp.
QList< QgsRelation > QgsRelationManager::referencingRelations | ( | const QgsVectorLayer * | layer = nullptr , |
int | fieldIdx = -2 |
||
) | const |
Gets all relations where the specified layer (and field) is the referencing part (i.e.
the child table with the foreign key).
layer | The layer which should be searched for. |
fieldIdx | The field which should be part of the foreign key. If not set will return all relations. |
Definition at line 110 of file qgsrelationmanager.cpp.
QgsRelation QgsRelationManager::relation | ( | const QString & | id | ) | const |
Gets access to a relation by its id.
id | The id to search for |
Definition at line 86 of file qgsrelationmanager.cpp.
QMap< QString, QgsRelation > QgsRelationManager::relations | ( | ) | const |
Gets access to the relations managed by this class.
Definition at line 46 of file qgsrelationmanager.cpp.
QList< QgsRelation > QgsRelationManager::relationsByName | ( | const QString & | name | ) | const |
Returns a list of relations with matching names.
name | relation name to search for. Searching is case insensitive. |
Definition at line 91 of file qgsrelationmanager.cpp.
|
signal |
This signal is emitted when the relations were loaded after reading a project.
void QgsRelationManager::removeRelation | ( | const QString & | id | ) |
Remove a relation.
id | The id of the relation to remove. |
Definition at line 74 of file qgsrelationmanager.cpp.
void QgsRelationManager::removeRelation | ( | const QgsRelation & | relation | ) |
Remove a relation.
relation | The relation to remove. |
Definition at line 80 of file qgsrelationmanager.cpp.
void QgsRelationManager::setRelations | ( | const QList< QgsRelation > & | relations | ) |
Will set the specified relations and remove any relation currently set.
relations | A list of relations to set. |
Definition at line 36 of file qgsrelationmanager.cpp.
|
slot |
Updates relations status.
Definition at line 65 of file qgsrelationmanager.cpp.