QGCParamSlider.cc 19.8 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

47 48
    //ui->editLine1->setStyleSheet("QWidget { border: 1px solid #66666B; border-radius: 3px; padding: 10px 0px 0px 0px; background: #111122; }");
    //ui->editLine2->setStyleSheet("QWidget { border: 1px solid #66666B; border-radius: 3px; padding: 10px 0px 0px 0px; background: #111122; }");
49

pixhawk's avatar
pixhawk committed
50
    connect(ui->editDoneButton, SIGNAL(clicked()), this, SLOT(endEditMode()));
51 52 53 54 55 56

    // 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)));
57 58
    connect(ui->doubleValueSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setParamValue(double)));
    connect(ui->intValueSpinBox, SIGNAL(valueChanged(int)), this, SLOT(setParamValue(int)));
59 60
    connect(ui->editNameLabel, SIGNAL(textChanged(QString)), ui->nameLabel, SLOT(setText(QString)));
    connect(ui->readButton, SIGNAL(clicked()), this, SLOT(requestParameter()));
61
    connect(ui->editRefreshParamsButton, SIGNAL(clicked()), this, SLOT(refreshParamList()));
62
    connect(ui->editInfoCheckBox, SIGNAL(clicked(bool)), this, SLOT(showInfo(bool)));
Lorenz Meier's avatar
Lorenz Meier committed
63 64
    // connect to self
    connect(ui->infoLabel, SIGNAL(released()), this, SLOT(showTooltip()));
65
    // Set the current UAS if present
66
    connect(UASManager::instance(), SIGNAL(activeUASSet(UASInterface*)), this, SLOT(setActiveUAS(UASInterface*)));
67 68 69 70 71 72 73
}

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

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

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

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

96 97
void QGCParamSlider::setActiveUAS(UASInterface* activeUas)
{
98 99 100 101 102
    if (activeUas)
    {
        if (uas)
        {
            disconnect(uas, SIGNAL(parameterChanged(int,int,int,int,QString,QVariant)), this, SLOT(setParameterValue(int,int,int,int,QString,QVariant)));
103 104 105
        }

        // Connect buttons and signals
106
        connect(activeUas, SIGNAL(parameterChanged(int,int,int,int,QString,QVariant)), this, SLOT(setParameterValue(int,int,int,int,QString,QVariant)), Qt::UniqueConnection);
107
        uas = activeUas;
108
        // Update current param value
109
        //requestParameter();
110 111
        // Set param info
        QString text = uas->getParamManager()->getParamInfo(parameterName);
112 113 114 115 116
        if (text != "")
        {
            ui->infoLabel->setToolTip(text);
            ui->infoLabel->show();
        }
117 118
        // Force-uncheck and hide label if no description is available
        if (ui->editInfoCheckBox->isChecked())
119
        {
120
            showInfo((text.length() > 0));
121
        }
122 123 124 125 126
    }
}

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

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

139 140
void QGCParamSlider::setParamValue(double value)
{
141
    parameterValue = (float)value;
142 143 144 145 146 147 148 149 150 151 152
     //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)));
153 154
}

155 156 157
void QGCParamSlider::setParamValue(int value)
{
    parameterValue = value;
158 159 160 161 162 163 164 165 166 167 168
    // 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)));
169 170
}

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

void QGCParamSlider::selectParameter(int paramIndex)
{
LM's avatar
LM committed
178
    // Set name
179
    parameterName = ui->editSelectParamComboBox->itemText(paramIndex);
LM's avatar
LM committed
180 181 182 183 184 185 186

    // Update min and max values if available
    if (uas)
    {
        if (uas->getParamManager())
        {
            // Current value
187
            //uas->getParamManager()->requestParameterUpdate(component, parameterName);
LM's avatar
LM committed
188 189 190 191 192 193 194 195 196 197 198 199 200 201

            // Minimum
            if (uas->getParamManager()->isParamMinKnown(parameterName))
            {
                parameterMin = uas->getParamManager()->getParamMin(parameterName);
                ui->editMinSpinBox->setValue(parameterMin);
            }

            // Maximum
            if (uas->getParamManager()->isParamMaxKnown(parameterName))
            {
                parameterMax = uas->getParamManager()->getParamMax(parameterName);
                ui->editMaxSpinBox->setValue(parameterMax);
            }
202 203

            // Description
204 205 206 207
            //QString text = uas->getParamManager()->getParamInfo(parameterName);
            //ui->infoLabel->setText(text);

            //showInfo(!(text.length() > 0));
LM's avatar
LM committed
208 209
        }
    }
210 211
}

212 213
void QGCParamSlider::startEditMode()
{
214
    ui->valueSlider->hide();
215 216
    ui->doubleValueSpinBox->hide();
    ui->intValueSpinBox->hide();
217 218 219 220
    ui->nameLabel->hide();
    ui->writeButton->hide();
    ui->readButton->hide();

221
    ui->editInfoCheckBox->show();
pixhawk's avatar
pixhawk committed
222
    ui->editDoneButton->show();
223
    ui->editNameLabel->show();
pixhawk's avatar
pixhawk committed
224 225 226 227 228 229
    ui->editRefreshParamsButton->show();
    ui->editSelectParamComboBox->show();
    ui->editSelectComponentComboBox->show();
    ui->editStatusLabel->show();
    ui->editMinSpinBox->show();
    ui->editMaxSpinBox->show();
230 231
    ui->writeButton->hide();
    ui->readButton->hide();
232 233
    ui->editLine1->show();
    ui->editLine2->show();
234 235 236 237 238
    isInEditMode = true;
}

void QGCParamSlider::endEditMode()
{
239 240 241 242 243 244 245 246 247 248
    // 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();

249
    ui->editInfoCheckBox->hide();
pixhawk's avatar
pixhawk committed
250
    ui->editDoneButton->hide();
251
    ui->editNameLabel->hide();
pixhawk's avatar
pixhawk committed
252 253 254 255 256 257
    ui->editRefreshParamsButton->hide();
    ui->editSelectParamComboBox->hide();
    ui->editSelectComponentComboBox->hide();
    ui->editStatusLabel->hide();
    ui->editMinSpinBox->hide();
    ui->editMaxSpinBox->hide();
258 259
    ui->editLine1->hide();
    ui->editLine2->hide();
260 261
    ui->writeButton->show();
    ui->readButton->show();
262
    ui->valueSlider->show();
263 264
    switch (parameterValue.type())
    {
265
    case QVariant::Char:
266 267 268 269 270 271 272 273 274 275 276
    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;
    }
277
    ui->nameLabel->show();
278
    isInEditMode = false;
lm's avatar
lm committed
279
    emit editingFinished();
280 281
}

282 283
void QGCParamSlider::sendParameter()
{
284 285
    if (uas)
    {
286
        // Set value, param manager handles retransmission
287 288 289 290 291 292 293 294 295 296 297
        if (uas->getParamManager())
        {
            uas->getParamManager()->setParameter(component, parameterName, parameterValue);
        }
        else
        {
            qDebug() << "UAS HAS NO PARAM MANAGER, DOING NOTHING";
        }
    }
    else
    {
298 299 300 301
        qDebug() << __FILE__ << __LINE__ << "NO UAS SET, DOING NOTHING";
    }
}

pixhawk's avatar
pixhawk committed
302 303
void QGCParamSlider::setSliderValue(int sliderValue)
{
304
    if (!valueModLock && !valueModLockParam)
305
    {
306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333
        valueModLock = true;
        switch (parameterValue.type())
        {
        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;
334
    }
pixhawk's avatar
pixhawk committed
335 336
}

337 338 339 340 341 342
/**
 * @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
 */
343
void QGCParamSlider::setParameterValue(int uas, int component, int paramCount, int paramIndex, QString parameterName, QVariant value)
pixhawk's avatar
pixhawk committed
344
{
345
    Q_UNUSED(paramCount);
346 347 348 349
    if (ui->nameLabel->text() == "Name")
    {
        ui->nameLabel->setText(parameterName);
    }
350 351
    // Check if this component and parameter are part of the list
    bool found = false;
352 353 354 355
    for (int i = 0; i< ui->editSelectComponentComboBox->count(); ++i)
    {
        if (component == ui->editSelectComponentComboBox->itemData(i).toInt())
        {
356 357 358 359
            found = true;
        }
    }

360 361
    if (!found)
    {
362 363 364 365 366
        ui->editSelectComponentComboBox->addItem(tr("Component #%1").arg(component), component);
    }

    // Parameter checking
    found = false;
367 368 369 370
    for (int i = 0; i < ui->editSelectParamComboBox->count(); ++i)
    {
        if (parameterName == ui->editSelectParamComboBox->itemText(i))
        {
371 372 373 374
            found = true;
        }
    }

375 376
    if (!found)
    {
377 378 379
        ui->editSelectParamComboBox->addItem(parameterName, paramIndex);
    }

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

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

480 481 482 483 484 485 486 487 488 489 490
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
491

pixhawk's avatar
pixhawk committed
492
float QGCParamSlider::scaledIntToFloat(int sliderValue)
lm's avatar
lm committed
493
{
494
    float result = (((double)sliderValue)/(double)scaledInt)*(ui->editMaxSpinBox->value() - ui->editMinSpinBox->value());
495
    //qDebug() << "INT TO FLOAT: CONVERTED" << sliderValue << "TO" << result;
496
    return result;
pixhawk's avatar
pixhawk committed
497
}
lm's avatar
lm committed
498

pixhawk's avatar
pixhawk committed
499 500
int QGCParamSlider::floatToScaledInt(float value)
{
501
    int result = ((value - ui->editMinSpinBox->value())/(ui->editMaxSpinBox->value() - ui->editMinSpinBox->value()))*scaledInt;
502
    //qDebug() << "FLOAT TO INT: CONVERTED" << value << "TO" << result << "SCALEDINT" << scaledInt;
503
    return result;
lm's avatar
lm committed
504 505
}

pixhawk's avatar
pixhawk committed
506
void QGCParamSlider::writeSettings(QSettings& settings)
lm's avatar
lm committed
507
{
pixhawk's avatar
pixhawk committed
508 509 510
    settings.setValue("TYPE", "SLIDER");
    settings.setValue("QGC_PARAM_SLIDER_DESCRIPTION", ui->nameLabel->text());
    //settings.setValue("QGC_PARAM_SLIDER_BUTTONTEXT", ui->actionButton->text());
511 512
    settings.setValue("QGC_PARAM_SLIDER_PARAMID", parameterName);
    settings.setValue("QGC_PARAM_SLIDER_COMPONENTID", component);
pixhawk's avatar
pixhawk committed
513 514
    settings.setValue("QGC_PARAM_SLIDER_MIN", ui->editMinSpinBox->value());
    settings.setValue("QGC_PARAM_SLIDER_MAX", ui->editMaxSpinBox->value());
515
    settings.setValue("QGC_PARAM_SLIDER_DISPLAY_INFO", ui->editInfoCheckBox->isChecked());
pixhawk's avatar
pixhawk committed
516
    settings.sync();
lm's avatar
lm committed
517
}
518 519 520 521 522 523 524 525 526 527 528 529
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());
530 531
    visibleParam = settings.value(pre+"QGC_PARAM_SLIDER_VISIBLE_PARAM","").toString();
    visibleVal = settings.value(pre+"QGC_PARAM_SLIDER_VISIBLE_VAL",0).toInt();
532 533 534 535
    parameterMax = ui->editMaxSpinBox->value();
    parameterMin = ui->editMinSpinBox->value();
    //ui->valueSlider->setMaximum(parameterMax);
    //ui->valueSlider->setMinimum(parameterMin);
536 537 538 539 540 541 542 543 544
    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
545 546 547

void QGCParamSlider::readSettings(const QSettings& settings)
{
548 549 550 551 552 553 554 555
    QVariantMap map;
    foreach (QString key,settings.allKeys())
    {
        map[key] = settings.value(key);
    }

    readSettings("",map);
    return;
556 557
    parameterName = settings.value("QGC_PARAM_SLIDER_PARAMID").toString();
    component = settings.value("QGC_PARAM_SLIDER_COMPONENTID").toInt();
pixhawk's avatar
pixhawk committed
558
    ui->nameLabel->setText(settings.value("QGC_PARAM_SLIDER_DESCRIPTION").toString());
559
    ui->editNameLabel->setText(settings.value("QGC_PARAM_SLIDER_DESCRIPTION").toString());
pixhawk's avatar
pixhawk committed
560
    //settings.setValue("QGC_PARAM_SLIDER_BUTTONTEXT", ui->actionButton->text());
561 562
    ui->editSelectParamComboBox->addItem(settings.value("QGC_PARAM_SLIDER_PARAMID").toString());
    ui->editSelectParamComboBox->setCurrentIndex(ui->editSelectParamComboBox->count()-1);
563
    ui->editSelectComponentComboBox->addItem(tr("Component #%1").arg(settings.value("QGC_PARAM_SLIDER_COMPONENTID").toInt()), settings.value("QGC_PARAM_SLIDER_COMPONENTID").toInt());
564 565
    ui->editMinSpinBox->setValue(settings.value("QGC_PARAM_SLIDER_MIN").toFloat());
    ui->editMaxSpinBox->setValue(settings.value("QGC_PARAM_SLIDER_MAX").toFloat());
566 567 568
    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();
569 570
    parameterMax = ui->editMaxSpinBox->value();
    parameterMin = ui->editMinSpinBox->value();
571
    showInfo(settings.value("QGC_PARAM_SLIDER_DISPLAY_INFO", true).toBool());
572 573
    ui->editSelectParamComboBox->setEnabled(true);
    ui->editSelectComponentComboBox->setEnabled(true);
574 575 576 577

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

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