From a100af81beaabc604bce4c26dd6e989aea18ab6b Mon Sep 17 00:00:00 2001 From: bsongis Date: Wed, 22 Jul 2015 22:56:36 +0200 Subject: [PATCH] Fixes #2541 --- companion/src/modeledit/customfunctions.cpp | 33 ++++++++++++--------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/companion/src/modeledit/customfunctions.cpp b/companion/src/modeledit/customfunctions.cpp index 7d6447ade..c2b8f0430 100644 --- a/companion/src/modeledit/customfunctions.cpp +++ b/companion/src/modeledit/customfunctions.cpp @@ -379,7 +379,7 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified) } } else if (func==FuncReset) { - if (modified) cfn.param = (uint8_t)fswtchParamT[i]->currentIndex(); + if (modified) cfn.param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt(); populateFuncParamCB(fswtchParamT[i], func, cfn.param); widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM | CUSTOM_FUNCTION_ENABLE; } @@ -646,31 +646,36 @@ void CustomFunctionsPanel::populateFuncParamCB(QComboBox *b, uint function, unsi b->setCurrentIndex(value); } else if (function==FuncReset) { - qs.append( QObject::tr("Timer1")); - qs.append( QObject::tr("Timer2")); + int val = 0; + b->addItem(tr("Timer1"), val++); + b->addItem(tr("Timer2"), val++); if (IS_ARM(firmware->getBoard())) { - qs.append( QObject::tr("Timer3")); + b->addItem( QObject::tr("Timer3"), val++); } - qs.append( QObject::tr("Flight")); - qs.append( QObject::tr("Telemetry")); + b->addItem(tr("Flight"), val++); + b->addItem(tr("Telemetry"), val++); int reCount = firmware->getCapability(RotaryEncoders); if (reCount == 1) { - qs.append( QObject::tr("Rotary Encoder")); + b->addItem(tr("Rotary Encoder"), val++); } else if (reCount == 2) { - qs.append( QObject::tr("REa")); - qs.append( QObject::tr("REb")); + b->addItem(tr("REa"), val++); + b->addItem(tr("REb"), val++); } - if (IS_ARM(firmware->getBoard())) { + if ((int)value < b->count()) { + b->setCurrentIndex(value); + } + if (model && IS_ARM(firmware->getBoard())) { for (int i=0; isensorData[i].isAvailable()) { + if (model->sensorData[i].isAvailable()) { RawSource item = RawSource(SOURCE_TYPE_TELEMETRY, 3*i); - qs.append(item.toString(model)); + b->addItem(item.toString(model), val+i); + if ((int)value == val+i) { + b->setCurrentIndex(b->count()-1); + } } } } - b->addItems(qs); - b->setCurrentIndex(value); } else if (function==FuncVolume) { populateSourceCB(b, RawSource(value), generalSettings, model, POPULATE_NONE|POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_TRIMS|POPULATE_SWITCHES);