Gui: fix a lifetime issue with the draggers

This commit is contained in:
captain0xff
2025-09-20 15:31:27 +05:30
committed by Kacper Donat
parent 4137df2cee
commit bde02d6665
2 changed files with 6 additions and 3 deletions

View File

@@ -613,7 +613,7 @@ void GizmoContainer::initClass()
SO_KIT_INIT_CLASS(GizmoContainer, SoBaseKit, "BaseKit");
}
GizmoContainer::GizmoContainer()
GizmoContainer::GizmoContainer(): viewProvider(nullptr)
{
SO_KIT_CONSTRUCTOR(GizmoContainer);
@@ -655,7 +655,9 @@ GizmoContainer::~GizmoContainer()
uninitGizmos();
viewProvider->setGizmoContainer(nullptr);
if (!viewProvider.expired()) {
viewProvider->setGizmoContainer(nullptr);
}
}
void GizmoContainer::initGizmos()

View File

@@ -35,6 +35,7 @@
#include <QMetaObject>
#include <Base/Placement.h>
#include <Gui/DocumentObserver.h>
#include <FCGlobal.h>
@@ -245,7 +246,7 @@ private:
std::vector<Gizmo*> gizmos;
SoFieldSensor cameraSensor;
SoFieldSensor cameraPositionSensor;
ViewProviderDragger* viewProvider = nullptr;
WeakPtrT<ViewProviderDragger> viewProvider;
void addGizmo(Gizmo* gizmo);