1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-17 13:25:20 +03:00

Re #1783: Companion shows too many curve types in input/mixer for 9x

This commit is contained in:
Damjan Adamic 2014-11-03 21:14:52 +01:00 committed by bsongis
parent fdeb15253d
commit 1c053a7d0b
6 changed files with 21 additions and 10 deletions

View file

@ -1177,6 +1177,8 @@ enum Capability {
MultiposPotsPositions, MultiposPotsPositions,
SimulatorVariant, SimulatorVariant,
MavlinkTelemetry, MavlinkTelemetry,
HasInputDiff,
HasMixerExpo,
}; };
class SimulatorInterface; class SimulatorInterface;

View file

@ -734,6 +734,9 @@ int OpenTxFirmware::getCapability(const Capability capability)
return 0; return 0;
case MavlinkTelemetry: case MavlinkTelemetry:
return id.contains("mavlink") ? 1 : 0; return id.contains("mavlink") ? 1 : 0;
case HasInputDiff:
case HasMixerExpo:
return (IS_ARM(board) ? true : false);
default: default:
return 0; return 0;
} }

View file

@ -209,10 +209,10 @@ CurveGroup::CurveGroup(QComboBox *curveTypeCB, QCheckBox *curveGVarCB, QComboBox
lock(false), lock(false),
lastType(-1) lastType(-1)
{ {
curveTypeCB->addItem(tr("Diff")); if (!(flags & HIDE_DIFF)) curveTypeCB->addItem(tr("Diff"), 0);
curveTypeCB->addItem(tr("Expo")); if (!(flags & HIDE_EXPO)) curveTypeCB->addItem(tr("Expo"), 1);
curveTypeCB->addItem(tr("Func")); curveTypeCB->addItem(tr("Func"), 2);
curveTypeCB->addItem(tr("Curve")); curveTypeCB->addItem(tr("Curve"), 3);
curveValueCB->setMaxVisibleItems(10); curveValueCB->setMaxVisibleItems(10);
@ -228,7 +228,9 @@ void CurveGroup::update()
{ {
lock = true; lock = true;
curveTypeCB->setCurrentIndex(curve.type); int found = curveTypeCB->findData(curve.type);
if (found < 0) found = 0;
curveTypeCB->setCurrentIndex(found);
if (curve.type == CurveReference::CURVE_REF_DIFF || curve.type == CurveReference::CURVE_REF_EXPO) { if (curve.type == CurveReference::CURVE_REF_DIFF || curve.type == CurveReference::CURVE_REF_EXPO) {
curveGVarCB->show(); curveGVarCB->show();
@ -303,7 +305,8 @@ void CurveGroup::gvarCBChanged(int state)
void CurveGroup::typeChanged(int value) void CurveGroup::typeChanged(int value)
{ {
if (!lock) { if (!lock) {
switch (value) { int type = curveTypeCB->itemData(curveTypeCB->currentIndex()).toInt();
switch (type) {
case 0: case 0:
curve = CurveReference(CurveReference::CURVE_REF_DIFF, 0); curve = CurveReference(CurveReference::CURVE_REF_DIFF, 0);
break; break;
@ -325,7 +328,7 @@ void CurveGroup::typeChanged(int value)
void CurveGroup::valuesChanged() void CurveGroup::valuesChanged()
{ {
if (!lock) { if (!lock) {
switch (curveTypeCB->currentIndex()) { switch (curveTypeCB->itemData(curveTypeCB->currentIndex()).toInt()) {
case 0: case 0:
case 1: case 1:
{ {
@ -334,7 +337,7 @@ void CurveGroup::valuesChanged()
value = curveValueCB->itemData(curveValueCB->currentIndex()).toInt(); value = curveValueCB->itemData(curveValueCB->currentIndex()).toInt();
else else
value = curveValueSB->value(); value = curveValueSB->value();
curve = CurveReference(curveTypeCB->currentIndex() == 0 ? CurveReference::CURVE_REF_DIFF : CurveReference::CURVE_REF_EXPO, value); curve = CurveReference(curveTypeCB->itemData(curveTypeCB->currentIndex()).toInt() == 0 ? CurveReference::CURVE_REF_DIFF : CurveReference::CURVE_REF_EXPO, value);
break; break;
} }
case 2: case 2:

View file

@ -57,6 +57,9 @@ class GVarGroup: public QObject {
bool lock; bool lock;
}; };
#define HIDE_DIFF 1
#define HIDE_EXPO 2
class CurveGroup : public QObject { class CurveGroup : public QObject {
Q_OBJECT Q_OBJECT

View file

@ -31,7 +31,7 @@ ExpoDialog::ExpoDialog(QWidget *parent, ModelData & model, ExpoData *expoData, G
ui->offsetCB->hide(); ui->offsetCB->hide();
} }
curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, ed->curve); curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, ed->curve, firmware->getCapability(HasInputDiff) ? 0 : HIDE_DIFF);
populateSwitchCB(ui->switchesCB, ed->swtch, generalSettings, MixesContext); populateSwitchCB(ui->switchesCB, ed->swtch, generalSettings, MixesContext);

View file

@ -26,7 +26,7 @@ MixerDialog::MixerDialog(QWidget *parent, ModelData & model, MixData *mixdata, G
gvWeightGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, md->weight, 100, -limit, limit); gvWeightGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, md->weight, 100, -limit, limit);
gvOffsetGroup = new GVarGroup(ui->offsetGV, ui->offsetSB, ui->offsetCB, md->sOffset, 0, -limit, limit); gvOffsetGroup = new GVarGroup(ui->offsetGV, ui->offsetSB, ui->offsetCB, md->sOffset, 0, -limit, limit);
curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, md->curve); curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, md->curve, firmware->getCapability(HasMixerExpo) ? 0 : HIDE_EXPO);
ui->MixDR_CB->setChecked(md->noExpo==0); ui->MixDR_CB->setChecked(md->noExpo==0);