Mercurial > hg > orthanc-stone
diff OrthancStone/Sources/Scene2DViewport/MeasureCommands.cpp @ 1791:9b650ab68d4c
replaced unneeded use of boost::share_ptr for MeasureCommand mementos by std::unique_ptr
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 17 May 2021 16:11:17 +0200 |
parents | 9ac2a65d4172 |
children | 3889ae96d2e9 |
line wrap: on
line diff
--- a/OrthancStone/Sources/Scene2DViewport/MeasureCommands.cpp Mon May 17 13:57:25 2021 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/MeasureCommands.cpp Mon May 17 16:11:17 2021 +0200 @@ -90,8 +90,8 @@ boost::weak_ptr<IViewport> viewport) : MeasureCommand(viewport), measureTool_(measureTool), - mementoModified_(measureTool->GetMemento()), - mementoOriginal_(measureTool->GetMemento()) + mementoModified_(measureTool->CreateMemento()), + mementoOriginal_(measureTool->CreateMemento()) { std::unique_ptr<IViewport::ILock> lock(GetViewportLock()); GetMeasureTool()->Disable(); @@ -101,8 +101,8 @@ EditMeasureCommand::EditMeasureCommand(boost::shared_ptr<MeasureTool> measureTool, boost::weak_ptr<IViewport> viewport) : MeasureCommand(viewport), - mementoModified_(measureTool->GetMemento()), - mementoOriginal_(measureTool->GetMemento()) + mementoModified_(measureTool->CreateMemento()), + mementoOriginal_(measureTool->CreateMemento()) { } @@ -113,11 +113,49 @@ void EditMeasureCommand::Undo() { // simply disable the measure tool upon undo - GetMeasureTool()->SetMemento(mementoOriginal_); + assert(mementoOriginal_.get() != NULL); + GetMeasureTool()->SetMemento(*mementoOriginal_); } void EditMeasureCommand::Redo() { - GetMeasureTool()->SetMemento(mementoModified_); + assert(mementoModified_.get() != NULL); + GetMeasureTool()->SetMemento(*mementoModified_); + } + + const MeasureToolMemento& EditMeasureCommand::GetMementoOriginal() const + { + assert(mementoOriginal_.get() != NULL); + return *mementoOriginal_; + } + + void EditMeasureCommand::SetMementoModified(MeasureToolMemento* memento) + { + if (memento == NULL) + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer); + } + else + { + mementoModified_.reset(memento); + } + } + + const MeasureToolMemento& DeleteMeasureCommand::GetMementoOriginal() const + { + assert(mementoOriginal_.get() != NULL); + return *mementoOriginal_; + } + + void DeleteMeasureCommand::SetMementoModified(MeasureToolMemento* memento) + { + if (memento == NULL) + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer); + } + else + { + mementoModified_.reset(memento); + } } }