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 }