|
|
@ -165,92 +165,98 @@ RowLayout { |
|
|
|
property int _maxPointCount: 10000 / interval |
|
|
|
property int _maxPointCount: 10000 / interval |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
QGCFlickable { |
|
|
|
spacing: _margins |
|
|
|
contentWidth: parent.width * (_showCharts ? 0.4 : 1) |
|
|
|
Layout.alignment: Qt.AlignTop |
|
|
|
contentHeight: rightColumn.height |
|
|
|
width: parent.width * (_showCharts ? 0.4 : 1) |
|
|
|
Layout.fillHeight: true |
|
|
|
|
|
|
|
Layout.minimumWidth: contentWidth |
|
|
|
|
|
|
|
Layout.maximumWidth: contentWidth |
|
|
|
|
|
|
|
Layout.alignment: Qt.AlignTop |
|
|
|
Column { |
|
|
|
Column { |
|
|
|
|
|
|
|
spacing: _margins |
|
|
|
RowLayout { |
|
|
|
Layout.alignment: Qt.AlignTop |
|
|
|
spacing: _margins |
|
|
|
width: parent.width |
|
|
|
visible: axis.length > 1 |
|
|
|
id: rightColumn |
|
|
|
|
|
|
|
|
|
|
|
QGCLabel { text: qsTr("Select Tuning:") } |
|
|
|
Column { |
|
|
|
|
|
|
|
|
|
|
|
Repeater { |
|
|
|
RowLayout { |
|
|
|
model: axis |
|
|
|
spacing: _margins |
|
|
|
QGCRadioButton { |
|
|
|
visible: axis.length > 1 |
|
|
|
text: modelData.name |
|
|
|
|
|
|
|
checked: index == _currentAxis |
|
|
|
QGCLabel { text: qsTr("Select Tuning:") } |
|
|
|
onClicked: _currentAxis = index |
|
|
|
|
|
|
|
|
|
|
|
Repeater { |
|
|
|
|
|
|
|
model: axis |
|
|
|
|
|
|
|
QGCRadioButton { |
|
|
|
|
|
|
|
text: modelData.name |
|
|
|
|
|
|
|
checked: index == _currentAxis |
|
|
|
|
|
|
|
onClicked: _currentAxis = index |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Instantiate all sliders (instead of switching the model), so that |
|
|
|
// Instantiate all sliders (instead of switching the model), so that |
|
|
|
// values are not changed unexpectedly if they do not match with a tick |
|
|
|
// values are not changed unexpectedly if they do not match with a tick |
|
|
|
// value |
|
|
|
// value |
|
|
|
Repeater { |
|
|
|
Repeater { |
|
|
|
model: axis |
|
|
|
model: axis |
|
|
|
FactSliderPanel { |
|
|
|
FactSliderPanel { |
|
|
|
width: parent.width |
|
|
|
width: parent.width |
|
|
|
visible: _currentAxis === index |
|
|
|
visible: _currentAxis === index |
|
|
|
sliderModel: axis[index].params |
|
|
|
sliderModel: axis[index].params |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
Column { |
|
|
|
QGCLabel { text: qsTr("Clipboard Values:") } |
|
|
|
QGCLabel { text: qsTr("Clipboard Values:") } |
|
|
|
|
|
|
|
|
|
|
|
GridLayout { |
|
|
|
GridLayout { |
|
|
|
rows: savedRepeater.model.length |
|
|
|
rows: savedRepeater.model.length |
|
|
|
flow: GridLayout.TopToBottom |
|
|
|
flow: GridLayout.TopToBottom |
|
|
|
rowSpacing: 0 |
|
|
|
rowSpacing: 0 |
|
|
|
columnSpacing: _margins |
|
|
|
columnSpacing: _margins |
|
|
|
|
|
|
|
|
|
|
|
Repeater { |
|
|
|
Repeater { |
|
|
|
model: axis[_currentAxis].params |
|
|
|
model: axis[_currentAxis].params |
|
|
|
|
|
|
|
|
|
|
|
QGCLabel { text: param } |
|
|
|
QGCLabel { text: param } |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Repeater { |
|
|
|
Repeater { |
|
|
|
id: savedRepeater |
|
|
|
id: savedRepeater |
|
|
|
|
|
|
|
|
|
|
|
QGCLabel { text: modelData } |
|
|
|
QGCLabel { text: modelData } |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RowLayout { |
|
|
|
RowLayout { |
|
|
|
spacing: _margins |
|
|
|
spacing: _margins |
|
|
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
QGCButton { |
|
|
|
text: qsTr("Save To Clipboard") |
|
|
|
text: qsTr("Save To Clipboard") |
|
|
|
onClicked: saveTuningParamValues() |
|
|
|
onClicked: saveTuningParamValues() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
QGCButton { |
|
|
|
text: qsTr("Restore From Clipboard") |
|
|
|
text: qsTr("Restore From Clipboard") |
|
|
|
onClicked: resetToSavedTuningParamValues() |
|
|
|
onClicked: resetToSavedTuningParamValues() |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
ColumnLayout { |
|
|
|
Layout.fillWidth: true |
|
|
|
|
|
|
|
Layout.alignment: Qt.AlignTop |
|
|
|
|
|
|
|
visible: _showCharts |
|
|
|
visible: _showCharts |
|
|
|
|
|
|
|
|
|
|
|
ChartView { |
|
|
|
ChartView { |
|
|
|
id: chart |
|
|
|
id: chart |
|
|
|
anchors.left: parent.left |
|
|
|
|
|
|
|
anchors.right: parent.right |
|
|
|
|
|
|
|
height: availableHeight * 0.75 |
|
|
|
|
|
|
|
antialiasing: true |
|
|
|
antialiasing: true |
|
|
|
legend.alignment: Qt.AlignBottom |
|
|
|
legend.alignment: Qt.AlignBottom |
|
|
|
|
|
|
|
Layout.fillHeight: true |
|
|
|
|
|
|
|
Layout.fillWidth: true |
|
|
|
|
|
|
|
|
|
|
|
// enable mouse dragging |
|
|
|
// enable mouse dragging |
|
|
|
MouseArea { |
|
|
|
MouseArea { |
|
|
|