From e82f65fc6a83ccd64adcff1623e7c787ac183e1e Mon Sep 17 00:00:00 2001 From: BojanKverh Date: Sun, 23 Oct 2016 20:59:38 +0200 Subject: [PATCH] Fixed the grainline tab icon in details dialog --HG-- branch : feature --- src/app/valentina/xml/vpattern.cpp | 16 ++++++++++++---- src/libs/vtools/dialogs/tools/dialogdetail.cpp | 12 ++++++++++-- src/libs/vtools/dialogs/tools/dialogdetail.h | 1 + src/libs/vtools/tools/vtooldetail.cpp | 3 +++ .../vtools/undocommands/savedetailoptions.cpp | 7 +++++-- 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/app/valentina/xml/vpattern.cpp b/src/app/valentina/xml/vpattern.cpp index c6186ca16..02840d407 100644 --- a/src/app/valentina/xml/vpattern.cpp +++ b/src/app/valentina/xml/vpattern.cpp @@ -726,10 +726,18 @@ void VPattern::ParseDetailElement(const QDomElement &domElement, const Document ptPos.setX(GetParametrDouble(element, AttrMx, "0")); ptPos.setY(GetParametrDouble(element, AttrMy, "0")); detail.GetGrainlineGeometry().SetPos(ptPos); - QString qsLength = GetParametrString(element, AttrLength, "0"); - detail.GetGrainlineGeometry().SetLength(qsLength); - QString qsRot = GetParametrString(element, VToolDetail::AttrRotation, "0"); - detail.GetGrainlineGeometry().SetRotation(qsRot); + if (detail.GetGrainlineGeometry().IsVisible() == true) + { + QString qsLength = GetParametrString(element, AttrLength); + detail.GetGrainlineGeometry().SetLength(qsLength); + QString qsRot = GetParametrString(element, VToolDetail::AttrRotation); + detail.GetGrainlineGeometry().SetRotation(qsRot); + } + else + { + detail.GetGrainlineGeometry().SetLength(""); + detail.GetGrainlineGeometry().SetRotation(""); + } } } } diff --git a/src/libs/vtools/dialogs/tools/dialogdetail.cpp b/src/libs/vtools/dialogs/tools/dialogdetail.cpp index e82f2e704..1049cc744 100644 --- a/src/libs/vtools/dialogs/tools/dialogdetail.cpp +++ b/src/libs/vtools/dialogs/tools/dialogdetail.cpp @@ -903,8 +903,7 @@ void DialogDetail::UpdateValues() } else { - QIcon icon; - ui.tabWidget->setTabIcon(2, icon); + ResetWarning(); } } @@ -974,6 +973,7 @@ void DialogDetail::EnableGrainlineRotation() ChangeColor(ui.labelEditLen, okColor); ChangeColor(ui.labelEditRot, okColor); bOk->setEnabled(true); + ResetWarning(); } } @@ -1024,3 +1024,11 @@ void DialogDetail::DeployLength() } //--------------------------------------------------------------------------------------------------------------------- +void DialogDetail::ResetWarning() +{ + QIcon icon; + ui.tabWidget->setTabIcon(2, icon); +} + +//--------------------------------------------------------------------------------------------------------------------- + diff --git a/src/libs/vtools/dialogs/tools/dialogdetail.h b/src/libs/vtools/dialogs/tools/dialogdetail.h index c40cb37a6..cecc051d7 100644 --- a/src/libs/vtools/dialogs/tools/dialogdetail.h +++ b/src/libs/vtools/dialogs/tools/dialogdetail.h @@ -135,6 +135,7 @@ private slots: void EditFormula(); void DeployRotation(); void DeployLength(); + void ResetWarning(); }; //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/tools/vtooldetail.cpp b/src/libs/vtools/tools/vtooldetail.cpp index 7694f92cf..81a2be130 100644 --- a/src/libs/vtools/tools/vtooldetail.cpp +++ b/src/libs/vtools/tools/vtooldetail.cpp @@ -502,6 +502,7 @@ void VToolDetail::AddToFile() doc->SetAttribute(domData, AttrMy, glGeom.GetPos().y()); doc->SetAttribute(domData, AttrLength, glGeom.GetLength()); doc->SetAttribute(domData, AttrRotation, glGeom.GetRotation()); + qDebug() << "XML ROTATION" << glGeom.GetRotation(); // nodes for (int i = 0; i < detail.CountNode(); ++i) @@ -580,6 +581,7 @@ void VToolDetail::RefreshDataInFile() doc->SetAttribute(domData, AttrMy, glGeom.GetPos().y()); doc->SetAttribute(domData, AttrLength, glGeom.GetLength()); doc->SetAttribute(domData, AttrRotation, glGeom.GetRotation()); + qDebug() << "XML ROTATION2" << glGeom.GetRotation(); // nodes for (int i = 0; i < det.CountNode(); ++i) @@ -926,6 +928,7 @@ void VToolDetail::UpdateGrainline() QString qsFormula; qsFormula = geom.GetRotation().replace("\n", " "); qsFormula = qApp->TrVars()->FormulaFromUser(qsFormula, qApp->Settings()->GetOsSeparator()); + Calculator cal1; dRotation = cal1.EvalFormula(VDataTool::data.PlainVariables(), qsFormula); diff --git a/src/libs/vtools/undocommands/savedetailoptions.cpp b/src/libs/vtools/undocommands/savedetailoptions.cpp index 5cc0c525d..5cdf5d57a 100644 --- a/src/libs/vtools/undocommands/savedetailoptions.cpp +++ b/src/libs/vtools/undocommands/savedetailoptions.cpp @@ -208,8 +208,11 @@ void SaveDetailOptions::SaveGrainline(QDomElement &domElement, const VDetail &de doc->SetAttribute(domData, VAbstractPattern::AttrVisible, glGeom.IsVisible() == true? trueStr : falseStr); doc->SetAttribute(domData, AttrMx, glGeom.GetPos().x()); doc->SetAttribute(domData, AttrMy, glGeom.GetPos().y()); - doc->SetAttribute(domData, AttrLength, glGeom.GetLength()); - doc->SetAttribute(domData, VToolDetail::AttrRotation, glGeom.GetRotation()); + if (glGeom.IsVisible() == true) + { + doc->SetAttribute(domData, AttrLength, glGeom.GetLength()); + doc->SetAttribute(domData, VToolDetail::AttrRotation, glGeom.GetRotation()); + } domElement.appendChild(domData); }