comparison 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
comparison
equal deleted inserted replaced
1790:b325761e0bd3 1791:9b650ab68d4c
88 88
89 DeleteMeasureCommand::DeleteMeasureCommand(boost::shared_ptr<MeasureTool> measureTool, 89 DeleteMeasureCommand::DeleteMeasureCommand(boost::shared_ptr<MeasureTool> measureTool,
90 boost::weak_ptr<IViewport> viewport) : 90 boost::weak_ptr<IViewport> viewport) :
91 MeasureCommand(viewport), 91 MeasureCommand(viewport),
92 measureTool_(measureTool), 92 measureTool_(measureTool),
93 mementoModified_(measureTool->GetMemento()), 93 mementoModified_(measureTool->CreateMemento()),
94 mementoOriginal_(measureTool->GetMemento()) 94 mementoOriginal_(measureTool->CreateMemento())
95 { 95 {
96 std::unique_ptr<IViewport::ILock> lock(GetViewportLock()); 96 std::unique_ptr<IViewport::ILock> lock(GetViewportLock());
97 GetMeasureTool()->Disable(); 97 GetMeasureTool()->Disable();
98 lock->GetController().RemoveMeasureTool(GetMeasureTool()); 98 lock->GetController().RemoveMeasureTool(GetMeasureTool());
99 } 99 }
100 100
101 EditMeasureCommand::EditMeasureCommand(boost::shared_ptr<MeasureTool> measureTool, 101 EditMeasureCommand::EditMeasureCommand(boost::shared_ptr<MeasureTool> measureTool,
102 boost::weak_ptr<IViewport> viewport) : 102 boost::weak_ptr<IViewport> viewport) :
103 MeasureCommand(viewport), 103 MeasureCommand(viewport),
104 mementoModified_(measureTool->GetMemento()), 104 mementoModified_(measureTool->CreateMemento()),
105 mementoOriginal_(measureTool->GetMemento()) 105 mementoOriginal_(measureTool->CreateMemento())
106 { 106 {
107 } 107 }
108 108
109 EditMeasureCommand::~EditMeasureCommand() 109 EditMeasureCommand::~EditMeasureCommand()
110 { 110 {
111 } 111 }
112 112
113 void EditMeasureCommand::Undo() 113 void EditMeasureCommand::Undo()
114 { 114 {
115 // simply disable the measure tool upon undo 115 // simply disable the measure tool upon undo
116 GetMeasureTool()->SetMemento(mementoOriginal_); 116 assert(mementoOriginal_.get() != NULL);
117 GetMeasureTool()->SetMemento(*mementoOriginal_);
117 } 118 }
118 119
119 void EditMeasureCommand::Redo() 120 void EditMeasureCommand::Redo()
120 { 121 {
121 GetMeasureTool()->SetMemento(mementoModified_); 122 assert(mementoModified_.get() != NULL);
123 GetMeasureTool()->SetMemento(*mementoModified_);
124 }
125
126 const MeasureToolMemento& EditMeasureCommand::GetMementoOriginal() const
127 {
128 assert(mementoOriginal_.get() != NULL);
129 return *mementoOriginal_;
130 }
131
132 void EditMeasureCommand::SetMementoModified(MeasureToolMemento* memento)
133 {
134 if (memento == NULL)
135 {
136 throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer);
137 }
138 else
139 {
140 mementoModified_.reset(memento);
141 }
142 }
143
144 const MeasureToolMemento& DeleteMeasureCommand::GetMementoOriginal() const
145 {
146 assert(mementoOriginal_.get() != NULL);
147 return *mementoOriginal_;
148 }
149
150 void DeleteMeasureCommand::SetMementoModified(MeasureToolMemento* memento)
151 {
152 if (memento == NULL)
153 {
154 throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer);
155 }
156 else
157 {
158 mementoModified_.reset(memento);
159 }
122 } 160 }
123 } 161 }