X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvOverlayPanel.cxx;h=2a77e8dcaff5a5a335c23f4366571dfb238691e2;hb=776f50aff3e47001b78e1c7dc4d51e789434f92a;hp=e205c8770105857c7edf0a0a9424ffc819554b4c;hpb=1548a47199250d3819961adb37becac65bc72f3c;p=clitk.git diff --git a/vv/vvOverlayPanel.cxx b/vv/vvOverlayPanel.cxx index e205c87..2a77e8d 100644 --- a/vv/vvOverlayPanel.cxx +++ b/vv/vvOverlayPanel.cxx @@ -29,6 +29,9 @@ //==================================================================== vvOverlayPanel::vvOverlayPanel(QWidget * parent):QWidget(parent) { + disableFusionSignals = true; + disableFusionSequenceSignals = true; + setupUi(this); vFFrame->hide(); @@ -40,7 +43,6 @@ vvOverlayPanel::vvOverlayPanel(QWidget * parent):QWidget(parent) lutCheckBox->hide(); lutCheckBox->setEnabled(0); fusionShowLegendCheckBox->setChecked(false); - fCTUSActivateSpaceSyncCheckBox->setChecked(true); connect(subSamplingSpinBox,SIGNAL(editingFinished()),this,SLOT(setVFProperty())); connect(scaleSpinBox,SIGNAL(editingFinished()),this,SLOT(setVFProperty())); @@ -62,9 +64,8 @@ vvOverlayPanel::vvOverlayPanel(QWidget * parent):QWidget(parent) connect(fCTUSSlider,SIGNAL(valueChanged(int)),this,SLOT(setFusionSequenceProperty())); connect(fCTUSActivateSpaceSyncCheckBox,SIGNAL(stateChanged(int)),this,SLOT(setFusionSequenceProperty())); - - disableFusionSignals = false; - disableFusionSequenceSignals = false; + connect(fCTUSActivateTimeSyncCheckBox,SIGNAL(stateChanged(int)),this,SLOT(setFusionSequenceProperty())); + connect(fCTUSLoadCorrespondancesPushButton,SIGNAL(clicked()),this,SIGNAL(FusionSequenceCorrespondancesButtonPressed())); } void vvOverlayPanel::getCurrentImageName(QString name) @@ -232,7 +233,7 @@ void vvOverlayPanel::setFusionProperty() if (disableFusionSignals) return; - fusionOpacitySpin->setValue(opacityHorizontalSlider->value()); + fusionOpacitySpin->setValue(opacityHorizontalSlider->value()); fusionThresSpin->setValue(thresOpacityHorizontalSlider->value()); emit FusionPropertyUpdated(opacityHorizontalSlider->value(), thresOpacityHorizontalSlider->value(), fusionColorMapComboBox->currentIndex(), @@ -255,7 +256,7 @@ void vvOverlayPanel::getCurrentFusionInfo(int visibility,double value) } -void vvOverlayPanel::getFusionSequenceProperty(int sequenceFrameIndex, bool spatialSync, unsigned int sequenceLenth) +void vvOverlayPanel::getFusionSequenceProperty(int sequenceFrameIndex, bool spatialSync, unsigned int sequenceLenth, bool temporalSync) { if (sequenceFrameIndex > -1) { disableFusionSequenceSignals = true; @@ -263,31 +264,58 @@ void vvOverlayPanel::getFusionSequenceProperty(int sequenceFrameIndex, bool spat fCTUSFrame->setEnabled(1); fCTUSSlider->setEnabled(1); fCTUSSlider->setValue(sequenceFrameIndex); - fCTUSSlider->setMaximum(sequenceLenth); + fCTUSSlider->setMaximum(sequenceLenth-1); //the maximum IS included, since we start at 0, go until n-1! if (spatialSync) fCTUSActivateSpaceSyncCheckBox->setCheckState(Qt::Checked); - else fCTUSActivateSpaceSyncCheckBox->setCheckState(Qt::Unchecked); + else fCTUSActivateSpaceSyncCheckBox->setCheckState(Qt::Unchecked); + if (fCTUSActivateTimeSyncCheckBox->isEnabled()) { + if ( temporalSync ) fCTUSActivateTimeSyncCheckBox->setCheckState(Qt::Checked); + else fCTUSActivateTimeSyncCheckBox->setCheckState(Qt::Unchecked); + } disableFusionSequenceSignals = false; setFusionSequenceProperty(); } else { + disableFusionSequenceSignals = true; fCTUSFrame->hide(); fCTUSFrame->setEnabled(0); fCTUSSlider->setEnabled(0); fCTUSSlider->setValue(0); fCTUSSlider->setMaximum(0); fCTUSActivateSpaceSyncCheckBox->setCheckState(Qt::Unchecked); + fCTUSActivateTimeSyncCheckBox->setCheckState(Qt::Unchecked); + disableFusionSequenceSignals = false; + setFusionSequenceProperty(); } } void vvOverlayPanel::setFusionSequenceProperty() { - if (disableFusionSequenceSignals) - return; + if (disableFusionSequenceSignals) + return; + emit FusionSequencePropertyUpdated(fCTUSSlider->value(), fCTUSActivateSpaceSyncCheckBox->isChecked(), fCTUSSlider->maximum()+1, fCTUSActivateTimeSyncCheckBox->isChecked()); +} - emit FusionSequencePropertyUpdated(fCTUSSlider->value(), fCTUSActivateSpaceSyncCheckBox->isChecked(), fCTUSSlider->maximum()); +void vvOverlayPanel::enableFusionSequenceTemporalSync() { + bool backup = disableFusionSequenceSignals; + disableFusionSequenceSignals=true; //not sure this is necessary, but just in case... + fCTUSActivateTimeSyncCheckBox->setEnabled(1); + fCTUSActivateTimeSyncCheckBox->setChecked(true); + disableFusionSequenceSignals = backup; // + + if (disableFusionSequenceSignals) return; + emit FusionSequencePropertyUpdated(fCTUSSlider->value(), fCTUSActivateSpaceSyncCheckBox->isChecked(), fCTUSSlider->maximum()+1, fCTUSActivateTimeSyncCheckBox->isChecked()); } +void vvOverlayPanel::updateFusionSequenceSliderValueFromWindow(int val, bool updateVisualization) { + if (fCTUSSlider->value()==val) return; + + disableFusionSequenceSignals = true; //not sure this is necessary, but just in case... + fCTUSSlider->setValue(val); + disableFusionSequenceSignals = false; + if (disableFusionSequenceSignals) return; + if (updateVisualization) emit FusionSequencePropertyUpdated(fCTUSSlider->value(), fCTUSActivateSpaceSyncCheckBox->isChecked(), fCTUSSlider->maximum()+1, fCTUSActivateTimeSyncCheckBox->isChecked()); +} void vvOverlayPanel::VFColorChangeRequest() {