Copy layer variables when duplicating layers

This commit is contained in:
Matthias Kuhn 2016-01-20 16:16:45 +01:00
parent ff8472d06b
commit 28b541ab4b

View File

@ -7691,6 +7691,24 @@ void QgisApp::duplicateLayers( const QList<QgsMapLayer *>& lyrList )
{
dupVLayer->setProviderEncoding( vlayer->dataProvider()->encoding() );
}
//add variables defined in layer properties
QStringList variableNames = vlayer->customProperty( "variableNames" ).toStringList();
QStringList variableValues = vlayer->customProperty( "variableValues" ).toStringList();
int varIndex = 0;
Q_FOREACH ( const QString& variableName, variableNames )
{
if ( varIndex >= variableValues.length() )
{
break;
}
QVariant varValue = variableValues.at( varIndex );
varIndex++;
QgsExpressionContextUtils::setLayerVariable( dupVLayer, variableName, varValue );
}
dupLayer = dupVLayer;
}
}