Resolved issue #366. Update 'Point from Distance and Angle' tool to read
distance and angle between points. --HG-- branch : develop
This commit is contained in:
parent
bd783d4df1
commit
baddba9e43
|
@ -1,4 +1,5 @@
|
|||
# Version 0.5.0
|
||||
- [#366] Update 'Point from Distance and Angle' tool to read distance and angle between points.
|
||||
- [#395] Create Curve tool which uses point as control handle.
|
||||
- pdftops updated to version 3.04.
|
||||
- [#306] Layout generator optimization. Divide into strips.
|
||||
|
|
|
@ -286,7 +286,7 @@ void DialogEndLine::ShowDialog(bool click)
|
|||
QLineF line = QLineF(point->toQPointF(), scene->getScenePos());
|
||||
|
||||
//Radius of point circle, but little bigger. Need handle with hover sizes.
|
||||
qreal radius = ToPixel(DefPointRadius/*mm*/, Unit::Mm)*1.5;
|
||||
const qreal radius = ToPixel(DefPointRadius/*mm*/, Unit::Mm)*1.5;
|
||||
if (line.length() <= radius)
|
||||
{
|
||||
return;
|
||||
|
@ -298,6 +298,7 @@ void DialogEndLine::ShowDialog(bool click)
|
|||
SCASSERT(line != nullptr);
|
||||
|
||||
this->SetAngle(line->Angle());//Show in dialog angle what user choose
|
||||
this->SetFormula(line->Length());
|
||||
emit ToolTip("");
|
||||
timerFormula->start();
|
||||
this->show();
|
||||
|
|
|
@ -53,7 +53,15 @@ void VisToolEndLine::RefreshGeometry()
|
|||
QLineF line;
|
||||
if (qFuzzyIsNull(length))
|
||||
{
|
||||
line = QLineF(first->toQPointF(), Ray(first->toQPointF()));
|
||||
if (QGuiApplication::keyboardModifiers() == Qt::ShiftModifier)
|
||||
{
|
||||
line = QLineF(first->toQPointF(), Visualization::scenePos);
|
||||
line.setAngle(CorrectAngle(line.angle()));
|
||||
}
|
||||
else
|
||||
{
|
||||
line = QLineF(first->toQPointF(), Visualization::scenePos);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -61,8 +69,12 @@ void VisToolEndLine::RefreshGeometry()
|
|||
DrawPoint(point, line.p2(), mainColor);
|
||||
}
|
||||
DrawLine(this, line, mainColor, lineStyle);
|
||||
Visualization::toolTip = QString(tr("<b>Point at distance and angle</b>: angle = %1°; <b>Shift</b> - "
|
||||
"sticking angle, <b>Enter</b> - finish creation")).arg(this->line().angle());
|
||||
static const QString prefix = VDomDocument::UnitsToStr(qApp->patternUnit(), true);
|
||||
Visualization::toolTip = QString(tr("<b>Point at distance and angle</b>: angle = %1°, length = %2%3; "
|
||||
"<b>Shift</b> - sticking angle, <b>Enter</b> - finish creation"))
|
||||
.arg(this->line().angle())
|
||||
.arg(qApp->TrVars()->FormulaToUser(QString::number(qApp->fromPixel(this->line().length()))))
|
||||
.arg(prefix);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -77,6 +89,12 @@ void VisToolEndLine::SetAngle(const QString &expression)
|
|||
angle = FindVal(expression, Visualization::data->PlainVariables());
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
QString VisToolEndLine::Length() const
|
||||
{
|
||||
return QString::number(qApp->fromPixel(this->line().length()));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void VisToolEndLine::setLength(const QString &expression)
|
||||
{
|
||||
|
|
|
@ -41,9 +41,13 @@ public:
|
|||
virtual ~VisToolEndLine() Q_DECL_OVERRIDE;
|
||||
|
||||
virtual void RefreshGeometry() Q_DECL_OVERRIDE;
|
||||
|
||||
QString Angle() const;
|
||||
void SetAngle(const QString &expression);
|
||||
|
||||
QString Length() const;
|
||||
void setLength(const QString &expression);
|
||||
|
||||
virtual int type() const Q_DECL_OVERRIDE {return Type;}
|
||||
enum { Type = UserType + static_cast<int>(Vis::ToolEndLine)};
|
||||
private:
|
||||
|
|
Loading…
Reference in New Issue
Block a user