feat: Add measure resume logic

This commit is contained in:
kradchen
2025-07-09 09:27:26 +08:00
parent a3382cf42f
commit 85d01b57f5
4 changed files with 29 additions and 15 deletions

View File

@@ -107,11 +107,6 @@ void ActorDraggableInteractorStyle::OnLeftButtonDown() {
}
}
#endif
if (measure) {
measure->SetPlacing(measure->onMeasureLeftButtonDown(this->Interactor));
if (this->State != VTKIS_MEASURE) this->StartMeasure();
return;
}
if (scalarProp) {
ScalarStartPosition[0] = x;
@@ -119,6 +114,13 @@ void ActorDraggableInteractorStyle::OnLeftButtonDown() {
this->StartColorMapping();
return;
}
if (this->InteractionMode == VTKIS_MEASURE){
if (measure) {
measure->SetPlacing(measure->onMeasureLeftButtonDown(this->Interactor));
if (this->State != VTKIS_MEASURE) this->StartMeasure();
return;
}
}
if (this->InteractionMode == VTKIS_IMAGE_WINDOWLEVEL) {
this->WindowLevelStartPosition[0] = x;
this->WindowLevelStartPosition[1] = y;

View File

@@ -9,6 +9,7 @@
#define VTKIS_MEASURE 36
#define VTKIS_COLORMAP 37
#define VTKIS_SYNCPOINT 38
#define VTKIS_VOLUMEMEASURE 39
#define VTKIS_IMAGE_PAN 5
#define VTKIS_IMAGE_ZOOM 6
#define VTKIS_IMAGE_WINDOWLEVEL 7

View File

@@ -546,6 +546,18 @@ void ImageViewManager::clearCurrentView() {
void ImageViewManager::reloadCurrentView(DicomImageView * view){
renderReferenceLine();
if (view && getFirstView())
{
if (view->getImageViewer()){
view->getImageViewer()->GetInteractorStyle()->SetInteractionModeFromEnum(
getFirstView()->getImageViewer()->GetInteractorStyle()->GetInteractionMode()
);
if(getFirstView()->getImageViewer()->GetInteractorStyle()->GetInteractionMode() == VTKIS_MEASURE)
{
MeasureHelper::setMeasureType(MeasureHelper::getMeasureType());
}
}
}
emit currentViewReloaded(view);
}

View File

@@ -463,15 +463,6 @@ void DefaultToolBar::initMeasureButton() {
tr("Round"),
tr("Text")};
#define ADD_MEASURE_ACTION(index)\
m->addAction(measures[index], this, [=] {\
mBtnMeasure->setChecked(true);\
QPixmap map(std::get<0>(MEASURE_ACTIIONS[index]));\
mBtnMeasure->setIcon(QIcon(map));\
MeasureHelper::setMeasureType(std::get<1>(MEASURE_ACTIIONS[index]));\
mBtnMeasure->setProperty("mode",0);\
})
#define ADD_DEL_ACTION(text, type)\
m->addAction(text,this,[]{\
@@ -487,6 +478,7 @@ void DefaultToolBar::initMeasureButton() {
emit modeChanged(38);
}
else{
emit modeChanged(36);
MeasureHelper::setMeasureType(MeasureHelper::getMeasureType());
}
});
@@ -495,7 +487,14 @@ void DefaultToolBar::initMeasureButton() {
m = new QMenu(this);
for (int j = 0; j < ACTION_COUNT-1; ++j) {
ADD_MEASURE_ACTION(j);
m->addAction(measures[j], this, [=] {
mBtnMeasure->setChecked(true);
QPixmap map(std::get<0>(MEASURE_ACTIIONS[j]));
mBtnMeasure->setIcon(QIcon(map));
emit modeChanged(36);
MeasureHelper::setMeasureType(std::get<1>(MEASURE_ACTIIONS[j]));
mBtnMeasure->setProperty("mode",0);
});
}
m->addAction(tr("Location Point"), this,[=](){