|
|
|
@ -36,384 +36,336 @@ import QGroundControl.Controllers 1.0
@@ -36,384 +36,336 @@ import QGroundControl.Controllers 1.0
|
|
|
|
|
import QGroundControl.FactSystem 1.0 |
|
|
|
|
import QGroundControl.FactControls 1.0 |
|
|
|
|
|
|
|
|
|
Rectangle { |
|
|
|
|
/// true: show full information, false: for use in smaller widgets |
|
|
|
|
property bool fullMode: true |
|
|
|
|
|
|
|
|
|
QGCPalette { id: __qgcPal; colorGroupEnabled: true } |
|
|
|
|
ParameterEditorController { id: __controller } |
|
|
|
|
QGCLabel { id: __textControl; text: "X"; visible: false } |
|
|
|
|
|
|
|
|
|
readonly property real __leftMargin: 10 |
|
|
|
|
readonly property real __rightMargin: 20 |
|
|
|
|
readonly property int __maxParamChars: 16 |
|
|
|
|
|
|
|
|
|
color: __qgcPal.window |
|
|
|
|
|
|
|
|
|
// We use an ExclusiveGroup to maintain the visibility of a single editing control at a time |
|
|
|
|
ExclusiveGroup { |
|
|
|
|
id: __exclusiveEditorGroup |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
property Fact __editorOverlayFact: Fact { } |
|
|
|
|
property real __textHeight: __textControl.contentHeight |
|
|
|
|
property real __textWidth: __textControl.contentWidth |
|
|
|
|
|
|
|
|
|
Item { |
|
|
|
|
id: __editorOverlay |
|
|
|
|
|
|
|
|
|
anchors.fill: parent |
|
|
|
|
visible: false |
|
|
|
|
z: 100 |
|
|
|
|
|
|
|
|
|
Rectangle { |
|
|
|
|
width: __textWidth * 75 |
|
|
|
|
height: parent.height |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: editorDialog.left |
|
|
|
|
opacity: 0.80 |
|
|
|
|
color: __qgcPal.window |
|
|
|
|
} |
|
|
|
|
QGCView { |
|
|
|
|
viewComponent: parameterList |
|
|
|
|
|
|
|
|
|
Rectangle { |
|
|
|
|
id: editorDialog |
|
|
|
|
width: fullMode ? __textWidth * 50 : parent.width |
|
|
|
|
height: parent.height |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
color: __qgcPal.windowShadeDark |
|
|
|
|
/// true: show full information, false: for use in smaller widgets |
|
|
|
|
property bool fullMode: true |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
spacing: __textHeight |
|
|
|
|
anchors.fill: parent |
|
|
|
|
QGCPalette { id: __qgcPal; colorGroupEnabled: true } |
|
|
|
|
ParameterEditorController { id: __controller } |
|
|
|
|
QGCLabel { id: __textMeasure; text: "X"; visible: false } |
|
|
|
|
property Fact __editorDialogFact: Fact { } |
|
|
|
|
|
|
|
|
|
Rectangle { |
|
|
|
|
width: parent.width |
|
|
|
|
height: saveButton.height |
|
|
|
|
color: __qgcPal.windowShade |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
x: __textWidth |
|
|
|
|
height: parent.height |
|
|
|
|
verticalAlignment: Text.AlignVCenter |
|
|
|
|
text: "Edit Parameter" |
|
|
|
|
} |
|
|
|
|
readonly property real __leftMargin: 10 |
|
|
|
|
readonly property real __rightMargin: 20 |
|
|
|
|
readonly property int __maxParamChars: 16 |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
anchors.right: saveButton.left |
|
|
|
|
anchors.bottom: parent.bottom |
|
|
|
|
text: "Cancel" |
|
|
|
|
property real __textHeight: __textMeasure.contentHeight |
|
|
|
|
property real __textWidth: __textMeasure.contentWidth |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
__editorOverlay.visible = false |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
Component { |
|
|
|
|
id: parameterList |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
id: saveButton |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
primary: true |
|
|
|
|
text: "Save" |
|
|
|
|
QGCViewPanel { |
|
|
|
|
id: panel |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
__editorOverlayFact.value = valueField.text |
|
|
|
|
__editorOverlay.visible = false |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
Component { |
|
|
|
|
id: factRowsComponent |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
spacing: __textHeight |
|
|
|
|
anchors.leftMargin: __textWidth * 2 |
|
|
|
|
anchors.rightMargin: __textWidth |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
id: factColumn |
|
|
|
|
x: __leftMargin |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
width: parent.width |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
text: __editorOverlayFact.shortDescription ? __editorOverlayFact.shortDescription : "Description missing" |
|
|
|
|
height: __textHeight + (ScreenTools.pixelSizeFactor * (9)) |
|
|
|
|
text: group |
|
|
|
|
verticalAlignment: Text.AlignVCenter |
|
|
|
|
font.pointSize: ScreenTools.fontPointFactor * (16); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
width: parent.width |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
visible: __editorOverlayFact.longDescription |
|
|
|
|
text: __editorOverlayFact.longDescription |
|
|
|
|
Rectangle { |
|
|
|
|
width: parent.width |
|
|
|
|
height: 1 |
|
|
|
|
color: __qgcPal.text |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCTextField { |
|
|
|
|
id: valueField |
|
|
|
|
text: __editorOverlayFact.valueString |
|
|
|
|
} |
|
|
|
|
Repeater { |
|
|
|
|
model: __controller.getFactsForGroup(componentId, group) |
|
|
|
|
|
|
|
|
|
QGCLabel { text: __editorOverlayFact.name } |
|
|
|
|
Column { |
|
|
|
|
Item { |
|
|
|
|
x: __leftMargin |
|
|
|
|
width: parent.width |
|
|
|
|
height: __textHeight + (ScreenTools.pixelSizeFactor * (9)) |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: __textWidth |
|
|
|
|
Fact { |
|
|
|
|
id: modelFact |
|
|
|
|
|
|
|
|
|
QGCLabel { text: "Units:" } |
|
|
|
|
QGCLabel { text: __editorOverlayFact.units ? __editorOverlayFact.units : "none" } |
|
|
|
|
} |
|
|
|
|
Component.onCompleted: { |
|
|
|
|
name = modelData + ":" + componentId |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: nameLabel |
|
|
|
|
width: __textWidth * (__maxParamChars + 1) |
|
|
|
|
height: parent.height |
|
|
|
|
verticalAlignment: Text.AlignVCenter |
|
|
|
|
text: modelFact.name |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: valueLabel |
|
|
|
|
width: __textWidth * 20 |
|
|
|
|
height: parent.height |
|
|
|
|
anchors.left: nameLabel.right |
|
|
|
|
verticalAlignment: Text.AlignVCenter |
|
|
|
|
color: modelFact.valueEqualsDefault ? __qgcPal.text : "orange" |
|
|
|
|
text: modelFact.valueString + " " + modelFact.units |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
height: parent.height |
|
|
|
|
anchors.left: valueLabel.right |
|
|
|
|
verticalAlignment: Text.AlignVCenter |
|
|
|
|
visible: fullMode |
|
|
|
|
text: modelFact.shortDescription |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MouseArea { |
|
|
|
|
anchors.fill: parent |
|
|
|
|
acceptedButtons: Qt.LeftButton |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
__editorDialogFact = modelFact |
|
|
|
|
panel.showDialog(editorDialogComponent, "Parameter Editor", fullMode ? 50 : -1, StandardButton.Cancel | StandardButton.Save) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: __textWidth |
|
|
|
|
Rectangle { |
|
|
|
|
x: __leftMargin |
|
|
|
|
width: factColumn.width - __leftMargin - __rightMargin |
|
|
|
|
height: 1 |
|
|
|
|
color: __qgcPal.windowShade |
|
|
|
|
} |
|
|
|
|
} // Column - Fact |
|
|
|
|
} // Repeater - Facts |
|
|
|
|
} // Column - Facts |
|
|
|
|
} // Component - factRowsComponent |
|
|
|
|
|
|
|
|
|
QGCLabel { text: "Minimum value:" } |
|
|
|
|
QGCLabel { text: __editorOverlayFact.min } |
|
|
|
|
} |
|
|
|
|
Column { |
|
|
|
|
anchors.fill: parent |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: __textWidth |
|
|
|
|
Item { |
|
|
|
|
width: parent.width |
|
|
|
|
height: firstButton.height |
|
|
|
|
|
|
|
|
|
QGCLabel { text: "Maxmimum value:" } |
|
|
|
|
QGCLabel { text: __editorOverlayFact.max } |
|
|
|
|
QGCLabel { |
|
|
|
|
font.pointSize: ScreenTools.fontPointFactor * (20) |
|
|
|
|
visible: fullMode |
|
|
|
|
text: "PARAMETER EDITOR" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: __textWidth |
|
|
|
|
|
|
|
|
|
QGCLabel { text: "Default value:" } |
|
|
|
|
QGCLabel { text: __editorOverlayFact.defaultValueAvailable ? __editorOverlayFact.defaultValue : "none" } |
|
|
|
|
} |
|
|
|
|
spacing: 10 |
|
|
|
|
layoutDirection: Qt.RightToLeft |
|
|
|
|
width: parent.width |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
width: parent.width |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
text: "Warning: Modifying parameters while vehicle is in flight can lead to vehicle instability and possible vehicle loss. " + |
|
|
|
|
"Make sure you know what you are doing and double-check your values before Save!" |
|
|
|
|
QGCButton { |
|
|
|
|
text: "Clear RC to Param" |
|
|
|
|
onClicked: __controller.clearRCToParam() |
|
|
|
|
} |
|
|
|
|
QGCButton { |
|
|
|
|
text: "Save to file" |
|
|
|
|
visible: fullMode |
|
|
|
|
onClicked: __controller.saveToFile() |
|
|
|
|
} |
|
|
|
|
QGCButton { |
|
|
|
|
text: "Load from file" |
|
|
|
|
visible: fullMode |
|
|
|
|
onClicked: __controller.loadFromFile() |
|
|
|
|
} |
|
|
|
|
QGCButton { |
|
|
|
|
id: firstButton |
|
|
|
|
text: "Refresh" |
|
|
|
|
onClicked: __controller.refresh() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} // Column - Fact information |
|
|
|
|
} // Column - Header + Fact information |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
anchors.rightMargin: __textWidth |
|
|
|
|
anchors.right: rcButton.left |
|
|
|
|
anchors.bottom: parent.bottom |
|
|
|
|
visible: __editorOverlayFact.defaultValueAvailable |
|
|
|
|
text: "Reset to default" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
__editorOverlayFact.value = __editorOverlayFact.defaultValue |
|
|
|
|
__editorOverlay.visible = false |
|
|
|
|
Item { |
|
|
|
|
id: lastSpacer |
|
|
|
|
height: 10 |
|
|
|
|
width: 5 |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
id: rcButton |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
anchors.bottom: parent.bottom |
|
|
|
|
visible: __editorOverlayFact.defaultValueAvailable |
|
|
|
|
text: "Set RC to Param..." |
|
|
|
|
onClicked: __controller.setRCToParam(__editorOverlayFact.name) |
|
|
|
|
} |
|
|
|
|
} // Rectangle - editorDialog |
|
|
|
|
} // Item - editorOverlay |
|
|
|
|
Item { |
|
|
|
|
width: parent.width |
|
|
|
|
height: parent.height - (lastSpacer.y + lastSpacer.height) |
|
|
|
|
|
|
|
|
|
Component { |
|
|
|
|
id: factRowsComponent |
|
|
|
|
ScrollView { |
|
|
|
|
id : groupScroll |
|
|
|
|
width: __textWidth * 25 |
|
|
|
|
height: parent.height |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
id: factColumn |
|
|
|
|
x: __leftMargin |
|
|
|
|
Column { |
|
|
|
|
Repeater { |
|
|
|
|
model: __controller.componentIds |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
height: __textHeight + (ScreenTools.pixelSizeFactor * (9)) |
|
|
|
|
text: group |
|
|
|
|
verticalAlignment: Text.AlignVCenter |
|
|
|
|
font.pointSize: ScreenTools.fontPointFactor * (16); |
|
|
|
|
} |
|
|
|
|
Column { |
|
|
|
|
id: componentColumn |
|
|
|
|
|
|
|
|
|
Rectangle { |
|
|
|
|
width: parent.width |
|
|
|
|
height: 1 |
|
|
|
|
color: __qgcPal.text |
|
|
|
|
} |
|
|
|
|
readonly property int componentId: parseInt(modelData) |
|
|
|
|
|
|
|
|
|
Repeater { |
|
|
|
|
model: __controller.getFactsForGroup(componentId, group) |
|
|
|
|
QGCLabel { |
|
|
|
|
height: contentHeight + (ScreenTools.pixelSizeFactor * (9)) |
|
|
|
|
text: "Component #: " + componentId.toString() |
|
|
|
|
verticalAlignment: Text.AlignVCenter |
|
|
|
|
font.pointSize: ScreenTools.fontPointFactor * (16); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
Item { |
|
|
|
|
x: __leftMargin |
|
|
|
|
width: parent.width |
|
|
|
|
height: __textHeight + (ScreenTools.pixelSizeFactor * (9)) |
|
|
|
|
Repeater { |
|
|
|
|
model: __controller.getGroupsForComponent(componentColumn.componentId) |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
QGCButton { |
|
|
|
|
x: __leftMargin |
|
|
|
|
width: groupScroll.width - __leftMargin - __rightMargin |
|
|
|
|
text: modelData |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
factRowsLoader.sourceComponent = null |
|
|
|
|
factRowsLoader.componentId = componentId |
|
|
|
|
factRowsLoader.group = modelData |
|
|
|
|
factRowsLoader.sourceComponent = factRowsComponent |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { |
|
|
|
|
width: 1 |
|
|
|
|
height: ScreenTools.pixelSizeFactor * (3) |
|
|
|
|
} |
|
|
|
|
} // Column - Group |
|
|
|
|
} // Repeater - Groups |
|
|
|
|
|
|
|
|
|
Fact { |
|
|
|
|
id: modelFact |
|
|
|
|
Item { |
|
|
|
|
height: 10 |
|
|
|
|
width: 10 |
|
|
|
|
} |
|
|
|
|
} // Column - Component |
|
|
|
|
} // Repeater - Components |
|
|
|
|
} // Column - Component |
|
|
|
|
} // ScrollView - Groups |
|
|
|
|
|
|
|
|
|
Component.onCompleted: { |
|
|
|
|
name = modelData + ":" + componentId |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
ScrollView { |
|
|
|
|
id: factScrollView |
|
|
|
|
anchors.left: groupScroll.right |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
height: parent.height |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: nameLabel |
|
|
|
|
width: __textWidth * (__maxParamChars + 1) |
|
|
|
|
height: parent.height |
|
|
|
|
verticalAlignment: Text.AlignVCenter |
|
|
|
|
text: modelFact.name |
|
|
|
|
} |
|
|
|
|
Loader { |
|
|
|
|
id: factRowsLoader |
|
|
|
|
width: factScrollView.width |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: valueLabel |
|
|
|
|
width: __textWidth * 20 |
|
|
|
|
height: parent.height |
|
|
|
|
anchors.left: nameLabel.right |
|
|
|
|
verticalAlignment: Text.AlignVCenter |
|
|
|
|
color: modelFact.valueEqualsDefault ? __qgcPal.text : "orange" |
|
|
|
|
text: modelFact.valueString + " " + modelFact.units |
|
|
|
|
property int componentId: __controller.componentIds[0] |
|
|
|
|
property string group: __controller.getGroupsForComponent(__controller.componentIds[0])[0] |
|
|
|
|
sourceComponent: factRowsComponent |
|
|
|
|
} |
|
|
|
|
} // ScrollView - Facts |
|
|
|
|
} // Item - Group ScrollView + Facts |
|
|
|
|
} // Column - Outer |
|
|
|
|
} |
|
|
|
|
} // Component - Parameter List |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
height: parent.height |
|
|
|
|
anchors.left: valueLabel.right |
|
|
|
|
verticalAlignment: Text.AlignVCenter |
|
|
|
|
visible: fullMode |
|
|
|
|
text: modelFact.shortDescription |
|
|
|
|
} |
|
|
|
|
Component { |
|
|
|
|
id: editorDialogComponent |
|
|
|
|
|
|
|
|
|
MouseArea { |
|
|
|
|
anchors.fill: parent |
|
|
|
|
acceptedButtons: Qt.LeftButton |
|
|
|
|
QGCViewDialog { |
|
|
|
|
id: editorDialog |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
__editorOverlayFact = modelFact |
|
|
|
|
__editorOverlay.visible = true |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
property bool fullMode: true |
|
|
|
|
|
|
|
|
|
Rectangle { |
|
|
|
|
x: __leftMargin |
|
|
|
|
width: factColumn.width - __leftMargin - __rightMargin |
|
|
|
|
height: 1 |
|
|
|
|
color: __qgcPal.windowShade |
|
|
|
|
} |
|
|
|
|
} // Column - Fact |
|
|
|
|
} // Repeater - Facts |
|
|
|
|
} // Column - Facts |
|
|
|
|
} // Component - factRowsComponent |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
anchors.fill: parent |
|
|
|
|
|
|
|
|
|
Item { |
|
|
|
|
width: parent.width |
|
|
|
|
height: firstButton.height |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
font.pointSize: ScreenTools.fontPointFactor * (20) |
|
|
|
|
visible: fullMode |
|
|
|
|
text: "PARAMETER EDITOR" |
|
|
|
|
function accept() { |
|
|
|
|
__editorDialogFact.value = valueField.text |
|
|
|
|
editorDialog.hideDialog() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: 10 |
|
|
|
|
layoutDirection: Qt.RightToLeft |
|
|
|
|
width: parent.width |
|
|
|
|
Column { |
|
|
|
|
spacing: __textHeight |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
text: "Clear RC to Param" |
|
|
|
|
onClicked: __controller.clearRCToParam() |
|
|
|
|
QGCLabel { |
|
|
|
|
width: parent.width |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
text: __editorDialogFact.shortDescription ? __editorDialogFact.shortDescription : "Description missing" |
|
|
|
|
} |
|
|
|
|
QGCButton { |
|
|
|
|
text: "Save to file" |
|
|
|
|
visible: fullMode |
|
|
|
|
onClicked: __controller.saveToFile() |
|
|
|
|
} |
|
|
|
|
QGCButton { |
|
|
|
|
text: "Load from file" |
|
|
|
|
visible: fullMode |
|
|
|
|
onClicked: __controller.loadFromFile() |
|
|
|
|
} |
|
|
|
|
QGCButton { |
|
|
|
|
id: firstButton |
|
|
|
|
text: "Refresh" |
|
|
|
|
onClicked: __controller.refresh() |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
width: parent.width |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
visible: __editorDialogFact.longDescription |
|
|
|
|
text: __editorDialogFact.longDescription |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { |
|
|
|
|
id: lastSpacer |
|
|
|
|
height: 10 |
|
|
|
|
width: 5 |
|
|
|
|
} |
|
|
|
|
QGCTextField { |
|
|
|
|
id: valueField |
|
|
|
|
text: __editorDialogFact.valueString |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { |
|
|
|
|
width: parent.width |
|
|
|
|
height: parent.height - (lastSpacer.y + lastSpacer.height) |
|
|
|
|
QGCLabel { text: __editorDialogFact.name } |
|
|
|
|
|
|
|
|
|
ScrollView { |
|
|
|
|
id : groupScroll |
|
|
|
|
width: __textWidth * 25 |
|
|
|
|
height: parent.height |
|
|
|
|
Row { |
|
|
|
|
spacing: __textWidth |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
Repeater { |
|
|
|
|
model: __controller.componentIds |
|
|
|
|
QGCLabel { text: "Units:" } |
|
|
|
|
QGCLabel { text: __editorDialogFact.units ? __editorDialogFact.units : "none" } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
id: componentColumn |
|
|
|
|
Row { |
|
|
|
|
spacing: __textWidth |
|
|
|
|
|
|
|
|
|
readonly property int componentId: parseInt(modelData) |
|
|
|
|
QGCLabel { text: "Minimum value:" } |
|
|
|
|
QGCLabel { text: __editorDialogFact.min } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
height: contentHeight + (ScreenTools.pixelSizeFactor * (9)) |
|
|
|
|
text: "Component #: " + componentId.toString() |
|
|
|
|
verticalAlignment: Text.AlignVCenter |
|
|
|
|
font.pointSize: ScreenTools.fontPointFactor * (16); |
|
|
|
|
} |
|
|
|
|
Row { |
|
|
|
|
spacing: __textWidth |
|
|
|
|
|
|
|
|
|
Repeater { |
|
|
|
|
model: __controller.getGroupsForComponent(componentColumn.componentId) |
|
|
|
|
QGCLabel { text: "Maxmimum value:" } |
|
|
|
|
QGCLabel { text: __editorDialogFact.max } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
QGCButton { |
|
|
|
|
x: __leftMargin |
|
|
|
|
width: groupScroll.width - __leftMargin - __rightMargin |
|
|
|
|
text: modelData |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
factRowsLoader.sourceComponent = null |
|
|
|
|
factRowsLoader.componentId = componentId |
|
|
|
|
factRowsLoader.group = modelData |
|
|
|
|
factRowsLoader.sourceComponent = factRowsComponent |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
Row { |
|
|
|
|
spacing: __textWidth |
|
|
|
|
|
|
|
|
|
Item { |
|
|
|
|
width: 1 |
|
|
|
|
height: ScreenTools.pixelSizeFactor * (3) |
|
|
|
|
} |
|
|
|
|
} // Column - Group |
|
|
|
|
} // Repeater - Groups |
|
|
|
|
QGCLabel { text: "Default value:" } |
|
|
|
|
QGCLabel { text: __editorDialogFact.defaultValueAvailable ? __editorDialogFact.defaultValue : "none" } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Item { |
|
|
|
|
height: 10 |
|
|
|
|
width: 10 |
|
|
|
|
} |
|
|
|
|
} // Column - Component |
|
|
|
|
} // Repeater - Components |
|
|
|
|
} // Column - Component |
|
|
|
|
} // ScrollView - Groups |
|
|
|
|
QGCLabel { |
|
|
|
|
width: parent.width |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
text: "Warning: Modifying parameters while vehicle is in flight can lead to vehicle instability and possible vehicle loss. " + |
|
|
|
|
"Make sure you know what you are doing and double-check your values before Save!" |
|
|
|
|
} |
|
|
|
|
} // Column - Fact information |
|
|
|
|
|
|
|
|
|
ScrollView { |
|
|
|
|
id: factScrollView |
|
|
|
|
anchors.left: groupScroll.right |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
height: parent.height |
|
|
|
|
|
|
|
|
|
Loader { |
|
|
|
|
id: factRowsLoader |
|
|
|
|
width: factScrollView.width |
|
|
|
|
QGCButton { |
|
|
|
|
anchors.rightMargin: __textWidth |
|
|
|
|
anchors.right: rcButton.left |
|
|
|
|
anchors.bottom: parent.bottom |
|
|
|
|
visible: __editorDialogFact.defaultValueAvailable |
|
|
|
|
text: "Reset to default" |
|
|
|
|
|
|
|
|
|
property int componentId: __controller.componentIds[0] |
|
|
|
|
property string group: __controller.getGroupsForComponent(__controller.componentIds[0])[0] |
|
|
|
|
sourceComponent: factRowsComponent |
|
|
|
|
onClicked: { |
|
|
|
|
__editorDialogFact.value = __editorDialogFact.defaultValue |
|
|
|
|
editorDialog.hideDialog() |
|
|
|
|
} |
|
|
|
|
} // ScrollView - Facts |
|
|
|
|
} // Item - Group ScrollView + Facts |
|
|
|
|
} // Column - Outer |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
id: rcButton |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
anchors.bottom: parent.bottom |
|
|
|
|
visible: __editorDialogFact.defaultValueAvailable |
|
|
|
|
text: "Set RC to Param..." |
|
|
|
|
onClicked: __controller.setRCToParam(__editorDialogFact.name) |
|
|
|
|
} |
|
|
|
|
} // Rectangle - editorDialog |
|
|
|
|
} // Component - Editor Dialog |
|
|
|
|
} // QGCView |