Fixed crash when detail use curve created by tool rotation.
--HG-- branch : develop
This commit is contained in:
parent
f7736d3bfd
commit
ff34f05b34
|
@ -63,7 +63,15 @@ void VAbstractNode::incrementReferens()
|
||||||
++_referens;
|
++_referens;
|
||||||
if (_referens == 1)
|
if (_referens == 1)
|
||||||
{
|
{
|
||||||
idTool != NULL_ID ? doc->IncrementReferens(idTool) : doc->IncrementReferens(idNode);
|
if (idTool != NULL_ID)
|
||||||
|
{
|
||||||
|
doc->IncrementReferens(idTool);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const QSharedPointer<VGObject> node = VAbstractTool::data.GetGObject(idNode);
|
||||||
|
doc->IncrementReferens(node->getIdTool());
|
||||||
|
}
|
||||||
ShowNode();
|
ShowNode();
|
||||||
QDomElement domElement = doc->elementById(id);
|
QDomElement domElement = doc->elementById(id);
|
||||||
if (domElement.isElement())
|
if (domElement.isElement())
|
||||||
|
@ -85,7 +93,15 @@ void VAbstractNode::decrementReferens()
|
||||||
}
|
}
|
||||||
if (_referens == 0)
|
if (_referens == 0)
|
||||||
{
|
{
|
||||||
idTool != NULL_ID ? doc->DecrementReferens(idTool) : doc->DecrementReferens(idNode);
|
if (idTool != NULL_ID)
|
||||||
|
{
|
||||||
|
doc->DecrementReferens(idTool);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const QSharedPointer<VGObject> node = VAbstractTool::data.GetGObject(idNode);
|
||||||
|
doc->DecrementReferens(node->getIdTool());
|
||||||
|
}
|
||||||
HideNode();
|
HideNode();
|
||||||
QDomElement domElement = doc->elementById(id);
|
QDomElement domElement = doc->elementById(id);
|
||||||
if (domElement.isElement())
|
if (domElement.isElement())
|
||||||
|
|
|
@ -47,8 +47,9 @@ public:
|
||||||
virtual ~VAbstractNode() Q_DECL_OVERRIDE {}
|
virtual ~VAbstractNode() Q_DECL_OVERRIDE {}
|
||||||
static const QString AttrIdTool;
|
static const QString AttrIdTool;
|
||||||
virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE;
|
virtual void ShowVisualization(bool show) Q_DECL_OVERRIDE;
|
||||||
virtual void incrementReferens() Q_DECL_OVERRIDE;
|
|
||||||
virtual void decrementReferens() Q_DECL_OVERRIDE;
|
void incrementReferens();
|
||||||
|
void decrementReferens();
|
||||||
|
|
||||||
ParentType GetParentType() const;
|
ParentType GetParentType() const;
|
||||||
void SetParentType(const ParentType &value);
|
void SetParentType(const ParentType &value);
|
||||||
|
|
|
@ -121,57 +121,6 @@ QString VNodePoint::getTagName() const
|
||||||
return VAbstractPattern::TagPoint;
|
return VAbstractPattern::TagPoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void VNodePoint::incrementReferens()
|
|
||||||
{
|
|
||||||
++_referens;
|
|
||||||
if (_referens == 1)
|
|
||||||
{
|
|
||||||
if (idTool != NULL_ID)
|
|
||||||
{
|
|
||||||
doc->IncrementReferens(idTool);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(idNode);
|
|
||||||
doc->IncrementReferens(point->getIdTool());
|
|
||||||
}
|
|
||||||
ShowNode();
|
|
||||||
QDomElement domElement = doc->elementById(id);
|
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
doc->SetParametrUsage(domElement, AttrInUse, NodeUsage::InUse);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void VNodePoint::decrementReferens()
|
|
||||||
{
|
|
||||||
if (_referens > 0)
|
|
||||||
{
|
|
||||||
--_referens;
|
|
||||||
}
|
|
||||||
if (_referens == 0)
|
|
||||||
{
|
|
||||||
if (idTool != NULL_ID)
|
|
||||||
{
|
|
||||||
doc->DecrementReferens(idTool);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const QSharedPointer<VPointF> point = VAbstractTool::data.GeometricObject<VPointF>(idNode);
|
|
||||||
doc->DecrementReferens(point->getIdTool());
|
|
||||||
}
|
|
||||||
HideNode();
|
|
||||||
QDomElement domElement = doc->elementById(id);
|
|
||||||
if (domElement.isElement())
|
|
||||||
{
|
|
||||||
doc->SetParametrUsage(domElement, AttrInUse, NodeUsage::NotInUse);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VNodePoint::PointChoosed()
|
void VNodePoint::PointChoosed()
|
||||||
{
|
{
|
||||||
|
|
|
@ -53,8 +53,6 @@ public:
|
||||||
enum { Type = UserType + static_cast<int>(Tool::NodePoint)};
|
enum { Type = UserType + static_cast<int>(Tool::NodePoint)};
|
||||||
virtual QString getTagName() const Q_DECL_OVERRIDE;
|
virtual QString getTagName() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
virtual void incrementReferens() Q_DECL_OVERRIDE;
|
|
||||||
virtual void decrementReferens() Q_DECL_OVERRIDE;
|
|
||||||
public slots:
|
public slots:
|
||||||
virtual void FullUpdateFromFile() Q_DECL_OVERRIDE;
|
virtual void FullUpdateFromFile() Q_DECL_OVERRIDE;
|
||||||
void NameChangePosition(const QPointF &pos);
|
void NameChangePosition(const QPointF &pos);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user