]> Creatis software - clitk.git/blobdiff - vv/vvOverlayPanel.cxx
Merge branch 'master' into blutdirmaster
[clitk.git] / vv / vvOverlayPanel.cxx
index 425fd34e6480751f92c7cc73334335b028229ee7..f19e13b0cc167325b3b9b87826a91ac3a098ead9 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"
@@ -22,6 +22,7 @@
 #include <QtGui>
 #include <Qt>
 #include "QTreePushButton.h"
+#include <QColorDialog>
 
 #include <vtksys/SystemTools.hxx>
 
@@ -41,8 +42,10 @@ vvOverlayPanel::vvOverlayPanel(QWidget * parent):QWidget(parent)
   connect(scaleSpinBox,SIGNAL(editingFinished()),this,SLOT(setVFProperty()));
   connect(lutCheckBox,SIGNAL(clicked()),this,SLOT(setVFProperty()));
   connect(vfWidthSpinBox,SIGNAL(editingFinished()),this,SLOT(setVFProperty()));
+  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()));
@@ -90,10 +93,12 @@ void vvOverlayPanel::getVFName(QString name)
 
 void vvOverlayPanel::setVFProperty()
 {
+  QColor color(vfColorButton->palette().color(QPalette::Background));
   emit VFPropertyUpdated(subSamplingSpinBox->value(),
                          scaleSpinBox->value(),
                          lutCheckBox->checkState(),
-                         vfWidthSpinBox->value());
+                         vfWidthSpinBox->value(),
+                         color.redF(), color.greenF(), color.blueF());
 }
 
 void vvOverlayPanel::getCurrentVectorInfo(int visibility, double x,double y,double z, double value)
@@ -145,8 +150,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);
@@ -159,13 +164,15 @@ 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) {
     fusionFrame->show();
     fusionFrame->setEnabled(1);
     opacityHorizontalSlider->setEnabled(1);
     opacityHorizontalSlider->setValue(opacity);
+    thresOpacityHorizontalSlider->setEnabled(1);
+    thresOpacityHorizontalSlider->setValue(thresOpacity);
     fusionColorMapComboBox->setEnabled(1);
     fusionColorMapComboBox->setCurrentIndex(colormap);
     windowSpinBox->setEnabled(1);
@@ -177,6 +184,8 @@ void vvOverlayPanel::getFusionProperty(int opacity, int colormap, double window,
     fusionFrame->setEnabled(0);
     opacityHorizontalSlider->setEnabled(0);
     opacityHorizontalSlider->setValue(0);
+    thresOpacityHorizontalSlider->setEnabled(0);
+    thresOpacityHorizontalSlider->setValue(0);
     fusionColorMapComboBox->setEnabled(0);
     fusionColorMapComboBox->setCurrentIndex(-1);
     windowSpinBox->setEnabled(0);
@@ -186,7 +195,7 @@ void vvOverlayPanel::getFusionProperty(int opacity, int colormap, double window,
 
 void vvOverlayPanel::setFusionProperty()
 {
-  emit FusionPropertyUpdated(opacityHorizontalSlider->value(), fusionColorMapComboBox->currentIndex(),
+  emit FusionPropertyUpdated(opacityHorizontalSlider->value(), thresOpacityHorizontalSlider->value(), fusionColorMapComboBox->currentIndex(),
                              windowSpinBox->value(), levelSpinBox->value());
 }
 
@@ -199,5 +208,14 @@ void vvOverlayPanel::getCurrentFusionInfo(int visibility,double value)
   valueFusionnedLabel->setText(fusionValue);
 }
 
+void vvOverlayPanel::VFColorChangeRequest()
+{
+  QColor color(vfColorButton->palette().color(QPalette::Background));
+  color = QColorDialog::getColor(color, this, "Choose the new color of the vector field");
+  //vfColorButton->palette().setColor(QPalette::Background, color); SR: Not working?
+  vfColorButton->setStyleSheet("* { background-color: " + color.name() + "; border: 0px }");
+  this->setVFProperty();
+}
+
 #endif /* end #define _vvOverlayPanel_CXX */