diff --git a/src/app/dialogs/app/dialogincrements.cpp b/src/app/dialogs/app/dialogincrements.cpp index a055f4c52..295090cd5 100644 --- a/src/app/dialogs/app/dialogincrements.cpp +++ b/src/app/dialogs/app/dialogincrements.cpp @@ -31,7 +31,6 @@ #include "../../widgets/doubledelegate.h" #include "../../widgets/textdelegate.h" #include "../../xml/vstandardmeasurements.h" -#include "../../xml/vpattern.h" #include "../../xml/vindividualmeasurements.h" #include @@ -471,7 +470,7 @@ void DialogIncrements::OpenTable() m = m1; data->ClearVariables(VarType::Measurement); m->Measurements(); - emit FullUpdateTree(); + emit FullUpdateTree(Document::LiteParse); doc->SetPath(filePath); emit haveLiteChange(); @@ -504,7 +503,7 @@ void DialogIncrements::OpenTable() data->ClearVariables(VarType::Measurement); m1->Measurements(); delete m1; - emit FullUpdateTree(); + emit FullUpdateTree(Document::LiteParse); doc->SetPath(filePath); emit haveLiteChange(); @@ -673,22 +672,22 @@ void DialogIncrements::IncrementChanged ( qint32 row, qint32 column ) doc->SetAttribute(domElement, VPattern::IncrementName, item->text()); data->ClearVariables(VarType::Increment); this->column = 2; - emit FullUpdateTree(); + emit FullUpdateTree(Document::LiteParse); break; case 2: // VPattern::IncrementBase doc->SetAttribute(domElement, VPattern::IncrementBase, item->text()); this->column = 3; - emit FullUpdateTree(); + emit FullUpdateTree(Document::LiteParse); break; case 3: // VPattern::IncrementKsize doc->SetAttribute(domElement, VPattern::IncrementKsize, item->text()); this->column = 4; - emit FullUpdateTree(); + emit FullUpdateTree(Document::LiteParse); break; case 4: // VPattern::IncrementKgrowth doc->SetAttribute(domElement, VPattern::IncrementKgrowth, item->text()); this->column = 5; - emit FullUpdateTree(); + emit FullUpdateTree(Document::LiteParse); break; case 5: // VPattern::IncrementDescription { @@ -752,7 +751,7 @@ void DialogIncrements::MeasurementChanged(qint32 row, qint32 column) data->ClearVariables(); m->Measurements(); - emit FullUpdateTree(); + emit FullUpdateTree(Document::LiteParse); break; } default: diff --git a/src/app/dialogs/app/dialogincrements.h b/src/app/dialogs/app/dialogincrements.h index 9211c3144..6ce3ce407 100644 --- a/src/app/dialogs/app/dialogincrements.h +++ b/src/app/dialogs/app/dialogincrements.h @@ -30,8 +30,8 @@ #define DIALOGINCREMENTS_H #include "../tools/dialogtool.h" +#include "../../xml/vpattern.h" -class VPattern; class VIndividualMeasurements; class QTableWidget; @@ -65,7 +65,7 @@ signals: /** * @brief FullUpdateTree signal update data for dom document */ - void FullUpdateTree(); + void FullUpdateTree(const Document &parse); /** * @brief haveLiteChange signal show sign of change */ diff --git a/src/app/dialogs/app/dialogpatternxmledit.cpp b/src/app/dialogs/app/dialogpatternxmledit.cpp index 04f619278..a1477c76b 100644 --- a/src/app/dialogs/app/dialogpatternxmledit.cpp +++ b/src/app/dialogs/app/dialogpatternxmledit.cpp @@ -564,7 +564,7 @@ void DialogPatternXmlEdit::ButtonApplyChangesClicked() QMessageBox::warning(this, "Error in changes", message); return; } - this->doc->LiteParseTree(); + this->doc->LiteParseTree(Document::LiteParse); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/mainwindow.cpp b/src/app/mainwindow.cpp index e93ca807b..a8e64756f 100644 --- a/src/app/mainwindow.cpp +++ b/src/app/mainwindow.cpp @@ -564,7 +564,7 @@ void MainWindow::ClosedDialogDetail(int result) VToolDetail::Create(dialogTool, sceneDetails, doc, pattern); } ArrowTool(); - doc->LiteParseTree(); + doc->LiteParseTree(Document::LiteParse); } //--------------------------------------------------------------------------------------------------------------------- @@ -622,7 +622,7 @@ void MainWindow::ToolUnionDetails(bool checked) void MainWindow::ClosedDialogUnionDetails(int result) { ClosedDialog(result); - doc->LiteParseTree(); + doc->LiteParseTree(Document::LiteParse); } //--------------------------------------------------------------------------------------------------------------------- @@ -1483,7 +1483,7 @@ void MainWindow::ChangedSize(const QString & text) { qint32 size = text.toInt(); pattern->SetSize(size); - doc->LiteParseTree(); + doc->LiteParseTree(Document::LiteParse); } //--------------------------------------------------------------------------------------------------------------------- @@ -1495,7 +1495,7 @@ void MainWindow::ChangedHeight(const QString &text) { qint32 growth = text.toInt(); pattern->SetHeight(growth); - doc->LiteParseTree(); + doc->LiteParseTree(Document::LiteParse); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tools/vabstracttool.cpp b/src/app/tools/vabstracttool.cpp index 5e3f1a96e..5e157743d 100644 --- a/src/app/tools/vabstracttool.cpp +++ b/src/app/tools/vabstracttool.cpp @@ -27,7 +27,6 @@ *************************************************************************/ #include "vabstracttool.h" -#include "../xml/vpattern.h" #include #include #include "../undocommands/deltool.h" diff --git a/src/app/tools/vabstracttool.h b/src/app/tools/vabstracttool.h index cf36e851b..e8297f8a8 100644 --- a/src/app/tools/vabstracttool.h +++ b/src/app/tools/vabstracttool.h @@ -30,8 +30,8 @@ #define VABSTRACTTOOL_H #include "vdatatool.h" +#include "../xml/vpattern.h" -class VPattern; class QDomElement; class QLineF; class QPointF; @@ -119,7 +119,7 @@ signals: /** * @brief FullUpdateTree emit if need reparse pattern file. */ - void LiteUpdateTree(); + void LiteUpdateTree(const Document &parse); protected: /** @brief doc dom document container */ VPattern *doc; diff --git a/src/app/undocommands/movedetail.cpp b/src/app/undocommands/movedetail.cpp index fddfbb1c3..e7f671098 100644 --- a/src/app/undocommands/movedetail.cpp +++ b/src/app/undocommands/movedetail.cpp @@ -67,7 +67,7 @@ void MoveDetail::undo() { SaveCoordinates(domElement, oldX, oldY); - emit NeedLiteParsing(); + emit NeedLiteParsing(Document::LiteParse); QList list = scene->views(); VAbstractTool::NewSceneRect(scene, list[0]); @@ -89,7 +89,7 @@ void MoveDetail::redo() if (redoFlag) { - emit NeedLiteParsing(); + emit NeedLiteParsing(Document::LiteParse); } redoFlag = true; diff --git a/src/app/undocommands/movespline.cpp b/src/app/undocommands/movespline.cpp index 98f176ba9..755e76ed9 100644 --- a/src/app/undocommands/movespline.cpp +++ b/src/app/undocommands/movespline.cpp @@ -93,7 +93,7 @@ void MoveSpline::Do(const VSpline &spl) doc->SetAttribute(domElement, VAbstractTool::AttrKAsm2, QString().setNum(spl.GetKasm2())); doc->SetAttribute(domElement, VAbstractTool::AttrKCurve, QString().setNum(spl.GetKcurve())); - emit NeedLiteParsing(); + emit NeedLiteParsing(Document::LiteParse); QList list = scene->views(); VAbstractTool::NewSceneRect(scene, list[0]); diff --git a/src/app/undocommands/movesplinepath.cpp b/src/app/undocommands/movesplinepath.cpp index de167c142..bf3e1ad19 100644 --- a/src/app/undocommands/movesplinepath.cpp +++ b/src/app/undocommands/movesplinepath.cpp @@ -88,7 +88,7 @@ void MoveSplinePath::Do(const VSplinePath &splPath) doc->SetAttribute(domElement, VToolSplinePath::AttrKCurve, QString().setNum(splPath.getKCurve())); VToolSplinePath::UpdatePathPoint(doc, domElement, splPath); - emit NeedLiteParsing(); + emit NeedLiteParsing(Document::LiteParse); QList list = scene->views(); VAbstractTool::NewSceneRect(scene, list[0]); diff --git a/src/app/undocommands/movespoint.cpp b/src/app/undocommands/movespoint.cpp index cb87d369f..cf8227c47 100644 --- a/src/app/undocommands/movespoint.cpp +++ b/src/app/undocommands/movespoint.cpp @@ -103,7 +103,7 @@ void MoveSPoint::Do(double x, double y) doc->SetAttribute(domElement, VAbstractTool::AttrX, QString().setNum(qApp->fromPixel(x))); doc->SetAttribute(domElement, VAbstractTool::AttrY, QString().setNum(qApp->fromPixel(y))); - emit NeedLiteParsing(); + emit NeedLiteParsing(Document::LitePPParse); QList list = scene->views(); VAbstractTool::NewSceneRect(scene, list[0]); diff --git a/src/app/undocommands/savedetailoptions.cpp b/src/app/undocommands/savedetailoptions.cpp index 678551866..9d2dc6c24 100644 --- a/src/app/undocommands/savedetailoptions.cpp +++ b/src/app/undocommands/savedetailoptions.cpp @@ -65,7 +65,7 @@ void SaveDetailOptions::undo() doc->IncrementReferens(nodes.at(i).getId()); } } - emit NeedLiteParsing(); + emit NeedLiteParsing(Document::LiteParse); QList list = scene->views(); VAbstractTool::NewSceneRect(scene, list[0]); @@ -100,7 +100,7 @@ void SaveDetailOptions::redo() doc->DecrementReferens(list.at(i)); } } - emit NeedLiteParsing(); + emit NeedLiteParsing(Document::LiteParse); QList listV = scene->views(); VAbstractTool::NewSceneRect(scene, listV[0]); diff --git a/src/app/undocommands/savetooloptions.cpp b/src/app/undocommands/savetooloptions.cpp index a3113e1cc..f1c175302 100644 --- a/src/app/undocommands/savetooloptions.cpp +++ b/src/app/undocommands/savetooloptions.cpp @@ -51,7 +51,7 @@ void SaveToolOptions::undo() { domElement.parentNode().replaceChild(oldXml, domElement); - emit NeedLiteParsing(); + emit NeedLiteParsing(Document::LiteParse); } else { @@ -68,7 +68,7 @@ void SaveToolOptions::redo() { domElement.parentNode().replaceChild(newXml, domElement); - emit NeedLiteParsing(); + emit NeedLiteParsing(Document::LiteParse); } else { diff --git a/src/app/undocommands/savetooloptions.h b/src/app/undocommands/savetooloptions.h index 7a32ebf40..4ac44c7e6 100644 --- a/src/app/undocommands/savetooloptions.h +++ b/src/app/undocommands/savetooloptions.h @@ -44,8 +44,6 @@ public: virtual int id() const; QDomElement getNewXml() const; quint32 getToolId() const; -signals: - void NeedLiteParsing(); private: Q_DISABLE_COPY(SaveToolOptions) const QDomElement oldXml; diff --git a/src/app/undocommands/vundocommand.h b/src/app/undocommands/vundocommand.h index c087e5958..1b142007c 100644 --- a/src/app/undocommands/vundocommand.h +++ b/src/app/undocommands/vundocommand.h @@ -32,6 +32,8 @@ #include #include +#include "../xml/vpattern.h" + enum class UndoCommand: char { AddPatternPiece, AddToCalc, MoveSpline, @@ -56,7 +58,7 @@ public: signals: void ClearScene(); void NeedFullParsing(); - void NeedLiteParsing(); + void NeedLiteParsing(const Document &parse); protected: QDomElement xml; VPattern *doc; diff --git a/src/app/xml/vpattern.cpp b/src/app/xml/vpattern.cpp index 386b5a2c7..27c3c8114 100644 --- a/src/app/xml/vpattern.cpp +++ b/src/app/xml/vpattern.cpp @@ -667,7 +667,7 @@ bool VPattern::SaveDocument(const QString &fileName) /** * @brief LiteParseTree lite parse file. */ -void VPattern::LiteParseTree() +void VPattern::LiteParseTree(const Document &parse) { // Save name current pattern piece QString namePP = nameActivPP; @@ -675,8 +675,20 @@ void VPattern::LiteParseTree() try { emit SetEnabledGUI(true); - ParseCurrentPP(); - //Parse(Document::LiteParse); + switch(parse) + { + case Document::LitePPParse: + ParseCurrentPP(); + break; + case Document::LiteParse: + Parse(parse); + break; + case Document::FullParse: + qWarning()<<"Lite parsing doesn't support full parsing"; + break; + default: + break; + } } catch (const VExceptionUndo &e) { diff --git a/src/app/xml/vpattern.h b/src/app/xml/vpattern.h index b7bb38f16..de01fbe33 100644 --- a/src/app/xml/vpattern.h +++ b/src/app/xml/vpattern.h @@ -35,7 +35,7 @@ class VDataTool; class VMainGraphicsScene; -enum class Document : char { LiteParse, FullParse}; +enum class Document : char { LiteParse, LitePPParse, FullParse}; /* VAL_VERSION is (major << 16) + (minor << 8) + patch. @@ -152,7 +152,7 @@ signals: void SetEnabledGUI(bool enabled); void CheckLayout(); public slots: - void LiteParseTree(); + void LiteParseTree(const Document &parse); void haveLiteChange(); void ShowHistoryTool(quint32 id, Qt::GlobalColor color, bool enable); void NeedFullParsing();