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:
parent
fdeb15253d
commit
1c053a7d0b
6 changed files with 21 additions and 10 deletions
|
@ -1177,6 +1177,8 @@ enum Capability {
|
||||||
MultiposPotsPositions,
|
MultiposPotsPositions,
|
||||||
SimulatorVariant,
|
SimulatorVariant,
|
||||||
MavlinkTelemetry,
|
MavlinkTelemetry,
|
||||||
|
HasInputDiff,
|
||||||
|
HasMixerExpo,
|
||||||
};
|
};
|
||||||
|
|
||||||
class SimulatorInterface;
|
class SimulatorInterface;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue