[processing] Fix alg. postprocessing regression failing to add all but one output to the project

This commit is contained in:
Mathieu Pellerin 2025-02-16 18:40:02 +07:00 committed by Nyall Dawson
parent 88383c3d16
commit 1aeb8bbdd4

View File

@ -206,7 +206,7 @@ def handleAlgorithmResults(
i = 0 i = 0
added_layers: list[ added_layers: list[
tuple[Optional[QgsLayerTreeGroup], QgsLayerTreeLayer, QgsProject] tuple[QgsMapLayer, Optional[QgsLayerTreeGroup], QgsLayerTreeLayer, QgsProject]
] = [] ] = []
layers_to_post_process: list[ layers_to_post_process: list[
tuple[QgsMapLayer, QgsProcessingContext.LayerDetails] tuple[QgsMapLayer, QgsProcessingContext.LayerDetails]
@ -245,7 +245,12 @@ def handleAlgorithmResults(
# later, after we've sorted all added layers # later, after we've sorted all added layers
layer_tree_layer = create_layer_tree_layer(owned_map_layer, details) layer_tree_layer = create_layer_tree_layer(owned_map_layer, details)
added_layers.append( added_layers.append(
(results_group, layer_tree_layer, details.project) (
owned_map_layer,
results_group,
layer_tree_layer,
details.project,
)
) )
if details.postProcessor(): if details.postProcessor():
@ -272,7 +277,7 @@ def handleAlgorithmResults(
# sort added layer tree layers # sort added layer tree layers
sorted_layer_tree_layers = sorted( sorted_layer_tree_layers = sorted(
added_layers, key=lambda x: x[1].customProperty(SORT_ORDER_CUSTOM_PROPERTY, 0) added_layers, key=lambda x: x[2].customProperty(SORT_ORDER_CUSTOM_PROPERTY, 0)
) )
have_set_active_layer = False have_set_active_layer = False
@ -281,7 +286,7 @@ def handleAlgorithmResults(
current_selected_node = iface.layerTreeView().currentNode() current_selected_node = iface.layerTreeView().currentNode()
iface.layerTreeView().setUpdatesEnabled(False) iface.layerTreeView().setUpdatesEnabled(False)
for group, layer_node, project in sorted_layer_tree_layers: for layer, group, layer_node, project in sorted_layer_tree_layers:
if not project: if not project:
project = context.project() project = context.project()