Just found out that this is not addMapLayer that remove the variables but
'layer.loadNamedStyle'
Print layer.customProperty('variableNames') just before calling
'layer.loadNamedStyle' show variables
Print layer.customProperty('variableNames') just after the call : empty list
Reproduced in the python console:
>>> QgsExpressionContextUtils.setLayerVariable(layer,'FOO','BAR')
>>> layer.customProperty('variableNames')
['FOO']
>>> layer.loadNamedStyle('mystyle.qml')
('', True)
>>> layer.customProperty('variableNames')
[]
> Le 20 juin 2018 à 18:13, David Marteau <[email protected]> a écrit :
>
> Hi
>
> I'm trying to set custom layers variables from processing using
> QgsExpressionContextUtils.setLayerVariables to destination layers , I have
> found that those variables does not appear in
> Qgis.
>
> I have found that when the layer is inserted in the current project
> (https://github.com/qgis/QGIS/blob/master/python/plugins/processing/gui/Postprocessing.py#L81
>
> <https://github.com/qgis/QGIS/blob/master/python/plugins/processing/gui/Postprocessing.py#L81>)
> the layer variables are removed - Checking existence of the variable before
> and after the call of 'addMaperLayer' shows that layer variables are removed
> from custom properties.
>
> I cannot tell if this is a bug or not because it seems that the removal may
> occurs in some signal handler. So if somebody has some clues to where to
> look, I will be grateful.
>
>
> Qgis version: 3.0.3-Girona
>
> David
_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer