Hi Andreas,
this is how I do it:
def getGroupIndex(self, groupName):
'''Find the index for group groupName'''
retValue = -1
groups = self.iface.legendInterface().groups()
for i in range(len(groups)):
if groups[i] == groupName:
retValue = i
break
return retValue
def moveToGroup(self, layer, groupName):
'''move layer into a group'''
grpIdx = self.getGroupIndex(groupName)
if grpIdx == -1:
# add the group
grpIdx = self.iface.legendInterface().addGroup(groupName)
self.iface.legendInterface().moveLayer(layer, grpIdx)
Bernhard
Am 08.10.2013 15:17, schrieb Andreas Neumann:
Hi,
In my python script I would like to append a filtered Postgis layer into
a group with a given name.
This works fine as long as the user did not activate a group already
interactively. If a group is already active, my method to find the
groupIndex fails. If not group is active, the script works fine.
Here is my method:
---------------
#read the legend tree to find the index of the group defined in groupName
groups = []
for group in self.legend.groupLayerRelationship():
groups.append(group[0])
groupIndex = groups.index(groupName)
if QGis.QGIS_VERSION[0:3] >= "1.9":
groupIndex -= 1
#move new layer to existing group
self.legend.moveLayer(schulkreisLayer, groupIndex)
--------------
Is there a more reliable way to find the groupIndex if the user selected
a group already?
Maybe there is some interference with the setting "New layers should be
added to chosen or current group" setting in "Settings" --> "Options"
--> "Map & Legend" --> "Layerlegend"?
Thanks,
Andreas
_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer
__________ Information from ESET Mail Security, version of virus signature
database 8890 (20131008) __________
The message was checked by ESET Mail Security.
http://www.eset.com
_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer