Update: correct works edit_range_widget

This commit is contained in:
dnk-88 2010-10-31 17:22:44 +02:00
parent 9579240ce7
commit 7f82d27070
3 changed files with 18 additions and 10 deletions

View file

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>304</width> <width>304</width>
<height>32</height> <height>39</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -77,7 +77,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="readOnly"> <property name="readOnly">
<bool>true</bool> <bool>false</bool>
</property> </property>
<property name="buttonSymbols"> <property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum> <enum>QAbstractSpinBox::NoButtons</enum>

View file

@ -138,7 +138,7 @@ void CEditRangeUIntWidget::changeSlider(int value)
void CEditRangeUIntWidget::updateUi() void CEditRangeUIntWidget::updateUi()
{ {
if (_Wrapper == NULL) return; if (_Wrapper == NULL) return;
_ui.horizontalSlider->setSliderPosition(_Wrapper->get()); setValue(_Wrapper->get());
} }
CEditRangeIntWidget::CEditRangeIntWidget(QWidget *parent) CEditRangeIntWidget::CEditRangeIntWidget(QWidget *parent)
@ -242,7 +242,7 @@ void CEditRangeIntWidget::changeSlider(int value)
void CEditRangeIntWidget::updateUi() void CEditRangeIntWidget::updateUi()
{ {
if (_Wrapper == NULL) return; 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.startSpinBox, SIGNAL(valueChanged(double)), this, SLOT(changeRange()));
connect(_ui.endSpinBox, 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.horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(changeSlider(int)));
connect(_ui.currentSpinBox, SIGNAL(valueChanged(double)), this, SLOT(changeValue(double)));
setValue(0.0, false); setValue(0.0, false);
} }
@ -304,6 +305,7 @@ void CEditRangeFloatWidget::enableUpperBound(float upperBound, bool upperBoundEx
upperBound -= 0.001f; upperBound -= 0.001f;
_ui.endSpinBox->setMaximum(upperBound); _ui.endSpinBox->setMaximum(upperBound);
_ui.startSpinBox->setMaximum(upperBound); _ui.startSpinBox->setMaximum(upperBound);
_ui.currentSpinBox->setMaximum(upperBound);
} }
void CEditRangeFloatWidget::enableLowerBound(float lowerBound, bool lowerBoundExcluded) void CEditRangeFloatWidget::enableLowerBound(float lowerBound, bool lowerBoundExcluded)
@ -312,6 +314,7 @@ void CEditRangeFloatWidget::enableLowerBound(float lowerBound, bool lowerBoundEx
lowerBound += 0.01f; lowerBound += 0.01f;
_ui.endSpinBox->setMinimum(lowerBound); _ui.endSpinBox->setMinimum(lowerBound);
_ui.startSpinBox->setMinimum(lowerBound); _ui.startSpinBox->setMinimum(lowerBound);
_ui.currentSpinBox->setMinimum(lowerBound);
} }
void CEditRangeFloatWidget::disableUpperBound(void) void CEditRangeFloatWidget::disableUpperBound(void)
@ -338,7 +341,10 @@ void CEditRangeFloatWidget::changeSlider(int value)
float delta = _ui.endSpinBox->value() - _ui.startSpinBox->value(); float delta = _ui.endSpinBox->value() - _ui.startSpinBox->value();
int deltaSlider = _ui.horizontalSlider->maximum() - _ui.horizontalSlider->minimum(); int deltaSlider = _ui.horizontalSlider->maximum() - _ui.horizontalSlider->minimum();
float newValue = _ui.startSpinBox->value() + ((delta / deltaSlider) * value); float newValue = _ui.startSpinBox->value() + ((delta / deltaSlider) * value);
_ui.currentSpinBox->blockSignals(true);
_ui.currentSpinBox->setValue(newValue); _ui.currentSpinBox->setValue(newValue);
_ui.currentSpinBox->blockSignals(false);
// NeL wrapper // NeL wrapper
if ((_Wrapper != NULL) && (fabs(newValue - _Wrapper->get()) > 0.0001)) if ((_Wrapper != NULL) && (fabs(newValue - _Wrapper->get()) > 0.0001))
@ -348,14 +354,15 @@ void CEditRangeFloatWidget::changeSlider(int value)
Q_EMIT valueChanged(newValue); Q_EMIT valueChanged(newValue);
} }
void CEditRangeFloatWidget::changeValue(double value)
{
setValue(value);
}
void CEditRangeFloatWidget::updateUi() void CEditRangeFloatWidget::updateUi()
{ {
if (_Wrapper == NULL) return; if (_Wrapper == NULL) return;
_ui.currentSpinBox->setValue(_Wrapper->get()); 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);
} }
} /* namespace NLQT */ } /* namespace NLQT */

View file

@ -277,6 +277,7 @@ Q_SIGNALS:
private Q_SLOTS: private Q_SLOTS:
void changeRange(); void changeRange();
void changeSlider(int value); void changeSlider(int value);
void changeValue(double value);
private: private: