From 52362a786b0b47de3c6736d8d3ebbb34e068d1fb Mon Sep 17 00:00:00 2001 From: Louise Poubel Date: Mon, 25 Oct 2021 17:36:52 -0700 Subject: [PATCH] Fix integers and floats on component inspector Signed-off-by: Louise Poubel --- .../component_inspector/ComponentInspector.cc | 73 +++++++++++++++++++ .../ComponentInspector.qrc | 2 + src/gui/plugins/component_inspector/Float.qml | 20 +++-- .../plugins/component_inspector/Integer.qml | 20 +++-- 4 files changed, 105 insertions(+), 10 deletions(-) diff --git a/src/gui/plugins/component_inspector/ComponentInspector.cc b/src/gui/plugins/component_inspector/ComponentInspector.cc index a628836956..89c264a738 100644 --- a/src/gui/plugins/component_inspector/ComponentInspector.cc +++ b/src/gui/plugins/component_inspector/ComponentInspector.cc @@ -27,12 +27,15 @@ #include "ignition/gazebo/components/Actor.hh" #include "ignition/gazebo/components/AngularAcceleration.hh" #include "ignition/gazebo/components/AngularVelocity.hh" +#include "ignition/gazebo/components/BatterySoC.hh" #include "ignition/gazebo/components/CastShadows.hh" +#include "ignition/gazebo/components/CenterOfVolume.hh" #include "ignition/gazebo/components/ChildLinkName.hh" #include "ignition/gazebo/components/Collision.hh" #include "ignition/gazebo/components/Factory.hh" #include "ignition/gazebo/components/Gravity.hh" #include "ignition/gazebo/components/Joint.hh" +#include "ignition/gazebo/components/LaserRetro.hh" #include "ignition/gazebo/components/Level.hh" #include "ignition/gazebo/components/Light.hh" #include "ignition/gazebo/components/LinearAcceleration.hh" @@ -53,7 +56,10 @@ #include "ignition/gazebo/components/Sensor.hh" #include "ignition/gazebo/components/SourceFilePath.hh" #include "ignition/gazebo/components/Static.hh" +#include "ignition/gazebo/components/ThreadPitch.hh" +#include "ignition/gazebo/components/Transparency.hh" #include "ignition/gazebo/components/Visual.hh" +#include "ignition/gazebo/components/Volume.hh" #include "ignition/gazebo/components/WindMode.hh" #include "ignition/gazebo/components/World.hh" #include "ignition/gazebo/EntityComponentManager.hh" @@ -184,6 +190,13 @@ void ignition::gazebo::setData(QStandardItem *_item, const int &_data) _item->setData(_data, ComponentsModel::RoleNames().key("data")); } +////////////////////////////////////////////////// +template<> +void ignition::gazebo::setData(QStandardItem *_item, const Entity &_data) +{ + setData(_item, static_cast(_data)); +} + ////////////////////////////////////////////////// template<> void ignition::gazebo::setData(QStandardItem *_item, const double &_data) @@ -462,6 +475,13 @@ void ComponentInspector::Update(const UpdateInfo &, setUnit(item, "rad/s"); } } + else if (typeId == components::BatterySoC::typeId) + { + auto comp = _ecm.Component( + this->dataPtr->entity); + if (comp) + setData(item, comp->Data()); + } else if (typeId == components::CastShadows::typeId) { auto comp = _ecm.Component( @@ -469,6 +489,16 @@ void ComponentInspector::Update(const UpdateInfo &, if (comp) setData(item, comp->Data()); } + else if (typeId == components::CenterOfVolume::typeId) + { + auto comp = _ecm.Component( + this->dataPtr->entity); + if (comp) + { + setData(item, comp->Data()); + setUnit(item, "m"); + } + } else if (typeId == components::ChildLinkName::typeId) { auto comp = _ecm.Component( @@ -485,6 +515,12 @@ void ComponentInspector::Update(const UpdateInfo &, setUnit(item, "m/s\u00B2"); } } + else if (typeId == components::LaserRetro::typeId) + { + auto comp = _ecm.Component(this->dataPtr->entity); + if (comp) + setData(item, comp->Data()); + } else if (typeId == components::LinearAcceleration::typeId) { auto comp = _ecm.Component( @@ -584,6 +620,33 @@ void ComponentInspector::Update(const UpdateInfo &, if (comp) setData(item, comp->Data()); } + else if (typeId == components::ThreadPitch::typeId) + { + auto comp = _ecm.Component( + this->dataPtr->entity); + if (comp) + { + setData(item, comp->Data()); + setUnit(item, "m"); + } + } + else if (typeId == components::Transparency::typeId) + { + auto comp = _ecm.Component( + this->dataPtr->entity); + if (comp) + setData(item, comp->Data()); + } + else if (typeId == components::Volume::typeId) + { + auto comp = _ecm.Component( + this->dataPtr->entity); + if (comp) + { + setData(item, comp->Data()); + setUnit(item, "m\u00B3"); + } + } else if (typeId == components::WindMode::typeId) { auto comp = _ecm.Component(this->dataPtr->entity); @@ -600,6 +663,16 @@ void ComponentInspector::Update(const UpdateInfo &, setUnit(item, "rad/s\u00B2"); } } + else if (typeId == components::WorldAngularVelocity::typeId) + { + auto comp = _ecm.Component( + this->dataPtr->entity); + if (comp) + { + setData(item, comp->Data()); + setUnit(item, "rad/s"); + } + } else if (typeId == components::WorldLinearVelocity::typeId) { auto comp = _ecm.Component( diff --git a/src/gui/plugins/component_inspector/ComponentInspector.qrc b/src/gui/plugins/component_inspector/ComponentInspector.qrc index f6b72025ae..952f14179f 100644 --- a/src/gui/plugins/component_inspector/ComponentInspector.qrc +++ b/src/gui/plugins/component_inspector/ComponentInspector.qrc @@ -2,6 +2,8 @@ Boolean.qml ComponentInspector.qml + Float.qml + Integer.qml NoData.qml Physics.qml Pose3d.qml diff --git a/src/gui/plugins/component_inspector/Float.qml b/src/gui/plugins/component_inspector/Float.qml index a72d7801be..f01cfb8e35 100644 --- a/src/gui/plugins/component_inspector/Float.qml +++ b/src/gui/plugins/component_inspector/Float.qml @@ -38,6 +38,9 @@ Rectangle { // Maximum spinbox value property double spinMax: 1000000 + // Unit + property string unit: model && model.unit != undefined ? model.unit : '' + RowLayout { anchors.fill: parent @@ -55,13 +58,20 @@ Rectangle { id: typeHeader } - IgnSpinBox { + // TODO(anyone) Support write mode + Text { id: content - value: model.data - minimumValue: -spinMax - maximumValue: spinMax - decimals: xSpin.width < 100 ? 2 : 6 Layout.fillWidth: true + horizontalAlignment: Text.AlignRight + color: Material.theme == Material.Light ? "black" : "white" + font.pointSize: 12 + text: { + var decimals = getDecimals(content.width) + var valueText = model.data.toFixed(decimals) + if (unit !== '') + valueText += ' ' + unit + return valueText + } } Item { diff --git a/src/gui/plugins/component_inspector/Integer.qml b/src/gui/plugins/component_inspector/Integer.qml index 316c2b2e7c..12c9b5174e 100644 --- a/src/gui/plugins/component_inspector/Integer.qml +++ b/src/gui/plugins/component_inspector/Integer.qml @@ -38,7 +38,10 @@ Rectangle { // Maximum spinbox value property double spinMax: 1000000 - Row { + // Unit + property string unit: model && model.unit != undefined ? model.unit : '' + + RowLayout { anchors.fill: parent Item { @@ -55,12 +58,19 @@ Rectangle { id: typeHeader } - IgnSpinBox { + // TODO(anyone) Support write mode + Text { id: content - value: model.data - minimumValue: -spinMax - maximumValue: spinMax Layout.fillWidth: true + horizontalAlignment: Text.AlignRight + color: Material.theme == Material.Light ? "black" : "white" + font.pointSize: 12 + text: { + var valueText = model.data + if (unit !== '') + valueText += ' ' + unit + return valueText + } } Item {