Skip to content
Snippets Groups Projects
Commit b6840406 authored by Maël Méliani's avatar Maël Méliani
Browse files

The order of the layers in a group is now managed.

parent 4d1d1a74
No related branches found
No related tags found
No related merge requests found
...@@ -206,6 +206,7 @@ class LayerGroup(object): ...@@ -206,6 +206,7 @@ class LayerGroup(object):
layer.set_metadata("wms_group_name", self.name) layer.set_metadata("wms_group_name", self.name)
for k, v in self.mapfile.get_mra_metadata("layergroups")[self.name]: for k, v in self.mapfile.get_mra_metadata("layergroups")[self.name]:
layer.set_metadata("wms_group_%s" % k, v) layer.set_metadata("wms_group_%s" % k, v)
self.mapfile.move_layer_down(layer.ms.name)
def add(self, *args): def add(self, *args):
for layer in args: for layer in args:
...@@ -855,6 +856,10 @@ class Mapfile(MetadataMixin): ...@@ -855,6 +856,10 @@ class Mapfile(MetadataMixin):
except StopIteration: except StopIteration:
raise KeyError(l_name) raise KeyError(l_name)
def move_layer_down(self, l_name):
layer = self.get_layer(l_name)
self.ms.moveLayerDown(layer.ms.index)
def has_layer(self, l_name): def has_layer(self, l_name):
try: try:
self.get_layer(l_name) self.get_layer(l_name)
...@@ -961,13 +966,11 @@ class Mapfile(MetadataMixin): ...@@ -961,13 +966,11 @@ class Mapfile(MetadataMixin):
lg.remove(*args) lg.remove(*args)
def delete_layergroup(self, lg_name): def delete_layergroup(self, lg_name):
layer_group = self.get_layergroup(lg_name) layer_group = self.get_layergroup(lg_name)
# Remove all the layers from this group. # Remove all the layers from this group.
for layer in self.iter_layers(attr={"group": layer_group.name}): for layer in self.iter_layers(attr={"group": layer_group.name}):
layer_group.remove(layer) layer_group.remove(layer)
# Remove the group from mra metadata.
# Remove the group from mra metadats.
with self.mra_metadata("layergroups", {}) as layergroups: with self.mra_metadata("layergroups", {}) as layergroups:
del layergroups[lg_name] del layergroups[lg_name]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment