Mercurial > hg > orthanc-stone
comparison Framework/Radiography/RadiographyWidget.cpp @ 1131:4663f158c748
RadiographyWidget is now notified when a layer is removed from the scene
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Wed, 06 Nov 2019 10:46:46 +0100 |
parents | d33ae2b0db9d |
children | 1a73f852810a a5f2a6b04a31 |
comparison
equal
deleted
inserted
replaced
1119:6bc766eab0de | 1131:4663f158c748 |
---|---|
199 { | 199 { |
200 hasSelection_ = true; | 200 hasSelection_ = true; |
201 selectedLayer_ = layer; | 201 selectedLayer_ = layer; |
202 } | 202 } |
203 | 203 |
204 void RadiographyWidget::ClearSelectedLayer() | |
205 { | |
206 hasSelection_ = false; | |
207 } | |
208 | |
204 bool RadiographyWidget::SelectMaskLayer(size_t index) | 209 bool RadiographyWidget::SelectMaskLayer(size_t index) |
205 { | 210 { |
206 std::vector<size_t> layerIndexes; | 211 std::vector<size_t> layerIndexes; |
207 size_t count = 0; | 212 size_t count = 0; |
208 scene_->GetLayersIndexes(layerIndexes); | 213 scene_->GetLayersIndexes(layerIndexes); |
249 { | 254 { |
250 // LOG(INFO) << "Scene content has changed"; | 255 // LOG(INFO) << "Scene content has changed"; |
251 NotifyContentChanged(); | 256 NotifyContentChanged(); |
252 } | 257 } |
253 | 258 |
259 void RadiographyWidget::OnLayerRemoved(const RadiographyScene::LayerRemovedMessage& message) | |
260 { | |
261 size_t removedLayerIndex = message.GetLayerIndex(); | |
262 if (hasSelection_ && selectedLayer_ == removedLayerIndex) | |
263 { | |
264 ClearSelectedLayer(); | |
265 } | |
266 } | |
254 | 267 |
255 void RadiographyWidget::SetInvert(bool invert) | 268 void RadiographyWidget::SetInvert(bool invert) |
256 { | 269 { |
257 if (invert_ != invert) | 270 if (invert_ != invert) |
258 { | 271 { |
260 NotifyContentChanged(); | 273 NotifyContentChanged(); |
261 } | 274 } |
262 } | 275 } |
263 | 276 |
264 | 277 |
265 void RadiographyWidget::SwitchInvert() | 278 void RadiographyWidget::SwitchInvert() |
266 { | 279 { |
267 invert_ = !invert_; | 280 invert_ = !invert_; |
268 NotifyContentChanged(); | 281 NotifyContentChanged(); |
269 } | 282 } |
270 | 283 |
293 | 306 |
294 scene_->RegisterObserverCallback( | 307 scene_->RegisterObserverCallback( |
295 new Callable<RadiographyWidget, RadiographyScene::ContentChangedMessage> | 308 new Callable<RadiographyWidget, RadiographyScene::ContentChangedMessage> |
296 (*this, &RadiographyWidget::OnContentChanged)); | 309 (*this, &RadiographyWidget::OnContentChanged)); |
297 | 310 |
311 scene_->RegisterObserverCallback( | |
312 new Callable<RadiographyWidget, RadiographyScene::LayerRemovedMessage> | |
313 (*this, &RadiographyWidget::OnLayerRemoved)); | |
314 | |
298 NotifyContentChanged(); | 315 NotifyContentChanged(); |
299 | 316 |
300 // force redraw | 317 // force redraw |
301 FitContent(); | 318 FitContent(); |
302 } | 319 } |