Successful build.
--HG-- branch : feature
This commit is contained in:
parent
08d712ffb6
commit
38409f747f
|
@ -106,6 +106,18 @@ void VPatternLabelData::SetRotation(qreal dRot)
|
||||||
d->m_dRotation = dRot;
|
d->m_dRotation = dRot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VPatternLabelData::CenterPin() const
|
||||||
|
{
|
||||||
|
return d->m_centerPin;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VPatternLabelData::SetCenterPin(const quint32 ¢erPin)
|
||||||
|
{
|
||||||
|
d->m_centerPin = centerPin;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
quint32 VPatternLabelData::TopLeftPin() const
|
quint32 VPatternLabelData::TopLeftPin() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -59,6 +59,9 @@ public:
|
||||||
qreal GetRotation() const;
|
qreal GetRotation() const;
|
||||||
void SetRotation(qreal dRot);
|
void SetRotation(qreal dRot);
|
||||||
|
|
||||||
|
quint32 CenterPin() const;
|
||||||
|
void SetCenterPin(const quint32 ¢erPin);
|
||||||
|
|
||||||
quint32 TopLeftPin() const;
|
quint32 TopLeftPin() const;
|
||||||
void SetTopLeftPin(const quint32 &topLeftPin);
|
void SetTopLeftPin(const quint32 &topLeftPin);
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,7 @@ public:
|
||||||
m_dLabelHeight(0),
|
m_dLabelHeight(0),
|
||||||
m_iFontSize(0),
|
m_iFontSize(0),
|
||||||
m_dRotation(0),
|
m_dRotation(0),
|
||||||
|
m_centerPin(NULL_ID),
|
||||||
m_topLeftPin(NULL_ID),
|
m_topLeftPin(NULL_ID),
|
||||||
m_bottomRightPin(NULL_ID)
|
m_bottomRightPin(NULL_ID)
|
||||||
{}
|
{}
|
||||||
|
@ -56,6 +57,7 @@ public:
|
||||||
m_dLabelHeight(data.m_dLabelHeight),
|
m_dLabelHeight(data.m_dLabelHeight),
|
||||||
m_iFontSize(data.m_iFontSize),
|
m_iFontSize(data.m_iFontSize),
|
||||||
m_dRotation(data.m_dRotation),
|
m_dRotation(data.m_dRotation),
|
||||||
|
m_centerPin(data.m_centerPin),
|
||||||
m_topLeftPin(data.m_topLeftPin),
|
m_topLeftPin(data.m_topLeftPin),
|
||||||
m_bottomRightPin(data.m_bottomRightPin)
|
m_bottomRightPin(data.m_bottomRightPin)
|
||||||
{}
|
{}
|
||||||
|
@ -70,6 +72,8 @@ public:
|
||||||
int m_iFontSize;
|
int m_iFontSize;
|
||||||
/** @brief m_dRotation label rotation */
|
/** @brief m_dRotation label rotation */
|
||||||
qreal m_dRotation;
|
qreal m_dRotation;
|
||||||
|
/** @brief m_centerPin center pin id */
|
||||||
|
quint32 m_centerPin;
|
||||||
/** @brief m_topLeftPin top left corner pin id */
|
/** @brief m_topLeftPin top left corner pin id */
|
||||||
quint32 m_topLeftPin;
|
quint32 m_topLeftPin;
|
||||||
/** @brief m_bottomRightPin bottom right corner pin id */
|
/** @brief m_bottomRightPin bottom right corner pin id */
|
||||||
|
|
|
@ -74,6 +74,10 @@ DialogSeamAllowance::DialogSeamAllowance(const VContainer *data, const quint32 &
|
||||||
flagDPin(true),
|
flagDPin(true),
|
||||||
flagPPin(true),
|
flagPPin(true),
|
||||||
flagGFormulas(false),
|
flagGFormulas(false),
|
||||||
|
flagDLAngle(false),
|
||||||
|
flagDLFormulas(false),
|
||||||
|
flagPLAngle(false),
|
||||||
|
flagPLFormulas(false),
|
||||||
m_bAddMode(true),
|
m_bAddMode(true),
|
||||||
m_mx(0),
|
m_mx(0),
|
||||||
m_my(0),
|
m_my(0),
|
||||||
|
@ -87,6 +91,12 @@ DialogSeamAllowance::DialogSeamAllowance(const VContainer *data, const quint32 &
|
||||||
m_oldGrainline(),
|
m_oldGrainline(),
|
||||||
m_iRotBaseHeight(0),
|
m_iRotBaseHeight(0),
|
||||||
m_iLenBaseHeight(0),
|
m_iLenBaseHeight(0),
|
||||||
|
m_DLWidthBaseHeight(0),
|
||||||
|
m_DLHeightBaseHeight(0),
|
||||||
|
m_DLAngleBaseHeight(0),
|
||||||
|
m_PLWidthBaseHeight(0),
|
||||||
|
m_PLHeightBaseHeight(0),
|
||||||
|
m_PLAngleBaseHeight(0),
|
||||||
m_formulaBaseWidth(0),
|
m_formulaBaseWidth(0),
|
||||||
m_formulaBaseWidthBefore(0),
|
m_formulaBaseWidthBefore(0),
|
||||||
m_formulaBaseWidthAfter(0),
|
m_formulaBaseWidthAfter(0),
|
||||||
|
@ -104,6 +114,7 @@ DialogSeamAllowance::DialogSeamAllowance(const VContainer *data, const quint32 &
|
||||||
InitSeamAllowanceTab();
|
InitSeamAllowanceTab();
|
||||||
InitInternalPathsTab();
|
InitInternalPathsTab();
|
||||||
InitPatternPieceDataTab();
|
InitPatternPieceDataTab();
|
||||||
|
InitLabelsTab();
|
||||||
InitGrainlineTab();
|
InitGrainlineTab();
|
||||||
InitPinsTab();
|
InitPinsTab();
|
||||||
|
|
||||||
|
@ -214,17 +225,19 @@ void DialogSeamAllowance::SetPiece(const VPiece &piece)
|
||||||
UpdateList();
|
UpdateList();
|
||||||
|
|
||||||
ui->groupBoxGrainline->setChecked(piece.GetGrainlineGeometry().IsVisible());
|
ui->groupBoxGrainline->setChecked(piece.GetGrainlineGeometry().IsVisible());
|
||||||
SetGrainlineAngle(piece.GetGrainlineGeometry());
|
SetGrainlineAngle(piece.GetGrainlineGeometry().GetRotation());
|
||||||
SetGrainlineLength(piece.GetGrainlineGeometry());
|
SetGrainlineLength(piece.GetGrainlineGeometry().GetLength());
|
||||||
ui->comboBoxArrow->setCurrentIndex(int(piece.GetGrainlineGeometry().GetArrowType()));
|
ui->comboBoxArrow->setCurrentIndex(int(piece.GetGrainlineGeometry().GetArrowType()));
|
||||||
|
|
||||||
m_oldData = piece.GetPatternPieceData();
|
m_oldData = piece.GetPatternPieceData();
|
||||||
ChangeCurrentData(ui->comboBoxDetailLabelTopLeftPin, m_oldData.TopLeftPin());
|
ChangeCurrentData(ui->comboBoxDLCenterPin, m_oldData.CenterPin());
|
||||||
ChangeCurrentData(ui->comboBoxDetailLabelBottomRightPin, m_oldData.BottomRightPin());
|
ChangeCurrentData(ui->comboBoxDLTopLeftPin, m_oldData.TopLeftPin());
|
||||||
|
ChangeCurrentData(ui->comboBoxDLBottomRightPin, m_oldData.BottomRightPin());
|
||||||
|
|
||||||
m_oldGeom = piece.GetPatternInfo();
|
m_oldGeom = piece.GetPatternInfo();
|
||||||
ChangeCurrentData(ui->comboBoxPatternLabelTopLeftPin, m_oldGeom.TopLeftPin());
|
ChangeCurrentData(ui->comboBoxPLCenterPin, m_oldGeom.CenterPin());
|
||||||
ChangeCurrentData(ui->comboBoxPatternLabelBottomRightPin, m_oldGeom.BottomRightPin());
|
ChangeCurrentData(ui->comboBoxPLTopLeftPin, m_oldGeom.TopLeftPin());
|
||||||
|
ChangeCurrentData(ui->comboBoxPLBottomRightPin, m_oldGeom.BottomRightPin());
|
||||||
|
|
||||||
m_oldGrainline = piece.GetGrainlineGeometry();
|
m_oldGrainline = piece.GetGrainlineGeometry();
|
||||||
ChangeCurrentData(ui->comboBoxGrainlineCenterPin, m_oldGrainline.CenterPin());
|
ChangeCurrentData(ui->comboBoxGrainlineCenterPin, m_oldGrainline.CenterPin());
|
||||||
|
@ -232,7 +245,9 @@ void DialogSeamAllowance::SetPiece(const VPiece &piece)
|
||||||
ChangeCurrentData(ui->comboBoxGrainlineBottomPin, m_oldGrainline.BottomPin());
|
ChangeCurrentData(ui->comboBoxGrainlineBottomPin, m_oldGrainline.BottomPin());
|
||||||
|
|
||||||
ValidObjects(MainPathIsValid());
|
ValidObjects(MainPathIsValid());
|
||||||
EnableGrainlineRotation();
|
EnabledGrainline();
|
||||||
|
EnabledDetailLabel();
|
||||||
|
EnabledPatternLabel();
|
||||||
|
|
||||||
ListChanged();
|
ListChanged();
|
||||||
}
|
}
|
||||||
|
@ -348,7 +363,8 @@ void DialogSeamAllowance::SaveData()
|
||||||
void DialogSeamAllowance::CheckState()
|
void DialogSeamAllowance::CheckState()
|
||||||
{
|
{
|
||||||
SCASSERT(bOk != nullptr);
|
SCASSERT(bOk != nullptr);
|
||||||
bOk->setEnabled(flagName && flagError && flagFormula && flagDPin && flagPPin && (flagGFormulas || flagGPin));
|
bOk->setEnabled(flagName && flagError && flagFormula && flagDPin && flagPPin && (flagGFormulas || flagGPin)
|
||||||
|
&& flagDLAngle && (flagDLFormulas || flagGPin) && flagPLAngle && (flagPLFormulas || flagPPin));
|
||||||
// In case dialog hasn't apply button
|
// In case dialog hasn't apply button
|
||||||
if ( bApply != nullptr && applyAllowed)
|
if ( bApply != nullptr && applyAllowed)
|
||||||
{
|
{
|
||||||
|
@ -949,7 +965,7 @@ void DialogSeamAllowance::TabChanged(int index)
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSeamAllowance::UpdateValues()
|
void DialogSeamAllowance::UpdateGrainlineValues()
|
||||||
{
|
{
|
||||||
QPlainTextEdit* apleSender[2];
|
QPlainTextEdit* apleSender[2];
|
||||||
apleSender[0] = ui->lineEditRotFormula;
|
apleSender[0] = ui->lineEditRotFormula;
|
||||||
|
@ -1021,7 +1037,195 @@ void DialogSeamAllowance::UpdateValues()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ResetWarning();
|
ResetGrainlineWarning();
|
||||||
|
}
|
||||||
|
CheckState();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::UpdateDetailLabelValues()
|
||||||
|
{
|
||||||
|
QPlainTextEdit* apleSender[3];
|
||||||
|
apleSender[0] = ui->lineEditDLWidthFormula;
|
||||||
|
apleSender[1] = ui->lineEditDLHeightFormula;
|
||||||
|
apleSender[2] = ui->lineEditDLAngleFormula;
|
||||||
|
bool bFormulasOK = true;
|
||||||
|
bool angleFormulaOk = true;
|
||||||
|
|
||||||
|
for (int i = 0; i < 3; ++i)
|
||||||
|
{
|
||||||
|
QLabel* plbVal;
|
||||||
|
QLabel* plbText;
|
||||||
|
QString qsUnit;
|
||||||
|
if (i == 0)
|
||||||
|
{
|
||||||
|
plbVal = ui->labelDLWidth;
|
||||||
|
plbText = ui->labelEditDLWidth;
|
||||||
|
qsUnit = QLatin1String(" ") + VDomDocument::UnitsToStr(qApp->patternUnit());
|
||||||
|
}
|
||||||
|
else if (i == 1)
|
||||||
|
{
|
||||||
|
plbVal = ui->labelDLHeight;
|
||||||
|
plbText = ui->labelEditDLHeight;
|
||||||
|
qsUnit = QLatin1String(" ") + VDomDocument::UnitsToStr(qApp->patternUnit());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
plbVal = ui->labelDLAngle;
|
||||||
|
plbText = ui->labelEditDLAngle;
|
||||||
|
qsUnit = degreeSymbol;
|
||||||
|
}
|
||||||
|
|
||||||
|
plbVal->setToolTip(tr("Value"));
|
||||||
|
|
||||||
|
QString qsFormula = apleSender[i]->toPlainText().simplified();
|
||||||
|
QString qsVal;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
qsFormula.replace("\n", " ");
|
||||||
|
qsFormula = qApp->TrVars()->FormulaFromUser(qsFormula, qApp->Settings()->GetOsSeparator());
|
||||||
|
Calculator cal;
|
||||||
|
qreal dVal = cal.EvalFormula(data->PlainVariables(), qsFormula);
|
||||||
|
if (qIsInf(dVal) == true || qIsNaN(dVal) == true)
|
||||||
|
{
|
||||||
|
throw qmu::QmuParserError(tr("Infinite/undefined result"));
|
||||||
|
}
|
||||||
|
else if ((i == 0 || i == 1) && dVal <= 0.0)
|
||||||
|
{
|
||||||
|
throw qmu::QmuParserError(tr("Length should be positive"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qsVal.setNum(dVal, 'f', 2);
|
||||||
|
ChangeColor(plbText, okColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (qmu::QmuParserError &e)
|
||||||
|
{
|
||||||
|
qsVal.clear();
|
||||||
|
ChangeColor(plbText, Qt::red);
|
||||||
|
if (i == 3)
|
||||||
|
{
|
||||||
|
angleFormulaOk = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bFormulasOK = false;
|
||||||
|
}
|
||||||
|
plbVal->setToolTip(tr("Parser error: %1").arg(e.GetMsg()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (qsVal.isEmpty() == false)
|
||||||
|
{
|
||||||
|
qsVal += qsUnit;
|
||||||
|
}
|
||||||
|
plbVal->setText(qsVal);
|
||||||
|
}
|
||||||
|
|
||||||
|
flagDLAngle = angleFormulaOk;
|
||||||
|
flagDLFormulas = bFormulasOK;
|
||||||
|
if (not flagDLAngle && not flagDLFormulas && not flagDPin && not flagPLAngle && not flagPLFormulas && not flagPPin)
|
||||||
|
{
|
||||||
|
QIcon icon(":/icons/win.icon.theme/16x16/status/dialog-warning.png");
|
||||||
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabLabels), icon);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ResetLabelsWarning();
|
||||||
|
}
|
||||||
|
CheckState();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::UpdatePatternLabelValues()
|
||||||
|
{
|
||||||
|
QPlainTextEdit* apleSender[3];
|
||||||
|
apleSender[0] = ui->lineEditPLWidthFormula;
|
||||||
|
apleSender[1] = ui->lineEditPLHeightFormula;
|
||||||
|
apleSender[2] = ui->lineEditPLAngleFormula;
|
||||||
|
bool bFormulasOK = true;
|
||||||
|
bool angleFormulaOk = true;
|
||||||
|
|
||||||
|
for (int i = 0; i < 3; ++i)
|
||||||
|
{
|
||||||
|
QLabel* plbVal;
|
||||||
|
QLabel* plbText;
|
||||||
|
QString qsUnit;
|
||||||
|
if (i == 0)
|
||||||
|
{
|
||||||
|
plbVal = ui->labelPLWidth;
|
||||||
|
plbText = ui->labelEditPLWidth;
|
||||||
|
qsUnit = QLatin1String(" ") + VDomDocument::UnitsToStr(qApp->patternUnit());
|
||||||
|
}
|
||||||
|
else if (i == 1)
|
||||||
|
{
|
||||||
|
plbVal = ui->labelPLHeight;
|
||||||
|
plbText = ui->labelEditPLHeight;
|
||||||
|
qsUnit = QLatin1String(" ") + VDomDocument::UnitsToStr(qApp->patternUnit());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
plbVal = ui->labelPLAngle;
|
||||||
|
plbText = ui->labelEditPLAngle;
|
||||||
|
qsUnit = degreeSymbol;
|
||||||
|
}
|
||||||
|
|
||||||
|
plbVal->setToolTip(tr("Value"));
|
||||||
|
|
||||||
|
QString qsFormula = apleSender[i]->toPlainText().simplified();
|
||||||
|
QString qsVal;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
qsFormula.replace("\n", " ");
|
||||||
|
qsFormula = qApp->TrVars()->FormulaFromUser(qsFormula, qApp->Settings()->GetOsSeparator());
|
||||||
|
Calculator cal;
|
||||||
|
qreal dVal = cal.EvalFormula(data->PlainVariables(), qsFormula);
|
||||||
|
if (qIsInf(dVal) == true || qIsNaN(dVal) == true)
|
||||||
|
{
|
||||||
|
throw qmu::QmuParserError(tr("Infinite/undefined result"));
|
||||||
|
}
|
||||||
|
else if ((i == 0 || i == 1) && dVal <= 0.0)
|
||||||
|
{
|
||||||
|
throw qmu::QmuParserError(tr("Length should be positive"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qsVal.setNum(dVal, 'f', 2);
|
||||||
|
ChangeColor(plbText, okColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (qmu::QmuParserError &e)
|
||||||
|
{
|
||||||
|
qsVal.clear();
|
||||||
|
ChangeColor(plbText, Qt::red);
|
||||||
|
if (i == 3)
|
||||||
|
{
|
||||||
|
angleFormulaOk = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bFormulasOK = false;
|
||||||
|
}
|
||||||
|
plbVal->setToolTip(tr("Parser error: %1").arg(e.GetMsg()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (qsVal.isEmpty() == false)
|
||||||
|
{
|
||||||
|
qsVal += qsUnit;
|
||||||
|
}
|
||||||
|
plbVal->setText(qsVal);
|
||||||
|
}
|
||||||
|
|
||||||
|
flagPLAngle = angleFormulaOk;
|
||||||
|
flagPLFormulas = bFormulasOK;
|
||||||
|
if (not flagDLAngle && not flagDLFormulas && not flagDPin && not flagPLAngle && not flagPLFormulas && not flagPPin)
|
||||||
|
{
|
||||||
|
QIcon icon(":/icons/win.icon.theme/16x16/status/dialog-warning.png");
|
||||||
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabLabels), icon);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ResetLabelsWarning();
|
||||||
}
|
}
|
||||||
CheckState();
|
CheckState();
|
||||||
}
|
}
|
||||||
|
@ -1074,35 +1278,70 @@ void DialogSeamAllowance::SetEditMode()
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSeamAllowance::EnableGrainlineRotation()
|
void DialogSeamAllowance::EnabledGrainline()
|
||||||
{
|
{
|
||||||
if (ui->groupBoxGrainline->isChecked() == true)
|
if (ui->groupBoxGrainline->isChecked() == true)
|
||||||
{
|
{
|
||||||
UpdateValues();
|
UpdateGrainlineValues();
|
||||||
GrainlinePinPointChanged();
|
GrainlinePinPointChanged();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
flagGFormulas = true;
|
flagGFormulas = true;
|
||||||
ResetWarning();
|
ResetGrainlineWarning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSeamAllowance::EditFormula()
|
void DialogSeamAllowance::EnabledDetailLabel()
|
||||||
|
{
|
||||||
|
if (ui->groupBoxDetailLabel->isChecked() == true)
|
||||||
|
{
|
||||||
|
UpdateDetailLabelValues();
|
||||||
|
DetailPinPointChanged();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
flagDLAngle = true;
|
||||||
|
flagDLFormulas = true;
|
||||||
|
ResetLabelsWarning();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::EnabledPatternLabel()
|
||||||
|
{
|
||||||
|
if (ui->groupBoxPatternLabel->isChecked() == true)
|
||||||
|
{
|
||||||
|
UpdatePatternLabelValues();
|
||||||
|
PatternPinPointChanged();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
flagPLAngle = true;
|
||||||
|
flagPLFormulas = true;
|
||||||
|
ResetLabelsWarning();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::EditGrainlineFormula()
|
||||||
{
|
{
|
||||||
QPlainTextEdit* pleFormula;
|
QPlainTextEdit* pleFormula;
|
||||||
bool bCheckZero;
|
bool bCheckZero;
|
||||||
|
QString title;
|
||||||
|
|
||||||
if (sender() == ui->pushButtonLen)
|
if (sender() == ui->pushButtonLen)
|
||||||
{
|
{
|
||||||
pleFormula = ui->lineEditLenFormula;
|
pleFormula = ui->lineEditLenFormula;
|
||||||
bCheckZero = true;
|
bCheckZero = true;
|
||||||
|
title = tr("Edit length");
|
||||||
}
|
}
|
||||||
else if (sender() == ui->pushButtonRot)
|
else if (sender() == ui->pushButtonRot)
|
||||||
{
|
{
|
||||||
pleFormula = ui->lineEditRotFormula;
|
pleFormula = ui->lineEditRotFormula;
|
||||||
bCheckZero = false;
|
bCheckZero = false;
|
||||||
|
title = tr("Edit angle");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1111,31 +1350,201 @@ void DialogSeamAllowance::EditFormula()
|
||||||
}
|
}
|
||||||
|
|
||||||
DialogEditWrongFormula dlg(data, NULL_ID, this);
|
DialogEditWrongFormula dlg(data, NULL_ID, this);
|
||||||
dlg.SetFormula(pleFormula->toPlainText());
|
dlg.setWindowTitle(title);
|
||||||
|
dlg.SetFormula(qApp->TrVars()->TryFormulaFromUser(pleFormula->toPlainText(), qApp->Settings()->GetOsSeparator()));
|
||||||
dlg.setCheckZero(bCheckZero);
|
dlg.setCheckZero(bCheckZero);
|
||||||
if (dlg.exec() == QDialog::Accepted)
|
if (dlg.exec() == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
QString qsFormula = dlg.GetFormula();
|
QString qsFormula = dlg.GetFormula();
|
||||||
qsFormula.replace("\n", " ");
|
qsFormula.replace("\n", " ");
|
||||||
|
|
||||||
|
if (sender() == ui->pushButtonLen)
|
||||||
|
{
|
||||||
|
SetGrainlineLength(qsFormula);
|
||||||
|
}
|
||||||
|
else if (sender() == ui->pushButtonRot)
|
||||||
|
{
|
||||||
|
SetGrainlineAngle(qsFormula);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// should not get here!
|
||||||
pleFormula->setPlainText(qsFormula);
|
pleFormula->setPlainText(qsFormula);
|
||||||
UpdateValues();
|
}
|
||||||
|
UpdateGrainlineValues();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSeamAllowance::DeployRotation()
|
void DialogSeamAllowance::EditDLFormula()
|
||||||
|
{
|
||||||
|
QPlainTextEdit* pleFormula;
|
||||||
|
bool bCheckZero;
|
||||||
|
QString title;
|
||||||
|
|
||||||
|
if (sender() == ui->pushButtonDLHeight)
|
||||||
|
{
|
||||||
|
pleFormula = ui->lineEditDLHeightFormula;
|
||||||
|
bCheckZero = true;
|
||||||
|
title = tr("Edit height");
|
||||||
|
}
|
||||||
|
else if (sender() == ui->pushButtonDLWidth)
|
||||||
|
{
|
||||||
|
pleFormula = ui->lineEditDLWidthFormula;
|
||||||
|
bCheckZero = true;
|
||||||
|
title = tr("Edit width");
|
||||||
|
}
|
||||||
|
else if (sender() == ui->pushButtonDLAngle)
|
||||||
|
{
|
||||||
|
pleFormula = ui->lineEditDLAngleFormula;
|
||||||
|
bCheckZero = false;
|
||||||
|
title = tr("Edit angle");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// should not get here!
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DialogEditWrongFormula dlg(data, NULL_ID, this);
|
||||||
|
dlg.setWindowTitle(title);
|
||||||
|
dlg.SetFormula(qApp->TrVars()->TryFormulaFromUser(pleFormula->toPlainText(), qApp->Settings()->GetOsSeparator()));
|
||||||
|
dlg.setCheckZero(bCheckZero);
|
||||||
|
if (dlg.exec() == QDialog::Accepted)
|
||||||
|
{
|
||||||
|
QString qsFormula = dlg.GetFormula();
|
||||||
|
qsFormula.replace("\n", " ");
|
||||||
|
if (sender() == ui->pushButtonDLHeight)
|
||||||
|
{
|
||||||
|
SetDLHeight(qsFormula);
|
||||||
|
}
|
||||||
|
else if (sender() == ui->pushButtonDLWidth)
|
||||||
|
{
|
||||||
|
SetDLWidth(qsFormula);
|
||||||
|
}
|
||||||
|
else if (sender() == ui->pushButtonDLAngle)
|
||||||
|
{
|
||||||
|
SetDLAngle(qsFormula);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// should not get here!
|
||||||
|
pleFormula->setPlainText(qsFormula);
|
||||||
|
}
|
||||||
|
UpdateDetailLabelValues();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::EditPLFormula()
|
||||||
|
{
|
||||||
|
QPlainTextEdit* pleFormula;
|
||||||
|
bool bCheckZero;
|
||||||
|
QString title;
|
||||||
|
|
||||||
|
if (sender() == ui->pushButtonPLHeight)
|
||||||
|
{
|
||||||
|
pleFormula = ui->lineEditPLHeightFormula;
|
||||||
|
bCheckZero = true;
|
||||||
|
title = tr("Edit height");
|
||||||
|
}
|
||||||
|
else if (sender() == ui->pushButtonPLWidth)
|
||||||
|
{
|
||||||
|
pleFormula = ui->lineEditPLWidthFormula;
|
||||||
|
bCheckZero = true;
|
||||||
|
title = tr("Edit width");
|
||||||
|
}
|
||||||
|
else if (sender() == ui->pushButtonPLAngle)
|
||||||
|
{
|
||||||
|
pleFormula = ui->lineEditPLAngleFormula;
|
||||||
|
bCheckZero = false;
|
||||||
|
title = tr("Edit angle");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// should not get here!
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DialogEditWrongFormula dlg(data, NULL_ID, this);
|
||||||
|
dlg.setWindowTitle(title);
|
||||||
|
dlg.SetFormula(qApp->TrVars()->TryFormulaFromUser(pleFormula->toPlainText(), qApp->Settings()->GetOsSeparator()));
|
||||||
|
dlg.setCheckZero(bCheckZero);
|
||||||
|
if (dlg.exec() == QDialog::Accepted)
|
||||||
|
{
|
||||||
|
QString qsFormula = dlg.GetFormula();
|
||||||
|
qsFormula.replace("\n", " ");
|
||||||
|
if (sender() == ui->pushButtonPLHeight)
|
||||||
|
{
|
||||||
|
SetPLHeight(qsFormula);
|
||||||
|
}
|
||||||
|
else if (sender() == ui->pushButtonPLWidth)
|
||||||
|
{
|
||||||
|
SetPLWidth(qsFormula);
|
||||||
|
}
|
||||||
|
else if (sender() == ui->pushButtonPLAngle)
|
||||||
|
{
|
||||||
|
SetPLAngle(qsFormula);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// should not get here!
|
||||||
|
pleFormula->setPlainText(qsFormula);
|
||||||
|
}
|
||||||
|
UpdatePatternLabelValues();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::DeployGrainlineRotation()
|
||||||
{
|
{
|
||||||
DeployFormula(ui->lineEditRotFormula, ui->pushButtonShowRot, m_iRotBaseHeight);
|
DeployFormula(ui->lineEditRotFormula, ui->pushButtonShowRot, m_iRotBaseHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSeamAllowance::DeployLength()
|
void DialogSeamAllowance::DeployGrainlineLength()
|
||||||
{
|
{
|
||||||
DeployFormula(ui->lineEditLenFormula, ui->pushButtonShowLen, m_iLenBaseHeight);
|
DeployFormula(ui->lineEditLenFormula, ui->pushButtonShowLen, m_iLenBaseHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSeamAllowance::ResetWarning()
|
void DialogSeamAllowance::DeployDLWidth()
|
||||||
|
{
|
||||||
|
DeployFormula(ui->lineEditDLWidthFormula, ui->pushButtonShowDLWidth, m_DLWidthBaseHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::DeployDLHeight()
|
||||||
|
{
|
||||||
|
DeployFormula(ui->lineEditDLHeightFormula, ui->pushButtonShowDLHeight, m_DLHeightBaseHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::DeployDLAngle()
|
||||||
|
{
|
||||||
|
DeployFormula(ui->lineEditDLAngleFormula, ui->pushButtonShowDLAngle, m_DLAngleBaseHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::DeployPLWidth()
|
||||||
|
{
|
||||||
|
DeployFormula(ui->lineEditPLWidthFormula, ui->pushButtonShowPLWidth, m_PLWidthBaseHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::DeployPLHeight()
|
||||||
|
{
|
||||||
|
DeployFormula(ui->lineEditPLHeightFormula, ui->pushButtonShowPLHeight, m_PLHeightBaseHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::DeployPLAngle()
|
||||||
|
{
|
||||||
|
DeployFormula(ui->lineEditPLAngleFormula, ui->pushButtonShowPLAngle, m_PLAngleBaseHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::ResetGrainlineWarning()
|
||||||
{
|
{
|
||||||
if (flagGFormulas || flagGPin)
|
if (flagGFormulas || flagGPin)
|
||||||
{
|
{
|
||||||
|
@ -1143,6 +1552,15 @@ void DialogSeamAllowance::ResetWarning()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::ResetLabelsWarning()
|
||||||
|
{
|
||||||
|
if (flagDLAngle && (flagDLFormulas || flagDPin) && flagPLAngle && (flagPLFormulas || flagPPin))
|
||||||
|
{
|
||||||
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabLabels), QIcon());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSeamAllowance::EvalWidth()
|
void DialogSeamAllowance::EvalWidth()
|
||||||
{
|
{
|
||||||
|
@ -1295,7 +1713,7 @@ void DialogSeamAllowance::GrainlinePinPointChanged()
|
||||||
flagGPin = true;
|
flagGPin = true;
|
||||||
color = okColor;
|
color = okColor;
|
||||||
|
|
||||||
ResetWarning();
|
ResetGrainlineWarning();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1317,8 +1735,8 @@ void DialogSeamAllowance::GrainlinePinPointChanged()
|
||||||
void DialogSeamAllowance::DetailPinPointChanged()
|
void DialogSeamAllowance::DetailPinPointChanged()
|
||||||
{
|
{
|
||||||
QColor color = okColor;
|
QColor color = okColor;
|
||||||
const quint32 topPinId = getCurrentObjectId(ui->comboBoxDetailLabelTopLeftPin);
|
const quint32 topPinId = getCurrentObjectId(ui->comboBoxDLTopLeftPin);
|
||||||
const quint32 bottomPinId = getCurrentObjectId(ui->comboBoxDetailLabelBottomRightPin);
|
const quint32 bottomPinId = getCurrentObjectId(ui->comboBoxDLBottomRightPin);
|
||||||
if ((topPinId == NULL_ID && bottomPinId == NULL_ID)
|
if ((topPinId == NULL_ID && bottomPinId == NULL_ID)
|
||||||
|| (topPinId != NULL_ID && bottomPinId != NULL_ID && topPinId != bottomPinId))
|
|| (topPinId != NULL_ID && bottomPinId != NULL_ID && topPinId != bottomPinId))
|
||||||
{
|
{
|
||||||
|
@ -1338,8 +1756,8 @@ void DialogSeamAllowance::DetailPinPointChanged()
|
||||||
QIcon icon(":/icons/win.icon.theme/16x16/status/dialog-warning.png");
|
QIcon icon(":/icons/win.icon.theme/16x16/status/dialog-warning.png");
|
||||||
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabLabels), icon);
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabLabels), icon);
|
||||||
}
|
}
|
||||||
ChangeColor(ui->labelDetailLabelTopLeftPin, color);
|
ChangeColor(ui->labelDLTopLeftPin, color);
|
||||||
ChangeColor(ui->labelDetailLabelBottomRightPin, color);
|
ChangeColor(ui->labelDLBottomRightPin, color);
|
||||||
CheckState();
|
CheckState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1347,8 +1765,8 @@ void DialogSeamAllowance::DetailPinPointChanged()
|
||||||
void DialogSeamAllowance::PatternPinPointChanged()
|
void DialogSeamAllowance::PatternPinPointChanged()
|
||||||
{
|
{
|
||||||
QColor color = okColor;
|
QColor color = okColor;
|
||||||
const quint32 topPinId = getCurrentObjectId(ui->comboBoxPatternLabelTopLeftPin);
|
const quint32 topPinId = getCurrentObjectId(ui->comboBoxPLTopLeftPin);
|
||||||
const quint32 bottomPinId = getCurrentObjectId(ui->comboBoxPatternLabelBottomRightPin);
|
const quint32 bottomPinId = getCurrentObjectId(ui->comboBoxPLBottomRightPin);
|
||||||
if ((topPinId == NULL_ID && bottomPinId == NULL_ID)
|
if ((topPinId == NULL_ID && bottomPinId == NULL_ID)
|
||||||
|| (topPinId != NULL_ID && bottomPinId != NULL_ID && topPinId != bottomPinId))
|
|| (topPinId != NULL_ID && bottomPinId != NULL_ID && topPinId != bottomPinId))
|
||||||
{
|
{
|
||||||
|
@ -1368,8 +1786,8 @@ void DialogSeamAllowance::PatternPinPointChanged()
|
||||||
QIcon icon(":/icons/win.icon.theme/16x16/status/dialog-warning.png");
|
QIcon icon(":/icons/win.icon.theme/16x16/status/dialog-warning.png");
|
||||||
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabLabels), icon);
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabLabels), icon);
|
||||||
}
|
}
|
||||||
ChangeColor(ui->labelPatternLabelTopLeftPin, color);
|
ChangeColor(ui->labelPLTopLeftPin, color);
|
||||||
ChangeColor(ui->labelPatternLabelBottomRightPin, color);
|
ChangeColor(ui->labelPLBottomRightPin, color);
|
||||||
CheckState();
|
CheckState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1400,13 +1818,15 @@ VPiece DialogSeamAllowance::CreatePiece() const
|
||||||
piece.GetPatternPieceData().SetFontSize(m_oldData.GetFontSize());
|
piece.GetPatternPieceData().SetFontSize(m_oldData.GetFontSize());
|
||||||
piece.GetPatternPieceData().SetRotation(m_oldData.GetRotation());
|
piece.GetPatternPieceData().SetRotation(m_oldData.GetRotation());
|
||||||
piece.GetPatternPieceData().SetVisible(ui->groupBoxDetailLabel->isChecked());
|
piece.GetPatternPieceData().SetVisible(ui->groupBoxDetailLabel->isChecked());
|
||||||
piece.GetPatternPieceData().SetTopLeftPin(getCurrentObjectId(ui->comboBoxDetailLabelTopLeftPin));
|
piece.GetPatternPieceData().SetCenterPin(getCurrentObjectId(ui->comboBoxDLCenterPin));
|
||||||
piece.GetPatternPieceData().SetBottomRightPin(getCurrentObjectId(ui->comboBoxDetailLabelBottomRightPin));
|
piece.GetPatternPieceData().SetTopLeftPin(getCurrentObjectId(ui->comboBoxDLTopLeftPin));
|
||||||
|
piece.GetPatternPieceData().SetBottomRightPin(getCurrentObjectId(ui->comboBoxDLBottomRightPin));
|
||||||
|
|
||||||
piece.GetPatternInfo() = m_oldGeom;
|
piece.GetPatternInfo() = m_oldGeom;
|
||||||
piece.GetPatternInfo().SetVisible(ui->groupBoxPatternLabel->isChecked());
|
piece.GetPatternInfo().SetVisible(ui->groupBoxPatternLabel->isChecked());
|
||||||
piece.GetPatternInfo().SetTopLeftPin(getCurrentObjectId(ui->comboBoxPatternLabelTopLeftPin));
|
piece.GetPatternInfo().SetCenterPin(getCurrentObjectId(ui->comboBoxPLCenterPin));
|
||||||
piece.GetPatternInfo().SetBottomRightPin(getCurrentObjectId(ui->comboBoxPatternLabelBottomRightPin));
|
piece.GetPatternInfo().SetTopLeftPin(getCurrentObjectId(ui->comboBoxPLTopLeftPin));
|
||||||
|
piece.GetPatternInfo().SetBottomRightPin(getCurrentObjectId(ui->comboBoxPLBottomRightPin));
|
||||||
|
|
||||||
piece.GetGrainlineGeometry() = m_oldGrainline;
|
piece.GetGrainlineGeometry() = m_oldGrainline;
|
||||||
piece.GetGrainlineGeometry().SetVisible(ui->groupBoxGrainline->isChecked());
|
piece.GetGrainlineGeometry().SetVisible(ui->groupBoxGrainline->isChecked());
|
||||||
|
@ -1814,26 +2234,6 @@ void DialogSeamAllowance::InitPatternPieceDataTab()
|
||||||
ui->lineEditLetter->setClearButtonEnabled(true);
|
ui->lineEditLetter->setClearButtonEnabled(true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
InitPinPoint(ui->comboBoxDetailLabelTopLeftPin);
|
|
||||||
InitPinPoint(ui->comboBoxDetailLabelBottomRightPin);
|
|
||||||
|
|
||||||
connect(ui->comboBoxDetailLabelTopLeftPin,
|
|
||||||
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
|
|
||||||
this, &DialogSeamAllowance::DetailPinPointChanged);
|
|
||||||
connect(ui->comboBoxDetailLabelBottomRightPin,
|
|
||||||
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
|
|
||||||
this, &DialogSeamAllowance::DetailPinPointChanged);
|
|
||||||
|
|
||||||
InitPinPoint(ui->comboBoxPatternLabelTopLeftPin);
|
|
||||||
InitPinPoint(ui->comboBoxPatternLabelBottomRightPin);
|
|
||||||
|
|
||||||
connect(ui->comboBoxPatternLabelTopLeftPin,
|
|
||||||
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
|
|
||||||
this, &DialogSeamAllowance::PatternPinPointChanged);
|
|
||||||
connect(ui->comboBoxPatternLabelBottomRightPin,
|
|
||||||
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
|
|
||||||
this, &DialogSeamAllowance::PatternPinPointChanged);
|
|
||||||
|
|
||||||
connect(ui->lineEditName, &QLineEdit::textChanged, this, &DialogSeamAllowance::NameDetailChanged);
|
connect(ui->lineEditName, &QLineEdit::textChanged, this, &DialogSeamAllowance::NameDetailChanged);
|
||||||
|
|
||||||
m_qslMaterials << QApplication::translate("Detail", "Fabric", 0)
|
m_qslMaterials << QApplication::translate("Detail", "Fabric", 0)
|
||||||
|
@ -1854,30 +2254,99 @@ void DialogSeamAllowance::InitPatternPieceDataTab()
|
||||||
|
|
||||||
m_qslPlacements << tr("None") << tr("Cut on fold");
|
m_qslPlacements << tr("None") << tr("Cut on fold");
|
||||||
ui->comboBoxPlacement->addItems(m_qslPlacements);
|
ui->comboBoxPlacement->addItems(m_qslPlacements);
|
||||||
ui->pushButtonRot->setIcon(QIcon("://icon/16x16/fx.png"));
|
|
||||||
ui->pushButtonLen->setIcon(QIcon("://icon/16x16/fx.png"));
|
|
||||||
|
|
||||||
connect(ui->pushButtonAdd, &QPushButton::clicked, this, &DialogSeamAllowance::AddUpdate);
|
connect(ui->pushButtonAdd, &QPushButton::clicked, this, &DialogSeamAllowance::AddUpdate);
|
||||||
connect(ui->pushButtonCancel, &QPushButton::clicked, this, &DialogSeamAllowance::Cancel);
|
connect(ui->pushButtonCancel, &QPushButton::clicked, this, &DialogSeamAllowance::Cancel);
|
||||||
connect(ui->pushButtonRemove, &QPushButton::clicked, this, &DialogSeamAllowance::Remove);
|
connect(ui->pushButtonRemove, &QPushButton::clicked, this, &DialogSeamAllowance::Remove);
|
||||||
connect(ui->listWidgetMCP, &QListWidget::itemClicked, this, &DialogSeamAllowance::SetEditMode);
|
connect(ui->listWidgetMCP, &QListWidget::itemClicked, this, &DialogSeamAllowance::SetEditMode);
|
||||||
connect(ui->comboBoxMaterial, &QComboBox::currentTextChanged, this, &DialogSeamAllowance::MaterialChanged);
|
connect(ui->comboBoxMaterial, &QComboBox::currentTextChanged, this, &DialogSeamAllowance::MaterialChanged);
|
||||||
|
|
||||||
|
SetAddMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::InitLabelsTab()
|
||||||
|
{
|
||||||
|
m_DLWidthBaseHeight = ui->lineEditDLWidthFormula->height();
|
||||||
|
m_DLHeightBaseHeight = ui->lineEditDLHeightFormula->height();
|
||||||
|
m_DLAngleBaseHeight = ui->lineEditDLAngleFormula->height();
|
||||||
|
|
||||||
|
connect(ui->groupBoxDetailLabel, &QGroupBox::toggled, this, &DialogSeamAllowance::EnabledDetailLabel);
|
||||||
|
InitPinPoint(ui->comboBoxDLCenterPin);
|
||||||
|
InitPinPoint(ui->comboBoxDLTopLeftPin);
|
||||||
|
InitPinPoint(ui->comboBoxDLBottomRightPin);
|
||||||
|
|
||||||
|
connect(ui->comboBoxDLTopLeftPin,
|
||||||
|
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
|
||||||
|
this, &DialogSeamAllowance::DetailPinPointChanged);
|
||||||
|
connect(ui->comboBoxDLBottomRightPin,
|
||||||
|
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
|
||||||
|
this, &DialogSeamAllowance::DetailPinPointChanged);
|
||||||
|
|
||||||
|
connect(ui->pushButtonDLWidth, &QPushButton::clicked, this, &DialogSeamAllowance::EditDLFormula);
|
||||||
|
connect(ui->pushButtonDLHeight, &QPushButton::clicked, this, &DialogSeamAllowance::EditDLFormula);
|
||||||
|
connect(ui->pushButtonDLAngle, &QPushButton::clicked, this, &DialogSeamAllowance::EditDLFormula);
|
||||||
|
|
||||||
|
connect(ui->lineEditDLWidthFormula, &QPlainTextEdit::textChanged, this,
|
||||||
|
&DialogSeamAllowance::UpdateDetailLabelValues);
|
||||||
|
connect(ui->lineEditDLHeightFormula, &QPlainTextEdit::textChanged, this,
|
||||||
|
&DialogSeamAllowance::UpdateDetailLabelValues);
|
||||||
|
connect(ui->lineEditDLAngleFormula, &QPlainTextEdit::textChanged, this,
|
||||||
|
&DialogSeamAllowance::UpdateDetailLabelValues);
|
||||||
|
|
||||||
|
connect(ui->pushButtonShowDLWidth, &QPushButton::clicked, this, &DialogSeamAllowance::DeployDLWidth);
|
||||||
|
connect(ui->pushButtonShowDLHeight, &QPushButton::clicked, this, &DialogSeamAllowance::DeployDLHeight);
|
||||||
|
connect(ui->pushButtonShowDLAngle, &QPushButton::clicked, this, &DialogSeamAllowance::DeployDLAngle);
|
||||||
|
|
||||||
|
EnabledDetailLabel();
|
||||||
|
|
||||||
|
m_PLWidthBaseHeight = ui->lineEditPLWidthFormula->height();
|
||||||
|
m_PLHeightBaseHeight = ui->lineEditPLHeightFormula->height();
|
||||||
|
m_PLAngleBaseHeight = ui->lineEditPLAngleFormula->height();
|
||||||
|
|
||||||
|
connect(ui->groupBoxPatternLabel, &QGroupBox::toggled, this, &DialogSeamAllowance::EnabledPatternLabel);
|
||||||
|
InitPinPoint(ui->comboBoxPLCenterPin);
|
||||||
|
InitPinPoint(ui->comboBoxPLTopLeftPin);
|
||||||
|
InitPinPoint(ui->comboBoxPLBottomRightPin);
|
||||||
|
|
||||||
|
connect(ui->comboBoxPLTopLeftPin,
|
||||||
|
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
|
||||||
|
this, &DialogSeamAllowance::PatternPinPointChanged);
|
||||||
|
connect(ui->comboBoxPLBottomRightPin,
|
||||||
|
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
|
||||||
|
this, &DialogSeamAllowance::PatternPinPointChanged);
|
||||||
|
|
||||||
|
connect(ui->pushButtonPLWidth, &QPushButton::clicked, this, &DialogSeamAllowance::EditPLFormula);
|
||||||
|
connect(ui->pushButtonPLHeight, &QPushButton::clicked, this, &DialogSeamAllowance::EditPLFormula);
|
||||||
|
connect(ui->pushButtonPLAngle, &QPushButton::clicked, this, &DialogSeamAllowance::EditPLFormula);
|
||||||
|
|
||||||
|
connect(ui->lineEditPLWidthFormula, &QPlainTextEdit::textChanged, this,
|
||||||
|
&DialogSeamAllowance::UpdatePatternLabelValues);
|
||||||
|
connect(ui->lineEditPLHeightFormula, &QPlainTextEdit::textChanged, this,
|
||||||
|
&DialogSeamAllowance::UpdatePatternLabelValues);
|
||||||
|
connect(ui->lineEditPLAngleFormula, &QPlainTextEdit::textChanged, this,
|
||||||
|
&DialogSeamAllowance::UpdatePatternLabelValues);
|
||||||
|
|
||||||
|
connect(ui->pushButtonShowPLWidth, &QPushButton::clicked, this, &DialogSeamAllowance::DeployPLWidth);
|
||||||
|
connect(ui->pushButtonShowPLHeight, &QPushButton::clicked, this, &DialogSeamAllowance::DeployPLHeight);
|
||||||
|
connect(ui->pushButtonShowPLAngle, &QPushButton::clicked, this, &DialogSeamAllowance::DeployPLAngle);
|
||||||
|
|
||||||
|
EnabledPatternLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSeamAllowance::InitGrainlineTab()
|
void DialogSeamAllowance::InitGrainlineTab()
|
||||||
{
|
{
|
||||||
connect(ui->groupBoxGrainline, &QGroupBox::toggled, this, &DialogSeamAllowance::EnableGrainlineRotation);
|
connect(ui->groupBoxGrainline, &QGroupBox::toggled, this, &DialogSeamAllowance::EnabledGrainline);
|
||||||
connect(ui->pushButtonRot, &QPushButton::clicked, this, &DialogSeamAllowance::EditFormula);
|
connect(ui->pushButtonRot, &QPushButton::clicked, this, &DialogSeamAllowance::EditGrainlineFormula);
|
||||||
connect(ui->pushButtonLen, &QPushButton::clicked, this, &DialogSeamAllowance::EditFormula);
|
connect(ui->pushButtonLen, &QPushButton::clicked, this, &DialogSeamAllowance::EditGrainlineFormula);
|
||||||
connect(ui->lineEditLenFormula, &QPlainTextEdit::textChanged, this, &DialogSeamAllowance::UpdateValues);
|
connect(ui->lineEditLenFormula, &QPlainTextEdit::textChanged, this, &DialogSeamAllowance::UpdateGrainlineValues);
|
||||||
connect(ui->lineEditRotFormula, &QPlainTextEdit::textChanged, this, &DialogSeamAllowance::UpdateValues);
|
connect(ui->lineEditRotFormula, &QPlainTextEdit::textChanged, this, &DialogSeamAllowance::UpdateGrainlineValues);
|
||||||
|
|
||||||
connect(ui->pushButtonShowRot, &QPushButton::clicked, this, &DialogSeamAllowance::DeployRotation);
|
connect(ui->pushButtonShowRot, &QPushButton::clicked, this, &DialogSeamAllowance::DeployGrainlineRotation);
|
||||||
connect(ui->pushButtonShowLen, &QPushButton::clicked, this, &DialogSeamAllowance::DeployLength);
|
connect(ui->pushButtonShowLen, &QPushButton::clicked, this, &DialogSeamAllowance::DeployGrainlineLength);
|
||||||
|
|
||||||
SetAddMode();
|
EnabledGrainline();
|
||||||
EnableGrainlineRotation();
|
|
||||||
|
|
||||||
ui->comboBoxArrow->addItem(tr("Both"));
|
ui->comboBoxArrow->addItem(tr("Both"));
|
||||||
ui->comboBoxArrow->addItem(tr("Just front"));
|
ui->comboBoxArrow->addItem(tr("Just front"));
|
||||||
|
@ -1913,10 +2382,13 @@ void DialogSeamAllowance::InitAllPinComboboxes()
|
||||||
InitPinPoint(ui->comboBoxGrainlineTopPin);
|
InitPinPoint(ui->comboBoxGrainlineTopPin);
|
||||||
InitPinPoint(ui->comboBoxGrainlineBottomPin);
|
InitPinPoint(ui->comboBoxGrainlineBottomPin);
|
||||||
|
|
||||||
InitPinPoint(ui->comboBoxDetailLabelTopLeftPin);
|
InitPinPoint(ui->comboBoxDLCenterPin);
|
||||||
InitPinPoint(ui->comboBoxDetailLabelBottomRightPin);
|
InitPinPoint(ui->comboBoxDLTopLeftPin);
|
||||||
InitPinPoint(ui->comboBoxPatternLabelTopLeftPin);
|
InitPinPoint(ui->comboBoxDLBottomRightPin);
|
||||||
InitPinPoint(ui->comboBoxPatternLabelBottomRightPin);
|
|
||||||
|
InitPinPoint(ui->comboBoxPLCenterPin);
|
||||||
|
InitPinPoint(ui->comboBoxPLTopLeftPin);
|
||||||
|
InitPinPoint(ui->comboBoxPLBottomRightPin);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1999,13 +2471,13 @@ QVector<T> DialogSeamAllowance::GetPieceInternals(const QListWidget *list) const
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSeamAllowance::SetGrainlineAngle(const VGrainlineData &data)
|
void DialogSeamAllowance::SetGrainlineAngle(const QString &angleFormula)
|
||||||
{
|
{
|
||||||
const QString formula = qApp->TrVars()->FormulaToUser(data.GetRotation(), qApp->Settings()->GetOsSeparator());
|
const QString formula = qApp->TrVars()->FormulaToUser(angleFormula, qApp->Settings()->GetOsSeparator());
|
||||||
// increase height if needed.
|
// increase height if needed.
|
||||||
if (formula.length() > 80)
|
if (formula.length() > 80)
|
||||||
{
|
{
|
||||||
this->DeployRotation();
|
this->DeployGrainlineRotation();
|
||||||
}
|
}
|
||||||
ui->lineEditRotFormula->setPlainText(formula);
|
ui->lineEditRotFormula->setPlainText(formula);
|
||||||
|
|
||||||
|
@ -2013,15 +2485,99 @@ void DialogSeamAllowance::SetGrainlineAngle(const VGrainlineData &data)
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSeamAllowance::SetGrainlineLength(const VGrainlineData &data)
|
void DialogSeamAllowance::SetGrainlineLength(const QString &lengthFormula)
|
||||||
{
|
{
|
||||||
const QString formula = qApp->TrVars()->FormulaToUser(data.GetLength(), qApp->Settings()->GetOsSeparator());
|
const QString formula = qApp->TrVars()->FormulaToUser(lengthFormula, qApp->Settings()->GetOsSeparator());
|
||||||
// increase height if needed.
|
// increase height if needed.
|
||||||
if (formula.length() > 80)
|
if (formula.length() > 80)
|
||||||
{
|
{
|
||||||
this->DeployLength();
|
this->DeployGrainlineLength();
|
||||||
}
|
}
|
||||||
ui->lineEditLenFormula->setPlainText(formula);
|
ui->lineEditLenFormula->setPlainText(formula);
|
||||||
|
|
||||||
MoveCursorToEnd(ui->lineEditLenFormula);
|
MoveCursorToEnd(ui->lineEditLenFormula);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::SetDLWidth(const QString &widthFormula)
|
||||||
|
{
|
||||||
|
const QString formula = qApp->TrVars()->FormulaToUser(widthFormula, qApp->Settings()->GetOsSeparator());
|
||||||
|
// increase height if needed.
|
||||||
|
if (formula.length() > 80)
|
||||||
|
{
|
||||||
|
this->DeployDLWidth();
|
||||||
|
}
|
||||||
|
ui->lineEditDLWidthFormula->setPlainText(formula);
|
||||||
|
|
||||||
|
MoveCursorToEnd(ui->lineEditDLWidthFormula);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::SetDLHeight(const QString &heightFormula)
|
||||||
|
{
|
||||||
|
const QString formula = qApp->TrVars()->FormulaToUser(heightFormula, qApp->Settings()->GetOsSeparator());
|
||||||
|
// increase height if needed.
|
||||||
|
if (formula.length() > 80)
|
||||||
|
{
|
||||||
|
this->DeployDLHeight();
|
||||||
|
}
|
||||||
|
ui->lineEditDLHeightFormula->setPlainText(formula);
|
||||||
|
|
||||||
|
MoveCursorToEnd(ui->lineEditDLHeightFormula);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::SetDLAngle(const QString &angleFormula)
|
||||||
|
{
|
||||||
|
const QString formula = qApp->TrVars()->FormulaToUser(angleFormula, qApp->Settings()->GetOsSeparator());
|
||||||
|
// increase height if needed.
|
||||||
|
if (formula.length() > 80)
|
||||||
|
{
|
||||||
|
this->DeployDLAngle();
|
||||||
|
}
|
||||||
|
ui->lineEditDLAngleFormula->setPlainText(formula);
|
||||||
|
|
||||||
|
MoveCursorToEnd(ui->lineEditDLAngleFormula);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::SetPLWidth(const QString &widthFormula)
|
||||||
|
{
|
||||||
|
const QString formula = qApp->TrVars()->FormulaToUser(widthFormula, qApp->Settings()->GetOsSeparator());
|
||||||
|
// increase height if needed.
|
||||||
|
if (formula.length() > 80)
|
||||||
|
{
|
||||||
|
this->DeployPLWidth();
|
||||||
|
}
|
||||||
|
ui->lineEditPLWidthFormula->setPlainText(formula);
|
||||||
|
|
||||||
|
MoveCursorToEnd(ui->lineEditPLWidthFormula);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::SetPLHeight(const QString &heightFormula)
|
||||||
|
{
|
||||||
|
const QString formula = qApp->TrVars()->FormulaToUser(heightFormula, qApp->Settings()->GetOsSeparator());
|
||||||
|
// increase height if needed.
|
||||||
|
if (formula.length() > 80)
|
||||||
|
{
|
||||||
|
this->DeployPLHeight();
|
||||||
|
}
|
||||||
|
ui->lineEditPLHeightFormula->setPlainText(formula);
|
||||||
|
|
||||||
|
MoveCursorToEnd(ui->lineEditPLHeightFormula);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::SetPLAngle(const QString &angleFormula)
|
||||||
|
{
|
||||||
|
const QString formula = qApp->TrVars()->FormulaToUser(angleFormula, qApp->Settings()->GetOsSeparator());
|
||||||
|
// increase height if needed.
|
||||||
|
if (formula.length() > 80)
|
||||||
|
{
|
||||||
|
this->DeployPLAngle();
|
||||||
|
}
|
||||||
|
ui->lineEditPLAngleFormula->setPlainText(formula);
|
||||||
|
|
||||||
|
MoveCursorToEnd(ui->lineEditPLAngleFormula);
|
||||||
|
}
|
||||||
|
|
|
@ -94,14 +94,34 @@ private slots:
|
||||||
void PathDialogClosed(int result);
|
void PathDialogClosed(int result);
|
||||||
void TabChanged(int index);
|
void TabChanged(int index);
|
||||||
|
|
||||||
void UpdateValues();
|
void UpdateGrainlineValues();
|
||||||
|
void UpdateDetailLabelValues();
|
||||||
|
void UpdatePatternLabelValues();
|
||||||
|
|
||||||
void SetAddMode();
|
void SetAddMode();
|
||||||
void SetEditMode();
|
void SetEditMode();
|
||||||
void EnableGrainlineRotation();
|
|
||||||
void EditFormula();
|
void EditGrainlineFormula();
|
||||||
void DeployRotation();
|
void EditDLFormula();
|
||||||
void DeployLength();
|
void EditPLFormula();
|
||||||
void ResetWarning();
|
|
||||||
|
void DeployGrainlineRotation();
|
||||||
|
void DeployGrainlineLength();
|
||||||
|
|
||||||
|
void DeployDLWidth();
|
||||||
|
void DeployDLHeight();
|
||||||
|
void DeployDLAngle();
|
||||||
|
|
||||||
|
void DeployPLWidth();
|
||||||
|
void DeployPLHeight();
|
||||||
|
void DeployPLAngle();
|
||||||
|
|
||||||
|
void ResetGrainlineWarning();
|
||||||
|
void ResetLabelsWarning();
|
||||||
|
|
||||||
|
void EnabledGrainline();
|
||||||
|
void EnabledDetailLabel();
|
||||||
|
void EnabledPatternLabel();
|
||||||
|
|
||||||
void EvalWidth();
|
void EvalWidth();
|
||||||
void EvalWidthBefore();
|
void EvalWidthBefore();
|
||||||
|
@ -132,6 +152,10 @@ private:
|
||||||
bool flagDPin;
|
bool flagDPin;
|
||||||
bool flagPPin;
|
bool flagPPin;
|
||||||
bool flagGFormulas;
|
bool flagGFormulas;
|
||||||
|
bool flagDLAngle;
|
||||||
|
bool flagDLFormulas;
|
||||||
|
bool flagPLAngle;
|
||||||
|
bool flagPLFormulas;
|
||||||
bool m_bAddMode;
|
bool m_bAddMode;
|
||||||
qreal m_mx;
|
qreal m_mx;
|
||||||
qreal m_my;
|
qreal m_my;
|
||||||
|
@ -149,6 +173,12 @@ private:
|
||||||
VGrainlineData m_oldGrainline;
|
VGrainlineData m_oldGrainline;
|
||||||
int m_iRotBaseHeight;
|
int m_iRotBaseHeight;
|
||||||
int m_iLenBaseHeight;
|
int m_iLenBaseHeight;
|
||||||
|
int m_DLWidthBaseHeight;
|
||||||
|
int m_DLHeightBaseHeight;
|
||||||
|
int m_DLAngleBaseHeight;
|
||||||
|
int m_PLWidthBaseHeight;
|
||||||
|
int m_PLHeightBaseHeight;
|
||||||
|
int m_PLAngleBaseHeight;
|
||||||
int m_formulaBaseWidth;
|
int m_formulaBaseWidth;
|
||||||
int m_formulaBaseWidthBefore;
|
int m_formulaBaseWidthBefore;
|
||||||
int m_formulaBaseWidthAfter;
|
int m_formulaBaseWidthAfter;
|
||||||
|
@ -190,6 +220,7 @@ private:
|
||||||
void InitSAIncludeType();
|
void InitSAIncludeType();
|
||||||
void InitInternalPathsTab();
|
void InitInternalPathsTab();
|
||||||
void InitPatternPieceDataTab();
|
void InitPatternPieceDataTab();
|
||||||
|
void InitLabelsTab();
|
||||||
void InitGrainlineTab();
|
void InitGrainlineTab();
|
||||||
void InitPinsTab();
|
void InitPinsTab();
|
||||||
void InitAllPinComboboxes();
|
void InitAllPinComboboxes();
|
||||||
|
@ -198,8 +229,17 @@ private:
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
QVector<T> GetPieceInternals(const QListWidget *list) const;
|
QVector<T> GetPieceInternals(const QListWidget *list) const;
|
||||||
void SetGrainlineAngle(const VGrainlineData &data);
|
|
||||||
void SetGrainlineLength(const VGrainlineData &data);
|
void SetGrainlineAngle(const QString &angleFormula);
|
||||||
|
void SetGrainlineLength(const QString &lengthFormula);
|
||||||
|
|
||||||
|
void SetDLWidth(const QString &widthFormula);
|
||||||
|
void SetDLHeight(const QString &heightFormula);
|
||||||
|
void SetDLAngle(const QString &angleFormula);
|
||||||
|
|
||||||
|
void SetPLWidth(const QString &widthFormula);
|
||||||
|
void SetPLHeight(const QString &heightFormula);
|
||||||
|
void SetPLAngle(const QString &angleFormula);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DIALOGSEAMALLOWANCE_H
|
#endif // DIALOGSEAMALLOWANCE_H
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user