Browse Source

Fixed setting the slider position based on parameter values for variables that don't have a range specified.

QGC4.4
Bryant 12 years ago
parent
commit
18a7f56e44
  1. 22
      src/ui/designer/QGCParamSlider.cc

22
src/ui/designer/QGCParamSlider.cc

@ -415,51 +415,51 @@ void QGCParamSlider::setParameterValue(int uas, int component, int paramCount, i
ui->intValueSpinBox->setEnabled(true); ui->intValueSpinBox->setEnabled(true);
ui->doubleValueSpinBox->hide(); ui->doubleValueSpinBox->hide();
ui->intValueSpinBox->setValue(value.toUInt()); ui->intValueSpinBox->setValue(value.toUInt());
ui->intValueSpinBox->setMinimum(-ui->intValueSpinBox->maximum()); ui->intValueSpinBox->setRange(0, UINT8_MAX);
ui->valueSlider->setValue(floatToScaledInt(value.toUInt()));
if (parameterMax == 0 && parameterMin == 0) if (parameterMax == 0 && parameterMin == 0)
{ {
ui->editMaxSpinBox->setValue(255); ui->editMaxSpinBox->setValue(UINT8_MAX);
ui->editMinSpinBox->setValue(0); ui->editMinSpinBox->setValue(0);
} }
ui->valueSlider->setValue(floatToScaledInt(value.toUInt()));
break; break;
case QVariant::Int: case QVariant::Int:
ui->intValueSpinBox->show(); ui->intValueSpinBox->show();
ui->intValueSpinBox->setEnabled(true); ui->intValueSpinBox->setEnabled(true);
ui->doubleValueSpinBox->hide(); ui->doubleValueSpinBox->hide();
ui->intValueSpinBox->setValue(value.toInt()); ui->intValueSpinBox->setValue(value.toInt());
ui->valueSlider->setValue(floatToScaledInt(value.toInt())); ui->intValueSpinBox->setRange(INT32_MIN, INT32_MAX);
ui->intValueSpinBox->setMinimum(-ui->intValueSpinBox->maximum());
if (parameterMax == 0 && parameterMin == 0) if (parameterMax == 0 && parameterMin == 0)
{ {
ui->editMaxSpinBox->setValue(65535); ui->editMaxSpinBox->setValue(INT32_MAX);
ui->editMinSpinBox->setValue(0); ui->editMinSpinBox->setValue(INT32_MIN);
} }
ui->valueSlider->setValue(floatToScaledInt(value.toInt()));
break; break;
case QVariant::UInt: case QVariant::UInt:
ui->intValueSpinBox->show(); ui->intValueSpinBox->show();
ui->intValueSpinBox->setEnabled(true); ui->intValueSpinBox->setEnabled(true);
ui->doubleValueSpinBox->hide(); ui->doubleValueSpinBox->hide();
ui->intValueSpinBox->setValue(value.toUInt()); ui->intValueSpinBox->setValue(value.toUInt());
ui->valueSlider->setValue(floatToScaledInt(value.toUInt())); ui->intValueSpinBox->setRange(0, UINT32_MAX);
ui->intValueSpinBox->setMinimum(0);
if (parameterMax == 0 && parameterMin == 0) if (parameterMax == 0 && parameterMin == 0)
{ {
ui->editMaxSpinBox->setValue(65535); ui->editMaxSpinBox->setValue(UINT32_MAX);
ui->editMinSpinBox->setValue(0); ui->editMinSpinBox->setValue(0);
} }
ui->valueSlider->setValue(floatToScaledInt(value.toUInt()));
break; break;
case QMetaType::Float: case QMetaType::Float:
ui->doubleValueSpinBox->setValue(value.toFloat()); ui->doubleValueSpinBox->setValue(value.toFloat());
ui->doubleValueSpinBox->show(); ui->doubleValueSpinBox->show();
ui->doubleValueSpinBox->setEnabled(true); ui->doubleValueSpinBox->setEnabled(true);
ui->intValueSpinBox->hide(); ui->intValueSpinBox->hide();
ui->valueSlider->setValue(floatToScaledInt(value.toFloat()));
if (parameterMax == 0 && parameterMin == 0) if (parameterMax == 0 && parameterMin == 0)
{ {
ui->editMaxSpinBox->setValue(10000); ui->editMaxSpinBox->setValue(10000);
ui->editMinSpinBox->setValue(0); ui->editMinSpinBox->setValue(0);
} }
ui->valueSlider->setValue(floatToScaledInt(value.toFloat()));
break; break;
default: default:
qCritical() << "ERROR: NO VALID PARAM TYPE"; qCritical() << "ERROR: NO VALID PARAM TYPE";

Loading…
Cancel
Save