From f6f620de4e07ad11de975fbc88cf4d49cbb23685 Mon Sep 17 00:00:00 2001 From: Damiano Lombardi Date: Mon, 28 Aug 2023 18:15:57 +0200 Subject: [PATCH] Respect layer/group expanded/visible state from qlr file --- pzp/pzp.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pzp/pzp.py b/pzp/pzp.py index e28747d..f760d1d 100644 --- a/pzp/pzp.py +++ b/pzp/pzp.py @@ -212,6 +212,8 @@ def do_add_layer_node(self): if not groupAlreadyExists: projectParentGroup = projectParentGroup.addGroup(newParentGroup.name()) + projectParentGroup.setItemVisibilityChecked(newParentGroup.itemVisibilityChecked()) + projectParentGroup.setExpanded(newParentGroup.isExpanded()) # We reached the inserting group -> add all subgroups and layers # For group types... @@ -227,7 +229,9 @@ def do_add_layer_node(self): # Sublayer newLayer = layerNode.layer().clone() - projectParentGroup.addLayer(newLayer) + newLayerNode = projectParentGroup.addLayer(newLayer) + newLayerNode.setItemVisibilityChecked(layerNode.itemVisibilityChecked()) + newLayerNode.setExpanded(layerNode.isExpanded()) QgsProject.instance().layerStore().addMapLayer(newLayer) def do_add_group_recursive(self, projectParentGroup, group): @@ -241,13 +245,17 @@ def do_add_group_recursive(self, projectParentGroup, group): # Sublayer if layerNode.nodeType() == QgsLayerTreeNode.NodeLayer and existingTreeElement is None: newLayer = layerNode.layer().clone() - projectParentGroup.addLayer(newLayer) + newLayerNode = projectParentGroup.addLayer(newLayer) + newLayerNode.setItemVisibilityChecked(layerNode.itemVisibilityChecked()) + newLayerNode.setExpanded(layerNode.isExpanded()) QgsProject.instance().layerStore().addMapLayer(newLayer) continue # Subgroup if existingTreeElement is None: existingTreeElement = projectParentGroup.addGroup(layerNode.name()) + projectParentGroup.setItemVisibilityChecked(layerNode.itemVisibilityChecked()) + existingTreeElement.setExpanded(layerNode.isExpanded()) self.do_add_group_recursive(existingTreeElement, layerNode) def do_check_geometries(self):