comparison Framework/Widgets/LayerWidget.cpp @ 380:ba5ad93f935a

ILayerSource::LayerErrorMessage
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 06 Nov 2018 14:59:20 +0100
parents 2308fe0b0b05
children 19bd222283ae
comparison
equal deleted inserted replaced
379:2308fe0b0b05 380:ba5ad93f935a
385 layer.RegisterObserverCallback(new Callable<LayerWidget, ILayerSource::GeometryReadyMessage>(*this, &LayerWidget::OnGeometryReady)); 385 layer.RegisterObserverCallback(new Callable<LayerWidget, ILayerSource::GeometryReadyMessage>(*this, &LayerWidget::OnGeometryReady));
386 // currently ignore errors layer->RegisterObserverCallback(new Callable<LayerWidget, ILayerSource::GeometryErrorMessage>(*this, &LayerWidget::...)); 386 // currently ignore errors layer->RegisterObserverCallback(new Callable<LayerWidget, ILayerSource::GeometryErrorMessage>(*this, &LayerWidget::...));
387 layer.RegisterObserverCallback(new Callable<LayerWidget, ILayerSource::SliceChangedMessage>(*this, &LayerWidget::OnSliceChanged)); 387 layer.RegisterObserverCallback(new Callable<LayerWidget, ILayerSource::SliceChangedMessage>(*this, &LayerWidget::OnSliceChanged));
388 layer.RegisterObserverCallback(new Callable<LayerWidget, ILayerSource::ContentChangedMessage>(*this, &LayerWidget::OnContentChanged)); 388 layer.RegisterObserverCallback(new Callable<LayerWidget, ILayerSource::ContentChangedMessage>(*this, &LayerWidget::OnContentChanged));
389 layer.RegisterObserverCallback(new Callable<LayerWidget, ILayerSource::LayerReadyMessage>(*this, &LayerWidget::OnLayerReady)); 389 layer.RegisterObserverCallback(new Callable<LayerWidget, ILayerSource::LayerReadyMessage>(*this, &LayerWidget::OnLayerReady));
390 layer.RegisterObserverCallback(new Callable<LayerWidget, ILayerSource::LayerErrorMessage>(*this, &LayerWidget::OnLayerError));
390 } 391 }
391 392
392 393
393 size_t LayerWidget::AddLayer(ILayerSource* layer) // Takes ownership 394 size_t LayerWidget::AddLayer(ILayerSource* layer) // Takes ownership
394 { 395 {
585 void LayerWidget::OnLayerReady(const ILayerSource::LayerReadyMessage& message) 586 void LayerWidget::OnLayerReady(const ILayerSource::LayerReadyMessage& message)
586 { 587 {
587 size_t index; 588 size_t index;
588 if (LookupLayer(index, message.GetOrigin())) 589 if (LookupLayer(index, message.GetOrigin()))
589 { 590 {
590 if (message.IsError()) 591 LOG(INFO) << "Renderer ready for layer " << index;
591 {
592 LOG(ERROR) << "Using error renderer on layer " << index;
593 }
594 else
595 {
596 LOG(INFO) << "Renderer ready for layer " << index;
597 }
598 592
599 // TODO -- REMOVE THIS UGLY STUFF 593 // TODO -- REMOVE THIS UGLY STUFF
600 ILayerSource::LayerReadyMessage& ugly = const_cast<ILayerSource::LayerReadyMessage&>(message); 594 ILayerSource::LayerReadyMessage& ugly = const_cast<ILayerSource::LayerReadyMessage&>(message);
601 595
602 if (ugly.GetRendererRaw().get() != NULL) 596 if (ugly.GetRendererRaw().get() == NULL)
603 { 597 {
604 UpdateLayer(index, ugly.GetRendererRaw().release(), message.GetSlice()); 598 throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError);
605 } 599 }
606 else if (message.IsError()) 600
607 { 601 UpdateLayer(index, ugly.GetRendererRaw().release(), message.GetSlice());
608 // TODO 602 }
609 //UpdateLayer(index, new SliceOutlineRenderer(slice), slice); 603
610 }
611 }
612 EmitMessage(LayerWidget::ContentChangedMessage(*this)); 604 EmitMessage(LayerWidget::ContentChangedMessage(*this));
613 } 605 }
614 606
615 607
608 void LayerWidget::OnLayerError(const ILayerSource::LayerErrorMessage& message)
609 {
610 size_t index;
611 if (LookupLayer(index, message.GetOrigin()))
612 {
613 LOG(ERROR) << "Using error renderer on layer " << index;
614
615 // TODO
616 //UpdateLayer(index, new SliceOutlineRenderer(slice), slice);
617
618 EmitMessage(LayerWidget::ContentChangedMessage(*this));
619 }
620 }
621
622
616 void LayerWidget::ResetChangedLayers() 623 void LayerWidget::ResetChangedLayers()
617 { 624 {
618 changedLayers_.resize(layers_.size()); 625 changedLayers_.resize(layers_.size());
619 626
620 for (size_t i = 0; i < changedLayers_.size(); i++) 627 for (size_t i = 0; i < changedLayers_.size(); i++)