From bb0412b11da22b528eccf60619b1a4abf0f1dfca Mon Sep 17 00:00:00 2001 From: 3djc Date: Fri, 28 Feb 2020 09:31:24 +0100 Subject: [PATCH] Add T5/T6 to Companion for relevant radios (#7415) * Hopefully correct ui * Continued * Cosmetics * Prevent crashes * Fix T5/T6 not saving * Windows compilation fix * Add sliders for T5/T6 * Cosmetics Co-authored-by: Andre Bernet --- companion/src/modeledit/flightmode.ui | 356 ++++++++++++++++-------- companion/src/modeledit/flightmodes.cpp | 24 +- 2 files changed, 260 insertions(+), 120 deletions(-) diff --git a/companion/src/modeledit/flightmode.ui b/companion/src/modeledit/flightmode.ui index ab279a437..f3dff650e 100644 --- a/companion/src/modeledit/flightmode.ui +++ b/companion/src/modeledit/flightmode.ui @@ -58,7 +58,7 @@ - + Qt::Horizontal @@ -85,24 +85,18 @@ - - - - - 0 - 0 - - + + Qt::Horizontal - - QSlider::TicksBothSides + + + 40 + 20 + - - 25 - - + @@ -136,25 +130,6 @@ - - - - - 0 - 0 - - - - Qt::Horizontal - - - QSlider::TicksBothSides - - - 25 - - - @@ -166,16 +141,6 @@ - - - - trim1 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - @@ -284,11 +249,59 @@ + + + + trim1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + Qt::Horizontal + + + QSlider::TicksBothSides + + + 25 + + + + + + + + 0 + 0 + + + + Qt::Horizontal + + + QSlider::TicksBothSides + + + 25 + + + @@ -299,7 +312,7 @@ - + @@ -310,65 +323,6 @@ - - - - trim3 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - Qt::AlignCenter - - - true - - - -896 - - - 896 - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - @@ -418,23 +372,201 @@ + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + Qt::AlignCenter + + + true + + + -896 + + + 896 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + trim3 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + - - + + + + + + trim6 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + Qt::AlignCenter + + + true + + + -896 + + + 896 + + + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 40 + + + + + + + + Qt::Horizontal - - - 40 - 20 - + + QSlider::TicksBothSides - + + 25 + + + + + + + Qt::Horizontal + + + QSlider::TicksBothSides + + + 25 + + + + + + + + + trim5 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + Qt::AlignCenter + + + true + + + -896 + + + 896 + + + + + + + + + Qt::Vertical + + + QSizePolicy::Minimum + + + + 20 + 40 + + + + + diff --git a/companion/src/modeledit/flightmodes.cpp b/companion/src/modeledit/flightmodes.cpp index e1b01c1a9..53f5d7585 100644 --- a/companion/src/modeledit/flightmodes.cpp +++ b/companion/src/modeledit/flightmodes.cpp @@ -80,20 +80,28 @@ FlightModePanel::FlightModePanel(QWidget * parent, ModelData & model, int phaseI } // The trims - QString labels[CPN_MAX_STICKS]; + QString labels[CPN_MAX_TRIMS]; for(int i=0; i < CPN_MAX_STICKS; i++) { labels[i] = firmware->getAnalogInputName(i); } + labels[4] = "T5"; + labels[5] = "T6"; - - trimsLabel << ui->trim1Label << ui->trim2Label << ui->trim3Label << ui->trim4Label; - trimsUse << ui->trim1Use << ui->trim2Use << ui->trim3Use << ui->trim4Use; - trimsValue << ui->trim1Value << ui->trim2Value << ui->trim3Value << ui->trim4Value; - trimsSlider << ui->trim1Slider << ui->trim2Slider << ui->trim3Slider << ui->trim4Slider; + trimsLabel << ui->trim1Label << ui->trim2Label << ui->trim3Label << ui->trim4Label << ui->trim5Label << ui->trim6Label; + trimsUse << ui->trim1Use << ui->trim2Use << ui->trim3Use << ui->trim4Use << ui->trim5Use << ui->trim6Use; + trimsValue << ui->trim1Value << ui->trim2Value << ui->trim3Value << ui->trim4Value << ui->trim5Value << ui->trim6Value; + trimsSlider << ui->trim1Slider << ui->trim2Slider << ui->trim3Slider << ui->trim4Slider << ui->trim5Slider << ui->trim6Slider; Board::Type board = firmware->getBoard(); - for (int i=0; i<4; i++) { + for (int i = getBoardCapability(board,Board::NumTrims); i < CPN_MAX_TRIMS; i++) { + trimsLabel[i]->hide(); + trimsUse[i]->hide(); + trimsValue[i]->hide(); + trimsSlider[i]->hide(); + } + + for (int i = 0; i < getBoardCapability(board,Board::NumTrims); i++) { trimsLabel[i]->setText(labels[CONVERT_MODE(i+1)-1]); QComboBox * cb = trimsUse[i]; @@ -293,7 +301,7 @@ void FlightModePanel::update() ui->fadeIn->setValue(float(phase.fadeIn)/scale); ui->fadeOut->setValue(float(phase.fadeOut)/scale); - for (int i=0; i<4; i++) { + for (int i = 0; i < getBoardCapability(firmware->getBoard(), Board::NumTrims); i++) { int trimsMax = firmware->getCapability(ExtendedTrimsRange); if (trimsMax == 0 || !model->extendedTrims) { trimsMax = firmware->getCapability(TrimsRange);