Hi all,<br><br>In Lizmap plugin, I need to display the layer and group tree. You can find some code here :<br><a href="https://bitbucket.org/mdouchin/lizmapplugin/src/9cdfa856b8f0/lizmap.py">https://bitbucket.org/mdouchin/lizmapplugin/src/9cdfa856b8f0/lizmap.py</a><br>
Line 451 : populateLayerTree<br><br>There is some specific lizmap code in there, but you can probably use some of it.<br><br>Michael<br><br><div class="gmail_quote">2012/10/4 Massimo <span dir="ltr"><<a href="mailto:massimo.endrighi@geopartner.it" target="_blank">massimo.endrighi@geopartner.it</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
<br>
Andreas Neumann wrote<br>
<div class="im">> 1. the method providing access to layers by name could return a list /<br>
> array with layer references - if the plugin author knows/assumes that<br>
> the layer names in his project are distinct he can just pick up the<br>
> first reference in the list<br>
<br>
</div>Layer or groups ?<br>
Finding a layer in the legend is always possible even if there are another<br>
layer with the same name using legend.layers() that returns QList<<br>
QgsMapLayer * >  and then is up to you to distinguish the layer.<br>
<br>
<br>
Andreas Neumann wrote<br>
<div class="im">> The current way to access the legend tree is complicated and not<br>
</div>> developer friendly - ....<br>
<br>
Programmatically move a layer to a specified groups is not a common scenario<br>
but if you have to do that and you have nested groups there should be a way<br>
to uniquely index a group.<br>
Programmatically traversing the legend tree and keep track of its parent<br>
group is not a common scenario too and groupLayerRelationship can not help<br>
when there are groups with the same name.<br>
<br>
<br>
Andreas Neumann wrote<br>
>  ....- and currently it is buggy (returns the wrong index).<br>
<br>
I don't want to be annoying but please consider the following simple legend<br>
example:<br>
<br>
- Layer1<br>
- Group1<br>
- Group2<br>
--- NestedGroup3<br>
- Group4<br>
<br>
Suppose you want to use your test to move Layer1 in NestedGroup3<br>
Your test code will fail and any other test will fail because<br>
self.legend.moveLayer in QGis 1.7 and 1.8 considers only top level group.<br>
<br>
I've introduced a different group indexing in 1.9 that is consistent with<br>
legend.groups() indexing.<br>
Now the same legend tree is indexed in the following manner:<br>
- Layer1<br>
- Group1   [groupIndex=0]<br>
- Group2   [groupIndex=1]<br>
--- NestedGroup3    [groupIndex=2]<br>
- Group4   [groupIndex=3]<br>
<br>
that is consistent with the list returned by legend.groups() and give a<br>
consistent meaning to the groupIndex parameter used in the API<br>
documentation.<br>
<br>
I'm sorry for this drawback and I'm ready to contribute to a common solution<br>
that accommodates all the needs.<br>
<br>
In my case I need to :<br>
- load a third-party "workspace" file with a tree of groups and layers.<br>
- write a third-party "workspace" file with a tree of groups and layers<br>
starting from a qgis legend<br>
<br>
The main goal of the plugin I'm writing is to substitute a commercial<br>
solution (viewer + plugin) that is obsolete and expensive to maintain that<br>
is actually used by an Italian public administration.<br>
<br>
Massimo<br>
<br>
<br>
<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://osgeo-org.1560.n6.nabble.com/index-in-self-legend-groupLayerRelationship-different-behavior-between-QGIS-1-8-and-master-tp5004337p5006367.html" target="_blank">http://osgeo-org.1560.n6.nabble.com/index-in-self-legend-groupLayerRelationship-different-behavior-between-QGIS-1-8-and-master-tp5004337p5006367.html</a><br>

<div class="HOEnZb"><div class="h5">Sent from the Quantum GIS - Developer mailing list archive at Nabble.com.<br>
_______________________________________________<br>
Qgis-developer mailing list<br>
<a href="mailto:Qgis-developer@lists.osgeo.org">Qgis-developer@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank">http://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
</div></div></blockquote></div><br>