Hi Richard On Mon, Feb 27, 2017 at 8:46 PM, Richard Duivenvoorde <[email protected]> wrote: > Hi Devs, > > using: > > iface.mapCanvas().setCurrentLayer(l) > > in a python plugin works (as calling 'currentLayer()' returns l as active > layer), > BUT the legend is showing that l is the currentLayer (it does not make the > background bleu).. > > I found that: > > iface.legendInterface().setCurrentLayer(l) > > works though. > > So Question: is this a bug in the first call? > Or is that not to be used (anymore, after the legend overhaul)?
Map canvas and layer tree view (aka legend) are two separate widgets which may have different "current" layers assigned. In QGIS main window we have a mechanism that propagates current layer from layer tree to canvas (just like it sets layers for rendering). This is a one-way synchronization, so current layer from map canvas is not propagated back (just like if someone changes list of layers for rendering directly in map canvas, that will not affect checked items in layer tree). In theory we could have propagation of current layer from map canvas back to layer tree view too, but it is not 1:1 relationship (e.g. layer tree view can have a group selected rather than a layer, or multiple items may be selected), so I am not so keen to have that in place... > And then there is also: > > iface.activeLayer() ? > > Is there a difference between active and currentlayer? > > If not, this is maybe a place to get a cleanup for 3.0? It's the same thing and yes, it is a good candidate for renaming (together with other occurrences of 'active' instead of 'current') Cheers Martin _______________________________________________ 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
