Mercurial > hg > orthanc-stone
comparison Framework/Radiography/RadiographyWidget.cpp @ 1138:1a73f852810a broker
integration mainline->broker
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 07 Nov 2019 07:28:39 +0100 |
parents | 383aa2a7d426 4663f158c748 |
children | 8d2f1b25593c |
comparison
equal
deleted
inserted
replaced
1137:cc029987b6dc | 1138:1a73f852810a |
---|---|
197 { | 197 { |
198 hasSelection_ = true; | 198 hasSelection_ = true; |
199 selectedLayer_ = layer; | 199 selectedLayer_ = layer; |
200 } | 200 } |
201 | 201 |
202 void RadiographyWidget::ClearSelectedLayer() | |
203 { | |
204 hasSelection_ = false; | |
205 } | |
206 | |
202 bool RadiographyWidget::SelectMaskLayer(size_t index) | 207 bool RadiographyWidget::SelectMaskLayer(size_t index) |
203 { | 208 { |
204 std::vector<size_t> layerIndexes; | 209 std::vector<size_t> layerIndexes; |
205 size_t count = 0; | 210 size_t count = 0; |
206 scene_->GetLayersIndexes(layerIndexes); | 211 scene_->GetLayersIndexes(layerIndexes); |
247 { | 252 { |
248 // LOG(INFO) << "Scene content has changed"; | 253 // LOG(INFO) << "Scene content has changed"; |
249 NotifyContentChanged(); | 254 NotifyContentChanged(); |
250 } | 255 } |
251 | 256 |
257 void RadiographyWidget::OnLayerRemoved(const RadiographyScene::LayerRemovedMessage& message) | |
258 { | |
259 size_t removedLayerIndex = message.GetLayerIndex(); | |
260 if (hasSelection_ && selectedLayer_ == removedLayerIndex) | |
261 { | |
262 ClearSelectedLayer(); | |
263 } | |
264 } | |
252 | 265 |
253 void RadiographyWidget::SetInvert(bool invert) | 266 void RadiographyWidget::SetInvert(bool invert) |
254 { | 267 { |
255 if (invert_ != invert) | 268 if (invert_ != invert) |
256 { | 269 { |
258 NotifyContentChanged(); | 271 NotifyContentChanged(); |
259 } | 272 } |
260 } | 273 } |
261 | 274 |
262 | 275 |
263 void RadiographyWidget::SwitchInvert() | 276 void RadiographyWidget::SwitchInvert() |
264 { | 277 { |
265 invert_ = !invert_; | 278 invert_ = !invert_; |
266 NotifyContentChanged(); | 279 NotifyContentChanged(); |
267 } | 280 } |
268 | 281 |
281 scene_ = scene; | 294 scene_ = scene; |
282 | 295 |
283 Register<RadiographyScene::GeometryChangedMessage>(*scene_, &RadiographyWidget::OnGeometryChanged); | 296 Register<RadiographyScene::GeometryChangedMessage>(*scene_, &RadiographyWidget::OnGeometryChanged); |
284 Register<RadiographyScene::ContentChangedMessage>(*scene_, &RadiographyWidget::OnContentChanged); | 297 Register<RadiographyScene::ContentChangedMessage>(*scene_, &RadiographyWidget::OnContentChanged); |
285 | 298 |
299 scene_->RegisterObserverCallback( | |
300 new Callable<RadiographyWidget, RadiographyScene::LayerRemovedMessage> | |
301 (*this, &RadiographyWidget::OnLayerRemoved)); | |
302 | |
286 NotifyContentChanged(); | 303 NotifyContentChanged(); |
287 | 304 |
288 // force redraw | 305 // force redraw |
289 FitContent(); | 306 FitContent(); |
290 } | 307 } |