From e82a6fc37c0cfff013c83f79b1d319552214e0f3 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 11 Mar 2024 13:39:25 +0100 Subject: [PATCH] QmlDesigner: Fix C++ 20 capture error Change-Id: Iba9b702878c3c04f1b10efd2b518f1a3054c5a55 Reviewed-by: Tim Jenssen --- .../qmldesigner/components/edit3d/edit3dview.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp b/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp index 763a8a38f1e..fafcff86671 100644 --- a/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp +++ b/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp @@ -438,10 +438,13 @@ void Edit3DView::customNotification([[maybe_unused]] const AbstractView *view, resetPuppet(); } else if (identifier == "pick_3d_node_from_2d_scene" && data.size() == 1 && nodeList.size() == 1) { // Pick via 2D view, data has pick coordinates in main scene coordinates - QTimer::singleShot(0, this, [=]() { - emitView3DAction(View3DActionType::GetNodeAtMainScenePos, - QVariantList{data[0], nodeList[0].internalId()}); - m_nodeAtPosReqType = NodeAtPosReqType::MainScenePick; + QTimer::singleShot(0, this, [=, self = QPointer{this}]() { + if (!self) + return; + + self->emitView3DAction(View3DActionType::GetNodeAtMainScenePos, + QVariantList{data[0], nodeList[0].internalId()}); + self->m_nodeAtPosReqType = NodeAtPosReqType::MainScenePick; }); } }