diff --git a/src/Gui/CommandView.cpp b/src/Gui/CommandView.cpp index d9eb3bc9a..7056906e3 100644 --- a/src/Gui/CommandView.cpp +++ b/src/Gui/CommandView.cpp @@ -2298,9 +2298,9 @@ void StdCmdMeasureDistance::activated(int iMsg) Gui::View3DInventorViewer* viewer = view->getViewer(); viewer->setEditing(true); viewer->setEditingCursor(QCursor(QPixmap(cursor_ruler), 7, 7)); - - // Derives from QObject and we have a parent object, so we don't - // require a delete. + + // Derives from QObject and we have a parent object, so we don't + // require a delete. PointMarker* marker = new PointMarker(viewer); viewer->addEventCallback(SoMouseButtonEvent::getClassTypeId(), ViewProviderMeasureDistance::measureDistanceCallback, marker); diff --git a/src/Gui/ViewProviderMeasureDistance.cpp b/src/Gui/ViewProviderMeasureDistance.cpp index 5db344cde..d22dcfc51 100644 --- a/src/Gui/ViewProviderMeasureDistance.cpp +++ b/src/Gui/ViewProviderMeasureDistance.cpp @@ -270,12 +270,13 @@ void PointMarker::customEvent(QEvent* e) const SbVec3f& pt2 = vp->pCoords->point[1]; md->P1.setValue(Base::Vector3d(pt1[0],pt1[1],pt1[2])); md->P2.setValue(Base::Vector3d(pt2[0],pt2[1],pt2[2])); - std::stringstream s; - s.precision(3); - s.setf(std::ios::fixed | std::ios::showpoint); - s << "Distance: " << md->Distance.getValue(); - md->Label.setValue(s.str()); + + QString str = QString::fromLatin1("Distance: %1") + .arg(Base::Quantity(md->Distance.getValue(), Base::Unit::Length).getUserString()); + md->Label.setValue(str.toUtf8().constData()); doc->commitCommand(); + + this->deleteLater(); } PROPERTY_SOURCE(Gui::ViewProviderPointMarker, Gui::ViewProviderDocumentObject) @@ -327,7 +328,6 @@ void ViewProviderMeasureDistance::measureDistanceCallback(void * ud, SoEventCall // leave mode view->setEditing(false); view->removeEventCallback(SoMouseButtonEvent::getClassTypeId(), measureDistanceCallback, ud); - pm->deleteLater(); } } else if (mbe->getButton() != SoMouseButtonEvent::BUTTON1 && mbe->getState() == SoButtonEvent::UP) {