Mercurial > hg > orthanc-stone
comparison Framework/Scene2DViewport/MeasureTool.cpp @ 1314:9b126de2cde2 broker
Since the observer system now uses shared_ptr and many registrations are
done in the constructors, and since we cannot called shared_from_this() in
the constructors, it is mandatory to split construction from registration.
This has been done by making many ctors protected and replacing them
by factory methods that directly return shared_ptrs + added PostConstructor
method when base classes perform shared_from_this() calls too.
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Mon, 16 Mar 2020 11:19:50 +0100 |
parents | a5326ce4f24b |
children | ab81ee8fce1f |
comparison
equal
deleted
inserted
replaced
1313:f30905f5d246 | 1314:9b126de2cde2 |
---|---|
50 MeasureTool::MeasureTool( | 50 MeasureTool::MeasureTool( |
51 IViewport& viewport) | 51 IViewport& viewport) |
52 : viewport_(viewport) | 52 : viewport_(viewport) |
53 , enabled_(true) | 53 , enabled_(true) |
54 { | 54 { |
55 | |
56 } | |
57 | |
58 void MeasureTool::PostConstructor() | |
59 { | |
55 std::unique_ptr<IViewport::ILock> lock(viewport_.Lock()); | 60 std::unique_ptr<IViewport::ILock> lock(viewport_.Lock()); |
56 ViewportController& controller = lock->GetController(); | 61 ViewportController& controller = lock->GetController(); |
57 | 62 |
58 // TODO => Move this out of constructor | |
59 Register<ViewportController::SceneTransformChanged>( | 63 Register<ViewportController::SceneTransformChanged>( |
60 controller, | 64 controller, |
61 &MeasureTool::OnSceneTransformChanged); | 65 &MeasureTool::OnSceneTransformChanged); |
62 } | 66 } |
63 | 67 |