|
|
|
@@ -17,7 +17,9 @@
|
|
|
|
#include "UI/Widget/cine/pqVCRToolbar.h"
|
|
|
|
#include "UI/Widget/cine/pqVCRToolbar.h"
|
|
|
|
|
|
|
|
|
|
|
|
ImageViewManager::ImageViewManager(QObject *parent)
|
|
|
|
ImageViewManager::ImageViewManager(QObject *parent)
|
|
|
|
: QObject(parent), currentView(nullptr), currentFusionView(nullptr), mMaxed(false) {
|
|
|
|
: QObject(parent), currentView(nullptr),
|
|
|
|
|
|
|
|
currentFusionView(nullptr), mMaxed(false),
|
|
|
|
|
|
|
|
mInteractiveMode(4) {
|
|
|
|
|
|
|
|
|
|
|
|
connect(EventsCenter::Default(),&EventsCenter::AnnotationStateChanged,
|
|
|
|
connect(EventsCenter::Default(),&EventsCenter::AnnotationStateChanged,
|
|
|
|
this, &ImageViewManager::updateCornerInfoAll);
|
|
|
|
this, &ImageViewManager::updateCornerInfoAll);
|
|
|
|
@@ -49,8 +51,11 @@ void ImageViewManager::add(DicomImageView *view) {
|
|
|
|
connect(view, &DicomImageView::onViewDoubleClick,
|
|
|
|
connect(view, &DicomImageView::onViewDoubleClick,
|
|
|
|
this, &ImageViewManager::viewDoubleClicked);
|
|
|
|
this, &ImageViewManager::viewDoubleClicked);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
connect(view, &DicomImageView::beforeViewCleared,
|
|
|
|
|
|
|
|
this, &ImageViewManager::beforeViewCleared);
|
|
|
|
|
|
|
|
|
|
|
|
connect(view, &DicomImageView::afterViewCleared,
|
|
|
|
connect(view, &DicomImageView::afterViewCleared,
|
|
|
|
this, &ImageViewManager::viewCleared);
|
|
|
|
this, &ImageViewManager::afterViewCleared);
|
|
|
|
|
|
|
|
|
|
|
|
connect(view, &DicomImageView::onDragDrop, [=](DicomImageView *view, const std::string &id) {
|
|
|
|
connect(view, &DicomImageView::onDragDrop, [=](DicomImageView *view, const std::string &id) {
|
|
|
|
setCurrentView(view);
|
|
|
|
setCurrentView(view);
|
|
|
|
@@ -110,8 +115,8 @@ void ImageViewManager::setCurrentView(DicomImageView *view) {
|
|
|
|
|
|
|
|
|
|
|
|
currentView->setHighlight(true);
|
|
|
|
currentView->setHighlight(true);
|
|
|
|
renderReferenceLine();
|
|
|
|
renderReferenceLine();
|
|
|
|
emit currentViewChanged(view);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
emit currentViewChanged(view);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ImageViewManager::smartDo(SmartDoCallback cb, DicomImageView *sourceView, void *callData, DoScope scope) {
|
|
|
|
void ImageViewManager::smartDo(SmartDoCallback cb, DicomImageView *sourceView, void *callData, DoScope scope) {
|
|
|
|
@@ -390,7 +395,14 @@ void ImageViewManager::viewReloadWithID(int aID, const std::string &unique_info)
|
|
|
|
reloadCurrentView(selectView);
|
|
|
|
reloadCurrentView(selectView);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ImageViewManager::viewCleared(DicomImageView* view) {
|
|
|
|
void ImageViewManager::beforeViewCleared(DicomImageView* view) {
|
|
|
|
|
|
|
|
if (view && view->getImageViewer())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
EllipsoidVolumeAnnotationActor::Default()->ClearRenderingState(view->getImageViewer()->GetRenderer());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ImageViewManager::afterViewCleared(DicomImageView* view) {
|
|
|
|
smartDo([](auto v, auto callData) {
|
|
|
|
smartDo([](auto v, auto callData) {
|
|
|
|
auto src = (DicomImageView*)callData;
|
|
|
|
auto src = (DicomImageView*)callData;
|
|
|
|
if (v->isFusion() && v->getFusionInput() == src){
|
|
|
|
if (v->isFusion() && v->getFusionInput() == src){
|
|
|
|
@@ -400,14 +412,15 @@ void ImageViewManager::viewCleared(DicomImageView* view) {
|
|
|
|
reloadCurrentView(view);
|
|
|
|
reloadCurrentView(view);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ImageViewManager::setInteractionMode(int InteractionMode) {
|
|
|
|
void ImageViewManager::setInteractionMode(int aInteractionMode) {
|
|
|
|
void *data = (void *) &InteractionMode;
|
|
|
|
void *data = (void *) &aInteractionMode;
|
|
|
|
smartDo([](auto v, auto callData) {
|
|
|
|
smartDo([](auto v, auto callData) {
|
|
|
|
int *mode = (int *) callData;
|
|
|
|
int *mode = (int *) callData;
|
|
|
|
if (v->getImageViewer()) {
|
|
|
|
if (v->getImageViewer()) {
|
|
|
|
v->getImageViewer()->GetInteractorStyle()->SetInteractionModeFromEnum(*mode);
|
|
|
|
v->getImageViewer()->GetInteractorStyle()->SetInteractionModeFromEnum(*mode);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}, nullptr, data, All);
|
|
|
|
}, nullptr, data, All);
|
|
|
|
|
|
|
|
mInteractiveMode = aInteractionMode;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ImageViewManager::renderAll() {
|
|
|
|
void ImageViewManager::renderAll() {
|
|
|
|
@@ -553,19 +566,16 @@ void ImageViewManager::clearCurrentView() {
|
|
|
|
|
|
|
|
|
|
|
|
void ImageViewManager::reloadCurrentView(DicomImageView * view){
|
|
|
|
void ImageViewManager::reloadCurrentView(DicomImageView * view){
|
|
|
|
renderReferenceLine();
|
|
|
|
renderReferenceLine();
|
|
|
|
if (view && getFirstView())
|
|
|
|
if (view)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (view->getImageViewer()){
|
|
|
|
if (view->getImageViewer()){
|
|
|
|
view->getImageViewer()->GetInteractorStyle()->SetInteractionModeFromEnum(
|
|
|
|
view->getImageViewer()->GetInteractorStyle()->SetInteractionModeFromEnum(mInteractiveMode);
|
|
|
|
getFirstView()->getImageViewer()->GetInteractorStyle()->GetInteractionMode()
|
|
|
|
if(mInteractiveMode == VTKIS_MEASURE)
|
|
|
|
);
|
|
|
|
|
|
|
|
if(getFirstView()->getImageViewer()->GetInteractorStyle()->GetInteractionMode() == VTKIS_MEASURE)
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
MeasureHelper::setMeasureType(MeasureHelper::getMeasureType());
|
|
|
|
MeasureHelper::setMeasureType(MeasureHelper::getMeasureType());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
EllipsoidVolumeAnnotationActor::Default()->ClearRenderingState(view->getImageViewer()->GetRenderer());
|
|
|
|
EllipsoidVolumeAnnotationActor::Default()->ClearRenderingState(view->getImageViewer()->GetRenderer());
|
|
|
|
renderAll();
|
|
|
|
renderAll();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
emit currentViewChanged(view);
|
|
|
|
emit currentViewChanged(view);
|
|
|
|
|