Dialog Seam allowance tool now allow select pin points.
--HG-- branch : feature
This commit is contained in:
parent
67a12ef86c
commit
8721a4a5d8
|
@ -70,6 +70,10 @@ DialogSeamAllowance::DialogSeamAllowance(const VContainer *data, const quint32 &
|
||||||
: DialogTool(data, toolId, parent),
|
: DialogTool(data, toolId, parent),
|
||||||
ui(new Ui::DialogSeamAllowance),
|
ui(new Ui::DialogSeamAllowance),
|
||||||
applyAllowed(false),// By default disabled
|
applyAllowed(false),// By default disabled
|
||||||
|
flagGPin(true),
|
||||||
|
flagDPin(true),
|
||||||
|
flagPPin(true),
|
||||||
|
flagGFormulas(false),
|
||||||
m_bAddMode(true),
|
m_bAddMode(true),
|
||||||
m_mx(0),
|
m_mx(0),
|
||||||
m_my(0),
|
m_my(0),
|
||||||
|
@ -213,8 +217,16 @@ void DialogSeamAllowance::SetPiece(const VPiece &piece)
|
||||||
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->comboBoxDetailLabelTopLeftPin, m_oldData.BottomRightPin());
|
||||||
|
|
||||||
m_oldGeom = piece.GetPatternInfo();
|
m_oldGeom = piece.GetPatternInfo();
|
||||||
|
ChangeCurrentData(ui->comboBoxPatternLabelTopLeftPin, m_oldGeom.TopLeftPin());
|
||||||
|
ChangeCurrentData(ui->comboBoxPatternLabelBottomRightPin, m_oldGeom.BottomRightPin());
|
||||||
|
|
||||||
m_oldGrainline = piece.GetGrainlineGeometry();
|
m_oldGrainline = piece.GetGrainlineGeometry();
|
||||||
|
ChangeCurrentData(ui->comboBoxGrainlineTopPin, m_oldGrainline.TopPin());
|
||||||
|
ChangeCurrentData(ui->comboBoxGrainlineBottomPin, m_oldGrainline.BottomPin());
|
||||||
|
|
||||||
ValidObjects(MainPathIsValid());
|
ValidObjects(MainPathIsValid());
|
||||||
EnableGrainlineRotation();
|
EnableGrainlineRotation();
|
||||||
|
@ -333,7 +345,7 @@ void DialogSeamAllowance::SaveData()
|
||||||
void DialogSeamAllowance::CheckState()
|
void DialogSeamAllowance::CheckState()
|
||||||
{
|
{
|
||||||
SCASSERT(bOk != nullptr);
|
SCASSERT(bOk != nullptr);
|
||||||
bOk->setEnabled(flagName && flagError && flagFormula);
|
bOk->setEnabled(flagName && flagError && flagFormula && flagGPin && flagDPin && flagPPin && flagGFormulas);
|
||||||
// In case dialog hasn't apply button
|
// In case dialog hasn't apply button
|
||||||
if ( bApply != nullptr && applyAllowed)
|
if ( bApply != nullptr && applyAllowed)
|
||||||
{
|
{
|
||||||
|
@ -462,14 +474,13 @@ void DialogSeamAllowance::NameDetailChanged()
|
||||||
flagName = false;
|
flagName = false;
|
||||||
ChangeColor(ui->labelEditName, Qt::red);
|
ChangeColor(ui->labelEditName, Qt::red);
|
||||||
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(1, icon);
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabSeamAllowance), icon);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
flagName = true;
|
flagName = true;
|
||||||
ChangeColor(ui->labelEditName, okColor);
|
ChangeColor(ui->labelEditName, okColor);
|
||||||
QIcon icon;
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabSeamAllowance), QIcon());
|
||||||
ui->tabWidget->setTabIcon(1, icon);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CheckState();
|
CheckState();
|
||||||
|
@ -997,8 +1008,8 @@ void DialogSeamAllowance::UpdateValues()
|
||||||
plbVal->setText(qsVal);
|
plbVal->setText(qsVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
bOk->setEnabled(bFormulasOK);
|
flagGFormulas = bFormulasOK;
|
||||||
if (bFormulasOK == false)
|
if (flagGFormulas == false)
|
||||||
{
|
{
|
||||||
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->tabGrainline), icon);
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabGrainline), icon);
|
||||||
|
@ -1007,6 +1018,7 @@ void DialogSeamAllowance::UpdateValues()
|
||||||
{
|
{
|
||||||
ResetWarning();
|
ResetWarning();
|
||||||
}
|
}
|
||||||
|
CheckState();
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1074,7 +1086,7 @@ void DialogSeamAllowance::EnableGrainlineRotation()
|
||||||
{
|
{
|
||||||
ChangeColor(ui->labelEditLen, okColor);
|
ChangeColor(ui->labelEditLen, okColor);
|
||||||
ChangeColor(ui->labelEditRot, okColor);
|
ChangeColor(ui->labelEditRot, okColor);
|
||||||
bOk->setEnabled(true);
|
flagGFormulas = true;
|
||||||
ResetWarning();
|
ResetWarning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1128,8 +1140,10 @@ void DialogSeamAllowance::DeployLength()
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void DialogSeamAllowance::ResetWarning()
|
void DialogSeamAllowance::ResetWarning()
|
||||||
{
|
{
|
||||||
QIcon icon;
|
if (flagGFormulas && flagGPin)
|
||||||
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabGrainline), icon);
|
{
|
||||||
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabGrainline), QIcon());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1272,6 +1286,93 @@ void DialogSeamAllowance::DeployWidthAfterFormulaTextEdit()
|
||||||
DeployFormula(ui->plainTextEditFormulaWidthAfter, ui->pushButtonGrowWidthAfter, m_formulaBaseWidthAfter);
|
DeployFormula(ui->plainTextEditFormulaWidthAfter, ui->pushButtonGrowWidthAfter, m_formulaBaseWidthAfter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::GrainlinePinPointChanged()
|
||||||
|
{
|
||||||
|
QColor color = okColor;
|
||||||
|
const quint32 topPinId = getCurrentObjectId(ui->comboBoxGrainlineTopPin);
|
||||||
|
const quint32 bottomPinId = getCurrentObjectId(ui->comboBoxGrainlineTopPin);
|
||||||
|
if ((topPinId == NULL_ID && bottomPinId == NULL_ID)
|
||||||
|
|| (topPinId != NULL_ID && bottomPinId != NULL_ID && topPinId != bottomPinId))
|
||||||
|
{
|
||||||
|
flagGPin = true;
|
||||||
|
color = okColor;
|
||||||
|
|
||||||
|
ResetWarning();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
flagGPin = false;
|
||||||
|
color = errorColor;
|
||||||
|
|
||||||
|
QIcon icon(":/icons/win.icon.theme/16x16/status/dialog-warning.png");
|
||||||
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabGrainline), icon);
|
||||||
|
}
|
||||||
|
ChangeColor(ui->labelGrainlineTopPin, color);
|
||||||
|
ChangeColor(ui->labelGrainlineBottomPin, color);
|
||||||
|
CheckState();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::DetailPinPointChanged()
|
||||||
|
{
|
||||||
|
QColor color = okColor;
|
||||||
|
const quint32 topPinId = getCurrentObjectId(ui->comboBoxDetailLabelTopLeftPin);
|
||||||
|
const quint32 bottomPinId = getCurrentObjectId(ui->comboBoxDetailLabelBottomRightPin);
|
||||||
|
if ((topPinId == NULL_ID && bottomPinId == NULL_ID)
|
||||||
|
|| (topPinId != NULL_ID && bottomPinId != NULL_ID && topPinId != bottomPinId))
|
||||||
|
{
|
||||||
|
flagDPin = true;
|
||||||
|
color = okColor;
|
||||||
|
|
||||||
|
if (flagPPin)
|
||||||
|
{
|
||||||
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabPatternPieceData), QIcon());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
flagDPin = false;
|
||||||
|
color = errorColor;
|
||||||
|
|
||||||
|
QIcon icon(":/icons/win.icon.theme/16x16/status/dialog-warning.png");
|
||||||
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabPatternPieceData), icon);
|
||||||
|
}
|
||||||
|
ChangeColor(ui->labelDetailLabelTopLeftPin, color);
|
||||||
|
ChangeColor(ui->labelDetailLabelBottomRightPin, color);
|
||||||
|
CheckState();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void DialogSeamAllowance::PatternPinPointChanged()
|
||||||
|
{
|
||||||
|
QColor color = okColor;
|
||||||
|
const quint32 topPinId = getCurrentObjectId(ui->comboBoxPatternLabelTopLeftPin);
|
||||||
|
const quint32 bottomPinId = getCurrentObjectId(ui->comboBoxPatternLabelBottomRightPin);
|
||||||
|
if ((topPinId == NULL_ID && bottomPinId == NULL_ID)
|
||||||
|
|| (topPinId != NULL_ID && bottomPinId != NULL_ID && topPinId != bottomPinId))
|
||||||
|
{
|
||||||
|
flagPPin = true;
|
||||||
|
color = okColor;
|
||||||
|
|
||||||
|
if (flagDPin)
|
||||||
|
{
|
||||||
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabPatternPieceData), QIcon());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
flagPPin = false;
|
||||||
|
color = errorColor;
|
||||||
|
|
||||||
|
QIcon icon(":/icons/win.icon.theme/16x16/status/dialog-warning.png");
|
||||||
|
ui->tabWidget->setTabIcon(ui->tabWidget->indexOf(ui->tabPatternPieceData), icon);
|
||||||
|
}
|
||||||
|
ChangeColor(ui->labelPatternLabelTopLeftPin, color);
|
||||||
|
ChangeColor(ui->labelPatternLabelBottomRightPin, color);
|
||||||
|
CheckState();
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VPiece DialogSeamAllowance::CreatePiece() const
|
VPiece DialogSeamAllowance::CreatePiece() const
|
||||||
{
|
{
|
||||||
|
@ -1299,15 +1400,21 @@ 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().SetBottomRightPin(getCurrentObjectId(ui->comboBoxDetailLabelBottomRightPin));
|
||||||
|
|
||||||
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().SetBottomRightPin(getCurrentObjectId(ui->comboBoxPatternLabelBottomRightPin));
|
||||||
|
|
||||||
piece.GetGrainlineGeometry() = m_oldGrainline;
|
piece.GetGrainlineGeometry() = m_oldGrainline;
|
||||||
piece.GetGrainlineGeometry().SetVisible(ui->checkBoxGrainline->isChecked());
|
piece.GetGrainlineGeometry().SetVisible(ui->checkBoxGrainline->isChecked());
|
||||||
piece.GetGrainlineGeometry().SetRotation(GetFormulaFromUser(ui->lineEditRotFormula));
|
piece.GetGrainlineGeometry().SetRotation(GetFormulaFromUser(ui->lineEditRotFormula));
|
||||||
piece.GetGrainlineGeometry().SetLength(GetFormulaFromUser(ui->lineEditLenFormula));
|
piece.GetGrainlineGeometry().SetLength(GetFormulaFromUser(ui->lineEditLenFormula));
|
||||||
piece.GetGrainlineGeometry().SetArrowType(static_cast<ArrowType>(ui->comboBoxArrow->currentIndex()));
|
piece.GetGrainlineGeometry().SetArrowType(static_cast<ArrowType>(ui->comboBoxArrow->currentIndex()));
|
||||||
|
piece.GetGrainlineGeometry().SetTopPin(getCurrentObjectId(ui->comboBoxGrainlineTopPin));
|
||||||
|
piece.GetGrainlineGeometry().SetBottomPin(getCurrentObjectId(ui->comboBoxGrainlineBottomPin));
|
||||||
|
|
||||||
return piece;
|
return piece;
|
||||||
}
|
}
|
||||||
|
@ -1708,9 +1815,24 @@ void DialogSeamAllowance::InitPatternPieceDataTab()
|
||||||
|
|
||||||
InitPinPoint(ui->comboBoxDetailLabelTopLeftPin);
|
InitPinPoint(ui->comboBoxDetailLabelTopLeftPin);
|
||||||
InitPinPoint(ui->comboBoxDetailLabelBottomRightPin);
|
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->comboBoxPatternLabelTopLeftPin);
|
||||||
InitPinPoint(ui->comboBoxPatternLabelBottomRightPin);
|
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)
|
||||||
|
@ -1765,6 +1887,13 @@ void DialogSeamAllowance::InitGrainlineTab()
|
||||||
|
|
||||||
InitPinPoint(ui->comboBoxGrainlineTopPin);
|
InitPinPoint(ui->comboBoxGrainlineTopPin);
|
||||||
InitPinPoint(ui->comboBoxGrainlineBottomPin);
|
InitPinPoint(ui->comboBoxGrainlineBottomPin);
|
||||||
|
|
||||||
|
connect(ui->comboBoxGrainlineTopPin,
|
||||||
|
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
|
||||||
|
this, &DialogSeamAllowance::GrainlinePinPointChanged);
|
||||||
|
connect(ui->comboBoxGrainlineTopPin,
|
||||||
|
static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
|
||||||
|
this, &DialogSeamAllowance::GrainlinePinPointChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -119,11 +119,19 @@ private slots:
|
||||||
void DeployWidthBeforeFormulaTextEdit();
|
void DeployWidthBeforeFormulaTextEdit();
|
||||||
void DeployWidthAfterFormulaTextEdit();
|
void DeployWidthAfterFormulaTextEdit();
|
||||||
|
|
||||||
|
void GrainlinePinPointChanged();
|
||||||
|
void DetailPinPointChanged();
|
||||||
|
void PatternPinPointChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(DialogSeamAllowance)
|
Q_DISABLE_COPY(DialogSeamAllowance)
|
||||||
|
|
||||||
Ui::DialogSeamAllowance *ui;
|
Ui::DialogSeamAllowance *ui;
|
||||||
bool applyAllowed;
|
bool applyAllowed;
|
||||||
|
bool flagGPin;
|
||||||
|
bool flagDPin;
|
||||||
|
bool flagPPin;
|
||||||
|
bool flagGFormulas;
|
||||||
bool m_bAddMode;
|
bool m_bAddMode;
|
||||||
qreal m_mx;
|
qreal m_mx;
|
||||||
qreal m_my;
|
qreal m_my;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user