]> Creatis software - clitk.git/blobdiff - vv/vvOverlayPanel.cxx
Added compression option to clitkImageConvert
[clitk.git] / vv / vvOverlayPanel.cxx
index 76116236043cc002b8cda0aaf2d8b31c5869d8d6..bc3a7d0180ffa93dcc024c5e14766fe5f3a7daa2 100644 (file)
@@ -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)
@@ -149,8 +152,8 @@ void vvOverlayPanel::getCurrentOverlayInfo(int visibility,double valueOver, doub
   QString diffValue = "<b>Pixel difference : </b>";
   if (visibility) {
     refValue += QString::number(valueRef);
-    overlayValue += QString::number(valueOver,'f',1);
-    diffValue += QString::number(valueRef - valueOver,'f',1);
+    overlayValue += QString::number(valueOver);
+    diffValue += QString::number(valueRef - valueOver);
   }
   refValueLabel->setText(refValue);
   valueLabel->setText(overlayValue);
@@ -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());
 }