Mercurial > hg > orthanc-stone
diff Framework/Scene2DViewport/MeasureTrackers.cpp @ 700:059e1fd05fd6 refactor-viewport-controller
Introduced the ViewportController that sits between the application and the
Scene2D to handle the trackers and measuring tools. This is a work in progress.
The Scene2D is no longer an observable. Message sending is managed by the
ViewportController.
Move some refs to shared and weak to prevent lifetime issues.
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Sun, 19 May 2019 16:26:17 +0200 |
parents | 8b6adfb62a2f |
children | 28b9e3a54200 |
line wrap: on
line diff
--- a/Framework/Scene2DViewport/MeasureTrackers.cpp Fri May 17 09:20:46 2019 +0200 +++ b/Framework/Scene2DViewport/MeasureTrackers.cpp Sun May 19 16:26:17 2019 +0200 @@ -27,11 +27,11 @@ { CreateMeasureTracker::CreateMeasureTracker( - Scene2DWPtr sceneW, + ViewportControllerWPtr controllerW, std::vector<TrackerCommandPtr>& undoStack, std::vector<MeasureToolPtr>& measureTools) - : scene_(sceneW) - , active_(true) + : controllerW_(controllerW) + , alive_(true) , undoStack_(undoStack) , measureTools_(measureTools) , commitResult_(true) @@ -41,12 +41,12 @@ void CreateMeasureTracker::Cancel() { commitResult_ = false; - active_ = false; + alive_ = false; } - bool CreateMeasureTracker::IsActive() const + bool CreateMeasureTracker::IsAlive() const { - return active_; + return alive_; } CreateMeasureTracker::~CreateMeasureTracker() @@ -60,6 +60,13 @@ else command_->Undo(); } + + + OrthancStone::Scene2DPtr CreateMeasureTracker::GetScene() + { + return controllerW_.lock()->GetScene(); + } + }