diff --git a/companion/src/modeledit/flightmodes.cpp b/companion/src/modeledit/flightmodes.cpp index a5cd400a0..e32afe666 100644 --- a/companion/src/modeledit/flightmodes.cpp +++ b/companion/src/modeledit/flightmodes.cpp @@ -194,18 +194,16 @@ void FlightMode::update() for (int i=0; isetText(model.gvars_names[i]); - if (phase.gvars[i] < 1024) { - gvValues[i]->setValue(phase.gvars[i]); - gvValues[i]->setDisabled(false); - } - else { - int idx = phase.gvars[i] - 1025; - if (idx >= i) idx++; - // TODO no!!!! - PhaseData *phasegvar = &model.phaseData[idx]; - gvValues[i]->setValue(phasegvar->gvars[i]); - gvValues[i]->setDisabled(true); + gvValues[i]->setDisabled(false); + int idx = phase.gvars[i]; + PhaseData *phasegvar = &phase; + while (idx >= 1024) { + idx -= 1025; + phasegvar = &model.phaseData[idx]; + idx = phasegvar->gvars[i]; + gvValues[i]->setDisabled(true); } + gvValues[i]->setValue(phasegvar->gvars[i]); } for (int i=0; i(sender()); int gvar = comboBox->property("index").toInt(); if (index == 0) { - int value = phase.gvars[gvar]; - if (value>1024) { - value=0; - } - gvValues[gvar]->setValue(value); - gvValues[gvar]->setEnabled(true); - phase.gvars[gvar]=value; + phase.gvars[gvar]=0; } else { phase.gvars[gvar] = 1024+index; - // TOTO it's wrong!!! - int value = model.phaseData[index + (index>phaseIdx ? 0 :-1)].gvars[gvar]; - gvValues[gvar]->setValue(value); - gvValues[gvar]->setDisabled(true); } + update(); emit modified(); lock = false; }