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 }