diff OrthancStone/Sources/Scene2DViewport/ViewportController.h @ 1684:fb62c1522193

Scene2D must be built first and deleted last!
author Benjamin Golinvaux <bgo@osimis.io>
date Wed, 25 Nov 2020 12:16:33 +0100
parents 874e178f34e9
children d4a8e2b19a65
line wrap: on
line diff
--- a/OrthancStone/Sources/Scene2DViewport/ViewportController.h	Wed Nov 25 12:16:11 2020 +0100
+++ b/OrthancStone/Sources/Scene2DViewport/ViewportController.h	Wed Nov 25 12:16:33 2020 +0100
@@ -233,12 +233,17 @@
   private:
     double GetCanvasToSceneFactor() const;
 
+    // The scene can be used by the higher-level objects (including the
+    // measuring tools), possibly in their destructor, and so it must be 
+    // deleted last (and, thus, constructed first)
+    std::unique_ptr<Scene2D>   scene_;
+
     boost::weak_ptr<IViewport>                    viewport_;
+
     boost::weak_ptr<UndoStack>                    undoStackW_;  // Global stack, possibly shared by all viewports
     std::vector<boost::shared_ptr<MeasureTool> >  measureTools_;
     boost::shared_ptr<IFlexiblePointerTracker>    activeTracker_;  // TODO - Couldn't this be a "std::unique_ptr"?
 
-    std::unique_ptr<Scene2D>   scene_;
 
     // this is cached
     double  canvasToSceneFactor_;