Base: Quantity: return std::string
This commit is contained in:
committed by
Yorik van Havre
parent
c11b37e312
commit
2ea8a633ac
@@ -180,7 +180,8 @@ QString MeasureBase::getResultString()
|
||||
}
|
||||
|
||||
if (prop->isDerivedFrom(App::PropertyQuantity::getClassTypeId())) {
|
||||
return static_cast<App::PropertyQuantity*>(prop)->getQuantityValue().getUserString();
|
||||
return QString::fromStdString(
|
||||
static_cast<App::PropertyQuantity*>(prop)->getQuantityValue().getUserString());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -179,12 +179,23 @@ void QuickMeasure::addSelectionToMeasurement()
|
||||
}
|
||||
}
|
||||
|
||||
static QString areaStr(double value)
|
||||
{
|
||||
Base::Quantity area(value, Base::Unit::Area);
|
||||
return QString::fromStdString(area.getUserString());
|
||||
}
|
||||
|
||||
static QString lenghtStr(double value)
|
||||
{
|
||||
Base::Quantity dist(value, Base::Unit::Length);
|
||||
return QString::fromStdString(dist.getUserString());
|
||||
}
|
||||
|
||||
void QuickMeasure::printResult()
|
||||
{
|
||||
MeasureType mtype = measurement->getType();
|
||||
if (mtype == MeasureType::Surfaces) {
|
||||
Base::Quantity area(measurement->area(), Base::Unit::Area);
|
||||
print(tr("Total area: %1").arg(area.getUserString()));
|
||||
print(tr("Total area: %1").arg(areaStr(measurement->area())));
|
||||
}
|
||||
/* deactivated because computing the volumes/area of solids makes a significant
|
||||
slow down in selection of complex solids.
|
||||
@@ -195,48 +206,37 @@ void QuickMeasure::printResult()
|
||||
%2").arg(vol.getSafeUserString()).arg(area.getSafeUserString()));
|
||||
}*/
|
||||
else if (mtype == MeasureType::TwoPlanes) {
|
||||
Base::Quantity dist(measurement->planePlaneDistance(), Base::Unit::Length);
|
||||
print(tr("Nominal distance: %1").arg(dist.getSafeUserString()));
|
||||
print(tr("Nominal distance: %1").arg(lenghtStr(measurement->planePlaneDistance())));
|
||||
}
|
||||
else if (mtype == MeasureType::Cone || mtype == MeasureType::Plane) {
|
||||
Base::Quantity area(measurement->area(), Base::Unit::Area);
|
||||
print(tr("Area: %1").arg(area.getUserString()));
|
||||
print(tr("Area: %1").arg(areaStr(measurement->area())));
|
||||
}
|
||||
else if (mtype == MeasureType::Cylinder || mtype == MeasureType::Sphere
|
||||
|| mtype == MeasureType::Torus) {
|
||||
Base::Quantity area(measurement->area(), Base::Unit::Area);
|
||||
Base::Quantity rad(measurement->radius(), Base::Unit::Length);
|
||||
print(tr("Area: %1, Radius: %2").arg(area.getSafeUserString(), rad.getSafeUserString()));
|
||||
print(tr("Area: %1, Radius: %2")
|
||||
.arg(areaStr(measurement->area()), lenghtStr(measurement->radius())));
|
||||
}
|
||||
else if (mtype == MeasureType::Edges) {
|
||||
Base::Quantity dist(measurement->length(), Base::Unit::Length);
|
||||
print(tr("Total length: %1").arg(dist.getSafeUserString()));
|
||||
print(tr("Total length: %1").arg(lenghtStr(measurement->length())));
|
||||
}
|
||||
else if (mtype == MeasureType::TwoParallelLines) {
|
||||
Base::Quantity dist(measurement->lineLineDistance(), Base::Unit::Length);
|
||||
print(tr("Nominal distance: %1").arg(dist.getSafeUserString()));
|
||||
print(tr("Nominal distance: %1").arg(lenghtStr(measurement->lineLineDistance())));
|
||||
}
|
||||
else if (mtype == MeasureType::TwoLines) {
|
||||
Base::Quantity angle(measurement->angle(), Base::Unit::Length);
|
||||
Base::Quantity dist(measurement->length(), Base::Unit::Length);
|
||||
print(tr("Angle: %1, Total length: %2")
|
||||
.arg(angle.getSafeUserString(), dist.getSafeUserString()));
|
||||
.arg(lenghtStr(measurement->angle()), lenghtStr(measurement->length())));
|
||||
}
|
||||
else if (mtype == MeasureType::Line) {
|
||||
Base::Quantity dist(measurement->length(), Base::Unit::Length);
|
||||
print(tr("Length: %1").arg(dist.getSafeUserString()));
|
||||
print(tr("Length: %1").arg(lenghtStr(measurement->length())));
|
||||
}
|
||||
else if (mtype == MeasureType::Circle) {
|
||||
Base::Quantity dist(measurement->radius(), Base::Unit::Length);
|
||||
print(tr("Radius: %1").arg(dist.getSafeUserString()));
|
||||
print(tr("Radius: %1").arg(lenghtStr(measurement->radius())));
|
||||
}
|
||||
else if (mtype == MeasureType::PointToPoint) {
|
||||
Base::Quantity dist(measurement->length(), Base::Unit::Length);
|
||||
print(tr("Distance: %1").arg(dist.getSafeUserString()));
|
||||
print(tr("Distance: %1").arg(lenghtStr(measurement->length())));
|
||||
}
|
||||
else if (mtype == MeasureType::PointToEdge || mtype == MeasureType::PointToSurface) {
|
||||
Base::Quantity dist(measurement->length(), Base::Unit::Length);
|
||||
print(tr("Minimum distance: %1").arg(dist.getSafeUserString()));
|
||||
print(tr("Minimum distance: %1").arg(lenghtStr(measurement->length())));
|
||||
}
|
||||
else {
|
||||
print(QString::fromLatin1(""));
|
||||
|
||||
@@ -263,7 +263,7 @@ void ViewProviderMeasureBase::draggerChangedCallback(void* data, SoDragger*)
|
||||
|
||||
void ViewProviderMeasureBase::setLabelValue(const Base::Quantity& value)
|
||||
{
|
||||
pLabel->string.setValue(value.getUserString().toUtf8().constData());
|
||||
pLabel->string.setValue(value.getUserString().c_str());
|
||||
}
|
||||
|
||||
void ViewProviderMeasureBase::setLabelValue(const QString& value)
|
||||
|
||||
@@ -478,23 +478,23 @@ void ViewProviderMeasureDistance::redrawAnnotation()
|
||||
|
||||
auto propDistance =
|
||||
dynamic_cast<App::PropertyDistance*>(pcObject->getPropertyByName("Distance"));
|
||||
setLabelValue(propDistance->getQuantityValue().getUserString());
|
||||
setLabelValue(QString::fromStdString(propDistance->getQuantityValue().getUserString()));
|
||||
|
||||
// Set delta distance
|
||||
auto propDistanceX =
|
||||
static_cast<App::PropertyDistance*>(getMeasureObject()->getPropertyByName("DistanceX"));
|
||||
static_cast<DimensionLinear*>(pDeltaDimensionSwitch->getChild(0))
|
||||
->text.setValue("Δx: " + propDistanceX->getQuantityValue().getUserString().toUtf8());
|
||||
->text.setValue(("Δx: " + propDistanceX->getQuantityValue().getUserString()).c_str());
|
||||
|
||||
auto propDistanceY =
|
||||
static_cast<App::PropertyDistance*>(getMeasureObject()->getPropertyByName("DistanceY"));
|
||||
static_cast<DimensionLinear*>(pDeltaDimensionSwitch->getChild(1))
|
||||
->text.setValue("Δy: " + propDistanceY->getQuantityValue().getUserString().toUtf8());
|
||||
->text.setValue(("Δy: " + propDistanceY->getQuantityValue().getUserString()).c_str());
|
||||
|
||||
auto propDistanceZ =
|
||||
static_cast<App::PropertyDistance*>(getMeasureObject()->getPropertyByName("DistanceZ"));
|
||||
static_cast<DimensionLinear*>(pDeltaDimensionSwitch->getChild(2))
|
||||
->text.setValue("Δz: " + propDistanceZ->getQuantityValue().getUserString().toUtf8());
|
||||
->text.setValue(("Δz: " + propDistanceZ->getQuantityValue().getUserString()).c_str());
|
||||
|
||||
// Set matrix
|
||||
SbMatrix matrix = getMatrix();
|
||||
@@ -529,7 +529,6 @@ void ViewProviderMeasureDistance::onChanged(const App::Property* prop)
|
||||
->backgroundColor.setValue(bColor.r, bColor.g, bColor.g);
|
||||
}
|
||||
|
||||
|
||||
ViewProviderMeasureBase::onChanged(prop);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user