Skip to content

Commit

Permalink
Replace color and pose for GridConfig with GzColor and GzPose (#463)
Browse files Browse the repository at this point in the history
Signed-off-by: youhy <haoyuan2019@outlook.com>
  • Loading branch information
AzulRadio committed Aug 17, 2022
1 parent eef3853 commit 27c2634
Showing 1 changed file with 41 additions and 201 deletions.
242 changes: 41 additions & 201 deletions src/plugins/grid_config/GridConfig.qml
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,9 @@ GridLayout {
anchors.leftMargin: 10
anchors.rightMargin: 10

// Get number of decimal digits based on a widget's width
// TODO(chapulina) Move this to a common place so all widgets can use it
function getDecimals(_width) {
if (_width <= 80)
return 2;
else if (_width <= 100)
return 4;
return 6;
// Dummy item for using getDecimals()
IgnHelpers {
id: ignHelper
}

Connections {
Expand All @@ -46,16 +41,16 @@ GridLayout {
horizontalCellCount.value = _hCellCount;
verticalCellCount.value = _vCellCount;
cellLength.value = _cellLength;
x.value = _pos.x;
y.value = _pos.y;
z.value = _pos.z;
roll.value = _rot.x;
pitch.value = _rot.y;
yaw.value = _rot.z;
r.value = _color.r;
g.value = _color.g;
b.value = _color.b;
a.value = _color.a;
gzPoseInstance.xValue = _pos.x;
gzPoseInstance.yValue = _pos.y;
gzPoseInstance.zValue = _pos.z;
gzPoseInstance.rollValue = _rot.x;
gzPoseInstance.pitchValue = _rot.y;
gzPoseInstance.yawValue = _rot.z;
gzColorGrid.r = _color.r;
gzColorGrid.g = _color.g;
gzColorGrid.b = _color.b;
gzColorGrid.a = _color.a;
}
}

Expand Down Expand Up @@ -161,7 +156,7 @@ GridLayout {
maximumValue: Number.MAX_VALUE
minimumValue: 0.0000001
value: 1.00
decimals: getDecimals(cellLength.width)
decimals: ignHelper.getDecimals(cellLength.width)
stepSize: 0.01
onEditingFinished: GridConfig.UpdateCellLength(cellLength.value)
}
Expand All @@ -182,100 +177,25 @@ GridLayout {
font.bold: true
}

Text {
text: "X"
color: "dimgrey"
}

IgnSpinBox {
Layout.fillWidth: true
id: x
value: 0.00
maximumValue: Number.MAX_VALUE
minimumValue: -Number.MAX_VALUE
decimals: getDecimals(x.width)
stepSize: 0.01
onEditingFinished: GridConfig.SetPose(x.value, y.value, z.value, roll.value, pitch.value, yaw.value)
}

Text {
text: "Roll"
color: "dimgrey"
}

IgnSpinBox {
Layout.fillWidth: true
id: roll
maximumValue: 6.28
minimumValue: 0.00
value: 0.00
decimals: getDecimals(roll.width)
stepSize: 0.01
onEditingFinished: GridConfig.SetPose(x.value, y.value, z.value, roll.value, pitch.value, yaw.value)
}

Text {
text: "Y"
color: "dimgrey"
}

IgnSpinBox {
Layout.fillWidth: true
id: y
value: 0.00
maximumValue: Number.MAX_VALUE
minimumValue: -Number.MAX_VALUE
decimals: getDecimals(y.width)
stepSize: 0.01
onEditingFinished: GridConfig.SetPose(x.value, y.value, z.value, roll.value, pitch.value, yaw.value)
}

Text {
text: "Pitch"
color: "dimgrey"
}

IgnSpinBox {
Layout.fillWidth: true
id: pitch
maximumValue: 6.28
minimumValue: 0.00
value: 0.00
decimals: getDecimals(pitch.width)
stepSize: 0.01
onEditingFinished: GridConfig.SetPose(x.value, y.value, z.value, roll.value, pitch.value, yaw.value)
}

Text {
text: "Z"
color: "dimgrey"
}

IgnSpinBox {
Layout.fillWidth: true
id: z
value: 0.00
maximumValue: Number.MAX_VALUE
minimumValue: -Number.MAX_VALUE
decimals: getDecimals(z.width)
stepSize: 0.01
onEditingFinished: GridConfig.SetPose(x.value, y.value, z.value, roll.value, pitch.value, yaw.value)
}

Text {
text: "Yaw"
color: "dimgrey"
}

IgnSpinBox {
GzPose {
id: gzPoseInstance
Layout.columnSpan: 4
Layout.fillWidth: true
id: yaw
maximumValue: 6.28
minimumValue: 0.00
value: 0.00
decimals: getDecimals(yaw.width)
stepSize: 0.01
onEditingFinished: GridConfig.SetPose(x.value, y.value, z.value, roll.value, pitch.value, yaw.value)
readOnly: false
xValue: 0.00
yValue: 0.00
zValue: 0.00
rollValue: 0.00
pitchValue: 0.00
yawValue: 0.00

onGzPoseSet: {
// _x, _y, _z, _roll, _pitch, _yaw are parameters of signal gzPoseSet
// from gz-gui GzPose.qml
GridConfig.SetPose(_x, _y, _z, _roll, _pitch, _yaw)
}
expand: true
gzPlotEnabled: false
}

Text {
Expand All @@ -286,98 +206,18 @@ GridLayout {
}

Text {
text: "R"
color: "dimgrey"
}

IgnSpinBox {
Layout.fillWidth: true
id: r
maximumValue: 1.00
minimumValue: 0.00
value: 0.7
stepSize: 0.01
decimals: getDecimals(r.width)
onEditingFinished: GridConfig.SetColor(r.value, g.value, b.value, a.value)
}

Text {
text: "G"
color: "dimgrey"
}

IgnSpinBox {
Layout.fillWidth: true
id: g
maximumValue: 1.00
minimumValue: 0.00
value: 0.7
stepSize: 0.01
decimals: getDecimals(g.width)
onEditingFinished: GridConfig.SetColor(r.value, g.value, b.value, a.value)
}

Text {
text: "B"
color: "dimgrey"
}

IgnSpinBox {
Layout.fillWidth: true
id: b
maximumValue: 1.00
minimumValue: 0.00
value: 0.7
stepSize: 0.01
decimals: getDecimals(b.width)
onEditingFinished: GridConfig.SetColor(r.value, g.value, b.value, a.value)
}

Text {
text: "A"
Layout.columnSpan: 2
color: "dimgrey"
text: "Grid Color"
}

IgnSpinBox {
Layout.fillWidth: true
id: a
maximumValue: 1.00
minimumValue: 0.00
value: 1.0
stepSize: 0.01
decimals: getDecimals(a.width)
onEditingFinished: GridConfig.SetColor(r.value, g.value, b.value, a.value)
}

Button {
Layout.alignment: Qt.AlignHCenter
Layout.columnSpan: 4
id: color
text: qsTr("Custom Color")
onClicked: colorDialog.open()

ColorDialog {
id: colorDialog
title: "Choose a grid color"
visible: false
onAccepted: {
r.value = colorDialog.color.r
g.value = colorDialog.color.g
b.value = colorDialog.color.b
a.value = colorDialog.color.a
GridConfig.SetColor(colorDialog.color.r, colorDialog.color.g, colorDialog.color.b, colorDialog.color.a)
colorDialog.close()
}
onRejected: {
colorDialog.close()
}
}
}

// Bottom spacer
Item {
Layout.columnSpan: 4
Layout.fillHeight: true
GzColor {
id: gzColorGrid
Layout.columnSpan: 2
Layout.alignment: Qt.AlignRight
Layout.bottomMargin: 10
Layout.rightMargin: 20
onGzColorSet: GridConfig.SetColor(gzColorGrid.r, gzColorGrid.g, gzColorGrid.b, gzColorGrid.a)
}
}

0 comments on commit 27c2634

Please sign in to comment.