Skip to content

Commit

Permalink
Improving and adding suggestions
Browse files Browse the repository at this point in the history
  • Loading branch information
SeqLaz committed Nov 15, 2024
1 parent 05d172a commit 59b0820
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions libqfieldsync/offline_converter.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,8 +280,7 @@ def _convert(self, project: QgsProject) -> None:
elif layer_action == SyncAction.REMOVE:
project.removeMapLayer(layer)

project_layers_groups = project.layerTreeRoot()
self.remove_empty_groups_from_project(project_layers_groups)
self.remove_empty_tree_groups_from_project(project.layerTreeRoot())

export_project_filename = self._export_filename

Expand Down Expand Up @@ -350,17 +349,17 @@ def _convert(self, project: QgsProject) -> None:
QgsProject.instance().write(str(export_project_filename))
project.writeProject.disconnect(on_original_project_write)

def remove_empty_groups_from_project(self, group) -> None:
def remove_empty_tree_groups_from_project(self, group: QgsLayerTreeGroup) -> None:
"""
Recursively removes any empty groups from the given layer tree group.
"""
for child in group.children():
if isinstance(child, QgsLayerTreeGroup):
self.remove_empty_groups_from_project(child)
if not isinstance(child, QgsLayerTreeGroup):
continue

if not child.children():
print(f"Removing empty group: {child.name()}")
group.removeChildNode(child)
self.remove_empty_tree_groups_from_project(child)
if not child.children():
group.removeChildNode(child)

def post_process_offline_layers(self):
project = QgsProject.instance()
Expand Down

0 comments on commit 59b0820

Please sign in to comment.