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 <kilrah@users.noreply.github.com>
This commit is contained in:
3djc
2020-02-28 09:31:24 +01:00
committed by GitHub
co-authored by Andre Bernet
parent 177b379c28
commit bb0412b11d
2 changed files with 260 additions and 120 deletions
+244 -112
View File
@@ -58,7 +58,7 @@
</property>
</widget>
</item>
<item row="0" column="4" rowspan="2">
<item row="0" column="6" rowspan="2">
<spacer name="spacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@@ -85,24 +85,18 @@
</item>
<item>
<layout class="QGridLayout" name="trimsLayout">
<item row="2" column="1">
<widget class="QSlider" name="trim1Slider">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item row="0" column="4">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBothSides</enum>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
<property name="tickInterval">
<number>25</number>
</property>
</widget>
</spacer>
</item>
<item row="0" column="0">
<widget class="QSlider" name="trim2Slider">
@@ -136,25 +130,6 @@
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QSlider" name="trim4Slider">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBothSides</enum>
</property>
<property name="tickInterval">
<number>25</number>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QFrame" name="frame">
<property name="frameShape">
@@ -166,16 +141,6 @@
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QGridLayout" name="leftTrims_3" columnstretch="0,1">
<item row="1" column="0">
<widget class="QLabel" name="trim1Label">
<property name="text">
<string notr="true">trim1</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QVBoxLayout" name="verticalLayout_5c_3">
<item>
@@ -284,11 +249,59 @@
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="trim1Label">
<property name="text">
<string notr="true">trim1</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="2" column="2">
<widget class="QSlider" name="trim4Slider">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBothSides</enum>
</property>
<property name="tickInterval">
<number>25</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSlider" name="trim1Slider">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBothSides</enum>
</property>
<property name="tickInterval">
<number>25</number>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QFrame" name="frame_2">
<property name="frameShape">
@@ -299,7 +312,7 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QGridLayout" name="righTrims_2" columnstretch="0,1">
<layout class="QGridLayout" name="rightTrims_2" columnstretch="0,1">
<item row="1" column="0">
<widget class="QLabel" name="trim4Label">
<property name="text">
@@ -310,65 +323,6 @@
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="trim3Label">
<property name="text">
<string notr="true">trim3</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QVBoxLayout" name="verticalLayout_7b_2">
<item>
<spacer name="verticalSpacer_7b_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QComboBox" name="trim3Use"/>
</item>
<item>
<widget class="QSpinBox" name="trim3Value">
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="accelerated">
<bool>true</bool>
</property>
<property name="minimum">
<number>-896</number>
</property>
<property name="maximum">
<number>896</number>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_8d_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="1">
<layout class="QVBoxLayout" name="verticalLayout_8d_2">
<item>
@@ -418,23 +372,201 @@
</item>
</layout>
</item>
<item row="0" column="1">
<layout class="QVBoxLayout" name="verticalLayout_7b_2">
<item>
<spacer name="verticalSpacer_7b_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QComboBox" name="trim3Use"/>
</item>
<item>
<widget class="QSpinBox" name="trim3Value">
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="accelerated">
<bool>true</bool>
</property>
<property name="minimum">
<number>-896</number>
</property>
<property name="maximum">
<number>896</number>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_8d_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="0" column="0">
<widget class="QLabel" name="trim3Label">
<property name="text">
<string notr="true">trim3</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="0" column="4">
<spacer name="horizontalSpacer">
<item row="3" column="2">
<layout class="QGridLayout" name="t6Layout" columnstretch="0,1">
<item row="2" column="0">
<widget class="QLabel" name="trim6Label">
<property name="text">
<string>trim6</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QComboBox" name="trim6Use"/>
</item>
<item>
<widget class="QSpinBox" name="trim6Value">
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="accelerated">
<bool>true</bool>
</property>
<property name="minimum">
<number>-896</number>
</property>
<property name="maximum">
<number>896</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="4" column="2">
<widget class="QSlider" name="trim6Slider">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
<property name="tickPosition">
<enum>QSlider::TicksBothSides</enum>
</property>
</spacer>
<property name="tickInterval">
<number>25</number>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QSlider" name="trim5Slider">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBothSides</enum>
</property>
<property name="tickInterval">
<number>25</number>
</property>
</widget>
</item>
<item row="3" column="1">
<layout class="QGridLayout" name="t5Layout" columnstretch="0,1">
<item row="1" column="0">
<widget class="QLabel" name="trim5Label">
<property name="text">
<string>trim5</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QComboBox" name="trim5Use"/>
</item>
<item>
<widget class="QSpinBox" name="trim5Value">
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="accelerated">
<bool>true</bool>
</property>
<property name="minimum">
<number>-896</number>
</property>
<property name="maximum">
<number>896</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
+16 -8
View File
@@ -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);