New option Interactive tools.
This commit is contained in:
parent
64bfafb1d3
commit
6ec85f3bdf
|
@ -9,6 +9,7 @@
|
|||
- [smart-pattern/valentina#184] Fix incorrect seam allowance.
|
||||
- Export area of piece in Final measurements.
|
||||
- New option Show accuracy radius.
|
||||
- New option Interactive tools.
|
||||
|
||||
# Valentina 0.7.52 September 12, 2022
|
||||
- Fix crash when default locale is ru.
|
||||
|
|
|
@ -123,6 +123,7 @@ PreferencesConfigurationPage::PreferencesConfigurationPage(QWidget *parent)
|
|||
|
||||
ui->checkBoxFreeCurve->setChecked(settings->IsFreeCurveMode());
|
||||
ui->checkBoxZoomFitBestCurrentPP->setChecked(settings->IsDoubleClickZoomFitBestCurrentPP());
|
||||
ui->checkBoxInteractiveTools->setChecked(settings->IsInteractiveTools());
|
||||
|
||||
//----------------------- Toolbar
|
||||
ui->toolBarStyleCheck->setChecked(settings->GetToolBarStyle());
|
||||
|
@ -202,6 +203,7 @@ auto PreferencesConfigurationPage::Apply() -> QStringList
|
|||
|
||||
settings->SetFreeCurveMode(ui->checkBoxFreeCurve->isChecked());
|
||||
settings->SetDoubleClickZoomFitBestCurrentPP(ui->checkBoxZoomFitBestCurrentPP->isChecked());
|
||||
settings->SetInteractiveTools(ui->checkBoxInteractiveTools->isChecked());
|
||||
|
||||
if (m_langChanged || m_systemChanged)
|
||||
{
|
||||
|
|
|
@ -33,9 +33,9 @@
|
|||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>-27</y>
|
||||
<y>0</y>
|
||||
<width>624</width>
|
||||
<height>838</height>
|
||||
<height>867</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
|
@ -235,6 +235,19 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBoxInteractiveTools">
|
||||
<property name="toolTip">
|
||||
<string>Disable if you want to skip interactive part of creating tools. And go straight to editing formulas instead.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Interactive tools</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -91,6 +91,7 @@ Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationAskContinueIfLayout
|
|||
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationToolBarStyle, (QLatin1String("configuration/tool_bar_style"))) // NOLINT
|
||||
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationFreeCurveMode, (QLatin1String("configuration/freeCurveMode"))) // NOLINT
|
||||
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationDoubleClickZoomFitBestCurrentPP, (QLatin1String("configuration/doubleClickZoomFitBestCurrentPP"))) // NOLINT
|
||||
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationInteractiveTools, (QLatin1String("configuration/interactiveTools"))) // NOLINT
|
||||
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationDontUseNativeDialog, (QLatin1String("configuration/dontUseNativeDialog"))) // NOLINT
|
||||
|
||||
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingPatternUndo, (QLatin1String("pattern/undo"))) // NOLINT
|
||||
|
@ -670,6 +671,18 @@ void VCommonSettings::SetDoubleClickZoomFitBestCurrentPP(bool value)
|
|||
setValue(*settingConfigurationDoubleClickZoomFitBestCurrentPP, value);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
bool VCommonSettings::IsInteractiveTools() const
|
||||
{
|
||||
return value(*settingConfigurationInteractiveTools, true).toBool();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void VCommonSettings::SetInteractiveTools(bool value)
|
||||
{
|
||||
setValue(*settingConfigurationInteractiveTools, value);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
auto VCommonSettings::GetUndoCount() const -> int
|
||||
{
|
||||
|
|
|
@ -125,6 +125,9 @@ public:
|
|||
auto IsDoubleClickZoomFitBestCurrentPP() const -> bool;
|
||||
void SetDoubleClickZoomFitBestCurrentPP(bool value);
|
||||
|
||||
auto IsInteractiveTools() const -> bool;
|
||||
void SetInteractiveTools(bool value);
|
||||
|
||||
auto GetUndoCount() const -> int;
|
||||
void SetUndoCount(const int &value);
|
||||
|
||||
|
|
|
@ -292,10 +292,9 @@ void DialogAlongLine::ChosenSecondPoint(quint32 id, const QString &toolTip)
|
|||
|
||||
prepare = true;
|
||||
|
||||
if (m_buildMidpoint)
|
||||
if (m_buildMidpoint || not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
setModal(true);
|
||||
show();
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -305,6 +304,16 @@ void DialogAlongLine::ChosenSecondPoint(quint32 id, const QString &toolTip)
|
|||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogAlongLine::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
emit ToolTip(QString());
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
* @brief SetSecondPointId set id second point of line
|
||||
|
@ -380,13 +389,7 @@ void DialogAlongLine::ShowDialog(bool click)
|
|||
SetFormula(QString::number(FromPixel(len, *data->GetPatternUnit())));
|
||||
}
|
||||
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
FinishCreating();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -124,6 +124,8 @@ private:
|
|||
void SetCurrentLength();
|
||||
|
||||
void ChosenSecondPoint(quint32 id, const QString &toolTip);
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -257,17 +257,6 @@ void DialogArc::ShowDialog(bool click)
|
|||
auto *arcVis = qobject_cast<VisToolArc *>(vis);
|
||||
SCASSERT(arcVis != nullptr)
|
||||
|
||||
auto FinishCreating = [this, arcVis]()
|
||||
{
|
||||
arcVis->SetMode(Mode::Show);
|
||||
arcVis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
};
|
||||
|
||||
if (click)
|
||||
{
|
||||
// The check need to ignore first release of mouse button.
|
||||
|
@ -400,6 +389,11 @@ void DialogArc::ChosenObject(quint32 id, const SceneObject &type)
|
|||
}
|
||||
|
||||
prepare = true;
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -551,6 +545,18 @@ void DialogArc::EvalF()
|
|||
m_angleF2 = Eval(formulaData, m_flagF2);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogArc::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
* @brief GetCenter return id of center point
|
||||
|
|
|
@ -157,6 +157,8 @@ private:
|
|||
|
||||
void EvalRadius();
|
||||
void EvalF();
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -284,17 +284,6 @@ void DialogArcWithLength::ShowDialog(bool click)
|
|||
{
|
||||
if (prepare)
|
||||
{
|
||||
auto FinishCreating = [this]()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
};
|
||||
|
||||
if (click)
|
||||
{
|
||||
// The check need to ignore first release of mouse button.
|
||||
|
@ -384,6 +373,11 @@ void DialogArcWithLength::ChosenObject(quint32 id, const SceneObject &type)
|
|||
}
|
||||
|
||||
prepare = true;
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -544,3 +538,15 @@ void DialogArcWithLength::EvalF()
|
|||
|
||||
Eval(formulaData, m_flagF1);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogArcWithLength::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
|
|
@ -150,6 +150,8 @@ private:
|
|||
void Radius();
|
||||
void Length();
|
||||
void EvalF();
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -387,13 +387,7 @@ void DialogBisector::ShowDialog(bool click)
|
|||
SetFormula(QString::number(FromPixel(len, *data->GetPatternUnit())));
|
||||
}
|
||||
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
FinishCreating();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -443,9 +437,24 @@ void DialogBisector::ChosenThirdPoint(quint32 id)
|
|||
line->SetPoint3Id(id);
|
||||
line->RefreshGeometry();
|
||||
prepare = true;
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogBisector::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
emit ToolTip(QString());
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
|
|
|
@ -122,6 +122,8 @@ private:
|
|||
qint32 m_number{0};
|
||||
|
||||
void ChosenThirdPoint(quint32 id);
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -225,8 +225,7 @@ void DialogCurveIntersectAxis::ShowDialog(bool click)
|
|||
}
|
||||
|
||||
/*We will ignore click if poinet is in point circle*/
|
||||
VMainGraphicsScene *scene =
|
||||
qobject_cast<VMainGraphicsScene *>(VAbstractValApplication::VApp()->getCurrentScene());
|
||||
auto *scene = qobject_cast<VMainGraphicsScene *>(VAbstractValApplication::VApp()->getCurrentScene());
|
||||
SCASSERT(scene != nullptr)
|
||||
const QSharedPointer<VPointF> point = data->GeometricObject<VPointF>(GetBasePointId());
|
||||
QLineF line = QLineF(static_cast<QPointF>(*point), scene->getScenePos());
|
||||
|
@ -238,12 +237,11 @@ void DialogCurveIntersectAxis::ShowDialog(bool click)
|
|||
}
|
||||
}
|
||||
|
||||
VisToolCurveIntersectAxis *line = qobject_cast<VisToolCurveIntersectAxis *>(vis);
|
||||
auto *line = qobject_cast<VisToolCurveIntersectAxis *>(vis);
|
||||
SCASSERT(line != nullptr)
|
||||
SetAngle(line->Angle());//Show in dialog angle what user choose
|
||||
|
||||
this->SetAngle(line->Angle());//Show in dialog angle what user choose
|
||||
emit ToolTip(QString());
|
||||
|
||||
DialogAccepted();// Just set default values and don't show dialog
|
||||
}
|
||||
}
|
||||
|
@ -253,7 +251,7 @@ void DialogCurveIntersectAxis::ChosenObject(quint32 id, const SceneObject &type)
|
|||
{
|
||||
if (prepare == false)// After first choose we ignore all objects
|
||||
{
|
||||
VisToolCurveIntersectAxis *line = qobject_cast<VisToolCurveIntersectAxis *>(vis);
|
||||
auto *line = qobject_cast<VisToolCurveIntersectAxis *>(vis);
|
||||
SCASSERT(line != nullptr)
|
||||
|
||||
switch (number)
|
||||
|
@ -284,6 +282,14 @@ void DialogCurveIntersectAxis::ChosenObject(quint32 id, const SceneObject &type)
|
|||
line->setAxisPointId(id);
|
||||
line->RefreshGeometry();
|
||||
prepare = true;
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -177,6 +177,11 @@ void DialogCutArc::ChosenObject(quint32 id, const SceneObject &type)
|
|||
auto *window = qobject_cast<VAbstractMainWindow *>(VAbstractValApplication::VApp()->getMainWindow());
|
||||
SCASSERT(window != nullptr)
|
||||
connect(vis.data(), &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip);
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -250,6 +255,16 @@ void DialogCutArc::ValidateAlias()
|
|||
CheckState();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogCutArc::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
emit ToolTip(QString());
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
* @brief setArcId set id of arc
|
||||
|
@ -388,11 +403,5 @@ void DialogCutArc::ShowDialog(bool click)
|
|||
}
|
||||
}
|
||||
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
FinishCreating();
|
||||
}
|
||||
|
|
|
@ -116,6 +116,8 @@ private:
|
|||
QString m_originAliasSuffix2{};
|
||||
|
||||
bool m_firstRelease{false};
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -185,6 +185,11 @@ void DialogCutSpline::ChosenObject(quint32 id, const SceneObject &type)
|
|||
auto *window = qobject_cast<VAbstractMainWindow *>(VAbstractValApplication::VApp()->getMainWindow());
|
||||
SCASSERT(window != nullptr)
|
||||
connect(vis.data(), &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip);
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -258,6 +263,16 @@ void DialogCutSpline::ValidateAlias()
|
|||
CheckState();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogCutSpline::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
emit ToolTip(QString());
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogCutSpline::DeployFormulaTextEdit()
|
||||
{
|
||||
|
@ -388,11 +403,5 @@ void DialogCutSpline::ShowDialog(bool click)
|
|||
}
|
||||
}
|
||||
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
FinishCreating();
|
||||
}
|
||||
|
|
|
@ -116,6 +116,8 @@ private:
|
|||
QString m_originAliasSuffix2{};
|
||||
|
||||
bool m_firstRelease{false};
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -185,6 +185,11 @@ void DialogCutSplinePath::ChosenObject(quint32 id, const SceneObject &type)
|
|||
auto *window = qobject_cast<VAbstractMainWindow *>(VAbstractValApplication::VApp()->getMainWindow());
|
||||
SCASSERT(window != nullptr)
|
||||
connect(vis.data(), &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip);
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -258,6 +263,16 @@ void DialogCutSplinePath::ValidateAlias()
|
|||
CheckState();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogCutSplinePath::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
emit ToolTip(QString());
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogCutSplinePath::DeployFormulaTextEdit()
|
||||
{
|
||||
|
@ -389,11 +404,5 @@ void DialogCutSplinePath::ShowDialog(bool click)
|
|||
}
|
||||
}
|
||||
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
FinishCreating();
|
||||
}
|
||||
|
|
|
@ -115,6 +115,8 @@ private:
|
|||
QString m_originAliasSuffix2{};
|
||||
|
||||
bool m_firstRelease{false};
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -442,6 +442,18 @@ void DialogEllipticalArc::EvalAngles()
|
|||
m_angleRotation = Eval(formulaData, m_flagRotationAngle);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogEllipticalArc::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogEllipticalArc::FXRadius1()
|
||||
{
|
||||
|
@ -633,13 +645,7 @@ void DialogEllipticalArc::ShowDialog(bool click)
|
|||
SetRotationAngle(QString::number(Angle() - path->StartingRotationAngle()));
|
||||
}
|
||||
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
FinishCreating();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -671,6 +677,11 @@ void DialogEllipticalArc::ChosenObject(quint32 id, const SceneObject &type)
|
|||
vis->VisualMode(id);
|
||||
}
|
||||
prepare = true;
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -186,6 +186,8 @@ private:
|
|||
|
||||
void EvalRadiuses();
|
||||
void EvalAngles();
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -221,6 +221,11 @@ void DialogEndLine::ChosenObject(quint32 id, const SceneObject &type)
|
|||
SCASSERT(window != nullptr)
|
||||
connect(vis.data(), &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip);
|
||||
prepare = true;
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -353,16 +358,12 @@ void DialogEndLine::ShowDialog(bool click)
|
|||
return;
|
||||
}
|
||||
}
|
||||
this->setModal(true);
|
||||
|
||||
auto *line = qobject_cast<VisToolEndLine *>(vis);
|
||||
SCASSERT(line != nullptr)
|
||||
SetAngle(line->Angle());//Show in dialog angle what user choose
|
||||
SetFormula(line->Length());
|
||||
|
||||
this->SetAngle(line->Angle());//Show in dialog angle what user choose
|
||||
this->SetFormula(line->Length());
|
||||
emit ToolTip(QString());
|
||||
timerFormulaLength->start();
|
||||
this->show();
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -397,6 +398,15 @@ void DialogEndLine::closeEvent(QCloseEvent *event)
|
|||
DialogTool::closeEvent(event);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogEndLine::FinishCreating()
|
||||
{
|
||||
setModal(true);
|
||||
emit ToolTip(QString());
|
||||
timerFormulaLength->start();
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
DialogEndLine::~DialogEndLine()
|
||||
{
|
||||
|
|
|
@ -121,6 +121,8 @@ private:
|
|||
bool flagFormula;
|
||||
bool flagError;
|
||||
bool flagName;
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -249,8 +249,7 @@ void DialogLineIntersectAxis::ShowDialog(bool click)
|
|||
}
|
||||
|
||||
/*We will ignore click if poinet is in point circle*/
|
||||
VMainGraphicsScene *scene =
|
||||
qobject_cast<VMainGraphicsScene *>(VAbstractValApplication::VApp()->getCurrentScene());
|
||||
auto *scene = qobject_cast<VMainGraphicsScene *>(VAbstractValApplication::VApp()->getCurrentScene());
|
||||
SCASSERT(scene != nullptr)
|
||||
const QSharedPointer<VPointF> point = data->GeometricObject<VPointF>(GetBasePointId());
|
||||
QLineF line = QLineF(static_cast<QPointF>(*point), scene->getScenePos());
|
||||
|
@ -262,12 +261,12 @@ void DialogLineIntersectAxis::ShowDialog(bool click)
|
|||
}
|
||||
}
|
||||
|
||||
VisToolLineIntersectAxis *line = qobject_cast<VisToolLineIntersectAxis *>(vis);
|
||||
auto *line = qobject_cast<VisToolLineIntersectAxis *>(vis);
|
||||
SCASSERT(line != nullptr)
|
||||
SetAngle(line->Angle());//Show in dialog angle what user choose
|
||||
|
||||
this->SetAngle(line->Angle());//Show in dialog angle what user choose
|
||||
line->SetMode(Mode::Show);
|
||||
emit ToolTip(QString());
|
||||
|
||||
DialogAccepted();// Just set default values and don't show dialog
|
||||
}
|
||||
}
|
||||
|
@ -279,7 +278,7 @@ void DialogLineIntersectAxis::ChosenObject(quint32 id, const SceneObject &type)
|
|||
{
|
||||
if (type == SceneObject::Point)
|
||||
{
|
||||
VisToolLineIntersectAxis *line = qobject_cast<VisToolLineIntersectAxis *>(vis);
|
||||
auto *line = qobject_cast<VisToolLineIntersectAxis *>(vis);
|
||||
SCASSERT(line != nullptr)
|
||||
|
||||
switch (number)
|
||||
|
@ -289,7 +288,7 @@ void DialogLineIntersectAxis::ChosenObject(quint32 id, const SceneObject &type)
|
|||
{
|
||||
number++;
|
||||
line->VisualMode(id);
|
||||
VAbstractMainWindow *window =
|
||||
auto *window =
|
||||
qobject_cast<VAbstractMainWindow *>(VAbstractValApplication::VApp()->getMainWindow());
|
||||
SCASSERT(window != nullptr)
|
||||
connect(line, &VisToolLineIntersectAxis::ToolTip, window, &VAbstractMainWindow::ShowToolTip);
|
||||
|
@ -320,6 +319,13 @@ void DialogLineIntersectAxis::ChosenObject(quint32 id, const SceneObject &type)
|
|||
line->SetAxisPointId(id);
|
||||
line->RefreshGeometry();
|
||||
prepare = true;
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
emit ToolTip(QString());
|
||||
show();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -225,6 +225,11 @@ void DialogNormal::ChosenObject(quint32 id, const SceneObject &type)
|
|||
VAbstractValApplication::VApp()->getMainWindow());
|
||||
SCASSERT(window != nullptr)
|
||||
connect(line, &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip);
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -259,6 +264,16 @@ void DialogNormal::closeEvent(QCloseEvent *event)
|
|||
DialogTool::closeEvent(event);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogNormal::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
emit ToolTip(QString());
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
* @brief SetSecondPointId set id of second point
|
||||
|
@ -459,11 +474,5 @@ void DialogNormal::ShowDialog(bool click)
|
|||
SetFormula(QString::number(FromPixel(len, *data->GetPatternUnit())));
|
||||
}
|
||||
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
FinishCreating();
|
||||
}
|
||||
|
|
|
@ -122,6 +122,8 @@ private:
|
|||
|
||||
/** @brief number number of handled objects */
|
||||
qint32 m_number{0};
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -227,13 +227,7 @@ void DialogPointFromCircleAndTangent::ShowDialog(bool click)
|
|||
SetCircleRadius(QString::number(FromPixel(line.length(), *data->GetPatternUnit())));
|
||||
}
|
||||
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
FinishCreating();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -272,6 +266,11 @@ void DialogPointFromCircleAndTangent::ChosenObject(quint32 id, const SceneObject
|
|||
point->SetCenterId(id);
|
||||
point->RefreshGeometry();
|
||||
prepare = true;
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -371,6 +370,18 @@ void DialogPointFromCircleAndTangent::closeEvent(QCloseEvent *event)
|
|||
DialogTool::closeEvent(event);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogPointFromCircleAndTangent::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogPointFromCircleAndTangent::SetNotes(const QString ¬es)
|
||||
{
|
||||
|
|
|
@ -103,6 +103,8 @@ private:
|
|||
/** @brief number number of handled objects */
|
||||
qint32 m_number{0};
|
||||
bool m_firstRelease{false};
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -209,13 +209,7 @@ void DialogPointOfContact::ShowDialog(bool click)
|
|||
SetRadius(QString::number(FromPixel(line.length(), *data->GetPatternUnit())));
|
||||
}
|
||||
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
FinishCreating();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -278,6 +272,11 @@ void DialogPointOfContact::ChosenObject(quint32 id, const SceneObject &type)
|
|||
line->SetRadiusId(id);
|
||||
line->RefreshGeometry();
|
||||
prepare = true;
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -310,6 +309,18 @@ void DialogPointOfContact::closeEvent(QCloseEvent *event)
|
|||
DialogTool::closeEvent(event);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogPointOfContact::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
* @brief SetSecondPoint set id second point
|
||||
|
|
|
@ -114,6 +114,8 @@ private:
|
|||
qint32 m_number{0};
|
||||
|
||||
bool m_firstRelease{false};
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -252,17 +252,6 @@ void DialogPointOfIntersectionCircles::ShowDialog(bool click)
|
|||
return;
|
||||
}
|
||||
|
||||
auto FinishCreating = [this]()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
};
|
||||
|
||||
if (click)
|
||||
{
|
||||
// The check need to ignore first release of mouse button.
|
||||
|
@ -323,14 +312,22 @@ void DialogPointOfIntersectionCircles::ChosenObject(quint32 id, const SceneObjec
|
|||
case 0:
|
||||
if (SetObject(id, ui->comboBoxCircle1Center, QString()))
|
||||
{
|
||||
++m_stage;
|
||||
point->VisualMode(id);
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
m_stage = 2;
|
||||
emit ToolTip(tr("Select second circle center"));
|
||||
}
|
||||
else
|
||||
{
|
||||
++m_stage;
|
||||
auto *window = qobject_cast<VAbstractMainWindow *>(
|
||||
VAbstractValApplication::VApp()->getMainWindow());
|
||||
SCASSERT(window != nullptr)
|
||||
connect(vis.data(), &Visualization::ToolTip, window, &VAbstractMainWindow::ShowToolTip);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (getCurrentObjectId(ui->comboBoxCircle1Center) != id)
|
||||
|
@ -341,6 +338,12 @@ void DialogPointOfIntersectionCircles::ChosenObject(quint32 id, const SceneObjec
|
|||
point->RefreshGeometry();
|
||||
++m_stage;
|
||||
prepare = true;
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -485,6 +488,18 @@ void DialogPointOfIntersectionCircles::closeEvent(QCloseEvent *event)
|
|||
DialogTool::closeEvent(event);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogPointOfIntersectionCircles::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogPointOfIntersectionCircles::SetNotes(const QString ¬es)
|
||||
{
|
||||
|
|
|
@ -122,6 +122,8 @@ private:
|
|||
|
||||
/** @brief number number of handled objects */
|
||||
qint32 m_stage{0};
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -277,9 +277,24 @@ void DialogShoulderPoint::ChosenThirdPoint(quint32 id)
|
|||
line->SetLineP2Id(id);
|
||||
line->RefreshGeometry();
|
||||
prepare = true;
|
||||
|
||||
if (not VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
FinishCreating();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void DialogShoulderPoint::FinishCreating()
|
||||
{
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
emit ToolTip(QString());
|
||||
setModal(true);
|
||||
show();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
|
@ -467,11 +482,5 @@ void DialogShoulderPoint::ShowDialog(bool click)
|
|||
SetFormula(QString::number(FromPixel(line.length(), *data->GetPatternUnit())));
|
||||
}
|
||||
|
||||
vis->SetMode(Mode::Show);
|
||||
vis->RefreshGeometry();
|
||||
|
||||
emit ToolTip(QString());
|
||||
|
||||
setModal(true);
|
||||
show();
|
||||
FinishCreating();
|
||||
}
|
||||
|
|
|
@ -121,6 +121,8 @@ private:
|
|||
qint32 m_number{0};
|
||||
|
||||
void ChosenThirdPoint(quint32 id);
|
||||
|
||||
void FinishCreating();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -83,15 +83,21 @@ void VisToolLineIntersectAxis::RefreshGeometry()
|
|||
{
|
||||
QLineF axis;
|
||||
const QSharedPointer<VPointF> third = GetData()->GeometricObject<VPointF>(m_axisPointId);
|
||||
DrawPoint(m_basePoint, static_cast<QPointF>(*third), Color(VColor::MainColor));
|
||||
|
||||
if (VFuzzyComparePossibleNulls(m_angle, -1))
|
||||
{
|
||||
if (GetMode() == Mode::Show)
|
||||
{
|
||||
return;
|
||||
}
|
||||
axis = Axis(static_cast<QPointF>(*third), ScenePos());
|
||||
}
|
||||
else
|
||||
{
|
||||
axis = Axis(static_cast<QPointF>(*third), m_angle);
|
||||
}
|
||||
DrawPoint(m_basePoint, static_cast<QPointF>(*third), Color(VColor::MainColor));
|
||||
|
||||
DrawLine(m_axisLine, axis, Color(VColor::SupportColor), Qt::DashLine);
|
||||
|
||||
QPointF p;
|
||||
|
@ -105,6 +111,8 @@ void VisToolLineIntersectAxis::RefreshGeometry()
|
|||
DrawPoint(m_point, p, Color(VColor::MainColor));
|
||||
ShowIntersection(axis_line, base_line);
|
||||
|
||||
if (GetMode() == Mode::Creation)
|
||||
{
|
||||
SetToolTip(tr("<b>Intersection line and axis</b>: angle = %1°; <b>%2</b> - "
|
||||
"sticking angle, <b>%3</b> - finish creation")
|
||||
.arg(AngleToUser(this->line().angle()), VModifierKey::Shift(),
|
||||
|
@ -113,6 +121,7 @@ void VisToolLineIntersectAxis::RefreshGeometry()
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void VisToolLineIntersectAxis::VisualMode(quint32 id)
|
||||
|
|
|
@ -50,7 +50,8 @@ VisToolPointOfContact::VisToolPointOfContact(const VContainer *data, QGraphicsIt
|
|||
m_arcPoint = InitPoint(Color(VColor::SupportColor), this);
|
||||
m_lineP1 = InitPoint(Color(VColor::SupportColor), this);
|
||||
m_lineP2 = InitPoint(Color(VColor::SupportColor), this);
|
||||
m_circle = InitItem<QGraphicsEllipseItem>(Color(VColor::SupportColor), this);
|
||||
m_circle = InitItem<VScaledEllipse>(Color(VColor::SupportColor), this);
|
||||
m_circle->SetPointMode(false);
|
||||
|
||||
m_point = InitPoint(Color(VColor::MainColor), this);
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ private:
|
|||
VScaledEllipse *m_lineP1{nullptr};
|
||||
VScaledEllipse *m_lineP2{nullptr};
|
||||
VScaledEllipse *m_arcPoint{nullptr};
|
||||
QGraphicsEllipseItem *m_circle{nullptr};
|
||||
VScaledEllipse *m_circle{nullptr};
|
||||
qreal m_radius{0};
|
||||
};
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ void VisToolPointOfIntersectionCircles::RefreshGeometry()
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (GetMode() == Mode::Creation)
|
||||
else if (GetMode() == Mode::Creation && VAbstractValApplication::VApp()->Settings()->IsInteractiveTools())
|
||||
{
|
||||
QLineF radiusLine (static_cast<QPointF>(*first), ScenePos());
|
||||
const qreal length = radiusLine.length();
|
||||
|
|
Loading…
Reference in New Issue
Block a user