Add API to hook into resolveReferences

This commit is contained in:
Matthias Kuhn 2019-09-18 09:31:22 +02:00
parent 3225f4911a
commit 61812648a3
4 changed files with 21 additions and 1 deletions

View File

@ -1398,6 +1398,14 @@ Sets the coordinate transform context to ``transformContext``
signals:
void beforeResolveReferences( QgsProject *project );
%Docstring
Emitted when all layers are loaded and references can be resolved,
just before the references of this layer are resolved.
.. versionadded:: 3.10
%End
void statusChanged( const QString &status );
%Docstring
Emit a signal with status (e.g. to be caught by QgisApp and display a msg on status bar)

View File

@ -99,7 +99,10 @@ void QgsGeometryValidationService::onLayersAdded( const QList<QgsMapLayer *> &la
mLayerChecks.remove( vectorLayer );
} );
enableLayerChecks( vectorLayer );
connect( vectorLayer, &QgsMapLayer::beforeResolveReferences, this, [this, vectorLayer]()
{
enableLayerChecks( vectorLayer );
} );
}
}
}

View File

@ -612,6 +612,7 @@ QString QgsMapLayer::decodedSource( const QString &source, const QString &dataPr
void QgsMapLayer::resolveReferences( QgsProject *project )
{
emit beforeResolveReferences( project );
if ( m3DRenderer )
m3DRenderer->resolveReferences( *project );
}

View File

@ -1254,6 +1254,14 @@ class CORE_EXPORT QgsMapLayer : public QObject
signals:
/**
* Emitted when all layers are loaded and references can be resolved,
* just before the references of this layer are resolved.
*
* \since QGIS 3.10
*/
void beforeResolveReferences( QgsProject *project );
//! Emit a signal with status (e.g. to be caught by QgisApp and display a msg on status bar)
void statusChanged( const QString &status );