From 9819998b86c686e24368d761ecac866af9bc41ce Mon Sep 17 00:00:00 2001 From: Alessandro Pasotti Date: Fri, 28 Jul 2023 15:30:52 +0200 Subject: [PATCH] Fix CAD distance units Fix #53899 --- src/gui/qgsadvanceddigitizingdockwidget.cpp | 30 ++------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/src/gui/qgsadvanceddigitizingdockwidget.cpp b/src/gui/qgsadvanceddigitizingdockwidget.cpp index 4af1279dda33..8d8e55f4bdc5 100644 --- a/src/gui/qgsadvanceddigitizingdockwidget.cpp +++ b/src/gui/qgsadvanceddigitizingdockwidget.cpp @@ -831,30 +831,7 @@ double QgsAdvancedDigitizingDockWidget::parseUserInput( const QString &inputValu double value = qgsPermissiveToDouble( cleanedInputValue, ok ); - if ( ok ) - { - // Note: only distance is formatted for now, but it would be nice to - // handle other constraints in the future, this is the reason - // for the switch. - switch ( type ) - { - case Qgis::CadConstraintType::Distance: - { - // Convert distance to meters - const double factorUnits = QgsUnitTypes::fromUnitToUnitFactor( distanceUnit, Qgis::DistanceUnit::Meters ); - value *= factorUnits; - break; - } - case Qgis::CadConstraintType::Generic: - case Qgis::CadConstraintType::Angle: - case Qgis::CadConstraintType::ZValue: - case Qgis::CadConstraintType::MValue: - case Qgis::CadConstraintType::XCoordinate: - case Qgis::CadConstraintType::YCoordinate: - break; - } - } - else + if ( ! ok ) { // try to evaluate expression QgsExpression expr( inputValue ); @@ -2034,11 +2011,8 @@ QString QgsAdvancedDigitizingDockWidget::CadConstraint::displayValue() const } case Qgis::CadConstraintType::Distance: { - // Value is always in meters (cartesian) #spellok const Qgis::DistanceUnit units { QgsProject::instance()->distanceUnits() }; - const double factorUnits = QgsUnitTypes::fromUnitToUnitFactor( Qgis::DistanceUnit::Meters, units ); - const double convertedValue { mValue * factorUnits }; - return QgsDistanceArea::formatDistance( convertedValue, mPrecision, units, true ); + return QgsDistanceArea::formatDistance( mValue, mPrecision, units, true ); } case Qgis::CadConstraintType::Generic: case Qgis::CadConstraintType::ZValue: