From ff09f0524dbc651cb242bc30cf5c51ce975ce374 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 30 Dec 2014 15:20:29 +0100 Subject: [PATCH] + fixes #0001656: Vertical/horizontal distance constraint confuses for a line or two points --- src/Mod/Sketcher/Gui/EditDatumDialog.cpp | 3 ++- src/Mod/Sketcher/Gui/TaskSketcherConstrains.cpp | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Mod/Sketcher/Gui/EditDatumDialog.cpp b/src/Mod/Sketcher/Gui/EditDatumDialog.cpp index 10bc918bc..ea5f741d6 100644 --- a/src/Mod/Sketcher/Gui/EditDatumDialog.cpp +++ b/src/Mod/Sketcher/Gui/EditDatumDialog.cpp @@ -116,9 +116,10 @@ void EditDatumDialog::exec(bool atCursor) //ui_ins_datum.lineEdit->setParamGrpPath("User parameter:History/Sketcher/SetDatum"); + // e.g. an angle or a distance X or Y applied on a line or two vertexes if (Constr->Type == Sketcher::Angle || ((Constr->Type == Sketcher::DistanceX || Constr->Type == Sketcher::DistanceY) && - Constr->FirstPos == Sketcher::none || Constr->Second != Sketcher::Constraint::GeoUndef)) + (Constr->FirstPos == Sketcher::none || Constr->Second != Sketcher::Constraint::GeoUndef))) // hide negative sign init_val.setValue(std::abs(datum)); diff --git a/src/Mod/Sketcher/Gui/TaskSketcherConstrains.cpp b/src/Mod/Sketcher/Gui/TaskSketcherConstrains.cpp index 1a0eb7d21..9c5acab89 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherConstrains.cpp +++ b/src/Mod/Sketcher/Gui/TaskSketcherConstrains.cpp @@ -24,6 +24,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ +# include # include # include #endif @@ -437,7 +438,7 @@ void TaskSketcherConstrains::slotConstraintsChanged(void) case Sketcher::DistanceX: if (Filter<3 || !(*it)->Name.empty()) { ConstraintItem* item = new ConstraintItem(hdist,name,i-1,(*it)->Type); - name = QString::fromLatin1("%1 (%2)").arg(name).arg(Base::Quantity((*it)->Value,Base::Unit::Length).getUserString()); + name = QString::fromLatin1("%1 (%2)").arg(name).arg(Base::Quantity(std::abs((*it)->Value),Base::Unit::Length).getUserString()); item->setData(Qt::UserRole, name); ui->listWidgetConstraints->addItem(item); } @@ -445,7 +446,7 @@ void TaskSketcherConstrains::slotConstraintsChanged(void) case Sketcher::DistanceY: if (Filter<3 || !(*it)->Name.empty()) { ConstraintItem* item = new ConstraintItem(vdist,name,i-1,(*it)->Type); - name = QString::fromLatin1("%1 (%2)").arg(name).arg(Base::Quantity((*it)->Value,Base::Unit::Length).getUserString()); + name = QString::fromLatin1("%1 (%2)").arg(name).arg(Base::Quantity(std::abs((*it)->Value),Base::Unit::Length).getUserString()); item->setData(Qt::UserRole, name); ui->listWidgetConstraints->addItem(item); }