X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvOverlayPanel.cxx;h=bc3a7d0180ffa93dcc024c5e14766fe5f3a7daa2;hb=9abaa6b134ff9d8d87ec6752faa1152cc8869c07;hp=ac981a78f26b2e98aeb220f1e364e7426cdef908;hpb=6764ab075c799e9cdbf63e246f734c9be391199e;p=clitk.git diff --git a/vv/vvOverlayPanel.cxx b/vv/vvOverlayPanel.cxx index ac981a7..bc3a7d0 100644 --- a/vv/vvOverlayPanel.cxx +++ b/vv/vvOverlayPanel.cxx @@ -3,7 +3,7 @@ Authors belong to: - University of LYON http://www.universite-lyon.fr/ - - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even @@ -14,7 +14,7 @@ - BSD See included LICENSE.txt file - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html -======================================================================-====*/ +===========================================================================**/ #ifndef _vvOverlayPanel_CXX #define _vvOverlayPanel_CXX #include "vvOverlayPanel.h" @@ -45,9 +45,12 @@ vvOverlayPanel::vvOverlayPanel(QWidget * parent):QWidget(parent) connect(vfColorButton,SIGNAL(clicked()),this,SLOT(VFColorChangeRequest())); connect(colorHorizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(setOverlayProperty())); connect(opacityHorizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(setFusionProperty())); + connect(thresOpacityHorizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(setFusionProperty())); connect(fusionColorMapComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(setFusionProperty())); connect(windowSpinBox,SIGNAL(valueChanged(double)),this,SLOT(setFusionProperty())); connect(levelSpinBox,SIGNAL(valueChanged(double)),this,SLOT(setFusionProperty())); + + disableFusionSignals = false; } void vvOverlayPanel::getCurrentImageName(QString name) @@ -163,24 +166,34 @@ void vvOverlayPanel::getFusionName(QString name) dataFusionnedLabel->setText(filename.toStdString().c_str()); } -void vvOverlayPanel::getFusionProperty(int opacity, int colormap, double window, double level) +void vvOverlayPanel::getFusionProperty(int opacity, int thresOpacity, int colormap, double window, double level) { if (opacity > -1) { + //first disable signals generated by each setValue() call + disableFusionSignals = true; fusionFrame->show(); fusionFrame->setEnabled(1); - opacityHorizontalSlider->setEnabled(1); - opacityHorizontalSlider->setValue(opacity); fusionColorMapComboBox->setEnabled(1); fusionColorMapComboBox->setCurrentIndex(colormap); + opacityHorizontalSlider->setEnabled(1); + opacityHorizontalSlider->setValue(opacity); + thresOpacityHorizontalSlider->setEnabled(1); + thresOpacityHorizontalSlider->setValue(thresOpacity); windowSpinBox->setEnabled(1); levelSpinBox->setEnabled(1); windowSpinBox->setValue(window); levelSpinBox->setValue(level); + + // re-enable signals and trigger slot function + disableFusionSignals = false; + setFusionProperty(); } else { fusionFrame->hide(); fusionFrame->setEnabled(0); opacityHorizontalSlider->setEnabled(0); opacityHorizontalSlider->setValue(0); + thresOpacityHorizontalSlider->setEnabled(0); + thresOpacityHorizontalSlider->setValue(0); fusionColorMapComboBox->setEnabled(0); fusionColorMapComboBox->setCurrentIndex(-1); windowSpinBox->setEnabled(0); @@ -190,7 +203,10 @@ void vvOverlayPanel::getFusionProperty(int opacity, int colormap, double window, void vvOverlayPanel::setFusionProperty() { - emit FusionPropertyUpdated(opacityHorizontalSlider->value(), fusionColorMapComboBox->currentIndex(), + if (disableFusionSignals) + return; + + emit FusionPropertyUpdated(opacityHorizontalSlider->value(), thresOpacityHorizontalSlider->value(), fusionColorMapComboBox->currentIndex(), windowSpinBox->value(), levelSpinBox->value()); }