diff --git a/src/app/tools/drawTools/vabstractspline.cpp b/src/app/tools/drawTools/vabstractspline.cpp index ab0845301..b62894c23 100644 --- a/src/app/tools/drawTools/vabstractspline.cpp +++ b/src/app/tools/drawTools/vabstractspline.cpp @@ -221,6 +221,14 @@ void VAbstractSpline::ReadToolAttributes(const QDomElement &domElement) lineColor = doc->GetParametrString(domElement, AttrColor, ColorBlack); } +//--------------------------------------------------------------------------------------------------------------------- +void VAbstractSpline::SaveOptions(QDomElement &tag, QSharedPointer &obj) +{ + VDrawTool::SaveOptions(tag, obj); + + doc->SetAttribute(tag, AttrColor, lineColor); +} + //--------------------------------------------------------------------------------------------------------------------- void VAbstractSpline::ShowHandles(bool show) { diff --git a/src/app/tools/drawTools/vabstractspline.h b/src/app/tools/drawTools/vabstractspline.h index 9dfa79d57..6dfe08709 100644 --- a/src/app/tools/drawTools/vabstractspline.h +++ b/src/app/tools/drawTools/vabstractspline.h @@ -89,6 +89,7 @@ protected: virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ); QPainterPath ToolPath(PathDirection direction = PathDirection::Hide) const; virtual void ReadToolAttributes(const QDomElement &domElement); + virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj); template void ShowToolVisualization(bool show) diff --git a/src/app/tools/drawTools/vdrawtool.cpp b/src/app/tools/drawTools/vdrawtool.cpp index 04fc9aa99..2a54b762c 100644 --- a/src/app/tools/drawTools/vdrawtool.cpp +++ b/src/app/tools/drawTools/vdrawtool.cpp @@ -170,6 +170,35 @@ void VDrawTool::RefreshDataInFile() } } +//--------------------------------------------------------------------------------------------------------------------- +void VDrawTool::SaveOption(QSharedPointer &obj) +{ + qCDebug(vTool, "Saving tool options"); + QDomElement oldDomElement = doc->elementById(id); + if (oldDomElement.isElement()) + { + QDomElement newDomElement = oldDomElement.cloneNode().toElement(); + + SaveOptions(newDomElement, obj); + + SaveToolOptions *saveOptions = new SaveToolOptions(oldDomElement, newDomElement, doc, id); + connect(saveOptions, &SaveToolOptions::NeedLiteParsing, doc, &VPattern::LiteParseTree); + qApp->getUndoStack()->push(saveOptions); + } + else + { + qCDebug(vTool, "Can't find tool with id = %u", id); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void VDrawTool::SaveOptions(QDomElement &tag, QSharedPointer &obj) +{ + Q_UNUSED(obj) + + doc->SetAttribute(tag, VDomDocument::AttrId, id); +} + //--------------------------------------------------------------------------------------------------------------------- QColor VDrawTool::CorrectColor(const QColor &color) const { diff --git a/src/app/tools/drawTools/vdrawtool.h b/src/app/tools/drawTools/vdrawtool.h index 819f9c0f0..bae635ed5 100644 --- a/src/app/tools/drawTools/vdrawtool.h +++ b/src/app/tools/drawTools/vdrawtool.h @@ -94,6 +94,8 @@ protected: void SaveDialogChange(); virtual void AddToFile(); virtual void RefreshDataInFile(); + void SaveOption(QSharedPointer &obj); + virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj); QColor CorrectColor(const QColor &color) const; bool CorrectDisable(bool disable, const QString &namePP) const; diff --git a/src/app/tools/drawTools/vtoolalongline.cpp b/src/app/tools/drawTools/vtoolalongline.cpp index 499a08041..16caa352d 100644 --- a/src/app/tools/drawTools/vtoolalongline.cpp +++ b/src/app/tools/drawTools/vtoolalongline.cpp @@ -120,17 +120,9 @@ void VToolAlongLine::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolAlongLine::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolLinePoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - - doc->SetAttribute(tag, AttrTypeLine, typeLine); - doc->SetAttribute(tag, AttrLineColor, lineColor); doc->SetAttribute(tag, AttrLength, formulaLength); doc->SetAttribute(tag, AttrFirstPoint, basePointId); doc->SetAttribute(tag, AttrSecondPoint, secondPointId); diff --git a/src/app/tools/drawTools/vtoolarc.cpp b/src/app/tools/drawTools/vtoolarc.cpp index a405bc0d6..27f27878d 100644 --- a/src/app/tools/drawTools/vtoolarc.cpp +++ b/src/app/tools/drawTools/vtoolarc.cpp @@ -323,16 +323,16 @@ void VToolArc::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolArc::SaveOptions(QDomElement &tag, QSharedPointer &obj) { + VAbstractSpline::SaveOptions(tag, obj); + QSharedPointer arc = qSharedPointerDynamicCast(obj); SCASSERT(arc.isNull() == false); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); doc->SetAttribute(tag, AttrCenter, arc->GetCenter().id()); doc->SetAttribute(tag, AttrRadius, arc->GetFormulaRadius()); doc->SetAttribute(tag, AttrAngle1, arc->GetFormulaF1()); doc->SetAttribute(tag, AttrAngle2, arc->GetFormulaF2()); - doc->SetAttribute(tag, AttrColor, lineColor); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tools/drawTools/vtoolbisector.cpp b/src/app/tools/drawTools/vtoolbisector.cpp index 9739bad34..7f2bf00a8 100644 --- a/src/app/tools/drawTools/vtoolbisector.cpp +++ b/src/app/tools/drawTools/vtoolbisector.cpp @@ -286,17 +286,9 @@ void VToolBisector::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolBisector::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolLinePoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - - doc->SetAttribute(tag, AttrTypeLine, typeLine); - doc->SetAttribute(tag, AttrLineColor, lineColor); doc->SetAttribute(tag, AttrLength, formulaLength); doc->SetAttribute(tag, AttrFirstPoint, firstPointId); doc->SetAttribute(tag, AttrSecondPoint, basePointId); diff --git a/src/app/tools/drawTools/vtoolcurveintersectaxis.cpp b/src/app/tools/drawTools/vtoolcurveintersectaxis.cpp index 11ffeaafd..18ad8afd6 100644 --- a/src/app/tools/drawTools/vtoolcurveintersectaxis.cpp +++ b/src/app/tools/drawTools/vtoolcurveintersectaxis.cpp @@ -258,17 +258,9 @@ void VToolCurveIntersectAxis::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolCurveIntersectAxis::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolLinePoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - - doc->SetAttribute(tag, AttrTypeLine, typeLine); - doc->SetAttribute(tag, AttrLineColor, lineColor); doc->SetAttribute(tag, AttrAngle, formulaAngle); doc->SetAttribute(tag, AttrBasePoint, basePointId); doc->SetAttribute(tag, AttrCurve, curveId); diff --git a/src/app/tools/drawTools/vtoolcut.cpp b/src/app/tools/drawTools/vtoolcut.cpp index b34a3bc10..021438268 100644 --- a/src/app/tools/drawTools/vtoolcut.cpp +++ b/src/app/tools/drawTools/vtoolcut.cpp @@ -155,3 +155,11 @@ void VToolCut::FullUpdateCurveFromFile(const QString &attrCurve) curveCutId = domElement.attribute(attrCurve, "").toUInt(); } } + +//--------------------------------------------------------------------------------------------------------------------- +void VToolCut::SaveOptions(QDomElement &tag, QSharedPointer &obj) +{ + VToolPoint::SaveOptions(tag, obj); + + doc->SetAttribute(tag, AttrColor, lineColor); +} diff --git a/src/app/tools/drawTools/vtoolcut.h b/src/app/tools/drawTools/vtoolcut.h index 5eeec0dbd..a8d6ac879 100644 --- a/src/app/tools/drawTools/vtoolcut.h +++ b/src/app/tools/drawTools/vtoolcut.h @@ -76,6 +76,7 @@ protected: void RefreshGeometry(); virtual void RemoveReferens(); void FullUpdateCurveFromFile(const QString &attrCurve); + virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj); template void ShowToolVisualization(bool show) diff --git a/src/app/tools/drawTools/vtoolcutarc.cpp b/src/app/tools/drawTools/vtoolcutarc.cpp index 3d9e64184..004af1edb 100644 --- a/src/app/tools/drawTools/vtoolcutarc.cpp +++ b/src/app/tools/drawTools/vtoolcutarc.cpp @@ -257,16 +257,9 @@ void VToolCutArc::RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCurve //--------------------------------------------------------------------------------------------------------------------- void VToolCutArc::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolCut::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - doc->SetAttribute(tag, AttrColor, lineColor); - doc->SetAttribute(tag, AttrLength, formula); doc->SetAttribute(tag, AttrArc, curveCutId); } diff --git a/src/app/tools/drawTools/vtoolcutspline.cpp b/src/app/tools/drawTools/vtoolcutspline.cpp index 184d00cfc..868a658ea 100644 --- a/src/app/tools/drawTools/vtoolcutspline.cpp +++ b/src/app/tools/drawTools/vtoolcutspline.cpp @@ -266,16 +266,9 @@ void VToolCutSpline::RefreshCurve(VSimpleCurve *curve, quint32 curveId, SimpleCu //--------------------------------------------------------------------------------------------------------------------- void VToolCutSpline::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolCut::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - doc->SetAttribute(tag, AttrColor, lineColor); - doc->SetAttribute(tag, AttrLength, formula); doc->SetAttribute(tag, AttrSpline, curveCutId); } diff --git a/src/app/tools/drawTools/vtoolcutsplinepath.cpp b/src/app/tools/drawTools/vtoolcutsplinepath.cpp index f33ace8bd..d6ae2455d 100644 --- a/src/app/tools/drawTools/vtoolcutsplinepath.cpp +++ b/src/app/tools/drawTools/vtoolcutsplinepath.cpp @@ -312,16 +312,9 @@ void VToolCutSplinePath::RefreshCurve(VSimpleCurve *curve, quint32 curveId, Simp //--------------------------------------------------------------------------------------------------------------------- void VToolCutSplinePath::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolCut::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - doc->SetAttribute(tag, AttrColor, lineColor); - doc->SetAttribute(tag, AttrLength, formula); doc->SetAttribute(tag, AttrSplinePath, curveCutId); } diff --git a/src/app/tools/drawTools/vtoolendline.cpp b/src/app/tools/drawTools/vtoolendline.cpp index 17096ba89..58524385c 100644 --- a/src/app/tools/drawTools/vtoolendline.cpp +++ b/src/app/tools/drawTools/vtoolendline.cpp @@ -215,17 +215,9 @@ void VToolEndLine::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolEndLine::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolLinePoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - - doc->SetAttribute(tag, AttrTypeLine, typeLine); - doc->SetAttribute(tag, AttrLineColor, lineColor); doc->SetAttribute(tag, AttrLength, formulaLength); doc->SetAttribute(tag, AttrAngle, formulaAngle); doc->SetAttribute(tag, AttrBasePoint, basePointId); diff --git a/src/app/tools/drawTools/vtoolheight.cpp b/src/app/tools/drawTools/vtoolheight.cpp index a1efbcdba..0676cc24a 100644 --- a/src/app/tools/drawTools/vtoolheight.cpp +++ b/src/app/tools/drawTools/vtoolheight.cpp @@ -223,17 +223,9 @@ void VToolHeight::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolHeight::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolLinePoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - - doc->SetAttribute(tag, AttrTypeLine, typeLine); - doc->SetAttribute(tag, AttrLineColor, lineColor); doc->SetAttribute(tag, AttrBasePoint, basePointId); doc->SetAttribute(tag, AttrP1Line, p1LineId); doc->SetAttribute(tag, AttrP2Line, p2LineId); diff --git a/src/app/tools/drawTools/vtoolline.cpp b/src/app/tools/drawTools/vtoolline.cpp index 1f0ba0334..d8de28978 100644 --- a/src/app/tools/drawTools/vtoolline.cpp +++ b/src/app/tools/drawTools/vtoolline.cpp @@ -360,9 +360,8 @@ void VToolLine::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolLine::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - Q_UNUSED(obj) + VDrawTool::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrFirstPoint, firstPoint); doc->SetAttribute(tag, AttrSecondPoint, secondPoint); doc->SetAttribute(tag, AttrTypeLine, typeLine); diff --git a/src/app/tools/drawTools/vtoollineintersect.cpp b/src/app/tools/drawTools/vtoollineintersect.cpp index 59ba14ccd..771b6bf2d 100644 --- a/src/app/tools/drawTools/vtoollineintersect.cpp +++ b/src/app/tools/drawTools/vtoollineintersect.cpp @@ -243,15 +243,9 @@ void VToolLineIntersect::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolLineIntersect::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolPoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - doc->SetAttribute(tag, AttrP1Line1, p1Line1); doc->SetAttribute(tag, AttrP2Line1, p2Line1); doc->SetAttribute(tag, AttrP1Line2, p1Line2); diff --git a/src/app/tools/drawTools/vtoollineintersectaxis.cpp b/src/app/tools/drawTools/vtoollineintersectaxis.cpp index f0904b29a..7cf2256d0 100644 --- a/src/app/tools/drawTools/vtoollineintersectaxis.cpp +++ b/src/app/tools/drawTools/vtoollineintersectaxis.cpp @@ -262,17 +262,9 @@ void VToolLineIntersectAxis::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolLineIntersectAxis::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolLinePoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - - doc->SetAttribute(tag, AttrTypeLine, typeLine); - doc->SetAttribute(tag, AttrLineColor, lineColor); doc->SetAttribute(tag, AttrAngle, formulaAngle); doc->SetAttribute(tag, AttrBasePoint, basePointId); doc->SetAttribute(tag, AttrP1Line, firstPointId); diff --git a/src/app/tools/drawTools/vtoollinepoint.cpp b/src/app/tools/drawTools/vtoollinepoint.cpp index 32423b392..832cb708d 100644 --- a/src/app/tools/drawTools/vtoollinepoint.cpp +++ b/src/app/tools/drawTools/vtoollinepoint.cpp @@ -87,6 +87,15 @@ void VToolLinePoint::RemoveReferens() doc->DecrementReferens(basePointId); } +//--------------------------------------------------------------------------------------------------------------------- +void VToolLinePoint::SaveOptions(QDomElement &tag, QSharedPointer &obj) +{ + VToolPoint::SaveOptions(tag, obj); + + doc->SetAttribute(tag, AttrTypeLine, typeLine); + doc->SetAttribute(tag, AttrLineColor, lineColor); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief SetFactor set current scale factor of scene. diff --git a/src/app/tools/drawTools/vtoollinepoint.h b/src/app/tools/drawTools/vtoollinepoint.h index 12b7c260e..28762114e 100644 --- a/src/app/tools/drawTools/vtoollinepoint.h +++ b/src/app/tools/drawTools/vtoollinepoint.h @@ -72,6 +72,7 @@ protected: virtual void RefreshGeometry(); virtual void RemoveReferens(); + virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj); private: Q_DISABLE_COPY(VToolLinePoint) }; diff --git a/src/app/tools/drawTools/vtoolnormal.cpp b/src/app/tools/drawTools/vtoolnormal.cpp index 255358430..33767dd3f 100644 --- a/src/app/tools/drawTools/vtoolnormal.cpp +++ b/src/app/tools/drawTools/vtoolnormal.cpp @@ -253,17 +253,9 @@ void VToolNormal::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolNormal::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolLinePoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - - doc->SetAttribute(tag, AttrTypeLine, typeLine); - doc->SetAttribute(tag, AttrLineColor, lineColor); doc->SetAttribute(tag, AttrLength, formulaLength); doc->SetAttribute(tag, AttrAngle, angle); doc->SetAttribute(tag, AttrFirstPoint, basePointId); diff --git a/src/app/tools/drawTools/vtoolpoint.cpp b/src/app/tools/drawTools/vtoolpoint.cpp index 30644692e..043208bd2 100644 --- a/src/app/tools/drawTools/vtoolpoint.cpp +++ b/src/app/tools/drawTools/vtoolpoint.cpp @@ -332,6 +332,19 @@ void VToolPoint::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) Q_UNUSED(event) } +//--------------------------------------------------------------------------------------------------------------------- +void VToolPoint::SaveOptions(QDomElement &tag, QSharedPointer &obj) +{ + VDrawTool::SaveOptions(tag, obj); + + QSharedPointer point = qSharedPointerDynamicCast(obj); + SCASSERT(point.isNull() == false); + + doc->SetAttribute(tag, AttrName, point->name()); + doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); + doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); +} + //--------------------------------------------------------------------------------------------------------------------- void VToolPoint::setEnabled(bool enabled) { diff --git a/src/app/tools/drawTools/vtoolpoint.h b/src/app/tools/drawTools/vtoolpoint.h index a3e00f345..01eaf7b34 100644 --- a/src/app/tools/drawTools/vtoolpoint.h +++ b/src/app/tools/drawTools/vtoolpoint.h @@ -78,6 +78,7 @@ protected: virtual QVariant itemChange ( GraphicsItemChange change, const QVariant &value ); virtual void keyReleaseEvent(QKeyEvent * event); virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); + virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj); template void ShowToolVisualization(bool show) diff --git a/src/app/tools/drawTools/vtoolpointofcontact.cpp b/src/app/tools/drawTools/vtoolpointofcontact.cpp index 47317add0..2ef0c17e4 100644 --- a/src/app/tools/drawTools/vtoolpointofcontact.cpp +++ b/src/app/tools/drawTools/vtoolpointofcontact.cpp @@ -295,15 +295,9 @@ void VToolPointOfContact::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolPointOfContact::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolPoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - doc->SetAttribute(tag, AttrRadius, arcRadius); doc->SetAttribute(tag, AttrCenter, center); doc->SetAttribute(tag, AttrFirstPoint, firstPointId); diff --git a/src/app/tools/drawTools/vtoolpointofintersection.cpp b/src/app/tools/drawTools/vtoolpointofintersection.cpp index 36d2dd584..1feed0b89 100644 --- a/src/app/tools/drawTools/vtoolpointofintersection.cpp +++ b/src/app/tools/drawTools/vtoolpointofintersection.cpp @@ -200,15 +200,9 @@ void VToolPointOfIntersection::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolPointOfIntersection::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolPoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - doc->SetAttribute(tag, AttrFirstPoint, firstPointId); doc->SetAttribute(tag, AttrSecondPoint, secondPointId); } diff --git a/src/app/tools/drawTools/vtoolpointofintersectionarcs.cpp b/src/app/tools/drawTools/vtoolpointofintersectionarcs.cpp index 56fb30dc5..5176ddd30 100644 --- a/src/app/tools/drawTools/vtoolpointofintersectionarcs.cpp +++ b/src/app/tools/drawTools/vtoolpointofintersectionarcs.cpp @@ -245,15 +245,9 @@ void VToolPointOfIntersectionArcs::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolPointOfIntersectionArcs::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolPoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - doc->SetAttribute(tag, AttrFirstArc, firstArcId); doc->SetAttribute(tag, AttrSecondArc, secondArcId); doc->SetAttribute(tag, AttrCrossPoint, static_cast(crossPoint)); diff --git a/src/app/tools/drawTools/vtoolshoulderpoint.cpp b/src/app/tools/drawTools/vtoolshoulderpoint.cpp index 548beecb0..b9f0c53a1 100644 --- a/src/app/tools/drawTools/vtoolshoulderpoint.cpp +++ b/src/app/tools/drawTools/vtoolshoulderpoint.cpp @@ -280,17 +280,9 @@ void VToolShoulderPoint::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolShoulderPoint::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolLinePoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - - doc->SetAttribute(tag, AttrTypeLine, typeLine); - doc->SetAttribute(tag, AttrLineColor, lineColor); doc->SetAttribute(tag, AttrLength, formulaLength); doc->SetAttribute(tag, AttrP1Line, basePointId); doc->SetAttribute(tag, AttrP2Line, p2Line); diff --git a/src/app/tools/drawTools/vtoolsinglepoint.cpp b/src/app/tools/drawTools/vtoolsinglepoint.cpp index dca90f60c..5c025facc 100644 --- a/src/app/tools/drawTools/vtoolsinglepoint.cpp +++ b/src/app/tools/drawTools/vtoolsinglepoint.cpp @@ -264,16 +264,14 @@ void VToolSinglePoint::SetColorLabel(const Qt::GlobalColor &color) //--------------------------------------------------------------------------------------------------------------------- void VToolSinglePoint::SaveOptions(QDomElement &tag, QSharedPointer &obj) { + VToolPoint::SaveOptions(tag, obj); + QSharedPointer point = qSharedPointerDynamicCast(obj); SCASSERT(point.isNull() == false); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); doc->SetAttribute(tag, AttrX, qApp->fromPixel(point->x())); doc->SetAttribute(tag, AttrY, qApp->fromPixel(point->y())); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tools/drawTools/vtoolspline.cpp b/src/app/tools/drawTools/vtoolspline.cpp index 4b7c59c25..decd1d0c2 100644 --- a/src/app/tools/drawTools/vtoolspline.cpp +++ b/src/app/tools/drawTools/vtoolspline.cpp @@ -321,10 +321,11 @@ void VToolSpline::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolSpline::SaveOptions(QDomElement &tag, QSharedPointer &obj) { + VAbstractSpline::SaveOptions(tag, obj); + QSharedPointer spl = qSharedPointerDynamicCast(obj); SCASSERT(spl.isNull() == false); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); doc->SetAttribute(tag, AttrPoint1, spl->GetP1().id()); doc->SetAttribute(tag, AttrPoint4, spl->GetP4().id()); @@ -333,7 +334,6 @@ void VToolSpline::SaveOptions(QDomElement &tag, QSharedPointer &obj) doc->SetAttribute(tag, AttrKAsm1, spl->GetKasm1()); doc->SetAttribute(tag, AttrKAsm2, spl->GetKasm2()); doc->SetAttribute(tag, AttrKCurve, spl->GetKcurve()); - doc->SetAttribute(tag, AttrColor, lineColor); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tools/drawTools/vtoolsplinepath.cpp b/src/app/tools/drawTools/vtoolsplinepath.cpp index c41a6b35d..bf29bd489 100644 --- a/src/app/tools/drawTools/vtoolsplinepath.cpp +++ b/src/app/tools/drawTools/vtoolsplinepath.cpp @@ -389,13 +389,13 @@ void VToolSplinePath::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolSplinePath::SaveOptions(QDomElement &tag, QSharedPointer &obj) { + VAbstractSpline::SaveOptions(tag, obj); + QSharedPointer splPath = qSharedPointerDynamicCast(obj); SCASSERT(splPath.isNull() == false); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); doc->SetAttribute(tag, AttrKCurve, splPath->GetKCurve()); - doc->SetAttribute(tag, AttrColor, lineColor); doc->RemoveAllChild(tag); for (qint32 i = 0; i < splPath->CountPoint(); ++i) diff --git a/src/app/tools/drawTools/vtooltriangle.cpp b/src/app/tools/drawTools/vtooltriangle.cpp index 7c58cfd39..dad5900a1 100644 --- a/src/app/tools/drawTools/vtooltriangle.cpp +++ b/src/app/tools/drawTools/vtooltriangle.cpp @@ -259,15 +259,9 @@ void VToolTriangle::SaveDialog(QDomElement &domElement) //--------------------------------------------------------------------------------------------------------------------- void VToolTriangle::SaveOptions(QDomElement &tag, QSharedPointer &obj) { - QSharedPointer point = qSharedPointerDynamicCast(obj); - SCASSERT(point.isNull() == false); + VToolPoint::SaveOptions(tag, obj); - doc->SetAttribute(tag, VDomDocument::AttrId, id); doc->SetAttribute(tag, AttrType, ToolType); - doc->SetAttribute(tag, AttrName, point->name()); - doc->SetAttribute(tag, AttrMx, qApp->fromPixel(point->mx())); - doc->SetAttribute(tag, AttrMy, qApp->fromPixel(point->my())); - doc->SetAttribute(tag, AttrAxisP1, axisP1Id); doc->SetAttribute(tag, AttrAxisP2, axisP2Id); doc->SetAttribute(tag, AttrFirstPoint, firstPointId); diff --git a/src/app/tools/nodeDetails/vabstractnode.cpp b/src/app/tools/nodeDetails/vabstractnode.cpp index c3e9d23b0..cd078feb6 100644 --- a/src/app/tools/nodeDetails/vabstractnode.cpp +++ b/src/app/tools/nodeDetails/vabstractnode.cpp @@ -136,10 +136,3 @@ void VAbstractNode::RestoreReferens() doc->IncrementReferens(idNode); } } - -//--------------------------------------------------------------------------------------------------------------------- -void VAbstractNode::SaveOptions(QDomElement &tag, QSharedPointer &obj) -{ - Q_UNUSED(tag) - Q_UNUSED(obj) -} diff --git a/src/app/tools/nodeDetails/vabstractnode.h b/src/app/tools/nodeDetails/vabstractnode.h index 5cecb1233..49ec441ad 100644 --- a/src/app/tools/nodeDetails/vabstractnode.h +++ b/src/app/tools/nodeDetails/vabstractnode.h @@ -62,7 +62,6 @@ protected: virtual void decrementReferens(); virtual void RemoveReferens(); virtual void RestoreReferens(); - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj); virtual void SetVisualization() {} }; diff --git a/src/app/tools/vabstracttool.cpp b/src/app/tools/vabstracttool.cpp index d9ae938dc..c8774cebe 100644 --- a/src/app/tools/vabstracttool.cpp +++ b/src/app/tools/vabstracttool.cpp @@ -330,27 +330,6 @@ QMap VAbstractTool::PointsList() const return list; } -//--------------------------------------------------------------------------------------------------------------------- -void VAbstractTool::SaveOption(QSharedPointer &obj) -{ - qCDebug(vTool, "Saving tool options"); - QDomElement oldDomElement = doc->elementById(id); - if (oldDomElement.isElement()) - { - QDomElement newDomElement = oldDomElement.cloneNode().toElement(); - - SaveOptions(newDomElement, obj); - - SaveToolOptions *saveOptions = new SaveToolOptions(oldDomElement, newDomElement, doc, id); - connect(saveOptions, &SaveToolOptions::NeedLiteParsing, doc, &VPattern::LiteParseTree); - qApp->getUndoStack()->push(saveOptions); - } - else - { - qCDebug(vTool, "Can't find tool with id = %u", id); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VAbstractTool::ToolCreation(const Source &typeCreation) { diff --git a/src/app/tools/vabstracttool.h b/src/app/tools/vabstracttool.h index 8f7241465..2d18ada20 100644 --- a/src/app/tools/vabstracttool.h +++ b/src/app/tools/vabstracttool.h @@ -170,8 +170,6 @@ protected: virtual void RemoveReferens(){} virtual void DeleteTool(bool ask = true); static int ConfirmDeletion(); - void SaveOption(QSharedPointer &obj); - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj)=0; template void AddVisualization() diff --git a/src/app/tools/vtooldetail.cpp b/src/app/tools/vtooldetail.cpp index 859eb562c..a732c38ba 100644 --- a/src/app/tools/vtooldetail.cpp +++ b/src/app/tools/vtooldetail.cpp @@ -373,13 +373,6 @@ void VToolDetail::keyReleaseEvent(QKeyEvent *event) QGraphicsItem::keyReleaseEvent ( event ); } -//--------------------------------------------------------------------------------------------------------------------- -void VToolDetail::SaveOptions(QDomElement &tag, QSharedPointer &obj) -{ - Q_UNUSED(tag) - Q_UNUSED(obj) -} - //--------------------------------------------------------------------------------------------------------------------- /** * @brief mouseReleaseEvent handle mouse release events. diff --git a/src/app/tools/vtooldetail.h b/src/app/tools/vtooldetail.h index db001138b..17ee686f8 100644 --- a/src/app/tools/vtooldetail.h +++ b/src/app/tools/vtooldetail.h @@ -98,7 +98,6 @@ protected: virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); virtual void RemoveReferens(); virtual void keyReleaseEvent(QKeyEvent * event); - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj); virtual void SetVisualization() {} private: Q_DISABLE_COPY(VToolDetail) diff --git a/src/app/tools/vtooluniondetails.cpp b/src/app/tools/vtooluniondetails.cpp index 11a8dd615..9099bbe03 100644 --- a/src/app/tools/vtooluniondetails.cpp +++ b/src/app/tools/vtooluniondetails.cpp @@ -741,13 +741,6 @@ void VToolUnionDetails::RefreshDataInFile() } } -//--------------------------------------------------------------------------------------------------------------------- -void VToolUnionDetails::SaveOptions(QDomElement &tag, QSharedPointer &obj) -{ - Q_UNUSED(tag) - Q_UNUSED(obj) -} - //--------------------------------------------------------------------------------------------------------------------- /** * @brief AddDetail add detail to xml file. diff --git a/src/app/tools/vtooluniondetails.h b/src/app/tools/vtooluniondetails.h index 900eba391..3062d508e 100644 --- a/src/app/tools/vtooluniondetails.h +++ b/src/app/tools/vtooluniondetails.h @@ -86,7 +86,6 @@ public slots: protected: virtual void AddToFile(); virtual void RefreshDataInFile(); - virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj); virtual void SetVisualization() {} private: Q_DISABLE_COPY(VToolUnionDetails)