@@ -1458,14 +1458,14 @@ bool QgsVectorLayer::readXml( const QDomNode& layer_node )
1458
1458
1459
1459
QDomNode depsNode = layer_node.namedItem ( " dataDependencies" );
1460
1460
QDomNodeList depsNodes = depsNode.childNodes ();
1461
- QSet<QString > sources;
1461
+ QSet<QgsMapLayerDependency > sources;
1462
1462
for ( int i = 0 ; i < depsNodes.count (); i++ )
1463
1463
{
1464
1464
QDomNode node = depsNodes.at ( i );
1465
1465
QString source = depsNodes.at ( i ).toElement ().attribute ( " id" );
1466
- sources << source;
1466
+ sources << QgsMapLayerDependency ( source ) ;
1467
1467
}
1468
- setDataDependencies ( sources );
1468
+ setDependencies ( sources );
1469
1469
1470
1470
setLegend ( QgsMapLayerLegend::defaultVectorLegend ( this ) );
1471
1471
@@ -4092,25 +4092,25 @@ QString QgsVectorLayer::loadNamedStyle( const QString &theURI, bool &theResultFl
4092
4092
QSet<QgsMapLayerDependency> QgsVectorLayer::dependencies () const
4093
4093
{
4094
4094
if ( mDataProvider )
4095
- return mDataProvider ->dependencies () + mDataDependencies ;
4096
- return mDataDependencies ;
4095
+ return mDataProvider ->dependencies () + mDependencies ;
4096
+ return mDependencies ;
4097
4097
}
4098
4098
4099
- bool QgsVectorLayer::setDataDependencies ( const QSet<QString >& layersIds )
4099
+ bool QgsVectorLayer::setDependencies ( const QSet<QgsMapLayerDependency >& oDeps )
4100
4100
{
4101
4101
QSet<QgsMapLayerDependency> deps;
4102
- Q_FOREACH ( QString layerId, layersIds )
4102
+ Q_FOREACH ( const QgsMapLayerDependency& dep, oDeps )
4103
4103
{
4104
- deps << QgsMapLayerDependency ( layerId );
4104
+ if ( dep.origin () == QgsMapLayerDependency::FromUser )
4105
+ deps << dep;
4105
4106
}
4106
-
4107
- if ( hasDataDependencyCycle ( deps ) )
4107
+ if ( hasDependencyCycle ( deps ) )
4108
4108
return false ;
4109
4109
4110
4110
QSet<QgsMapLayerDependency> toAdd = deps - dependencies ();
4111
4111
4112
4112
// disconnect layers that are not present in the list of dependencies anymore
4113
- Q_FOREACH ( const QgsMapLayerDependency& dep, mDataDependencies )
4113
+ Q_FOREACH ( const QgsMapLayerDependency& dep, mDependencies )
4114
4114
{
4115
4115
QgsVectorLayer* lyr = static_cast <QgsVectorLayer*>( QgsMapLayerRegistry::instance ()->mapLayer ( dep.layerId () ) );
4116
4116
if ( lyr == nullptr )
@@ -4123,12 +4123,13 @@ bool QgsVectorLayer::setDataDependencies( const QSet<QString>& layersIds )
4123
4123
4124
4124
// assign new dependencies
4125
4125
if ( mDataProvider )
4126
- mDataDependencies = mDataProvider ->dependencies () + deps;
4126
+ mDependencies = mDataProvider ->dependencies () + deps;
4127
4127
else
4128
- mDataDependencies = deps;
4128
+ mDependencies = deps;
4129
+ emit dependenciesChanged ();
4129
4130
4130
4131
// connect to new layers
4131
- Q_FOREACH ( const QgsMapLayerDependency& dep, mDataDependencies )
4132
+ Q_FOREACH ( const QgsMapLayerDependency& dep, mDependencies )
4132
4133
{
4133
4134
QgsVectorLayer* lyr = static_cast <QgsVectorLayer*>( QgsMapLayerRegistry::instance ()->mapLayer ( dep.layerId () ) );
4134
4135
if ( lyr == nullptr )
0 commit comments