manager.smartDo add new Scope SameSeriesExceptSelf
This commit is contained in:
@@ -40,7 +40,11 @@ void ImageViewManager::smartDo(SmartDoCallback cb, DicomImageView *sourceView, v
|
||||
case DoScope::SameSeries:{
|
||||
std::for_each(vList.begin(),vList.end(),[=](auto v){
|
||||
//check series
|
||||
cb(v, callData);
|
||||
auto series = sourceView->getSeriesInstance();
|
||||
if (v->getSeriesInstance()==series && v->GetSliceOrientation() == sourceView->GetSliceOrientation()){
|
||||
cb(v, callData);
|
||||
}
|
||||
|
||||
});
|
||||
break;
|
||||
}
|
||||
@@ -48,7 +52,10 @@ void ImageViewManager::smartDo(SmartDoCallback cb, DicomImageView *sourceView, v
|
||||
std::for_each(vList.begin(),vList.end(),[=](auto v){
|
||||
if (v == sourceView) return;
|
||||
//check series
|
||||
cb(v, callData);
|
||||
auto series = sourceView->getSeriesInstance();
|
||||
if (v->getSeriesInstance()==series && v->GetSliceOrientation() == sourceView->GetSliceOrientation()){
|
||||
cb(v, callData);
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "viewcontainerwidget.h"
|
||||
#include "viewcontainerwidget.h"
|
||||
#include "thumbnailImage.h"
|
||||
#include "DicomLoader.h"
|
||||
#include <QWidget>
|
||||
@@ -75,7 +75,7 @@ void ViewContainerWidget::Slot_SyncEvent(DicomImageView *view, int interactionMo
|
||||
v->SetSlice(r[0]);
|
||||
v->setScrollChangedType(scrollScope::TriggerType::USER_TRIGGER);
|
||||
}
|
||||
},view, calldata,ImageViewManager::AllExceptSelf);
|
||||
},view, calldata,ImageViewManager::SameSeriesExceptSelf);
|
||||
}
|
||||
if (SyncHelper::getSyncState() == MANUAL_SYNC)
|
||||
{
|
||||
@@ -87,7 +87,7 @@ void ViewContainerWidget::Slot_SyncEvent(DicomImageView *view, int interactionMo
|
||||
v->AddSlice(r[1]);
|
||||
v->setScrollChangedType(scrollScope::TriggerType::USER_TRIGGER);
|
||||
}
|
||||
},view, calldata,ImageViewManager::AllExceptSelf);
|
||||
},view, calldata,ImageViewManager::SameSeriesExceptSelf);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -101,7 +101,7 @@ void ViewContainerWidget::Slot_SyncEvent(DicomImageView *view, int interactionMo
|
||||
double vector[3] = { d[3] - d[0],d[4] - d[1],d[5] - d[2] };
|
||||
v->SetPanOffset(vector);
|
||||
}
|
||||
},view, calldata,ImageViewManager::AllExceptSelf);
|
||||
},view, calldata,ImageViewManager::SameSeriesExceptSelf);
|
||||
}
|
||||
break;
|
||||
case VTKIS_IMAGE_ZOOM:
|
||||
@@ -112,7 +112,7 @@ void ViewContainerWidget::Slot_SyncEvent(DicomImageView *view, int interactionMo
|
||||
double *d = (double *)callData;
|
||||
v->SetZoomScale(d[1]);
|
||||
}
|
||||
},view, calldata,ImageViewManager::AllExceptSelf);
|
||||
},view, calldata,ImageViewManager::SameSeriesExceptSelf);
|
||||
}
|
||||
break;
|
||||
case VTKIS_IMAGE_WINDOWLEVEL:
|
||||
@@ -123,7 +123,7 @@ void ViewContainerWidget::Slot_SyncEvent(DicomImageView *view, int interactionMo
|
||||
double *d = (double *)callData;
|
||||
v->SetWindowLevel(d[1], d[0]);
|
||||
}
|
||||
},view, calldata,ImageViewManager::AllExceptSelf);
|
||||
},view, calldata,ImageViewManager::SameSeriesExceptSelf);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -354,20 +354,21 @@ void ViewContainerWidget::toggleViewWithFusion()
|
||||
|
||||
void ViewContainerWidget::replaceViewWithFusion()
|
||||
{
|
||||
//Temporal: automatically fusion with next image
|
||||
DicomImageView * overlap_view = this->getNextView();
|
||||
if (checkFusionStatus(manager.getCurrentView(), overlap_view))
|
||||
{
|
||||
connect(overlap_view, &DicomImageView::Signal_WindowLevelEventForFusion,
|
||||
manager.getCurrentView(), &DicomImageView::Slot_WindowLevelEventForFusion);
|
||||
for (int i = 0; i < manager.getViewCount(); ++i) {
|
||||
if (manager.getView(i) == manager.getCurrentView()) continue;
|
||||
DicomImageView * overlap_view = manager.getView(i);
|
||||
if (checkFusionStatus(manager.getCurrentView(), overlap_view))
|
||||
{
|
||||
connect(overlap_view, &DicomImageView::Signal_WindowLevelEventForFusion,
|
||||
manager.getCurrentView(), &DicomImageView::Slot_WindowLevelEventForFusion);
|
||||
|
||||
manager.getCurrentView()->SetFusionInput(overlap_view);
|
||||
manager.getCurrentView()->Render();
|
||||
return;
|
||||
}
|
||||
}
|
||||
QMessageBox::information(this, "Warning", "Invalid Fusion!");
|
||||
|
||||
manager.getCurrentView()->SetFusionInput(overlap_view);
|
||||
manager.getCurrentView()->Render();
|
||||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::information(this, "Warning", "Invalid Fusion!");
|
||||
}
|
||||
}
|
||||
void ViewContainerWidget::removeCurrentViewWithFusion()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user