diff --git a/code/nel/tools/3d/object_viewer_qt/src/edit_range_float_form.ui b/code/nel/tools/3d/object_viewer_qt/src/edit_range_float_form.ui
index 7f0a631e7..066876829 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/edit_range_float_form.ui
+++ b/code/nel/tools/3d/object_viewer_qt/src/edit_range_float_form.ui
@@ -7,7 +7,7 @@
0
0
304
- 32
+ 39
@@ -77,7 +77,7 @@
true
- true
+ false
QAbstractSpinBox::NoButtons
diff --git a/code/nel/tools/3d/object_viewer_qt/src/edit_range_widget.cpp b/code/nel/tools/3d/object_viewer_qt/src/edit_range_widget.cpp
index 27b715d4e..d0f8341d8 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/edit_range_widget.cpp
+++ b/code/nel/tools/3d/object_viewer_qt/src/edit_range_widget.cpp
@@ -138,7 +138,7 @@ void CEditRangeUIntWidget::changeSlider(int value)
void CEditRangeUIntWidget::updateUi()
{
if (_Wrapper == NULL) return;
- _ui.horizontalSlider->setSliderPosition(_Wrapper->get());
+ setValue(_Wrapper->get());
}
CEditRangeIntWidget::CEditRangeIntWidget(QWidget *parent)
@@ -242,7 +242,7 @@ void CEditRangeIntWidget::changeSlider(int value)
void CEditRangeIntWidget::updateUi()
{
if (_Wrapper == NULL) return;
- _ui.horizontalSlider->setSliderPosition(_Wrapper->get());
+ setValue(_Wrapper->get());
}
@@ -254,6 +254,7 @@ CEditRangeFloatWidget::CEditRangeFloatWidget(QWidget *parent )
connect(_ui.startSpinBox, SIGNAL(valueChanged(double)), this, SLOT(changeRange()));
connect(_ui.endSpinBox, SIGNAL(valueChanged(double)), this, SLOT(changeRange()));
connect(_ui.horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(changeSlider(int)));
+ connect(_ui.currentSpinBox, SIGNAL(valueChanged(double)), this, SLOT(changeValue(double)));
setValue(0.0, false);
}
@@ -304,6 +305,7 @@ void CEditRangeFloatWidget::enableUpperBound(float upperBound, bool upperBoundEx
upperBound -= 0.001f;
_ui.endSpinBox->setMaximum(upperBound);
_ui.startSpinBox->setMaximum(upperBound);
+ _ui.currentSpinBox->setMaximum(upperBound);
}
void CEditRangeFloatWidget::enableLowerBound(float lowerBound, bool lowerBoundExcluded)
@@ -312,6 +314,7 @@ void CEditRangeFloatWidget::enableLowerBound(float lowerBound, bool lowerBoundEx
lowerBound += 0.01f;
_ui.endSpinBox->setMinimum(lowerBound);
_ui.startSpinBox->setMinimum(lowerBound);
+ _ui.currentSpinBox->setMinimum(lowerBound);
}
void CEditRangeFloatWidget::disableUpperBound(void)
@@ -338,8 +341,11 @@ void CEditRangeFloatWidget::changeSlider(int value)
float delta = _ui.endSpinBox->value() - _ui.startSpinBox->value();
int deltaSlider = _ui.horizontalSlider->maximum() - _ui.horizontalSlider->minimum();
float newValue = _ui.startSpinBox->value() + ((delta / deltaSlider) * value);
- _ui.currentSpinBox->setValue(newValue);
+ _ui.currentSpinBox->blockSignals(true);
+ _ui.currentSpinBox->setValue(newValue);
+ _ui.currentSpinBox->blockSignals(false);
+
// NeL wrapper
if ((_Wrapper != NULL) && (fabs(newValue - _Wrapper->get()) > 0.0001))
_Wrapper->setAndUpdateModifiedFlag(newValue);
@@ -348,14 +354,15 @@ void CEditRangeFloatWidget::changeSlider(int value)
Q_EMIT valueChanged(newValue);
}
+void CEditRangeFloatWidget::changeValue(double value)
+{
+ setValue(value);
+}
+
void CEditRangeFloatWidget::updateUi()
{
if (_Wrapper == NULL) return;
- _ui.currentSpinBox->setValue(_Wrapper->get());
- float delta = _ui.endSpinBox->value() - _ui.startSpinBox->value();
- int deltaSlider = _ui.horizontalSlider->maximum() - _ui.horizontalSlider->minimum();
- int newValue = floor((deltaSlider / delta) * (_Wrapper->get() - _ui.startSpinBox->value()));
- _ui.horizontalSlider->setSliderPosition(newValue);
+ setValue(_Wrapper->get());
}
} /* namespace NLQT */
diff --git a/code/nel/tools/3d/object_viewer_qt/src/edit_range_widget.h b/code/nel/tools/3d/object_viewer_qt/src/edit_range_widget.h
index 32a4e0a98..72204b245 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/edit_range_widget.h
+++ b/code/nel/tools/3d/object_viewer_qt/src/edit_range_widget.h
@@ -277,6 +277,7 @@ Q_SIGNALS:
private Q_SLOTS:
void changeRange();
void changeSlider(int value);
+ void changeValue(double value);
private: