comparison Framework/Widgets/LayerWidget.cpp @ 219:26e3bfe30e66 am

ReplaceLayer()
author am@osimis.io
date Fri, 08 Jun 2018 14:41:45 +0200
parents 5412adf19980
children 3d523c9a8f0d 192e6e349e69
comparison
equal deleted inserted replaced
218:c2f0077bb5b8 219:26e3bfe30e66
393 ResetChangedLayers(); 393 ResetChangedLayers();
394 394
395 return index; 395 return index;
396 } 396 }
397 397
398 398 void LayerWidget::ReplaceLayer(size_t index, ILayerSource* layer) // Takes ownership
399 {
400 if (layer == NULL)
401 {
402 throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer);
403 }
404
405 if (index >= layers_.size())
406 {
407 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
408 }
409
410 delete layers_[index];
411 layers_[index] = layer;
412 layersIndex_[layer] = index;
413
414 ResetPendingScene();
415 layer->Register(*this);
416
417 InvalidateLayer(index);
418 }
419
420
399 const RenderStyle& LayerWidget::GetLayerStyle(size_t layer) const 421 const RenderStyle& LayerWidget::GetLayerStyle(size_t layer) const
400 { 422 {
401 if (layer >= layers_.size()) 423 if (layer >= layers_.size())
402 { 424 {
403 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); 425 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);