QGCParamSlider.cc 19.3 KB
Newer Older
1 2
#include <QMenu>
#include <QContextMenuEvent>
3
#include <QSettings>
4
#include <QTimer>
Lorenz Meier's avatar
Lorenz Meier committed
5
#include <QToolTip>
6

7 8
#include "QGCParamSlider.h"
#include "ui_QGCParamSlider.h"
9
#include "UASInterface.h"
10
#include "UASManager.h"
11

12

13
QGCParamSlider::QGCParamSlider(QWidget *parent) :
14 15 16 17 18 19 20
    QGCToolWidgetItem("Slider", parent),
    parameterName(""),
    parameterValue(0.0f),
    parameterScalingFactor(0.0),
    parameterMin(0.0f),
    parameterMax(0.0f),
    component(0),
21 22
    ui(new Ui::QGCParamSlider)
{
23
    valueModLock = false;
24
    visibleEnabled = true;
25
    valueModLockParam = false;
26
    ui->setupUi(this);
27
    ui->intValueSpinBox->hide();
28 29
    ui->valueSlider->setEnabled(false);
    ui->doubleValueSpinBox->setEnabled(false);
30
    uas = NULL;
pixhawk's avatar
pixhawk committed
31 32 33

    scaledInt = ui->valueSlider->maximum() - ui->valueSlider->minimum();

34
    ui->editInfoCheckBox->hide();
35 36 37 38 39 40 41 42
    ui->editDoneButton->hide();
    ui->editNameLabel->hide();
    ui->editRefreshParamsButton->hide();
    ui->editSelectParamComboBox->hide();
    ui->editSelectComponentComboBox->hide();
    ui->editStatusLabel->hide();
    ui->editMinSpinBox->hide();
    ui->editMaxSpinBox->hide();
43 44
    ui->editLine1->hide();
    ui->editLine2->hide();
45
    ui->infoLabel->hide();
46

pixhawk's avatar
pixhawk committed
47
    connect(ui->editDoneButton, SIGNAL(clicked()), this, SLOT(endEditMode()));
48 49 50 51 52 53

    // Sending actions
    connect(ui->writeButton, SIGNAL(clicked()), this, SLOT(sendParameter()));
    connect(ui->editSelectComponentComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(selectComponent(int)));
    connect(ui->editSelectParamComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(selectParameter(int)));
    connect(ui->valueSlider, SIGNAL(valueChanged(int)), this, SLOT(setSliderValue(int)));
54 55
    connect(ui->doubleValueSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setParamValue(double)));
    connect(ui->intValueSpinBox, SIGNAL(valueChanged(int)), this, SLOT(setParamValue(int)));
56 57
    connect(ui->editNameLabel, SIGNAL(textChanged(QString)), ui->nameLabel, SLOT(setText(QString)));
    connect(ui->readButton, SIGNAL(clicked()), this, SLOT(requestParameter()));
58
    connect(ui->editRefreshParamsButton, SIGNAL(clicked()), this, SLOT(refreshParamList()));
59
    connect(ui->editInfoCheckBox, SIGNAL(clicked(bool)), this, SLOT(showInfo(bool)));
Lorenz Meier's avatar
Lorenz Meier committed
60 61
    // connect to self
    connect(ui->infoLabel, SIGNAL(released()), this, SLOT(showTooltip()));
62
    // Set the current UAS if present
63
    connect(UASManager::instance(), SIGNAL(activeUASSet(UASInterface*)), this, SLOT(setActiveUAS(UASInterface*)));
64 65 66 67 68 69 70
}

QGCParamSlider::~QGCParamSlider()
{
    delete ui;
}

Lorenz Meier's avatar
Lorenz Meier committed
71 72 73 74 75 76
void QGCParamSlider::showTooltip()
{
    QWidget* sender = dynamic_cast<QWidget*>(QObject::sender());

    if (sender)
    {
77
        QPoint point = mapToGlobal(ui->infoLabel->pos());
Lorenz Meier's avatar
Lorenz Meier committed
78 79 80 81
        QToolTip::showText(point, sender->toolTip());
    }
}

82 83 84 85
void QGCParamSlider::refreshParamList()
{
    ui->editSelectParamComboBox->setEnabled(true);
    ui->editSelectComponentComboBox->setEnabled(true);
86 87
    if (uas)
    {
88
        uas->getParamManager()->requestParameterList();
Lorenz Meier's avatar
Lorenz Meier committed
89
        ui->editStatusLabel->setText(tr("Parameter list updating.."));
90 91 92
    }
}

93 94
void QGCParamSlider::setActiveUAS(UASInterface* activeUas)
{
95

96 97 98 99
    if (uas != activeUas)  {
        if (uas) {
            disconnect(uas, SIGNAL(parameterChanged(int,int,int,int,QString,QVariant)),
                       this, SLOT(setParameterValue(int,int,int,int,QString,QVariant)));
100
        }
101 102 103
        if (activeUas) {
            connect(activeUas, SIGNAL(parameterChanged(int,int,int,int,QString,QVariant)),
                    this, SLOT(setParameterValue(int,int,int,int,QString,QVariant)), Qt::UniqueConnection);
104
        }
105
        uas = activeUas;
106
    }
107 108 109 110 111 112 113 114 115 116 117 118 119 120

    if (uas && !parameterName.isEmpty()) {
        QString text = uas->getParamDataModel()->getParamDescription(parameterName);
        if (!text.isEmpty()) {
            ui->infoLabel->setToolTip(text);
            ui->infoLabel->show();
        }
        // Force-uncheck and hide label if no description is available
        if (ui->editInfoCheckBox->isChecked()) {
            showInfo((text.length() > 0));
        }
    }


121 122 123 124
}

void QGCParamSlider::requestParameter()
{
125 126
    if (!parameterName.isEmpty() && uas)
    {
127
        uas->getParamManager()->requestParameterUpdate(this->component, this->parameterName);
128 129 130
    }
}

131 132 133 134 135 136
void QGCParamSlider::showInfo(bool enable)
{
    ui->editInfoCheckBox->setChecked(enable);
    ui->infoLabel->setVisible(enable);
}

137 138
void QGCParamSlider::setParamValue(double value)
{
139
    parameterValue = (float)value;
140 141 142 143 144 145 146 147 148 149 150
     //disconnect(ui->valueSlider,SIGNAL(valueChanged(int)));
    if (!valueModLock && !valueModLockParam)
    {
        valueModLock = true;
        ui->valueSlider->setValue(floatToScaledInt(value));
    }
    else
    {
        valueModLock = false;
    }
    //connect(ui->valueSlider, SIGNAL(valueChanged(int)), this, SLOT(setSliderValue(int)));
151 152
}

153 154 155
void QGCParamSlider::setParamValue(int value)
{
    parameterValue = value;
156 157 158 159 160 161 162 163 164 165 166
    // disconnect(ui->valueSlider,SIGNAL(valueChanged(int)));
    if (!valueModLock && !valueModLockParam)
    {
        valueModLock = true;
        ui->valueSlider->setValue(floatToScaledInt(value));
    }
    else
    {
        valueModLock = false;
    }
    //connect(ui->valueSlider, SIGNAL(valueChanged(int)), this, SLOT(setSliderValue(int)));
167 168
}

169 170 171 172 173 174 175
void QGCParamSlider::selectComponent(int componentIndex)
{
    this->component = ui->editSelectComponentComboBox->itemData(componentIndex).toInt();
}

void QGCParamSlider::selectParameter(int paramIndex)
{
LM's avatar
LM committed
176
    // Set name
177
    parameterName = ui->editSelectParamComboBox->itemText(paramIndex);
tstellanova's avatar
tstellanova committed
178 179 180
    if (parameterName.isEmpty()) {
        return;
    }
LM's avatar
LM committed
181 182

    // Update min and max values if available
183 184 185
    if (uas) {
        UASParameterDataModel* dataModel =  uas->getParamDataModel();
        if (dataModel) {
LM's avatar
LM committed
186
            // Minimum
187 188
            if (dataModel->isParamMinKnown(parameterName)) {
                parameterMin = dataModel->getParamMin(parameterName);
LM's avatar
LM committed
189 190 191 192
                ui->editMinSpinBox->setValue(parameterMin);
            }

            // Maximum
193 194
            if (dataModel->isParamMaxKnown(parameterName)) {
                parameterMax = dataModel->getParamMax(parameterName);
LM's avatar
LM committed
195 196 197 198
                ui->editMaxSpinBox->setValue(parameterMax);
            }
        }
    }
199 200
}

201 202
void QGCParamSlider::startEditMode()
{
203
    ui->valueSlider->hide();
204 205
    ui->doubleValueSpinBox->hide();
    ui->intValueSpinBox->hide();
206 207 208 209
    ui->nameLabel->hide();
    ui->writeButton->hide();
    ui->readButton->hide();

210
    ui->editInfoCheckBox->show();
pixhawk's avatar
pixhawk committed
211
    ui->editDoneButton->show();
212
    ui->editNameLabel->show();
pixhawk's avatar
pixhawk committed
213 214 215 216 217 218
    ui->editRefreshParamsButton->show();
    ui->editSelectParamComboBox->show();
    ui->editSelectComponentComboBox->show();
    ui->editStatusLabel->show();
    ui->editMinSpinBox->show();
    ui->editMaxSpinBox->show();
219 220
    ui->writeButton->hide();
    ui->readButton->hide();
221 222
    ui->editLine1->show();
    ui->editLine2->show();
223 224 225 226 227
    isInEditMode = true;
}

void QGCParamSlider::endEditMode()
{
228 229 230 231 232 233 234 235 236 237
    // Store component id
    selectComponent(ui->editSelectComponentComboBox->currentIndex());

    // Store parameter name and id
    selectParameter(ui->editSelectParamComboBox->currentIndex());

    // Min/max
    parameterMin = ui->editMinSpinBox->value();
    parameterMax = ui->editMaxSpinBox->value();

238
    ui->editInfoCheckBox->hide();
pixhawk's avatar
pixhawk committed
239
    ui->editDoneButton->hide();
240
    ui->editNameLabel->hide();
pixhawk's avatar
pixhawk committed
241 242 243 244 245 246
    ui->editRefreshParamsButton->hide();
    ui->editSelectParamComboBox->hide();
    ui->editSelectComponentComboBox->hide();
    ui->editStatusLabel->hide();
    ui->editMinSpinBox->hide();
    ui->editMaxSpinBox->hide();
247 248
    ui->editLine1->hide();
    ui->editLine2->hide();
249 250
    ui->writeButton->show();
    ui->readButton->show();
251
    ui->valueSlider->show();
252
    switch ((int)parameterValue.type())
253
    {
254
    case QVariant::Char:
255 256 257 258 259 260 261 262 263 264 265
    case QVariant::Int:
    case QVariant::UInt:
        ui->intValueSpinBox->show();
        break;
    case QMetaType::Float:
        ui->doubleValueSpinBox->show();
        break;
    default:
        qCritical() << "ERROR: NO VALID PARAM TYPE";
        return;
    }
266
    ui->nameLabel->show();
267
    isInEditMode = false;
lm's avatar
lm committed
268
    emit editingFinished();
269 270
}

271 272
void QGCParamSlider::sendParameter()
{
273 274
    if (uas)
    {
275
        // Set value, param manager handles retransmission
276 277 278 279 280 281 282 283 284 285 286
        if (uas->getParamManager())
        {
            uas->getParamManager()->setParameter(component, parameterName, parameterValue);
        }
        else
        {
            qDebug() << "UAS HAS NO PARAM MANAGER, DOING NOTHING";
        }
    }
    else
    {
287 288 289 290
        qDebug() << __FILE__ << __LINE__ << "NO UAS SET, DOING NOTHING";
    }
}

pixhawk's avatar
pixhawk committed
291 292
void QGCParamSlider::setSliderValue(int sliderValue)
{
293
    if (!valueModLock && !valueModLockParam)
294
    {
295
        valueModLock = true;
296
        switch ((int)parameterValue.type())
297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322
        {
        case QVariant::Char:
            parameterValue = QVariant(QChar((unsigned char)scaledIntToFloat(sliderValue)));
            ui->intValueSpinBox->setValue(parameterValue.toInt());
            break;
        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:
            qCritical() << "ERROR: NO VALID PARAM TYPE";
            valueModLock = false;
            return;
        }
    }
    else
    {
        valueModLock = false;
323
    }
pixhawk's avatar
pixhawk committed
324 325
}

326 327 328 329 330 331
/**
 * @brief uas Unmanned system sending the parameter
 * @brief component UAS component sending the parameter
 * @brief parameterName Key/name of the parameter
 * @brief value Value of the parameter
 */
332
void QGCParamSlider::setParameterValue(int uas, int component, int paramCount, int paramIndex, QString parameterName, QVariant value)
pixhawk's avatar
pixhawk committed
333
{
334
    Q_UNUSED(paramCount);
335 336 337 338
    if (ui->nameLabel->text() == "Name")
    {
        ui->nameLabel->setText(parameterName);
    }
339 340
    // Check if this component and parameter are part of the list
    bool found = false;
341 342 343 344
    for (int i = 0; i< ui->editSelectComponentComboBox->count(); ++i)
    {
        if (component == ui->editSelectComponentComboBox->itemData(i).toInt())
        {
345 346 347 348
            found = true;
        }
    }

349 350
    if (!found)
    {
351 352 353 354 355
        ui->editSelectComponentComboBox->addItem(tr("Component #%1").arg(component), component);
    }

    // Parameter checking
    found = false;
356 357 358 359
    for (int i = 0; i < ui->editSelectParamComboBox->count(); ++i)
    {
        if (parameterName == ui->editSelectParamComboBox->itemText(i))
        {
360 361 362 363
            found = true;
        }
    }

364 365
    if (!found)
    {
366 367 368
        ui->editSelectParamComboBox->addItem(parameterName, paramIndex);
    }

369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389
    if (visibleParam != "")
    {
        if (parameterName == visibleParam)
        {
            if (visibleVal == value.toInt())
            {
                this->uas->requestParameter(this->component,this->parameterName);
                visibleEnabled = true;
                this->show();
            }
            else
            {
                //Disable the component here.
                ui->valueSlider->setEnabled(false);
                ui->intValueSpinBox->setEnabled(false);
                ui->doubleValueSpinBox->setEnabled(false);
                visibleEnabled = false;
                this->hide();
            }
        }
    }
390
    Q_UNUSED(uas);
391 392
    if (component == this->component && parameterName == this->parameterName)
    {
393 394 395 396
        if (!visibleEnabled)
        {
            return;
        }
397
        parameterValue = value;
398
        ui->valueSlider->setEnabled(true);
399
        valueModLockParam = true;
400
        switch ((int)value.type())
401
        {
402 403 404 405 406
        case QVariant::Char:
            ui->intValueSpinBox->show();
            ui->intValueSpinBox->setEnabled(true);
            ui->doubleValueSpinBox->hide();
            ui->intValueSpinBox->setValue(value.toUInt());
407
            ui->intValueSpinBox->setRange(0, UINT8_MAX);
408 409
            if (parameterMax == 0 && parameterMin == 0)
            {
410
                ui->editMaxSpinBox->setValue(UINT8_MAX);
411 412
                ui->editMinSpinBox->setValue(0);
            }
413
            ui->valueSlider->setValue(floatToScaledInt(value.toUInt()));
414
            break;
415 416
        case QVariant::Int:
            ui->intValueSpinBox->show();
417
            ui->intValueSpinBox->setEnabled(true);
418
            ui->doubleValueSpinBox->hide();
419
            ui->intValueSpinBox->setValue(value.toInt());
420
            ui->intValueSpinBox->setRange(INT32_MIN, INT32_MAX);
421 422
            if (parameterMax == 0 && parameterMin == 0)
            {
423 424
                ui->editMaxSpinBox->setValue(INT32_MAX);
                ui->editMinSpinBox->setValue(INT32_MIN);
425
            }
426
            ui->valueSlider->setValue(floatToScaledInt(value.toInt()));
427 428 429
            break;
        case QVariant::UInt:
            ui->intValueSpinBox->show();
430
            ui->intValueSpinBox->setEnabled(true);
431
            ui->doubleValueSpinBox->hide();
432
            ui->intValueSpinBox->setValue(value.toUInt());
433
            ui->intValueSpinBox->setRange(0, UINT32_MAX);
434 435
            if (parameterMax == 0 && parameterMin == 0)
            {
436
                ui->editMaxSpinBox->setValue(UINT32_MAX);
437 438
                ui->editMinSpinBox->setValue(0);
            }
439
            ui->valueSlider->setValue(floatToScaledInt(value.toUInt()));
440 441
            break;
        case QMetaType::Float:
442
            ui->doubleValueSpinBox->setValue(value.toFloat());
443
            ui->doubleValueSpinBox->show();
444
            ui->doubleValueSpinBox->setEnabled(true);
445
            ui->intValueSpinBox->hide();
446 447 448 449 450
            if (parameterMax == 0 && parameterMin == 0)
            {
                ui->editMaxSpinBox->setValue(10000);
                ui->editMinSpinBox->setValue(0);
            }
451
            ui->valueSlider->setValue(floatToScaledInt(value.toFloat()));
452 453 454
            break;
        default:
            qCritical() << "ERROR: NO VALID PARAM TYPE";
455
            valueModLockParam = false;
456 457
            return;
        }
458 459 460
        valueModLockParam = false;
        parameterMax = ui->editMaxSpinBox->value();
        parameterMin = ui->editMinSpinBox->value();
461
    }
Lorenz Meier's avatar
Lorenz Meier committed
462 463 464 465 466

    if (paramIndex == paramCount - 1)
    {
        ui->editStatusLabel->setText(tr("Complete parameter list received."));
    }
pixhawk's avatar
pixhawk committed
467 468
}

469 470 471 472 473 474 475 476 477 478 479
void QGCParamSlider::changeEvent(QEvent *e)
{
    QWidget::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}
lm's avatar
lm committed
480

pixhawk's avatar
pixhawk committed
481
float QGCParamSlider::scaledIntToFloat(int sliderValue)
lm's avatar
lm committed
482
{
483
    float result = (((double)sliderValue)/(double)scaledInt)*(ui->editMaxSpinBox->value() - ui->editMinSpinBox->value());
484
    //qDebug() << "INT TO FLOAT: CONVERTED" << sliderValue << "TO" << result;
485
    return result;
pixhawk's avatar
pixhawk committed
486
}
lm's avatar
lm committed
487

pixhawk's avatar
pixhawk committed
488 489
int QGCParamSlider::floatToScaledInt(float value)
{
490
    int result = ((value - ui->editMinSpinBox->value())/(ui->editMaxSpinBox->value() - ui->editMinSpinBox->value()))*scaledInt;
491
    //qDebug() << "FLOAT TO INT: CONVERTED" << value << "TO" << result << "SCALEDINT" << scaledInt;
492
    return result;
lm's avatar
lm committed
493 494
}

pixhawk's avatar
pixhawk committed
495
void QGCParamSlider::writeSettings(QSettings& settings)
lm's avatar
lm committed
496
{
pixhawk's avatar
pixhawk committed
497 498 499
    settings.setValue("TYPE", "SLIDER");
    settings.setValue("QGC_PARAM_SLIDER_DESCRIPTION", ui->nameLabel->text());
    //settings.setValue("QGC_PARAM_SLIDER_BUTTONTEXT", ui->actionButton->text());
500 501
    settings.setValue("QGC_PARAM_SLIDER_PARAMID", parameterName);
    settings.setValue("QGC_PARAM_SLIDER_COMPONENTID", component);
pixhawk's avatar
pixhawk committed
502 503
    settings.setValue("QGC_PARAM_SLIDER_MIN", ui->editMinSpinBox->value());
    settings.setValue("QGC_PARAM_SLIDER_MAX", ui->editMaxSpinBox->value());
504
    settings.setValue("QGC_PARAM_SLIDER_DISPLAY_INFO", ui->editInfoCheckBox->isChecked());
pixhawk's avatar
pixhawk committed
505
    settings.sync();
lm's avatar
lm committed
506
}
507 508 509 510 511 512 513 514 515 516 517 518
void QGCParamSlider::readSettings(const QString& pre,const QVariantMap& settings)
{
    parameterName = settings.value(pre + "QGC_PARAM_SLIDER_PARAMID").toString();
    component = settings.value(pre + "QGC_PARAM_SLIDER_COMPONENTID").toInt();
    ui->nameLabel->setText(settings.value(pre + "QGC_PARAM_SLIDER_DESCRIPTION").toString());
    ui->editNameLabel->setText(settings.value(pre + "QGC_PARAM_SLIDER_DESCRIPTION").toString());
    //settings.setValue("QGC_PARAM_SLIDER_BUTTONTEXT", ui->actionButton->text());
    ui->editSelectParamComboBox->addItem(settings.value(pre + "QGC_PARAM_SLIDER_PARAMID").toString());
    ui->editSelectParamComboBox->setCurrentIndex(ui->editSelectParamComboBox->count()-1);
    ui->editSelectComponentComboBox->addItem(tr("Component #%1").arg(settings.value(pre + "QGC_PARAM_SLIDER_COMPONENTID").toInt()), settings.value(pre + "QGC_PARAM_SLIDER_COMPONENTID").toInt());
    ui->editMinSpinBox->setValue(settings.value(pre + "QGC_PARAM_SLIDER_MIN").toFloat());
    ui->editMaxSpinBox->setValue(settings.value(pre + "QGC_PARAM_SLIDER_MAX").toFloat());
519 520
    visibleParam = settings.value(pre+"QGC_PARAM_SLIDER_VISIBLE_PARAM","").toString();
    visibleVal = settings.value(pre+"QGC_PARAM_SLIDER_VISIBLE_VAL",0).toInt();
521 522 523 524
    parameterMax = ui->editMaxSpinBox->value();
    parameterMin = ui->editMinSpinBox->value();
    //ui->valueSlider->setMaximum(parameterMax);
    //ui->valueSlider->setMinimum(parameterMin);
525 526 527 528 529 530 531 532 533
    showInfo(settings.value(pre + "QGC_PARAM_SLIDER_DISPLAY_INFO", true).toBool());
    ui->editSelectParamComboBox->setEnabled(true);
    ui->editSelectComponentComboBox->setEnabled(true);

    setActiveUAS(UASManager::instance()->getActiveUAS());

    // Get param value after settings have been loaded
    //requestParameter();
}
lm's avatar
lm committed
534 535 536

void QGCParamSlider::readSettings(const QSettings& settings)
{
537 538 539 540 541 542 543 544
    QVariantMap map;
    foreach (QString key,settings.allKeys())
    {
        map[key] = settings.value(key);
    }

    readSettings("",map);
    return;
545 546
    parameterName = settings.value("QGC_PARAM_SLIDER_PARAMID").toString();
    component = settings.value("QGC_PARAM_SLIDER_COMPONENTID").toInt();
pixhawk's avatar
pixhawk committed
547
    ui->nameLabel->setText(settings.value("QGC_PARAM_SLIDER_DESCRIPTION").toString());
548
    ui->editNameLabel->setText(settings.value("QGC_PARAM_SLIDER_DESCRIPTION").toString());
pixhawk's avatar
pixhawk committed
549
    //settings.setValue("QGC_PARAM_SLIDER_BUTTONTEXT", ui->actionButton->text());
550 551
    ui->editSelectParamComboBox->addItem(settings.value("QGC_PARAM_SLIDER_PARAMID").toString());
    ui->editSelectParamComboBox->setCurrentIndex(ui->editSelectParamComboBox->count()-1);
552
    ui->editSelectComponentComboBox->addItem(tr("Component #%1").arg(settings.value("QGC_PARAM_SLIDER_COMPONENTID").toInt()), settings.value("QGC_PARAM_SLIDER_COMPONENTID").toInt());
553 554
    ui->editMinSpinBox->setValue(settings.value("QGC_PARAM_SLIDER_MIN").toFloat());
    ui->editMaxSpinBox->setValue(settings.value("QGC_PARAM_SLIDER_MAX").toFloat());
555 556 557
    visibleParam = settings.value("QGC_PARAM_SLIDER_VISIBLE_PARAM","").toString();
             //QGC_TOOL_WIDGET_ITEMS\1\QGC_PARAM_SLIDER_VISIBLE_PARAM=RC5_FUNCTION
    visibleVal = settings.value("QGC_PARAM_SLIDER_VISIBLE_VAL",0).toInt();
558 559
    parameterMax = ui->editMaxSpinBox->value();
    parameterMin = ui->editMinSpinBox->value();
560
    showInfo(settings.value("QGC_PARAM_SLIDER_DISPLAY_INFO", true).toBool());
561 562
    ui->editSelectParamComboBox->setEnabled(true);
    ui->editSelectComponentComboBox->setEnabled(true);
563 564 565 566

    setActiveUAS(UASManager::instance()->getActiveUAS());

    // Get param value after settings have been loaded
567
    //requestParameter();
lm's avatar
lm committed
568
}