diff --git a/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.cpp b/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.cpp index 8b8a29225..db4dd25eb 100644 --- a/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.cpp +++ b/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.cpp @@ -196,12 +196,16 @@ void VToolFlippingByAxis::SetVisualization() } //--------------------------------------------------------------------------------------------------------------------- -void VToolFlippingByAxis::SaveDialog(QDomElement &domElement) +void VToolFlippingByAxis::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + AddDependence(oldDependencies, m_originPointId); + AddDependence(newDependencies, dialogTool->GetOriginPointId()); + doc->SetAttribute(domElement, AttrCenter, QString().setNum(dialogTool->GetOriginPointId())); doc->SetAttribute(domElement, AttrAxisType, QString().setNum(static_cast(dialogTool->GetAxisType()))); doc->SetAttribute(domElement, AttrSuffix, dialogTool->GetSuffix()); @@ -247,4 +251,3 @@ VToolFlippingByAxis::VToolFlippingByAxis(const VToolFlippingByAxisInitData &init InitOperatedObjects(); ToolCreation(initData.typeCreation); } - diff --git a/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.h b/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.h index 7fd1ca617..2834a9693 100644 --- a/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.h +++ b/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyaxis.h @@ -70,7 +70,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void SetVisualization() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual QString MakeToolTip() const Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyline.cpp b/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyline.cpp index 3c07a36e2..c953fd890 100644 --- a/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyline.cpp +++ b/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyline.cpp @@ -181,12 +181,18 @@ void VToolFlippingByLine::SetVisualization() } //--------------------------------------------------------------------------------------------------------------------- -void VToolFlippingByLine::SaveDialog(QDomElement &domElement) +void VToolFlippingByLine::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + AddDependence(oldDependencies, m_firstLinePointId); + AddDependence(oldDependencies, m_secondLinePointId); + AddDependence(newDependencies, dialogTool->GetFirstLinePointId()); + AddDependence(newDependencies, dialogTool->GetSecondLinePointId()); + doc->SetAttribute(domElement, AttrP1Line, QString().setNum(dialogTool->GetFirstLinePointId())); doc->SetAttribute(domElement, AttrP2Line, QString().setNum(dialogTool->GetSecondLinePointId())); doc->SetAttribute(domElement, AttrSuffix, dialogTool->GetSuffix()); diff --git a/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyline.h b/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyline.h index 5f9d04808..b4700f404 100644 --- a/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyline.h +++ b/src/libs/vtools/tools/drawTools/operation/flipping/vtoolflippingbyline.h @@ -69,7 +69,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void SetVisualization() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual QString MakeToolTip() const Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/operation/vtoolmove.cpp b/src/libs/vtools/tools/drawTools/operation/vtoolmove.cpp index 95e6b9d31..0cbd767d8 100644 --- a/src/libs/vtools/tools/drawTools/operation/vtoolmove.cpp +++ b/src/libs/vtools/tools/drawTools/operation/vtoolmove.cpp @@ -330,12 +330,15 @@ void VToolMove::SetVisualization() } //--------------------------------------------------------------------------------------------------------------------- -void VToolMove::SaveDialog(QDomElement &domElement) +void VToolMove::SaveDialog(QDomElement &domElement, QList &oldDependencies, QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + Q_UNUSED(oldDependencies); + Q_UNUSED(newDependencies) + doc->SetAttribute(domElement, AttrAngle, dialogTool->GetAngle()); QString length = dialogTool->GetLength(); doc->SetAttribute(domElement, AttrLength, length); diff --git a/src/libs/vtools/tools/drawTools/operation/vtoolmove.h b/src/libs/vtools/tools/drawTools/operation/vtoolmove.h index 69d645583..939441197 100644 --- a/src/libs/vtools/tools/drawTools/operation/vtoolmove.h +++ b/src/libs/vtools/tools/drawTools/operation/vtoolmove.h @@ -83,7 +83,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void SetVisualization() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual QString MakeToolTip() const Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/operation/vtoolrotation.cpp b/src/libs/vtools/tools/drawTools/operation/vtoolrotation.cpp index 4867a50e0..cc451ebc5 100644 --- a/src/libs/vtools/tools/drawTools/operation/vtoolrotation.cpp +++ b/src/libs/vtools/tools/drawTools/operation/vtoolrotation.cpp @@ -332,12 +332,16 @@ void VToolRotation::SetVisualization() } //--------------------------------------------------------------------------------------------------------------------- -void VToolRotation::SaveDialog(QDomElement &domElement) +void VToolRotation::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + AddDependence(oldDependencies, origPointId); + AddDependence(newDependencies, dialogTool->GetOrigPointId()); + doc->SetAttribute(domElement, AttrCenter, QString().setNum(dialogTool->GetOrigPointId())); doc->SetAttribute(domElement, AttrAngle, dialogTool->GetAngle()); doc->SetAttribute(domElement, AttrSuffix, dialogTool->GetSuffix()); diff --git a/src/libs/vtools/tools/drawTools/operation/vtoolrotation.h b/src/libs/vtools/tools/drawTools/operation/vtoolrotation.h index 98823f374..433a74a58 100644 --- a/src/libs/vtools/tools/drawTools/operation/vtoolrotation.h +++ b/src/libs/vtools/tools/drawTools/operation/vtoolrotation.h @@ -82,7 +82,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void SetVisualization() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual QString MakeToolTip() const Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp index b3d17518f..921c63211 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.cpp @@ -47,6 +47,7 @@ #include "../vgeometry/vgobject.h" #include "../vgeometry/vpointf.h" #include "../vgeometry/vspline.h" +#include "../vgeometry/vabstractarc.h" #include "../vpatterndb/vcontainer.h" #include "../vwidgets/vcontrolpointspline.h" #include "../../../visualization/line/visline.h" @@ -453,3 +454,18 @@ void VAbstractSpline::GroupVisibility(quint32 object, bool visible) Q_UNUSED(object) setVisible(visible); } + +// VToolAbstractArc +//--------------------------------------------------------------------------------------------------------------------- +VToolAbstractArc::VToolAbstractArc(VAbstractPattern *doc, VContainer *data, quint32 id, QGraphicsItem *parent) + : VAbstractSpline(doc, data, id, parent) +{} + +//--------------------------------------------------------------------------------------------------------------------- +QString VToolAbstractArc::CenterPointName() const +{ + QSharedPointer arc = VAbstractTool::data.GeometricObject(m_id); + SCASSERT(arc.isNull() == false) + + return VAbstractTool::data.GetGObject(arc->GetCenter().id())->name(); +} diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.h b/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.h index fd0598dad..a30258c4a 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.h +++ b/src/libs/vtools/tools/drawTools/toolcurve/vabstractspline.h @@ -238,4 +238,15 @@ void VAbstractSpline::InitElArcToolConnections(VMainGraphicsScene *scene, T *too QObject::connect(scene, &VMainGraphicsScene::EnableElArcItemSelection, tool, &T::AllowSelecting); } +class VToolAbstractArc:public VAbstractSpline +{ +public: + VToolAbstractArc(VAbstractPattern *doc, VContainer *data, quint32 id, QGraphicsItem *parent = nullptr); + virtual ~VToolAbstractArc() = default; + + QString CenterPointName() const; +private: + Q_DISABLE_COPY(VToolAbstractArc) +}; + #endif // VABSTRACTSPLINE_H diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolarc.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vtoolarc.cpp index bfa5a6ee2..e62656edc 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolarc.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolarc.cpp @@ -64,7 +64,7 @@ const QString VToolArc::ToolType = QStringLiteral("simple"); * @param initData init data */ VToolArc::VToolArc(const VToolArcInitData &initData, QGraphicsItem *parent) - : VAbstractSpline(initData.doc, initData.data, initData.id, parent) + : VToolAbstractArc(initData.doc, initData.data, initData.id, parent) { sceneType = SceneObject::Arc; @@ -183,35 +183,6 @@ QString VToolArc::getTagName() const return VAbstractPattern::TagArc; } -//--------------------------------------------------------------------------------------------------------------------- -QString VToolArc::CenterPointName() const -{ - return VAbstractTool::data.GetGObject(getCenter())->name(); -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolArc::getCenter() const -{ - QSharedPointer arc = VAbstractTool::data.GeometricObject(m_id); - SCASSERT(arc.isNull() == false) - - return arc->GetCenter().id(); -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolArc::setCenter(const quint32 &value) -{ - if (value != NULL_ID) - { - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - QSharedPointer arc = qSharedPointerDynamicCast(obj); - - QSharedPointer point = VAbstractTool::data.GeometricObject(value); - arc->SetCenter(*point.data()); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- VFormula VToolArc::GetFormulaRadius() const { @@ -350,11 +321,17 @@ void VToolArc::RemoveReferens() /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolArc::SaveDialog(QDomElement &domElement) +void VToolArc::SaveDialog(QDomElement &domElement, QList &oldDependencies, QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + QSharedPointer arc = VAbstractTool::data.GeometricObject(m_id); + SCASSERT(arc.isNull() == false) + AddDependence(oldDependencies, arc->GetCenter().id()); + AddDependence(newDependencies, dialogTool->GetCenter()); + doc->SetAttribute(domElement, AttrCenter, QString().setNum(dialogTool->GetCenter())); doc->SetAttribute(domElement, AttrRadius, dialogTool->GetRadius()); doc->SetAttribute(domElement, AttrAngle1, dialogTool->GetF1()); diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolarc.h b/src/libs/vtools/tools/drawTools/toolcurve/vtoolarc.h index cf8771645..47ca3002a 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolarc.h +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolarc.h @@ -62,7 +62,7 @@ struct VToolArcInitData : VAbstractSplineInitData /** * @brief The VToolArc class tool for creation arc. */ -class VToolArc :public VAbstractSpline +class VToolArc :public VToolAbstractArc { Q_OBJECT public: @@ -76,11 +76,6 @@ public: enum { Type = UserType + static_cast(Tool::Arc)}; virtual QString getTagName() const Q_DECL_OVERRIDE; - QString CenterPointName() const; - - quint32 getCenter() const; - void setCenter(const quint32 &value); - VFormula GetFormulaRadius() const; void SetFormulaRadius(const VFormula &value); @@ -98,7 +93,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; virtual QString MakeToolTip() const Q_DECL_OVERRIDE; @@ -106,6 +102,7 @@ private: Q_DISABLE_COPY(VToolArc) VToolArc(const VToolArcInitData &initData, QGraphicsItem * parent = nullptr); + virtual ~VToolArc()=default; }; #endif // VTOOLARC_H diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolarcwithlength.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vtoolarcwithlength.cpp index dfd9effa0..82de192b7 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolarcwithlength.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolarcwithlength.cpp @@ -60,7 +60,7 @@ const QString VToolArcWithLength::ToolType = QStringLiteral("arcWithLength"); //--------------------------------------------------------------------------------------------------------------------- VToolArcWithLength::VToolArcWithLength(const VToolArcWithLengthInitData &initData, QGraphicsItem *parent) - :VAbstractSpline(initData.doc, initData.data, initData.id, parent) + :VToolAbstractArc(initData.doc, initData.data, initData.id, parent) { sceneType = SceneObject::Arc; @@ -163,35 +163,6 @@ QString VToolArcWithLength::getTagName() const return VAbstractPattern::TagArc; } -//--------------------------------------------------------------------------------------------------------------------- -QString VToolArcWithLength::CenterPointName() const -{ - return VAbstractTool::data.GetGObject(getCenter())->name(); -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolArcWithLength::getCenter() const -{ - QSharedPointer arc = VAbstractTool::data.GeometricObject(m_id); - SCASSERT(arc.isNull() == false) - - return arc->GetCenter().id(); -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolArcWithLength::setCenter(const quint32 &value) -{ - if (value != NULL_ID) - { - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - QSharedPointer arc = qSharedPointerDynamicCast(obj); - - QSharedPointer point = VAbstractTool::data.GeometricObject(value); - arc->SetCenter(*point.data()); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- VFormula VToolArcWithLength::GetFormulaRadius() const { @@ -321,11 +292,18 @@ void VToolArcWithLength::RemoveReferens() } //--------------------------------------------------------------------------------------------------------------------- -void VToolArcWithLength::SaveDialog(QDomElement &domElement) +void VToolArcWithLength::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + QSharedPointer arc = VAbstractTool::data.GeometricObject(m_id); + SCASSERT(arc.isNull() == false) + AddDependence(oldDependencies, arc->GetCenter().id()); + AddDependence(newDependencies, dialogTool->GetCenter()); + doc->SetAttribute(domElement, AttrCenter, QString().setNum(dialogTool->GetCenter())); doc->SetAttribute(domElement, AttrRadius, dialogTool->GetRadius()); doc->SetAttribute(domElement, AttrAngle1, dialogTool->GetF1()); diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolarcwithlength.h b/src/libs/vtools/tools/drawTools/toolcurve/vtoolarcwithlength.h index 2c931b4f2..f92c55b0d 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolarcwithlength.h +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolarcwithlength.h @@ -59,7 +59,7 @@ struct VToolArcWithLengthInitData : VAbstractSplineInitData QString length; }; -class VToolArcWithLength : public VAbstractSpline +class VToolArcWithLength : public VToolAbstractArc { Q_OBJECT public: @@ -73,11 +73,6 @@ public: enum { Type = UserType + static_cast(Tool::ArcWithLength)}; virtual QString getTagName() const Q_DECL_OVERRIDE; - QString CenterPointName() const; - - quint32 getCenter() const; - void setCenter(const quint32 &value); - VFormula GetFormulaRadius() const; void SetFormulaRadius(const VFormula &value); @@ -95,7 +90,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; virtual QString MakeToolTip() const Q_DECL_OVERRIDE; @@ -103,6 +99,7 @@ private: Q_DISABLE_COPY(VToolArcWithLength) VToolArcWithLength(const VToolArcWithLengthInitData &initData, QGraphicsItem *parent = nullptr); + virtual ~VToolArcWithLength()=default; }; #endif // VTOOLARCWITHLENGTH_H diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezier.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezier.cpp index cadcf64c5..1a06d8698 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezier.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezier.cpp @@ -212,13 +212,24 @@ void VToolCubicBezier::RemoveReferens() } //--------------------------------------------------------------------------------------------------------------------- -void VToolCubicBezier::SaveDialog(QDomElement &domElement) +void VToolCubicBezier::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) auto dialogTool = qobject_cast(m_dialog); SCASSERT(dialogTool != nullptr) + const auto oldSpl = VAbstractTool::data.GeometricObject(m_id); + AddDependence(oldDependencies, oldSpl->GetP1().id()); + AddDependence(oldDependencies, oldSpl->GetP2().id()); + AddDependence(oldDependencies, oldSpl->GetP3().id()); + AddDependence(oldDependencies, oldSpl->GetP4().id()); + const VCubicBezier spl = dialogTool->GetSpline(); + AddDependence(newDependencies, spl.GetP1().id()); + AddDependence(newDependencies, spl.GetP2().id()); + AddDependence(newDependencies, spl.GetP3().id()); + AddDependence(newDependencies, spl.GetP4().id()); SetSplineAttributes(domElement, spl); } diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezier.h b/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezier.h index 7fea8ada7..a28113b37 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezier.h +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezier.h @@ -84,7 +84,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; virtual void RefreshGeometry() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezierpath.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezierpath.cpp index c4f6b4905..e4a97bda9 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezierpath.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezierpath.cpp @@ -191,20 +191,33 @@ void VToolCubicBezierPath::ShowContextMenu(QGraphicsSceneContextMenuEvent *event void VToolCubicBezierPath::RemoveReferens() { const QSharedPointer splPath = VAbstractTool::data.GeometricObject(m_id); - for (qint32 i = 0; i < splPath->CountSubSpl(); ++i) + for (qint32 i = 0; i < splPath->CountPoints(); ++i) { doc->DecrementReferens(splPath->at(i).getIdTool()); } } //--------------------------------------------------------------------------------------------------------------------- -void VToolCubicBezierPath::SaveDialog(QDomElement &domElement) +void VToolCubicBezierPath::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) const auto dialogTool = qobject_cast(m_dialog); SCASSERT(dialogTool != nullptr) - SetSplinePathAttributes(domElement, dialogTool->GetPath()); + const auto oldSplPath = VAbstractTool::data.GeometricObject(m_id); + for (qint32 i = 0; i < oldSplPath->CountPoints(); ++i) + { + AddDependence(oldDependencies, oldSplPath->at(i).id()); + } + + const VCubicBezierPath splPath = dialogTool->GetPath(); + for (qint32 i = 0; i < splPath.CountPoints(); ++i) + { + AddDependence(newDependencies, splPath.at(i).id()); + } + + SetSplinePathAttributes(domElement, splPath); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezierpath.h b/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezierpath.h index c9cc6052f..572916fea 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezierpath.h +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolcubicbezierpath.h @@ -81,7 +81,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; virtual void RefreshGeometry() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolellipticalarc.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vtoolellipticalarc.cpp index b726124d1..8325f4aad 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolellipticalarc.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolellipticalarc.cpp @@ -65,7 +65,7 @@ const QString VToolEllipticalArc::ToolType = QStringLiteral("simple"); * @param parent parent object */ VToolEllipticalArc::VToolEllipticalArc(const VToolEllipticalArcInitData &initData, QGraphicsItem *parent) - :VAbstractSpline(initData.doc, initData.data, initData.id, parent) + :VToolAbstractArc(initData.doc, initData.data, initData.id, parent) { sceneType = SceneObject::ElArc; @@ -190,35 +190,6 @@ QString VToolEllipticalArc::getTagName() const return VAbstractPattern::TagElArc; } -//--------------------------------------------------------------------------------------------------------------------- -QString VToolEllipticalArc::CenterPointName() const -{ - return VAbstractTool::data.GetGObject(getCenter())->name(); -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolEllipticalArc::getCenter() const -{ - QSharedPointer elArc = VAbstractTool::data.GeometricObject(m_id); - SCASSERT(elArc.isNull() == false) - - return elArc->GetCenter().id(); -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolEllipticalArc::setCenter(const quint32 &value) -{ - if (value != NULL_ID) - { - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - QSharedPointer elArc = qSharedPointerDynamicCast(obj); - - QSharedPointer point = VAbstractTool::data.GeometricObject(value); - elArc->SetCenter(*point.data()); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- VFormula VToolEllipticalArc::GetFormulaRadius1() const { @@ -392,11 +363,18 @@ void VToolEllipticalArc::RemoveReferens() /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolEllipticalArc::SaveDialog(QDomElement &domElement) +void VToolEllipticalArc::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + const auto elArc = VAbstractTool::data.GeometricObject(m_id); + SCASSERT(elArc.isNull() == false) + AddDependence(oldDependencies, elArc->GetCenter().id()); + AddDependence(newDependencies, dialogTool->GetCenter()); + doc->SetAttribute(domElement, AttrCenter, QString().setNum(dialogTool->GetCenter())); doc->SetAttribute(domElement, AttrRadius1, dialogTool->GetRadius1()); doc->SetAttribute(domElement, AttrRadius2, dialogTool->GetRadius2()); diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolellipticalarc.h b/src/libs/vtools/tools/drawTools/toolcurve/vtoolellipticalarc.h index 0a0f178db..f2c2bcf7d 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolellipticalarc.h +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolellipticalarc.h @@ -66,7 +66,7 @@ struct VToolEllipticalArcInitData : VAbstractSplineInitData /** * @brief The VToolEllipticalArc class tool for creation elliptical arc. */ -class VToolEllipticalArc : public VAbstractSpline +class VToolEllipticalArc : public VToolAbstractArc { Q_OBJECT public: @@ -79,11 +79,6 @@ public: enum { Type = UserType + static_cast(Tool::EllipticalArc)}; virtual QString getTagName() const Q_DECL_OVERRIDE; - QString CenterPointName() const; - - quint32 getCenter() const; - void setCenter(const quint32 &value); - VFormula GetFormulaRadius1() const; void SetFormulaRadius1(const VFormula &value); @@ -104,7 +99,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; virtual QString MakeToolTip() const Q_DECL_OVERRIDE; @@ -112,6 +108,7 @@ protected: private: Q_DISABLE_COPY(VToolEllipticalArc) VToolEllipticalArc(const VToolEllipticalArcInitData &initData, QGraphicsItem *parent = nullptr); + virtual ~VToolEllipticalArc()=default; }; #endif // VTOOLELLIPTICALARC_H diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolspline.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vtoolspline.cpp index c48698122..c860a5470 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolspline.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolspline.cpp @@ -313,13 +313,19 @@ void VToolSpline::RemoveReferens() /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolSpline::SaveDialog(QDomElement &domElement) +void VToolSpline::SaveDialog(QDomElement &domElement, QList &oldDependencies, QList &newDependencies) { SCASSERT(not m_dialog.isNull()) auto dialogTool = qobject_cast(m_dialog); SCASSERT(dialogTool != nullptr) + const auto oldSpl = VAbstractTool::data.GeometricObject(m_id); + AddDependence(oldDependencies, oldSpl->GetP1().id()); + AddDependence(oldDependencies, oldSpl->GetP4().id()); + const VSpline spl = dialogTool->GetSpline(); + AddDependence(newDependencies, spl.GetP1().id()); + AddDependence(newDependencies, spl.GetP4().id()); controlPoints[0]->blockSignals(true); controlPoints[1]->blockSignals(true); diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolspline.h b/src/libs/vtools/tools/drawTools/toolcurve/vtoolspline.h index 11080f827..9e2d12975 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolspline.h +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolspline.h @@ -97,7 +97,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void mousePressEvent(QGraphicsSceneMouseEvent * event) Q_DECL_OVERRIDE; virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolsplinepath.cpp b/src/libs/vtools/tools/drawTools/toolcurve/vtoolsplinepath.cpp index c84bc50fe..d8009d57b 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolsplinepath.cpp +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolsplinepath.cpp @@ -447,7 +447,7 @@ void VToolSplinePath::AddPathPoint(VAbstractPattern *doc, QDomElement &domElemen void VToolSplinePath::RemoveReferens() { const QSharedPointer splPath = VAbstractTool::data.GeometricObject(m_id); - for (qint32 i = 0; i < splPath->CountSubSpl(); ++i) + for (qint32 i = 0; i < splPath->CountPoints(); ++i) { doc->DecrementReferens(splPath->at(i).P().getIdTool()); } @@ -457,13 +457,25 @@ void VToolSplinePath::RemoveReferens() /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolSplinePath::SaveDialog(QDomElement &domElement) +void VToolSplinePath::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + const auto oldSplPath = VAbstractTool::data.GeometricObject(m_id); + for (qint32 i = 0; i < oldSplPath->CountPoints(); ++i) + { + AddDependence(oldDependencies, oldSplPath->at(i).P().id()); + } + const VSplinePath splPath = dialogTool->GetPath(); + for (qint32 i = 0; i < splPath.CountPoints(); ++i) + { + AddDependence(newDependencies, splPath.at(i).P().id()); + } + for (qint32 i = 1; i <= splPath.CountSubSpl(); ++i) { VSpline spl = splPath.GetSpline(i); diff --git a/src/libs/vtools/tools/drawTools/toolcurve/vtoolsplinepath.h b/src/libs/vtools/tools/drawTools/toolcurve/vtoolsplinepath.h index 76420c2c2..fad103440 100644 --- a/src/libs/vtools/tools/drawTools/toolcurve/vtoolsplinepath.h +++ b/src/libs/vtools/tools/drawTools/toolcurve/vtoolsplinepath.h @@ -108,7 +108,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void mousePressEvent(QGraphicsSceneMouseEvent * event) Q_DECL_OVERRIDE; virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooltruedarts.cpp b/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooltruedarts.cpp index 8bbdd7f15..ee6a1e930 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooltruedarts.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooltruedarts.cpp @@ -229,96 +229,6 @@ QString VToolTrueDarts::DartP3Name() const return VAbstractTool::data.GetGObject(dartP3Id)->name(); } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolTrueDarts::GetBaseLineP1Id() const -{ - return baseLineP1Id; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolTrueDarts::SetBaseLineP1Id(const quint32 &value) -{ - if (value != NULL_ID) - { - baseLineP1Id = value; - - QSharedPointer obj = VContainer::GetFakeGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolTrueDarts::GetBaseLineP2Id() const -{ - return baseLineP2Id; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolTrueDarts::SetBaseLineP2Id(const quint32 &value) -{ - if (value != NULL_ID) - { - baseLineP2Id = value; - - QSharedPointer obj = VContainer::GetFakeGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolTrueDarts::GetDartP1Id() const -{ - return dartP1Id; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolTrueDarts::SetDartP1Id(const quint32 &value) -{ - if (value != NULL_ID) - { - dartP1Id = value; - - QSharedPointer obj = VContainer::GetFakeGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolTrueDarts::GetDartP2Id() const -{ - return dartP2Id; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolTrueDarts::SetDartP2Id(const quint32 &value) -{ - if (value != NULL_ID) - { - dartP2Id = value; - - QSharedPointer obj = VContainer::GetFakeGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolTrueDarts::GetDartP3Id() const -{ - return dartP3Id; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolTrueDarts::SetDartP3Id(const quint32 &value) -{ - if (value != NULL_ID) - { - dartP3Id = value; - - QSharedPointer obj = VContainer::GetFakeGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VToolTrueDarts::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id) { @@ -351,12 +261,25 @@ void VToolTrueDarts::RemoveReferens() } //--------------------------------------------------------------------------------------------------------------------- -void VToolTrueDarts::SaveDialog(QDomElement &domElement) +void VToolTrueDarts::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + AddDependence(oldDependencies, baseLineP1Id); + AddDependence(oldDependencies, baseLineP2Id); + AddDependence(oldDependencies, dartP1Id); + AddDependence(oldDependencies, dartP2Id); + AddDependence(oldDependencies, dartP3Id); + + AddDependence(newDependencies, dialogTool->GetFirstBasePointId()); + AddDependence(newDependencies, dialogTool->GetSecondBasePointId()); + AddDependence(newDependencies, dialogTool->GetFirstDartPointId()); + AddDependence(newDependencies, dialogTool->GetSecondDartPointId()); + AddDependence(newDependencies, dialogTool->GetThirdDartPointId()); + doc->SetAttribute(domElement, AttrName1, dialogTool->GetFirstNewDartPointName()); doc->SetAttribute(domElement, AttrName2, dialogTool->GetSecondNewDartPointName()); doc->SetAttribute(domElement, AttrBaseLineP1, QString().setNum(dialogTool->GetFirstBasePointId())); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooltruedarts.h b/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooltruedarts.h index b55de4048..f3f17518d 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooltruedarts.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/tooldoublepoint/vtooltruedarts.h @@ -104,26 +104,12 @@ public: QString DartP2Name() const; QString DartP3Name() const; - quint32 GetBaseLineP1Id() const; - void SetBaseLineP1Id(const quint32 &value); - - quint32 GetBaseLineP2Id() const; - void SetBaseLineP2Id(const quint32 &value); - - quint32 GetDartP1Id() const; - void SetDartP1Id(const quint32 &value); - - quint32 GetDartP2Id() const; - void SetDartP2Id(const quint32 &value); - - quint32 GetDartP3Id() const; - void SetDartP3Id(const quint32 &value); - protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcut.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcut.cpp index bfe05e1e9..544a278ec 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcut.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcut.cpp @@ -74,25 +74,6 @@ void VToolCut::FullUpdateFromFile() SetVisualization(); } -//--------------------------------------------------------------------------------------------------------------------- -// cppcheck-suppress unusedFunction -quint32 VToolCut::getCurveCutId() const -{ - return curveCutId; -} - -//--------------------------------------------------------------------------------------------------------------------- -// cppcheck-suppress unusedFunction -void VToolCut::setCurveCutId(const quint32 &value) -{ - if (value != NULL_ID) - { - curveCutId = value; - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- VFormula VToolCut::GetFormula() const { diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcut.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcut.h index 7331e4bad..d318b6155 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcut.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcut.h @@ -59,9 +59,6 @@ public: QString CurveName() const; - quint32 getCurveCutId() const; - void setCurveCutId(const quint32 &value); - public slots: virtual void Disable(bool disable, const QString &namePP) Q_DECL_OVERRIDE; virtual void DetailsMode(bool mode) Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutarc.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutarc.cpp index b94219e27..c08ae727a 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutarc.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutarc.cpp @@ -195,11 +195,16 @@ void VToolCutArc::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolCutArc::SaveDialog(QDomElement &domElement) +void VToolCutArc::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, curveCutId); + AddDependence(newDependencies, dialogTool->getArcId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrLength, dialogTool->GetFormula()); doc->SetAttribute(domElement, AttrArc, QString().setNum(dialogTool->getArcId())); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutarc.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutarc.h index fc9a917c4..c800d892b 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutarc.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutarc.h @@ -73,7 +73,8 @@ public: protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutspline.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutspline.cpp index 1b1529706..d030552bf 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutspline.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutspline.cpp @@ -194,11 +194,16 @@ void VToolCutSpline::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quin /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolCutSpline::SaveDialog(QDomElement &domElement) +void VToolCutSpline::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, curveCutId); + AddDependence(newDependencies, dialogTool->getSplineId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrLength, dialogTool->GetFormula()); doc->SetAttribute(domElement, AttrSpline, QString().setNum(dialogTool->getSplineId())); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutspline.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutspline.h index 4392598ed..e87a62b01 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutspline.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutspline.h @@ -74,7 +74,8 @@ public: protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutsplinepath.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutsplinepath.cpp index 6682d0047..7835dbc6d 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutsplinepath.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutsplinepath.cpp @@ -283,11 +283,16 @@ void VToolCutSplinePath::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolCutSplinePath::SaveDialog(QDomElement &domElement) +void VToolCutSplinePath::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, curveCutId); + AddDependence(newDependencies, dialogTool->getSplinePathId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrLength, dialogTool->GetFormula()); doc->SetAttribute(domElement, AttrSplinePath, QString().setNum(dialogTool->getSplinePathId())); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutsplinepath.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutsplinepath.h index fc5cfa293..74c9532c3 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutsplinepath.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toolcut/vtoolcutsplinepath.h @@ -81,7 +81,8 @@ public: protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolalongline.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolalongline.cpp index ac7262816..54a89c331 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolalongline.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolalongline.cpp @@ -87,11 +87,18 @@ void VToolAlongLine::RemoveReferens() /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolAlongLine::SaveDialog(QDomElement &domElement) +void VToolAlongLine::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, basePointId); + AddDependence(oldDependencies, secondPointId); + AddDependence(newDependencies, dialogTool->GetFirstPointId()); + AddDependence(newDependencies, dialogTool->GetSecondPointId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrTypeLine, dialogTool->GetTypeLine()); doc->SetAttribute(domElement, AttrLineColor, dialogTool->GetLineColor()); @@ -166,24 +173,6 @@ QString VToolAlongLine::MakeToolTip() const return toolTip; } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolAlongLine::GetSecondPointId() const -{ - return secondPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolAlongLine::SetSecondPointId(const quint32 &value) -{ - if (value != NULL_ID) - { - secondPointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VToolAlongLine::ShowVisualization(bool show) { diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolalongline.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolalongline.h index 12fcda95f..28ee35785 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolalongline.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolalongline.h @@ -74,14 +74,13 @@ public: QString SecondPointName() const; - quint32 GetSecondPointId() const; - void SetSecondPointId(const quint32 &value); virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE; protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolbisector.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolbisector.cpp index a87b5df69..aefa8e91f 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolbisector.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolbisector.cpp @@ -240,11 +240,20 @@ void VToolBisector::RemoveReferens() /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolBisector::SaveDialog(QDomElement &domElement) +void VToolBisector::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, firstPointId); + AddDependence(oldDependencies, basePointId); + AddDependence(oldDependencies, thirdPointId); + AddDependence(newDependencies, dialogTool->GetFirstPointId()); + AddDependence(newDependencies, dialogTool->GetSecondPointId()); + AddDependence(newDependencies, dialogTool->GetThirdPointId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrTypeLine, dialogTool->GetTypeLine()); doc->SetAttribute(domElement, AttrLineColor, dialogTool->GetLineColor()); @@ -294,24 +303,6 @@ void VToolBisector::SetVisualization() } } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolBisector::GetThirdPointId() const -{ - return thirdPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolBisector::SetThirdPointId(const quint32 &value) -{ - if (value != NULL_ID) - { - thirdPointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VToolBisector::ShowVisualization(bool show) { @@ -331,21 +322,3 @@ void VToolBisector::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint return;//Leave this method immediately!!! } } - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolBisector::GetFirstPointId() const -{ - return firstPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolBisector::SetFirstPointId(const quint32 &value) -{ - if (value != NULL_ID) - { - firstPointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolbisector.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolbisector.h index 88f1b6178..503b4ed51 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolbisector.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolbisector.h @@ -81,18 +81,13 @@ public: QString FirstPointName() const; QString ThirdPointName() const; - quint32 GetFirstPointId() const; - void SetFirstPointId(const quint32 &value); - - quint32 GetThirdPointId() const; - void SetThirdPointId(const quint32 &value); - virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE; protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.cpp index 1e80d4551..ab7be544b 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.cpp @@ -237,24 +237,6 @@ QString VToolCurveIntersectAxis::CurveName() const return VAbstractTool::data.GetGObject(curveId)->name(); } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolCurveIntersectAxis::getCurveId() const -{ - return curveId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolCurveIntersectAxis::setCurveId(const quint32 &value) -{ - if (value != NULL_ID) - { - curveId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VToolCurveIntersectAxis::ShowVisualization(bool show) { @@ -276,11 +258,18 @@ void VToolCurveIntersectAxis::ShowContextMenu(QGraphicsSceneContextMenuEvent *ev } //--------------------------------------------------------------------------------------------------------------------- -void VToolCurveIntersectAxis::SaveDialog(QDomElement &domElement) +void VToolCurveIntersectAxis::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, basePointId); + AddDependence(oldDependencies, curveId); + AddDependence(newDependencies, dialogTool->GetBasePointId()); + AddDependence(newDependencies, dialogTool->getCurveId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrTypeLine, dialogTool->GetTypeLine()); doc->SetAttribute(domElement, AttrLineColor, dialogTool->GetLineColor()); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.h index 1e17e0488..97a7343de 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.h @@ -82,14 +82,12 @@ public: QString CurveName() const; - quint32 getCurveId() const; - void setCurveId(const quint32 &value); - virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE; protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolendline.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolendline.cpp index 8721d0006..721698d32 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolendline.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolendline.cpp @@ -174,11 +174,16 @@ VToolEndLine* VToolEndLine::Create(VToolEndLineInitData &initData) /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolEndLine::SaveDialog(QDomElement &domElement) +void VToolEndLine::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, basePointId); + AddDependence(newDependencies, dialogTool->GetBasePointId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrTypeLine, dialogTool->GetTypeLine()); doc->SetAttribute(domElement, AttrLineColor, dialogTool->GetLineColor()); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolendline.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolendline.h index 30219ab2b..d92848c07 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolendline.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolendline.h @@ -80,7 +80,8 @@ public: protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolheight.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolheight.cpp index 2a64a2989..a34c1c3c6 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolheight.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolheight.cpp @@ -201,11 +201,20 @@ QString VToolHeight::SecondLinePointName() const /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolHeight::SaveDialog(QDomElement &domElement) +void VToolHeight::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, basePointId); + AddDependence(oldDependencies, p1LineId); + AddDependence(oldDependencies, p2LineId); + AddDependence(newDependencies, dialogTool->GetBasePointId()); + AddDependence(newDependencies, dialogTool->GetP1LineId()); + AddDependence(newDependencies, dialogTool->GetP2LineId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrTypeLine, dialogTool->GetTypeLine()); doc->SetAttribute(domElement, AttrLineColor, dialogTool->GetLineColor()); @@ -284,24 +293,6 @@ QString VToolHeight::MakeToolTip() const return toolTip; } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolHeight::GetP2LineId() const -{ - return p2LineId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolHeight::SetP2LineId(const quint32 &value) -{ - if (value != NULL_ID) - { - p2LineId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VToolHeight::ShowVisualization(bool show) { @@ -321,21 +312,3 @@ void VToolHeight::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 return;//Leave this method immediately!!! } } - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolHeight::GetP1LineId() const -{ - return p1LineId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolHeight::SetP1LineId(const quint32 &value) -{ - if (value != NULL_ID) - { - p1LineId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolheight.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolheight.h index ef0df2042..2062d20ef 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolheight.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolheight.h @@ -78,17 +78,12 @@ public: QString FirstLinePointName() const; QString SecondLinePointName() const; - quint32 GetP1LineId() const; - void SetP1LineId(const quint32 &value); - - quint32 GetP2LineId() const; - void SetP2LineId(const quint32 &value); - virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE; protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.cpp index 39cc1c381..f85518caa 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.cpp @@ -220,42 +220,6 @@ void VToolLineIntersectAxis::SetFormulaAngle(const VFormula &value) } } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolLineIntersectAxis::GetFirstPointId() const -{ - return firstPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolLineIntersectAxis::SetFirstPointId(const quint32 &value) -{ - if (value != NULL_ID) - { - firstPointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolLineIntersectAxis::GetSecondPointId() const -{ - return secondPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolLineIntersectAxis::SetSecondPointId(const quint32 &value) -{ - if (value != NULL_ID) - { - secondPointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VToolLineIntersectAxis::ShowVisualization(bool show) { @@ -277,11 +241,20 @@ void VToolLineIntersectAxis::ShowContextMenu(QGraphicsSceneContextMenuEvent *eve } //--------------------------------------------------------------------------------------------------------------------- -void VToolLineIntersectAxis::SaveDialog(QDomElement &domElement) +void VToolLineIntersectAxis::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, basePointId); + AddDependence(oldDependencies, firstPointId); + AddDependence(oldDependencies, secondPointId); + AddDependence(newDependencies, dialogTool->GetBasePointId()); + AddDependence(newDependencies, dialogTool->GetFirstPointId()); + AddDependence(newDependencies, dialogTool->GetSecondPointId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrTypeLine, dialogTool->GetTypeLine()); doc->SetAttribute(domElement, AttrLineColor, dialogTool->GetLineColor()); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.h index ff0623e88..f82a66a89 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.h @@ -85,17 +85,12 @@ public: VFormula GetFormulaAngle() const; void SetFormulaAngle(const VFormula &value); - quint32 GetFirstPointId() const; - void SetFirstPointId(const quint32 &value); - - quint32 GetSecondPointId() const; - void SetSecondPointId(const quint32 &value); - virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE; protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.cpp index 56e3dc604..e6518a109 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.cpp @@ -213,24 +213,6 @@ void VToolLinePoint::SetLineColor(const QString &value) SaveOption(obj); } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolLinePoint::GetBasePointId() const -{ - return basePointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolLinePoint::SetBasePointId(const quint32 &value) -{ - if (value != NULL_ID) - { - basePointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- VFormula VToolLinePoint::GetFormulaLength() const { diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.h index 1cb609769..d78947846 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollinepoint.h @@ -76,9 +76,6 @@ public: QString BasePointName() const; - quint32 GetBasePointId() const; - void SetBasePointId(const quint32 &value); - qreal GetAngle() const; void SetAngle(const qreal &value); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolnormal.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolnormal.cpp index b7f8d5db1..2c948afb2 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolnormal.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolnormal.cpp @@ -213,11 +213,18 @@ void VToolNormal::RemoveReferens() /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolNormal::SaveDialog(QDomElement &domElement) +void VToolNormal::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, basePointId); + AddDependence(oldDependencies, secondPointId); + AddDependence(newDependencies, dialogTool->GetFirstPointId()); + AddDependence(newDependencies, dialogTool->GetSecondPointId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrTypeLine, dialogTool->GetTypeLine()); doc->SetAttribute(domElement, AttrLineColor, dialogTool->GetLineColor()); @@ -267,24 +274,6 @@ void VToolNormal::SetVisualization() } } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolNormal::GetSecondPointId() const -{ - return secondPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolNormal::SetSecondPointId(const quint32 &value) -{ - if (value != NULL_ID) - { - secondPointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VToolNormal::ShowVisualization(bool show) { diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolnormal.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolnormal.h index d21679467..4dc0b8af9 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolnormal.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolnormal.h @@ -79,15 +79,13 @@ public: QString SecondPointName() const; - quint32 GetSecondPointId() const; - void SetSecondPointId(const quint32 &value); - virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE; protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolshoulderpoint.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolshoulderpoint.cpp index c68b0bd3b..908e26d53 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolshoulderpoint.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolshoulderpoint.cpp @@ -258,11 +258,20 @@ void VToolShoulderPoint::RemoveReferens() /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolShoulderPoint::SaveDialog(QDomElement &domElement) +void VToolShoulderPoint::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, basePointId); + AddDependence(oldDependencies, p2Line); + AddDependence(oldDependencies, pShoulder); + AddDependence(newDependencies, dialogTool->GetP1Line()); + AddDependence(newDependencies, dialogTool->GetP2Line()); + AddDependence(newDependencies, dialogTool->GetP3()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrTypeLine, dialogTool->GetTypeLine()); doc->SetAttribute(domElement, AttrLineColor, dialogTool->GetLineColor()); @@ -354,46 +363,8 @@ void VToolShoulderPoint::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, } } -//--------------------------------------------------------------------------------------------------------------------- -// cppcheck-suppress unusedFunction -quint32 VToolShoulderPoint::getPShoulder() const -{ - return pShoulder; -} - -//--------------------------------------------------------------------------------------------------------------------- -// cppcheck-suppress unusedFunction -void VToolShoulderPoint::setPShoulder(const quint32 &value) -{ - if (value != NULL_ID) - { - pShoulder = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VToolShoulderPoint::ShowVisualization(bool show) { ShowToolVisualization(show); } - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolShoulderPoint::GetP2Line() const -{ - return p2Line; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolShoulderPoint::SetP2Line(const quint32 &value) -{ - if (value != NULL_ID) - { - p2Line = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolshoulderpoint.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolshoulderpoint.h index 0d9aa9d20..fb6df7a8f 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolshoulderpoint.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolshoulderpoint.h @@ -90,7 +90,8 @@ public: virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.cpp index 7c644b584..c603c019a 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.cpp @@ -285,11 +285,16 @@ void VToolBasePoint::DeleteToolWithConfirm(bool ask) /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolBasePoint::SaveDialog(QDomElement &domElement) +void VToolBasePoint::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + Q_UNUSED(oldDependencies) + Q_UNUSED(newDependencies) + const QPointF p = dialogTool->GetPoint(); const QString name = dialogTool->getPointName(); doc->SetAttribute(domElement, AttrName, name); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.h index 21696ed9d..f0b25887d 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolbasepoint.h @@ -90,7 +90,8 @@ protected: virtual void AddToFile() Q_DECL_OVERRIDE; virtual QVariant itemChange ( GraphicsItemChange change, const QVariant &value ) Q_DECL_OVERRIDE; virtual void DeleteToolWithConfirm(bool ask = true) Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * event ) Q_DECL_OVERRIDE; virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event ) Q_DECL_OVERRIDE; virtual void mousePressEvent( QGraphicsSceneMouseEvent * event ) Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoollineintersect.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoollineintersect.cpp index d881745df..d564de7b6 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoollineintersect.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoollineintersect.cpp @@ -229,11 +229,22 @@ void VToolLineIntersect::RemoveReferens() /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolLineIntersect::SaveDialog(QDomElement &domElement) +void VToolLineIntersect::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, p1Line1); + AddDependence(oldDependencies, p2Line1); + AddDependence(oldDependencies, p1Line2); + AddDependence(oldDependencies, p2Line2); + AddDependence(newDependencies, dialogTool->GetP1Line1()); + AddDependence(newDependencies, dialogTool->GetP2Line1()); + AddDependence(newDependencies, dialogTool->GetP1Line2()); + AddDependence(newDependencies, dialogTool->GetP2Line2()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrP1Line1, QString().setNum(dialogTool->GetP1Line1())); doc->SetAttribute(domElement, AttrP2Line1, QString().setNum(dialogTool->GetP2Line1())); @@ -313,24 +324,6 @@ QString VToolLineIntersect::MakeToolTip() const return toolTip; } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolLineIntersect::GetP2Line2() const -{ - return p2Line2; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolLineIntersect::SetP2Line2(const quint32 &value) -{ - if (value != NULL_ID) - { - p2Line2 = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VToolLineIntersect::ShowVisualization(bool show) { @@ -350,57 +343,3 @@ void VToolLineIntersect::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, return;//Leave this method immediately!!! } } - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolLineIntersect::GetP1Line2() const -{ - return p1Line2; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolLineIntersect::SetP1Line2(const quint32 &value) -{ - if (value != NULL_ID) - { - p1Line2 = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolLineIntersect::GetP2Line1() const -{ - return p2Line1; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolLineIntersect::SetP2Line1(const quint32 &value) -{ - if (value != NULL_ID) - { - p2Line1 = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolLineIntersect::GetP1Line1() const -{ - return p1Line1; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolLineIntersect::SetP1Line1(const quint32 &value) -{ - if (value != NULL_ID) - { - p1Line1 = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoollineintersect.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoollineintersect.h index 7a4c29e86..8aabe7176 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoollineintersect.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoollineintersect.h @@ -79,24 +79,13 @@ public: QString Line2P1Name() const; QString Line2P2Name() const; - quint32 GetP1Line1() const; - void SetP1Line1(const quint32 &value); - - quint32 GetP2Line1() const; - void SetP2Line1(const quint32 &value); - - quint32 GetP1Line2() const; - void SetP1Line2(const quint32 &value); - - quint32 GetP2Line2() const; - void SetP2Line2(const quint32 &value); - virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE; protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.cpp index 4a43b1f02..39b520499 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.cpp @@ -233,42 +233,6 @@ QString VToolPointFromArcAndTangent::ArcName() const return VAbstractTool::data.GetGObject(arcId)->name(); } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointFromArcAndTangent::GetTangentPointId() const -{ - return tangentPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointFromArcAndTangent::SetTangentPointId(const quint32 &value) -{ - if (value != NULL_ID) - { - tangentPointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointFromArcAndTangent::GetArcId() const -{ - return arcId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointFromArcAndTangent::SetArcId(const quint32 &value) -{ - if (value != NULL_ID) - { - arcId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- CrossCirclesPoint VToolPointFromArcAndTangent::GetCrossCirclesPoint() const { @@ -315,11 +279,18 @@ void VToolPointFromArcAndTangent::RemoveReferens() } //--------------------------------------------------------------------------------------------------------------------- -void VToolPointFromArcAndTangent::SaveDialog(QDomElement &domElement) +void VToolPointFromArcAndTangent::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, arcId); + AddDependence(oldDependencies, tangentPointId); + AddDependence(newDependencies, dialogTool->GetArcId()); + AddDependence(newDependencies, dialogTool->GetTangentPointId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrArc, QString().setNum(dialogTool->GetArcId())); doc->SetAttribute(domElement, AttrTangent, QString().setNum(dialogTool->GetTangentPointId())); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.h index 40d1bd5ca..7140011e8 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.h @@ -74,12 +74,6 @@ public: QString TangentPointName() const; QString ArcName() const; - quint32 GetTangentPointId() const; - void SetTangentPointId(const quint32 &value); - - quint32 GetArcId() const; - void SetArcId(const quint32 &value); - CrossCirclesPoint GetCrossCirclesPoint() const; void SetCrossCirclesPoint(const CrossCirclesPoint &value); @@ -88,7 +82,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.cpp index 6fe946882..63c6d6d83 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.cpp @@ -190,42 +190,6 @@ QString VToolPointFromCircleAndTangent::CircleCenterPointName() const return VAbstractTool::data.GetGObject(circleCenterId)->name(); } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointFromCircleAndTangent::GetTangentPointId() const -{ - return tangentPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointFromCircleAndTangent::SetTangentPointId(const quint32 &value) -{ - if (value != NULL_ID) - { - tangentPointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointFromCircleAndTangent::GetCircleCenterId() const -{ - return circleCenterId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointFromCircleAndTangent::SetCircleCenterId(const quint32 &value) -{ - if (value != NULL_ID) - { - circleCenterId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- VFormula VToolPointFromCircleAndTangent::GetCircleRadius() const { @@ -296,11 +260,18 @@ void VToolPointFromCircleAndTangent::RemoveReferens() } //--------------------------------------------------------------------------------------------------------------------- -void VToolPointFromCircleAndTangent::SaveDialog(QDomElement &domElement) +void VToolPointFromCircleAndTangent::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, circleCenterId); + AddDependence(oldDependencies, tangentPointId); + AddDependence(newDependencies, dialogTool->GetTangentPointId()); + AddDependence(newDependencies, dialogTool->GetCircleCenterId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrCCenter, QString().setNum(dialogTool->GetCircleCenterId())); doc->SetAttribute(domElement, AttrTangent, QString().setNum(dialogTool->GetTangentPointId())); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.h index c796701bc..73653bb8f 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.h @@ -77,12 +77,6 @@ public: QString TangentPointName() const; QString CircleCenterPointName() const; - quint32 GetTangentPointId() const; - void SetTangentPointId(const quint32 &value); - - quint32 GetCircleCenterId() const; - void SetCircleCenterId(const quint32 &value); - VFormula GetCircleRadius() const; void SetCircleRadius(const VFormula &value); @@ -94,7 +88,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.cpp index daf50b688..4a1383ab7 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.cpp @@ -274,11 +274,20 @@ void VToolPointOfContact::RemoveReferens() /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolPointOfContact::SaveDialog(QDomElement &domElement) +void VToolPointOfContact::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, center); + AddDependence(oldDependencies, firstPointId); + AddDependence(oldDependencies, secondPointId); + AddDependence(newDependencies, dialogTool->getCenter()); + AddDependence(newDependencies, dialogTool->GetFirstPoint()); + AddDependence(newDependencies, dialogTool->GetSecondPoint()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrRadius, dialogTool->getRadius()); doc->SetAttribute(domElement, AttrCenter, QString().setNum(dialogTool->getCenter())); @@ -356,18 +365,6 @@ QString VToolPointOfContact::MakeToolTip() const return toolTip; } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointOfContact::GetSecondPointId() const -{ - return secondPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfContact::SetSecondPointId(const quint32 &value) -{ - secondPointId = value; -} - //--------------------------------------------------------------------------------------------------------------------- void VToolPointOfContact::ShowVisualization(bool show) { @@ -388,36 +385,6 @@ void VToolPointOfContact::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, } } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointOfContact::GetFirstPointId() const -{ - return firstPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfContact::SetFirstPointId(const quint32 &value) -{ - firstPointId = value; -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointOfContact::getCenter() const -{ - return center; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfContact::setCenter(const quint32 &value) -{ - if (value != NULL_ID) - { - center = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- VFormula VToolPointOfContact::getArcRadius() const { diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.h index 6dc2293e0..b2f13990b 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.h @@ -85,21 +85,13 @@ public: VFormula getArcRadius() const; void setArcRadius(const VFormula &value); - quint32 getCenter() const; - void setCenter(const quint32 &value); - - quint32 GetFirstPointId() const; - void SetFirstPointId(const quint32 &value); - - quint32 GetSecondPointId() const; - void SetSecondPointId(const quint32 &value); - virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE; protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersection.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersection.cpp index ef8f44d27..4e3d619f6 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersection.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersection.cpp @@ -189,11 +189,18 @@ void VToolPointOfIntersection::RemoveReferens() /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolPointOfIntersection::SaveDialog(QDomElement &domElement) +void VToolPointOfIntersection::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, firstPointId); + AddDependence(oldDependencies, secondPointId); + AddDependence(newDependencies, dialogTool->GetFirstPointId()); + AddDependence(newDependencies, dialogTool->GetSecondPointId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrFirstPoint, QString().setNum(dialogTool->GetFirstPointId())); doc->SetAttribute(domElement, AttrSecondPoint, QString().setNum(dialogTool->GetSecondPointId())); @@ -244,44 +251,8 @@ void VToolPointOfIntersection::ShowContextMenu(QGraphicsSceneContextMenuEvent *e } } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointOfIntersection::GetSecondPointId() const -{ - return secondPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfIntersection::SetSecondPointId(const quint32 &value) -{ - if (value != NULL_ID) - { - secondPointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VToolPointOfIntersection::ShowVisualization(bool show) { ShowToolVisualization(show); } - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointOfIntersection::GetFirstPointId() const -{ - return firstPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfIntersection::SetFirstPointId(const quint32 &value) -{ - if (value != NULL_ID) - { - firstPointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersection.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersection.h index 2ff809e34..39903c1ee 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersection.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersection.h @@ -73,16 +73,11 @@ public: QString FirstPointName() const; QString SecondPointName() const; - quint32 GetFirstPointId() const; - void SetFirstPointId(const quint32 &value); - - quint32 GetSecondPointId() const; - void SetSecondPointId(const quint32 &value); - virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.cpp index d097a5575..352706648 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.cpp @@ -238,42 +238,6 @@ QString VToolPointOfIntersectionArcs::SecondArcName() const return VAbstractTool::data.GetGObject(secondArcId)->name(); } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointOfIntersectionArcs::GetFirstArcId() const -{ - return firstArcId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfIntersectionArcs::SetFirstArcId(const quint32 &value) -{ - if (value != NULL_ID) - { - firstArcId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointOfIntersectionArcs::GetSecondArcId() const -{ - return secondArcId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfIntersectionArcs::SetSecondArcId(const quint32 &value) -{ - if (value != NULL_ID) - { - secondArcId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- CrossCirclesPoint VToolPointOfIntersectionArcs::GetCrossCirclesPoint() const { @@ -320,11 +284,18 @@ void VToolPointOfIntersectionArcs::RemoveReferens() } //--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfIntersectionArcs::SaveDialog(QDomElement &domElement) +void VToolPointOfIntersectionArcs::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, firstArcId); + AddDependence(oldDependencies, secondArcId); + AddDependence(newDependencies, dialogTool->GetFirstArcId()); + AddDependence(newDependencies, dialogTool->GetSecondArcId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrFirstArc, QString().setNum(dialogTool->GetFirstArcId())); doc->SetAttribute(domElement, AttrSecondArc, QString().setNum(dialogTool->GetSecondArcId())); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.h index 488882dcc..6dcd8bbf9 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.h @@ -75,12 +75,6 @@ public: QString FirstArcName() const; QString SecondArcName() const; - quint32 GetFirstArcId() const; - void SetFirstArcId(const quint32 &value); - - quint32 GetSecondArcId() const; - void SetSecondArcId(const quint32 &value); - CrossCirclesPoint GetCrossCirclesPoint() const; void SetCrossCirclesPoint(const CrossCirclesPoint &value); @@ -89,7 +83,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.cpp index 423e62e92..96692caf0 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.cpp @@ -196,42 +196,6 @@ QString VToolPointOfIntersectionCircles::SecondCircleCenterPointName() const return VAbstractTool::data.GetGObject(secondCircleCenterId)->name(); } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointOfIntersectionCircles::GetFirstCircleCenterId() const -{ - return firstCircleCenterId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfIntersectionCircles::SetFirstCircleCenterId(const quint32 &value) -{ - if (value != NULL_ID) - { - firstCircleCenterId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointOfIntersectionCircles::GetSecondCircleCenterId() const -{ - return secondCircleCenterId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfIntersectionCircles::SetSecondCircleCenterId(const quint32 &value) -{ - if (value != NULL_ID) - { - secondCircleCenterId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- VFormula VToolPointOfIntersectionCircles::GetFirstCircleRadius() const { @@ -326,12 +290,19 @@ void VToolPointOfIntersectionCircles::RemoveReferens() } //--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfIntersectionCircles::SaveDialog(QDomElement &domElement) +void VToolPointOfIntersectionCircles::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, firstCircleCenterId); + AddDependence(oldDependencies, secondCircleCenterId); + AddDependence(newDependencies, dialogTool->GetFirstCircleCenterId()); + AddDependence(newDependencies, dialogTool->GetSecondCircleCenterId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrC1Center, QString().setNum(dialogTool->GetFirstCircleCenterId())); doc->SetAttribute(domElement, AttrC2Center, QString().setNum(dialogTool->GetSecondCircleCenterId())); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.h index 52090d637..db9720822 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.h @@ -80,12 +80,6 @@ public: QString FirstCircleCenterPointName() const; QString SecondCircleCenterPointName() const; - quint32 GetFirstCircleCenterId() const; - void SetFirstCircleCenterId(const quint32 &value); - - quint32 GetSecondCircleCenterId() const; - void SetSecondCircleCenterId(const quint32 &value); - VFormula GetFirstCircleRadius() const; void SetFirstCircleRadius(const VFormula &value); @@ -100,7 +94,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.cpp index 97eeb2273..49a6fa0cd 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.cpp @@ -273,42 +273,6 @@ QString VToolPointOfIntersectionCurves::SecondCurveName() const return VAbstractTool::data.GetGObject(secondCurveId)->name(); } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointOfIntersectionCurves::GetFirstCurveId() const -{ - return firstCurveId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfIntersectionCurves::SetFirstCurveId(const quint32 &value) -{ - if (value != NULL_ID) - { - firstCurveId = value; - - auto obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolPointOfIntersectionCurves::GetSecondCurveId() const -{ - return secondCurveId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfIntersectionCurves::SetSecondCurveId(const quint32 &value) -{ - if (value != NULL_ID) - { - secondCurveId = value; - - auto obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- VCrossCurvesPoint VToolPointOfIntersectionCurves::GetVCrossPoint() const { @@ -370,11 +334,18 @@ void VToolPointOfIntersectionCurves::RemoveReferens() } //--------------------------------------------------------------------------------------------------------------------- -void VToolPointOfIntersectionCurves::SaveDialog(QDomElement &domElement) +void VToolPointOfIntersectionCurves::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) auto dialogTool = qobject_cast(m_dialog); SCASSERT(dialogTool != nullptr) + + AddDependence(oldDependencies, firstCurveId); + AddDependence(oldDependencies, secondCurveId); + AddDependence(newDependencies, dialogTool->GetFirstCurveId()); + AddDependence(newDependencies, dialogTool->GetSecondCurveId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrCurve1, QString().setNum(dialogTool->GetFirstCurveId())); doc->SetAttribute(domElement, AttrCurve2, QString().setNum(dialogTool->GetSecondCurveId())); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.h index 7c73e0799..8f5a3171d 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.h @@ -78,12 +78,6 @@ public: QString FirstCurveName() const; QString SecondCurveName() const; - quint32 GetFirstCurveId() const; - void SetFirstCurveId(const quint32 &value); - - quint32 GetSecondCurveId() const; - void SetSecondCurveId(const quint32 &value); - VCrossCurvesPoint GetVCrossPoint() const; void SetVCrossPoint(const VCrossCurvesPoint &value); @@ -95,7 +89,8 @@ protected slots: virtual void ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 id=NULL_ID) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.cpp index 903c56f70..f857c6b10 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.cpp @@ -265,11 +265,22 @@ void VToolTriangle::RemoveReferens() /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolTriangle::SaveDialog(QDomElement &domElement) +void VToolTriangle::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, axisP1Id); + AddDependence(oldDependencies, axisP2Id); + AddDependence(oldDependencies, firstPointId); + AddDependence(oldDependencies, secondPointId); + AddDependence(newDependencies, dialogTool->GetAxisP1Id()); + AddDependence(newDependencies, dialogTool->GetAxisP2Id()); + AddDependence(newDependencies, dialogTool->GetFirstPointId()); + AddDependence(newDependencies, dialogTool->GetSecondPointId()); + doc->SetAttribute(domElement, AttrName, dialogTool->getPointName()); doc->SetAttribute(domElement, AttrAxisP1, QString().setNum(dialogTool->GetAxisP1Id())); doc->SetAttribute(domElement, AttrAxisP2, QString().setNum(dialogTool->GetAxisP2Id())); @@ -328,80 +339,8 @@ void VToolTriangle::ShowContextMenu(QGraphicsSceneContextMenuEvent *event, quint } } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolTriangle::GetSecondPointId() const -{ - return secondPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolTriangle::SetSecondPointId(const quint32 &value) -{ - if (value != NULL_ID) - { - secondPointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VToolTriangle::ShowVisualization(bool show) { ShowToolVisualization(show); } - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolTriangle::GetFirstPointId() const -{ - return firstPointId; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolTriangle::SetFirstPointId(const quint32 &value) -{ - if (value != NULL_ID) - { - firstPointId = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolTriangle::GetAxisP2Id() const -{ - return axisP2Id; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolTriangle::SetAxisP2Id(const quint32 &value) -{ - if (value != NULL_ID) - { - axisP2Id = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolTriangle::GetAxisP1Id() const -{ - return axisP1Id; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolTriangle::SetAxisP1Id(const quint32 &value) -{ - if (value != NULL_ID) - { - axisP1Id = value; - - QSharedPointer obj = VAbstractTool::data.GetGObject(m_id); - SaveOption(obj); - } -} diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.h b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.h index a0536201d..56079ce02 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.h +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.h @@ -98,7 +98,8 @@ public: virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE; protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/tools/drawTools/vdrawtool.cpp b/src/libs/vtools/tools/drawTools/vdrawtool.cpp index 936eafd58..2a8c537ac 100644 --- a/src/libs/vtools/tools/drawTools/vdrawtool.cpp +++ b/src/libs/vtools/tools/drawTools/vdrawtool.cpp @@ -110,9 +110,12 @@ void VDrawTool::SaveDialogChange() if (oldDomElement.isElement()) { QDomElement newDomElement = oldDomElement.cloneNode().toElement(); - SaveDialog(newDomElement); + QList oldDependencies; + QList newDependencies; + SaveDialog(newDomElement, oldDependencies, newDependencies); - SaveToolOptions *saveOptions = new SaveToolOptions(oldDomElement, newDomElement, doc, m_id); + SaveToolOptions *saveOptions = new SaveToolOptions(oldDomElement, newDomElement, oldDependencies, + newDependencies, doc, m_id); connect(saveOptions, &SaveToolOptions::NeedLiteParsing, doc, &VAbstractPattern::LiteParseTree); qApp->getUndoStack()->push(saveOptions); } @@ -145,7 +148,8 @@ void VDrawTool::SaveOption(QSharedPointer &obj) SaveOptions(newDomElement, obj); - SaveToolOptions *saveOptions = new SaveToolOptions(oldDomElement, newDomElement, doc, m_id); + SaveToolOptions *saveOptions = new SaveToolOptions(oldDomElement, newDomElement, QList(), + QList(), doc, m_id); connect(saveOptions, &SaveToolOptions::NeedLiteParsing, doc, &VAbstractPattern::LiteParseTree); qApp->getUndoStack()->push(saveOptions); } @@ -229,6 +233,13 @@ void VDrawTool::AddToCalculation(const QDomElement &domElement) qApp->getUndoStack()->push(addToCal); } +//--------------------------------------------------------------------------------------------------------------------- +void VDrawTool::AddDependence(QList &list, quint32 objectId) const +{ + auto originPoint = VAbstractTool::data.GetGObject(objectId); + list.append(originPoint->getIdTool()); +} + //--------------------------------------------------------------------------------------------------------------------- QString VDrawTool::getLineType() const { diff --git a/src/libs/vtools/tools/drawTools/vdrawtool.h b/src/libs/vtools/tools/drawTools/vdrawtool.h index 8a37f6db8..370b86c5e 100644 --- a/src/libs/vtools/tools/drawTools/vdrawtool.h +++ b/src/libs/vtools/tools/drawTools/vdrawtool.h @@ -94,10 +94,12 @@ protected: /** @brief typeLine line type. */ QString m_lineType; - void AddToCalculation(const QDomElement &domElement); + void AddToCalculation(const QDomElement &domElement); + void AddDependence(QList &list, quint32 objectId) const; /** @brief SaveDialog save options into file after change in dialog. */ - virtual void SaveDialog(QDomElement &domElement)=0; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies)=0; virtual void SaveDialogChange() Q_DECL_FINAL; virtual void AddToFile() Q_DECL_OVERRIDE; void SaveOption(QSharedPointer &obj); diff --git a/src/libs/vtools/tools/drawTools/vtoolline.cpp b/src/libs/vtools/tools/drawTools/vtoolline.cpp index c054eca18..32bb0f93c 100644 --- a/src/libs/vtools/tools/drawTools/vtoolline.cpp +++ b/src/libs/vtools/tools/drawTools/vtoolline.cpp @@ -364,11 +364,18 @@ void VToolLine::keyReleaseEvent(QKeyEvent *event) /** * @brief SaveDialog save options into file after change in dialog. */ -void VToolLine::SaveDialog(QDomElement &domElement) +void VToolLine::SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) { SCASSERT(not m_dialog.isNull()) QSharedPointer dialogTool = m_dialog.objectCast(); SCASSERT(not dialogTool.isNull()) + + AddDependence(oldDependencies, firstPoint); + AddDependence(oldDependencies, secondPoint); + AddDependence(newDependencies, dialogTool->GetFirstPoint()); + AddDependence(newDependencies, dialogTool->GetSecondPoint()); + doc->SetAttribute(domElement, AttrFirstPoint, QString().setNum(dialogTool->GetFirstPoint())); doc->SetAttribute(domElement, AttrSecondPoint, QString().setNum(dialogTool->GetSecondPoint())); doc->SetAttribute(domElement, AttrTypeLine, dialogTool->GetTypeLine()); @@ -430,24 +437,6 @@ QString VToolLine::MakeToolTip() const return toolTip; } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolLine::GetSecondPoint() const -{ - return secondPoint; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolLine::SetSecondPoint(const quint32 &value) -{ - if (value != NULL_ID) - { - secondPoint = value; - - QSharedPointer obj;//We don't have object for line in data container. Just will send empty object. - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- void VToolLine::ShowVisualization(bool show) { @@ -504,24 +493,6 @@ void VToolLine::GroupVisibility(quint32 object, bool visible) setVisible(visible); } -//--------------------------------------------------------------------------------------------------------------------- -quint32 VToolLine::GetFirstPoint() const -{ - return firstPoint; -} - -//--------------------------------------------------------------------------------------------------------------------- -void VToolLine::SetFirstPoint(const quint32 &value) -{ - if (value != NULL_ID) - { - firstPoint = value; - - QSharedPointer obj;//We don't have object for line in data container. Just will send empty object. - SaveOption(obj); - } -} - //--------------------------------------------------------------------------------------------------------------------- /** * @brief RefreshGeometry refresh item on scene. diff --git a/src/libs/vtools/tools/drawTools/vtoolline.h b/src/libs/vtools/tools/drawTools/vtoolline.h index c3cfd5b9e..7e829f4a0 100644 --- a/src/libs/vtools/tools/drawTools/vtoolline.h +++ b/src/libs/vtools/tools/drawTools/vtoolline.h @@ -83,12 +83,6 @@ public: QString FirstPointName() const; QString SecondPointName() const; - quint32 GetFirstPoint() const; - void SetFirstPoint(const quint32 &value); - - quint32 GetSecondPoint() const; - void SetSecondPoint(const quint32 &value); - QString GetLineColor() const; void SetLineColor(const QString &value); @@ -112,7 +106,8 @@ protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; virtual QVariant itemChange ( GraphicsItemChange change, const QVariant &value ) Q_DECL_OVERRIDE; virtual void keyReleaseEvent(QKeyEvent * event) Q_DECL_OVERRIDE; - virtual void SaveDialog(QDomElement &domElement) Q_DECL_OVERRIDE; + virtual void SaveDialog(QDomElement &domElement, QList &oldDependencies, + QList &newDependencies) Q_DECL_OVERRIDE; virtual void SaveOptions(QDomElement &tag, QSharedPointer &obj) Q_DECL_OVERRIDE; virtual void ReadToolAttributes(const QDomElement &domElement) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/undocommands/savepieceoptions.cpp b/src/libs/vtools/undocommands/savepieceoptions.cpp index 91539cc5c..112b3f813 100644 --- a/src/libs/vtools/undocommands/savepieceoptions.cpp +++ b/src/libs/vtools/undocommands/savepieceoptions.cpp @@ -85,7 +85,7 @@ void SavePieceOptions::undo() DecrementReferences(m_newDet.MissingPins(m_oldDet)); IncrementReferences(m_oldDet.MissingPins(m_newDet)); - + DecrementReferences(m_newDet.MissingPlaceLabels(m_oldDet)); IncrementReferences(m_oldDet.MissingPlaceLabels(m_newDet)); diff --git a/src/libs/vtools/undocommands/savepieceoptions.h b/src/libs/vtools/undocommands/savepieceoptions.h index c940b1811..2654eb7e3 100644 --- a/src/libs/vtools/undocommands/savepieceoptions.h +++ b/src/libs/vtools/undocommands/savepieceoptions.h @@ -39,7 +39,7 @@ class SavePieceOptions : public VUndoCommand public: SavePieceOptions(const VPiece &oldDet, const VPiece &newDet, VAbstractPattern *doc, quint32 id, QUndoCommand *parent = nullptr); - virtual ~SavePieceOptions() =default; + virtual ~SavePieceOptions() = default; virtual void undo() Q_DECL_OVERRIDE; virtual void redo() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/undocommands/savepiecepathoptions.h b/src/libs/vtools/undocommands/savepiecepathoptions.h index cb336dc57..a458e35ea 100644 --- a/src/libs/vtools/undocommands/savepiecepathoptions.h +++ b/src/libs/vtools/undocommands/savepiecepathoptions.h @@ -39,7 +39,7 @@ class SavePiecePathOptions : public VUndoCommand public: SavePiecePathOptions(const VPiecePath &oldPath, const VPiecePath &newPath, VAbstractPattern *doc, VContainer *data, quint32 id, QUndoCommand *parent = nullptr); - virtual ~SavePiecePathOptions()=default; + virtual ~SavePiecePathOptions() = default; virtual void undo() Q_DECL_OVERRIDE; virtual void redo() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/undocommands/saveplacelabeloptions.cpp b/src/libs/vtools/undocommands/saveplacelabeloptions.cpp index 389ccbfab..4d95d8737 100644 --- a/src/libs/vtools/undocommands/saveplacelabeloptions.cpp +++ b/src/libs/vtools/undocommands/saveplacelabeloptions.cpp @@ -89,37 +89,3 @@ void SavePlaceLabelOptions::redo() qCDebug(vUndo, "Can't find path with id = %u.", nodeId); } } - -//--------------------------------------------------------------------------------------------------------------------- -bool SavePlaceLabelOptions::mergeWith(const QUndoCommand *command) -{ - const SavePlaceLabelOptions *saveCommand = static_cast(command); - SCASSERT(saveCommand != nullptr); - const quint32 id = saveCommand->LabelId(); - - if (id != nodeId) - { - return false; - } - - m_newLabel = saveCommand->NewLabel(); - return true; -} - -//--------------------------------------------------------------------------------------------------------------------- -int SavePlaceLabelOptions::id() const -{ - return static_cast(UndoCommand::SavePlaceLabelOptions); -} - -//--------------------------------------------------------------------------------------------------------------------- -quint32 SavePlaceLabelOptions::LabelId() const -{ - return nodeId; -} - -//--------------------------------------------------------------------------------------------------------------------- -VPlaceLabelItem SavePlaceLabelOptions::NewLabel() const -{ - return m_newLabel; -} diff --git a/src/libs/vtools/undocommands/saveplacelabeloptions.h b/src/libs/vtools/undocommands/saveplacelabeloptions.h index bb81bb355..a692816f9 100644 --- a/src/libs/vtools/undocommands/saveplacelabeloptions.h +++ b/src/libs/vtools/undocommands/saveplacelabeloptions.h @@ -40,11 +40,6 @@ public: virtual void undo() Q_DECL_OVERRIDE; virtual void redo() Q_DECL_OVERRIDE; - virtual bool mergeWith(const QUndoCommand *command) Q_DECL_OVERRIDE; - virtual int id() const Q_DECL_OVERRIDE; - - quint32 LabelId() const; - VPlaceLabelItem NewLabel() const; private: Q_DISABLE_COPY(SavePlaceLabelOptions) diff --git a/src/libs/vtools/undocommands/savetooloptions.cpp b/src/libs/vtools/undocommands/savetooloptions.cpp index 36f9a3e4b..a4629208b 100644 --- a/src/libs/vtools/undocommands/savetooloptions.cpp +++ b/src/libs/vtools/undocommands/savetooloptions.cpp @@ -36,18 +36,19 @@ #include "vundocommand.h" //--------------------------------------------------------------------------------------------------------------------- -SaveToolOptions::SaveToolOptions(const QDomElement &oldXml, const QDomElement &newXml, VAbstractPattern *doc, - const quint32 &id, QUndoCommand *parent) - : VUndoCommand(QDomElement(), doc, parent), oldXml(oldXml), newXml(newXml) +SaveToolOptions::SaveToolOptions(const QDomElement &oldXml, const QDomElement &newXml, + const QList &oldDependencies, const QList &newDependencies, + VAbstractPattern *doc, const quint32 &id, QUndoCommand *parent) + : VUndoCommand(QDomElement(), doc, parent), + oldXml(oldXml), + newXml(newXml), + oldDependencies(oldDependencies), + newDependencies(newDependencies) { setText(tr("save tool option")); nodeId = id; } -//--------------------------------------------------------------------------------------------------------------------- -SaveToolOptions::~SaveToolOptions() -{} - //--------------------------------------------------------------------------------------------------------------------- void SaveToolOptions::undo() { @@ -58,6 +59,9 @@ void SaveToolOptions::undo() { domElement.parentNode().replaceChild(oldXml, domElement); + DecrementReferences(Missing(newDependencies, oldDependencies)); + IncrementReferences(Missing(oldDependencies, newDependencies)); + emit NeedLiteParsing(Document::LiteParse); } else @@ -76,6 +80,9 @@ void SaveToolOptions::redo() { domElement.parentNode().replaceChild(newXml, domElement); + DecrementReferences(Missing(oldDependencies, newDependencies)); + IncrementReferences(Missing(newDependencies, oldDependencies)); + emit NeedLiteParsing(Document::LiteParse); } else @@ -85,23 +92,9 @@ void SaveToolOptions::redo() } //--------------------------------------------------------------------------------------------------------------------- -bool SaveToolOptions::mergeWith(const QUndoCommand *command) +QVector SaveToolOptions::Missing(const QList &list1, const QList &list2) const { - const SaveToolOptions *saveCommand = static_cast(command); - SCASSERT(saveCommand != nullptr) - const quint32 id = saveCommand->getToolId(); - - if (id != nodeId) - { - return false; - } - - newXml = saveCommand->getNewXml(); - return true; -} - -//--------------------------------------------------------------------------------------------------------------------- -int SaveToolOptions::id() const -{ - return static_cast(UndoCommand::SaveToolOptions); + QSet set1 = QSet::fromList(list1); + QSet set2 = QSet::fromList(list2); + return set1.subtract(set2).toList().toVector(); } diff --git a/src/libs/vtools/undocommands/savetooloptions.h b/src/libs/vtools/undocommands/savetooloptions.h index a8b6225c9..8235fc5c1 100644 --- a/src/libs/vtools/undocommands/savetooloptions.h +++ b/src/libs/vtools/undocommands/savetooloptions.h @@ -42,31 +42,20 @@ class SaveToolOptions : public VUndoCommand { Q_OBJECT public: - SaveToolOptions(const QDomElement &oldXml, const QDomElement &newXml, VAbstractPattern *doc, const quint32 &id, + SaveToolOptions(const QDomElement &oldXml, const QDomElement &newXml, const QList &oldDependencies, + const QList &newDependencies, VAbstractPattern *doc, const quint32 &id, QUndoCommand *parent = nullptr); - virtual ~SaveToolOptions() Q_DECL_OVERRIDE; + virtual ~SaveToolOptions() = default; virtual void undo() Q_DECL_OVERRIDE; virtual void redo() Q_DECL_OVERRIDE; - virtual bool mergeWith(const QUndoCommand *command) Q_DECL_OVERRIDE; - virtual int id() const Q_DECL_OVERRIDE; - QDomElement getNewXml() const; - quint32 getToolId() const; private: Q_DISABLE_COPY(SaveToolOptions) - const QDomElement oldXml; - QDomElement newXml; + const QDomElement oldXml; + const QDomElement newXml; + const QList oldDependencies; + const QList newDependencies; + + QVector Missing(const QList &list1, const QList &list2) const; }; -//--------------------------------------------------------------------------------------------------------------------- -inline QDomElement SaveToolOptions::getNewXml() const -{ - return newXml; -} - -//--------------------------------------------------------------------------------------------------------------------- -inline quint32 SaveToolOptions::getToolId() const -{ - return nodeId; -} - #endif // SAVETOOLOPTIONS_H