Mercurial > hg > orthanc-stone
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 } |