Mercurial > hg > orthanc-stone
diff Framework/Scene2DViewport/CreateLineMeasureCommand.cpp @ 1305:a5326ce4f24b broker
Trackers and measuring tools now use the viewport instead of ViewportController, so that proper locks can be used
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Wed, 04 Mar 2020 09:45:38 +0100 |
parents | 7ec8fea061b9 |
children | 1f877e0846fe |
line wrap: on
line diff
--- a/Framework/Scene2DViewport/CreateLineMeasureCommand.cpp Wed Mar 04 09:44:34 2020 +0100 +++ b/Framework/Scene2DViewport/CreateLineMeasureCommand.cpp Wed Mar 04 09:45:38 2020 +0100 @@ -26,14 +26,18 @@ namespace OrthancStone { CreateLineMeasureCommand::CreateLineMeasureCommand( - boost::weak_ptr<ViewportController> controllerW, + IViewport& viewport, ScenePoint2D point) - : CreateMeasureCommand(controllerW) + : CreateMeasureCommand(viewport) , measureTool_( - boost::make_shared<LineMeasureTool>(controllerW)) + boost::make_shared<LineMeasureTool>(viewport)) { - GetController()->AddMeasureTool(measureTool_); + + std::unique_ptr<IViewport::ILock> lock(viewport_.Lock()); + ViewportController& controller = lock->GetController(); + controller.AddMeasureTool(measureTool_); measureTool_->Set(point, point); + lock->Invalidate(); } void CreateLineMeasureCommand::SetEnd(ScenePoint2D scenePos)