1 /*=========================================================================
4 Module: $RCSfile: vvIntensityValueSlider.cxx,v $
6 Date: $Date: 2010/01/29 13:54:37 $
7 Version: $Revision: 1.1 $
8 Author : David Sarrut (david.sarrut@creatis.insa-lyon.fr)
11 Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
12 CREATIS-LRMN http://www.creatis.insa-lyon.fr
14 This program is free software: you can redistribute it and/or modify
15 it under the terms of the GNU General Public License as published by
16 the Free Software Foundation, version 3 of the License.
18 This program is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 GNU General Public License for more details.
23 You should have received a copy of the GNU General Public License
24 along with this program. If not, see <http://www.gnu.org/licenses/>.
26 =========================================================================*/
28 #include "vvIntensityValueSlider.h"
29 #include "clitkCommon.h"
31 //------------------------------------------------------------------------------
32 vvIntensityValueSlider::vvIntensityValueSlider(QWidget * parent, Qt::WindowFlags f)
33 :QWidget(parent,f), Ui::vvIntensityValueSlider()
38 // Connect signals & slots
39 connect(mSpinBox, SIGNAL(valueChanged(double)), this, SLOT(valueChangedFromSpinBox(double)));
40 connect(mSlider, SIGNAL(valueChanged(int)), this, SLOT(valueChangedFromSlider(int)));
42 //------------------------------------------------------------------------------
45 //------------------------------------------------------------------------------
46 vvIntensityValueSlider::~vvIntensityValueSlider() {
47 // DD("Delete vvIntensityValueSlider");
49 //------------------------------------------------------------------------------
52 //------------------------------------------------------------------------------
53 void vvIntensityValueSlider::valueChangedFromSpinBox(double v) {
54 // DD("valueChangedFromSpinBox");
60 //------------------------------------------------------------------------------
63 //------------------------------------------------------------------------------
64 void vvIntensityValueSlider::valueChangedFromSlider(int v) {
65 // DD("valueChangedFromSlider");
67 // DD(v*mSliderFactor);
68 mSpinBox->setValue(v*mSliderFactor);
69 // emit valueChanged(v*mSliderFactor);
71 //------------------------------------------------------------------------------
74 //------------------------------------------------------------------------------
75 void vvIntensityValueSlider::SetText(QString t) {
78 //------------------------------------------------------------------------------
81 //------------------------------------------------------------------------------
82 void vvIntensityValueSlider::SetImage(vvImage * im) {
86 //------------------------------------------------------------------------------
89 //------------------------------------------------------------------------------
90 void vvIntensityValueSlider::SetValue(double d) {
91 mSpinBox->setValue(d);
93 //------------------------------------------------------------------------------
96 //------------------------------------------------------------------------------
97 void vvIntensityValueSlider::SetMaximum(double max) {
98 mSlider->setMaximum(max);
99 mSpinBox->setMaximum(max);
100 if (mValue > max) { SetValue(max); }
101 QString tip = QString("Min = %1 Max = %2").arg(mSpinBox->minimum()).arg(max);
104 //------------------------------------------------------------------------------
107 //------------------------------------------------------------------------------
108 void vvIntensityValueSlider::SetMinimum(double min) {
109 mSlider->setMinimum(min);
110 mSpinBox->setMinimum(min);
111 if (mValue < min) { SetValue(min); }
112 QString tip = QString("Min = %1 Max = %2").arg(min).arg(mSpinBox->maximum());
115 //------------------------------------------------------------------------------
118 //------------------------------------------------------------------------------
119 void vvIntensityValueSlider::Update() {
120 DD(mImage->GetScalarTypeAsString());
121 DD(mImage->GetFirstVTKImageData()->GetScalarTypeMax());
122 DD(mImage->GetFirstVTKImageData()->GetScalarTypeMin());
124 // double max = mImage->GetFirstVTKImageData()->GetScalarTypeMax();
125 // double min = mImage->GetFirstVTKImageData()->GetScalarTypeMin();
127 if (mImage->IsScalarTypeInteger()) {
129 mSpinBox->setSingleStep(1.0);
130 mSpinBox->setDecimals(0);
134 mImage->GetFirstVTKImageData()->GetScalarRange(range);
139 mSlider->setMaximum(mMax);
140 mSlider->setMinimum(mMin);
141 mSpinBox->setMaximum(mMax);
142 mSpinBox->setMinimum(mMin);
144 QString tip = QString("Min = %1 Max = %2").arg(mMin).arg(mMax);
148 std::cerr << "NO floating point image yet !!" << std::endl;
153 //------------------------------------------------------------------------------