fix double slider (#1843)
This commit is contained in:
parent
c13c8e4599
commit
192c8e0e4e
1 changed files with 8 additions and 8 deletions
|
@ -145,8 +145,8 @@ void DoubleValueField::setRange(double minValue, double maxValue) {
|
||||||
m_roller->setRange(minValue, maxValue);
|
m_roller->setRange(minValue, maxValue);
|
||||||
|
|
||||||
int dicimal = m_lineEdit->getDecimals();
|
int dicimal = m_lineEdit->getDecimals();
|
||||||
int sliderMax = maxValue * pow(10., dicimal);
|
int sliderMax = (int)round(maxValue * pow(10., dicimal));
|
||||||
int sliderMin = minValue * pow(10., dicimal);
|
int sliderMin = (int)round(minValue * pow(10., dicimal));
|
||||||
|
|
||||||
m_slider->setRange(sliderMin, sliderMax);
|
m_slider->setRange(sliderMin, sliderMax);
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@ void DoubleValueField::setValue(double value) {
|
||||||
m_roller->setValue(value);
|
m_roller->setValue(value);
|
||||||
|
|
||||||
int dicimal = m_lineEdit->getDecimals();
|
int dicimal = m_lineEdit->getDecimals();
|
||||||
int sliderValue = value * pow(10., dicimal);
|
int sliderValue = (int)round(value * pow(10., dicimal));
|
||||||
|
|
||||||
m_slider->setValue(sliderValue);
|
m_slider->setValue(sliderValue);
|
||||||
// forzo il repaint... non sempre si aggiorna e l'update non sembra risolvere
|
// forzo il repaint... non sempre si aggiorna e l'update non sembra risolvere
|
||||||
|
@ -239,10 +239,10 @@ void DoubleValueField::onSliderChanged(int value) {
|
||||||
void DoubleValueField::onLineEditValueChanged() {
|
void DoubleValueField::onLineEditValueChanged() {
|
||||||
double value = m_lineEdit->getValue();
|
double value = m_lineEdit->getValue();
|
||||||
int dicimal = m_lineEdit->getDecimals();
|
int dicimal = m_lineEdit->getDecimals();
|
||||||
double sliderValue = value * pow(10., dicimal);
|
int sliderValue = (int)round(value * pow(10., dicimal));
|
||||||
|
|
||||||
// Controllo necessario per evitare che il segnale di cambiamento venga emesso
|
// Control necessary to prevent the change signal from being emitted more than
|
||||||
// piu' volte.
|
// once.
|
||||||
if ((m_slider->value() == sliderValue && m_slider->isVisible()) ||
|
if ((m_slider->value() == sliderValue && m_slider->isVisible()) ||
|
||||||
(m_roller->getValue() == value && m_roller->isVisible()))
|
(m_roller->getValue() == value && m_roller->isVisible()))
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue