Commit 7c239e80 authored by lm's avatar lm
Browse files

Improved parameter slider, reads now correctly initial value

parent 6b29bc4a
......@@ -922,7 +922,7 @@ void QGCParamWidget::retransmissionGuardTick()
*/
void QGCParamWidget::requestParameterUpdate(int component, const QString& parameter)
{
// FIXME - IMPLEMENT THIS!
if (mav) mav->requestParameter(component, parameter);
}
......
......@@ -56,8 +56,8 @@ QGCParamSlider::QGCParamSlider(QWidget *parent) :
connect(UASManager::instance(), SIGNAL(activeUASSet(UASInterface*)), this, SLOT(setActiveUAS(UASInterface*)));
setActiveUAS(UASManager::instance()->getActiveUAS());
// Get param value
QTimer::singleShot(100, this, SLOT(requestParameter()));
// Get param value after settings have been loaded
QTimer::singleShot(300, this, SLOT(requestParameter()));
}
QGCParamSlider::~QGCParamSlider()
......@@ -88,21 +88,28 @@ void QGCParamSlider::setActiveUAS(UASInterface* activeUas)
connect(activeUas, SIGNAL(parameterChanged(int,int,int,int,QString,QVariant)), this, SLOT(setParameterValue(int,int,int,int,QString,QVariant)), Qt::UniqueConnection);
uas = activeUas;
// Update current param value
if (parameterName == "")
{
refreshParamList();
}
else
{
requestParameter();
}
}
}
void QGCParamSlider::requestParameter()
{
if (!parameterName.isEmpty() && uas)
{
uas->requestParameter(this->component, this->parameterName);
uas->getParamManager()->requestParameterUpdate(this->component, this->parameterName);
}
}
void QGCParamSlider::setParamValue(double value)
{
parameterValue = value;
parameterValue = (float)value;
ui->valueSlider->setValue(floatToScaledInt(value));
}
......@@ -238,16 +245,18 @@ void QGCParamSlider::sendParameter()
void QGCParamSlider::setSliderValue(int sliderValue)
{
parameterValue = scaledIntToFloat(sliderValue);
switch (parameterValue.type())
{
case QVariant::Int:
parameterValue = (int)scaledIntToFloat(sliderValue);
ui->intValueSpinBox->setValue(parameterValue.toInt());
break;
case QVariant::UInt:
parameterValue = (unsigned int)scaledIntToFloat(sliderValue);
ui->intValueSpinBox->setValue(parameterValue.toUInt());
break;
case QMetaType::Float:
parameterValue = scaledIntToFloat(sliderValue);
ui->doubleValueSpinBox->setValue(parameterValue.toFloat());
break;
default:
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment