Fix bug. Modeling objects should be separated from calculation objects and stay
in not copied container. --HG-- branch : feature
This commit is contained in:
parent
9b54b0c069
commit
e8ca7f575d
|
@ -260,7 +260,7 @@ void MainWindow::AddPP(const QString &PPName)
|
||||||
comboBoxDraws->blockSignals(true);
|
comboBoxDraws->blockSignals(true);
|
||||||
comboBoxDraws->addItem(PPName);
|
comboBoxDraws->addItem(PPName);
|
||||||
|
|
||||||
pattern->ClearGObjects();
|
pattern->ClearCalculationGObjects();
|
||||||
//Create single point
|
//Create single point
|
||||||
ui->view->itemClicked(nullptr);//hide options previous tool
|
ui->view->itemClicked(nullptr);//hide options previous tool
|
||||||
const QString label = doc->GenerateLabel(LabelType::NewPatternPiece);
|
const QString label = doc->GenerateLabel(LabelType::NewPatternPiece);
|
||||||
|
|
|
@ -103,10 +103,7 @@ VContainer::VContainer(const VContainer &data)
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VContainer::~VContainer()
|
VContainer::~VContainer()
|
||||||
{
|
{}
|
||||||
ClearGObjects();
|
|
||||||
ClearVariables();
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
|
@ -117,7 +114,18 @@ VContainer::~VContainer()
|
||||||
// cppcheck-suppress unusedFunction
|
// cppcheck-suppress unusedFunction
|
||||||
const QSharedPointer<VGObject> VContainer::GetGObject(quint32 id) const
|
const QSharedPointer<VGObject> VContainer::GetGObject(quint32 id) const
|
||||||
{
|
{
|
||||||
return GetObject(d->gObjects, id);
|
if (d->calculationObjects.contains(id))
|
||||||
|
{
|
||||||
|
return d->calculationObjects.value(id);
|
||||||
|
}
|
||||||
|
else if (d->modelingObjects->contains(id))
|
||||||
|
{
|
||||||
|
return d->modelingObjects->value(id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw VExceptionBadId(tr("Can't find object"), id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -129,26 +137,6 @@ const QSharedPointer<VGObject> VContainer::GetFakeGObject(quint32 id)
|
||||||
return pointer;
|
return pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief GetObject return object from container
|
|
||||||
* @param obj container
|
|
||||||
* @param id id of object
|
|
||||||
* @return Object
|
|
||||||
*/
|
|
||||||
template <typename key, typename val>
|
|
||||||
const val VContainer::GetObject(const QHash<key, val> &obj, key id) const
|
|
||||||
{
|
|
||||||
if (obj.contains(id))
|
|
||||||
{
|
|
||||||
return obj.value(id);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw VExceptionBadId(tr("Can't find object"), id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VPiece VContainer::GetPiece(quint32 id) const
|
VPiece VContainer::GetPiece(quint32 id) const
|
||||||
{
|
{
|
||||||
|
@ -192,8 +180,27 @@ quint32 VContainer::AddGObject(VGObject *obj)
|
||||||
quint32 VContainer::AddGObject(const QSharedPointer<VGObject> &obj)
|
quint32 VContainer::AddGObject(const QSharedPointer<VGObject> &obj)
|
||||||
{
|
{
|
||||||
SCASSERT(not obj.isNull())
|
SCASSERT(not obj.isNull())
|
||||||
|
|
||||||
|
if (obj->getMode() == Draw::Layout)
|
||||||
|
{
|
||||||
|
qWarning("Can't add an object with mode 'Layout'");
|
||||||
|
return NULL_ID;
|
||||||
|
}
|
||||||
|
|
||||||
uniqueNames.insert(obj->name());
|
uniqueNames.insert(obj->name());
|
||||||
return AddObject(d->gObjects, obj);
|
const quint32 id = getNextId();
|
||||||
|
obj->setId(id);
|
||||||
|
|
||||||
|
if (obj->getMode() == Draw::Calculation)
|
||||||
|
{
|
||||||
|
d->calculationObjects.insert(id, obj);
|
||||||
|
}
|
||||||
|
else if (obj->getMode() == Draw::Modeling)
|
||||||
|
{
|
||||||
|
d->modelingObjects->insert(id, obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -290,33 +297,14 @@ void VContainer::ClearForFullParse()
|
||||||
*/
|
*/
|
||||||
void VContainer::ClearGObjects()
|
void VContainer::ClearGObjects()
|
||||||
{
|
{
|
||||||
d->gObjects.clear();
|
d->calculationObjects.clear();
|
||||||
|
d->modelingObjects->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VContainer::ClearCalculationGObjects()
|
void VContainer::ClearCalculationGObjects()
|
||||||
{
|
{
|
||||||
if (not d->gObjects.isEmpty()) //-V807
|
d->calculationObjects.clear();
|
||||||
{
|
|
||||||
QVector<quint32> keys;
|
|
||||||
QHash<quint32, QSharedPointer<VGObject> >::iterator i;
|
|
||||||
for (i = d->gObjects.begin(); i != d->gObjects.end(); ++i)
|
|
||||||
{
|
|
||||||
if (i.value()->getMode() == Draw::Calculation)
|
|
||||||
{
|
|
||||||
i.value().clear();
|
|
||||||
keys.append(i.key());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// We can't delete objects in previous loop it will destroy the iterator.
|
|
||||||
if (not keys.isEmpty())
|
|
||||||
{
|
|
||||||
for (int i = 0; i < keys.size(); ++i)
|
|
||||||
{
|
|
||||||
d->gObjects.remove(keys.at(i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -464,23 +452,6 @@ void VContainer::RemovePiece(quint32 id)
|
||||||
d->pieces->remove(id);
|
d->pieces->remove(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief AddObject add object to container
|
|
||||||
* @param obj container
|
|
||||||
* @param value object
|
|
||||||
* @return id of object in container
|
|
||||||
*/
|
|
||||||
template <typename key, typename val>
|
|
||||||
quint32 VContainer::AddObject(QHash<key, val> &obj, val value)
|
|
||||||
{
|
|
||||||
SCASSERT(value != nullptr)
|
|
||||||
const quint32 id = getNextId();
|
|
||||||
value->setId(id);
|
|
||||||
obj[id] = value;
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VContainer::UpdatePiece(quint32 id, const VPiece &detail)
|
void VContainer::UpdatePiece(quint32 id, const VPiece &detail)
|
||||||
{
|
{
|
||||||
|
@ -678,9 +649,9 @@ qreal *VContainer::rheight()
|
||||||
* @brief data container with datagObjects return container of gObjects
|
* @brief data container with datagObjects return container of gObjects
|
||||||
* @return pointer on container of gObjects
|
* @return pointer on container of gObjects
|
||||||
*/
|
*/
|
||||||
const QHash<quint32, QSharedPointer<VGObject> > *VContainer::DataGObjects() const
|
const QHash<quint32, QSharedPointer<VGObject> > *VContainer::CalculationGObjects() const
|
||||||
{
|
{
|
||||||
return &d->gObjects;
|
return &d->calculationObjects;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -69,7 +69,8 @@ class VContainerData : public QSharedData //-V690
|
||||||
public:
|
public:
|
||||||
|
|
||||||
VContainerData(const VTranslateVars *trVars, const Unit *patternUnit)
|
VContainerData(const VTranslateVars *trVars, const Unit *patternUnit)
|
||||||
: gObjects(QHash<quint32, QSharedPointer<VGObject> >()),
|
: calculationObjects(QHash<quint32, QSharedPointer<VGObject> >()),
|
||||||
|
modelingObjects(QSharedPointer<QHash<quint32, QSharedPointer<VGObject>>>::create()),
|
||||||
variables(QHash<QString, QSharedPointer<VInternalVariable> > ()),
|
variables(QHash<QString, QSharedPointer<VInternalVariable> > ()),
|
||||||
pieces(QSharedPointer<QHash<quint32, VPiece>>::create()),
|
pieces(QSharedPointer<QHash<quint32, VPiece>>::create()),
|
||||||
piecePaths(QSharedPointer<QHash<quint32, VPiecePath>>::create()),
|
piecePaths(QSharedPointer<QHash<quint32, VPiecePath>>::create()),
|
||||||
|
@ -79,7 +80,8 @@ public:
|
||||||
|
|
||||||
VContainerData(const VContainerData &data)
|
VContainerData(const VContainerData &data)
|
||||||
: QSharedData(data),
|
: QSharedData(data),
|
||||||
gObjects(data.gObjects),
|
calculationObjects(data.calculationObjects),
|
||||||
|
modelingObjects(data.modelingObjects),
|
||||||
variables(data.variables),
|
variables(data.variables),
|
||||||
pieces(data.pieces),
|
pieces(data.pieces),
|
||||||
piecePaths(data.piecePaths),
|
piecePaths(data.piecePaths),
|
||||||
|
@ -89,10 +91,8 @@ public:
|
||||||
|
|
||||||
virtual ~VContainerData();
|
virtual ~VContainerData();
|
||||||
|
|
||||||
/**
|
QHash<quint32, QSharedPointer<VGObject> > calculationObjects;
|
||||||
* @brief gObjects graphicals objects of pattern.
|
QSharedPointer<QHash<quint32, QSharedPointer<VGObject>>> modelingObjects;
|
||||||
*/
|
|
||||||
QHash<quint32, QSharedPointer<VGObject> > gObjects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief variables container for measurements, increments, lines lengths, lines angles, arcs lengths, curve lengths
|
* @brief variables container for measurements, increments, lines lengths, lines angles, arcs lengths, curve lengths
|
||||||
|
@ -184,7 +184,7 @@ public:
|
||||||
|
|
||||||
void RemoveIncrement(const QString& name);
|
void RemoveIncrement(const QString& name);
|
||||||
|
|
||||||
const QHash<quint32, QSharedPointer<VGObject> > *DataGObjects() const;
|
const QHash<quint32, QSharedPointer<VGObject> > *CalculationGObjects() const;
|
||||||
const QHash<quint32, VPiece> *DataPieces() const;
|
const QHash<quint32, VPiece> *DataPieces() const;
|
||||||
const QHash<QString, QSharedPointer<VInternalVariable>> *DataVariables() const;
|
const QHash<QString, QSharedPointer<VInternalVariable>> *DataVariables() const;
|
||||||
|
|
||||||
|
@ -219,16 +219,9 @@ private:
|
||||||
template <class T>
|
template <class T>
|
||||||
uint qHash( const QSharedPointer<T> &p );
|
uint qHash( const QSharedPointer<T> &p );
|
||||||
|
|
||||||
template <typename key, typename val>
|
|
||||||
// cppcheck-suppress functionStatic
|
|
||||||
const val GetObject(const QHash<key, val> &obj, key id) const;
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void UpdateObject(const quint32 &id, const QSharedPointer<T> &point);
|
void UpdateObject(const quint32 &id, const QSharedPointer<T> &point);
|
||||||
|
|
||||||
template <typename key, typename val>
|
|
||||||
static quint32 AddObject(QHash<key, val> &obj, val value);
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
const QMap<QString, QSharedPointer<T> > DataVar(const VarType &type) const;
|
const QMap<QString, QSharedPointer<T> > DataVar(const VarType &type) const;
|
||||||
};
|
};
|
||||||
|
@ -248,26 +241,24 @@ const QSharedPointer<T> VContainer::GeometricObject(const quint32 &id) const
|
||||||
throw VExceptionBadId(tr("Can't find object"), id);
|
throw VExceptionBadId(tr("Can't find object"), id);
|
||||||
}
|
}
|
||||||
|
|
||||||
QSharedPointer<VGObject> gObj = QSharedPointer<VGObject>();
|
QSharedPointer<VGObject> gObj;
|
||||||
if (d->gObjects.contains(id))
|
if (d->calculationObjects.contains(id))
|
||||||
{
|
{
|
||||||
gObj = d->gObjects.value(id);
|
gObj = d->calculationObjects.value(id);
|
||||||
|
}
|
||||||
|
else if (d->modelingObjects->contains(id))
|
||||||
|
{
|
||||||
|
gObj = d->modelingObjects->value(id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw VExceptionBadId(tr("Can't find object"), id);
|
throw VExceptionBadId(tr("Can't find object"), id);
|
||||||
}
|
}
|
||||||
try
|
|
||||||
{
|
|
||||||
QSharedPointer<T> obj = qSharedPointerDynamicCast<T>(gObj);
|
QSharedPointer<T> obj = qSharedPointerDynamicCast<T>(gObj);
|
||||||
SCASSERT(obj.isNull() == false)
|
SCASSERT(obj.isNull() == false)
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
catch (const std::bad_alloc &)
|
|
||||||
{
|
|
||||||
throw VExceptionBadId(tr("Can't cast object"), id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -375,19 +366,39 @@ void VContainer::UpdateObject(const quint32 &id, const QSharedPointer<T> &point)
|
||||||
Q_ASSERT_X(id != NULL_ID, Q_FUNC_INFO, "id == 0"); //-V654 //-V712
|
Q_ASSERT_X(id != NULL_ID, Q_FUNC_INFO, "id == 0"); //-V654 //-V712
|
||||||
SCASSERT(point.isNull() == false)
|
SCASSERT(point.isNull() == false)
|
||||||
point->setId(id);
|
point->setId(id);
|
||||||
if (d->gObjects.contains(id))
|
|
||||||
|
if (d->calculationObjects.contains(id) && point->getMode() == Draw::Calculation)
|
||||||
{
|
{
|
||||||
QSharedPointer<T> obj = qSharedPointerDynamicCast<T>(d->gObjects.value(id));
|
QSharedPointer<T> obj = qSharedPointerDynamicCast<T>(d->calculationObjects.value(id));
|
||||||
if (obj.isNull())
|
if (obj.isNull())
|
||||||
{
|
{
|
||||||
throw VExceptionBadId(tr("Can't cast object"), id);
|
throw VExceptionBadId(tr("Can't cast object"), id);
|
||||||
}
|
}
|
||||||
*obj = *point;
|
*obj = *point;
|
||||||
}
|
}
|
||||||
|
else if (d->modelingObjects->contains(id) && point->getMode() == Draw::Modeling)
|
||||||
|
{
|
||||||
|
QSharedPointer<T> obj = qSharedPointerDynamicCast<T>(d->modelingObjects->value(id));
|
||||||
|
if (obj.isNull())
|
||||||
|
{
|
||||||
|
throw VExceptionBadId(tr("Can't cast object"), id);
|
||||||
|
}
|
||||||
|
*obj = *point;
|
||||||
|
}
|
||||||
|
else if (point->getMode() == Draw::Calculation)
|
||||||
|
{
|
||||||
|
d->calculationObjects.insert(id, point);
|
||||||
|
}
|
||||||
|
else if (point->getMode() == Draw::Modeling)
|
||||||
|
{
|
||||||
|
d->modelingObjects->insert(id, point);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
d->gObjects.insert(id, point);
|
qWarning("Can't update an object with mode 'Layout'");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateId(id);
|
UpdateId(id);
|
||||||
}
|
}
|
||||||
#endif // VCONTAINER_H
|
#endif // VCONTAINER_H
|
||||||
|
|
|
@ -215,7 +215,7 @@ void DialogTool::FillComboBoxSplines(QComboBox *box) const
|
||||||
SCASSERT(box != nullptr)
|
SCASSERT(box != nullptr)
|
||||||
box->blockSignals(true);
|
box->blockSignals(true);
|
||||||
|
|
||||||
const auto objs = data->DataGObjects();
|
const auto objs = data->CalculationGObjects();
|
||||||
QHash<quint32, QSharedPointer<VGObject> >::const_iterator i;
|
QHash<quint32, QSharedPointer<VGObject> >::const_iterator i;
|
||||||
QMap<QString, quint32> list;
|
QMap<QString, quint32> list;
|
||||||
for (i = objs->constBegin(); i != objs->constEnd(); ++i)
|
for (i = objs->constBegin(); i != objs->constEnd(); ++i)
|
||||||
|
@ -239,7 +239,7 @@ void DialogTool::FillComboBoxSplinesPath(QComboBox *box) const
|
||||||
SCASSERT(box != nullptr)
|
SCASSERT(box != nullptr)
|
||||||
box->blockSignals(true);
|
box->blockSignals(true);
|
||||||
|
|
||||||
const auto objs = data->DataGObjects();
|
const auto objs = data->CalculationGObjects();
|
||||||
QHash<quint32, QSharedPointer<VGObject> >::const_iterator i;
|
QHash<quint32, QSharedPointer<VGObject> >::const_iterator i;
|
||||||
QMap<QString, quint32> list;
|
QMap<QString, quint32> list;
|
||||||
for (i = objs->constBegin(); i != objs->constEnd(); ++i)
|
for (i = objs->constBegin(); i != objs->constEnd(); ++i)
|
||||||
|
@ -261,7 +261,7 @@ void DialogTool::FillComboBoxSplinesPath(QComboBox *box) const
|
||||||
void DialogTool::FillComboBoxCurves(QComboBox *box) const
|
void DialogTool::FillComboBoxCurves(QComboBox *box) const
|
||||||
{
|
{
|
||||||
SCASSERT(box != nullptr)
|
SCASSERT(box != nullptr)
|
||||||
const auto objs = data->DataGObjects();
|
const auto objs = data->CalculationGObjects();
|
||||||
QMap<QString, quint32> list;
|
QMap<QString, quint32> list;
|
||||||
QHash<quint32, QSharedPointer<VGObject> >::const_iterator i;
|
QHash<quint32, QSharedPointer<VGObject> >::const_iterator i;
|
||||||
for (i = objs->constBegin(); i != objs->constEnd(); ++i)
|
for (i = objs->constBegin(); i != objs->constEnd(); ++i)
|
||||||
|
@ -269,12 +269,12 @@ void DialogTool::FillComboBoxCurves(QComboBox *box) const
|
||||||
if (i.key() != toolId)
|
if (i.key() != toolId)
|
||||||
{
|
{
|
||||||
QSharedPointer<VGObject> obj = i.value();
|
QSharedPointer<VGObject> obj = i.value();
|
||||||
if ((obj->getType() == GOType::Arc
|
if (obj->getType() == GOType::Arc
|
||||||
|| obj->getType() == GOType::EllipticalArc
|
|| obj->getType() == GOType::EllipticalArc
|
||||||
|| obj->getType() == GOType::Spline
|
|| obj->getType() == GOType::Spline
|
||||||
|| obj->getType() == GOType::SplinePath
|
|| obj->getType() == GOType::SplinePath
|
||||||
|| obj->getType() == GOType::CubicBezier
|
|| obj->getType() == GOType::CubicBezier
|
||||||
|| obj->getType() == GOType::CubicBezierPath) && obj->getMode() == Draw::Calculation)
|
|| obj->getType() == GOType::CubicBezierPath)
|
||||||
{
|
{
|
||||||
PrepareList<VAbstractCurve>(list, i.key());
|
PrepareList<VAbstractCurve>(list, i.key());
|
||||||
}
|
}
|
||||||
|
@ -683,8 +683,7 @@ void DialogTool::InitNodeAngles(QComboBox *box)
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
bool DialogTool::IsSplinePath(const QSharedPointer<VGObject> &obj) const
|
bool DialogTool::IsSplinePath(const QSharedPointer<VGObject> &obj) const
|
||||||
{
|
{
|
||||||
return (obj->getType() == GOType::SplinePath || obj->getType() == GOType::CubicBezierPath) &&
|
return obj->getType() == GOType::SplinePath || obj->getType() == GOType::CubicBezierPath;
|
||||||
obj->getMode() == Draw::Calculation;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1010,8 +1009,7 @@ void DialogTool::PrepareList(QMap<QString, quint32> &list, quint32 id) const
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
bool DialogTool::IsSpline(const QSharedPointer<VGObject> &obj) const
|
bool DialogTool::IsSpline(const QSharedPointer<VGObject> &obj) const
|
||||||
{
|
{
|
||||||
return (obj->getType() == GOType::Spline || obj->getType() == GOType::CubicBezier) &&
|
return obj->getType() == GOType::Spline || obj->getType() == GOType::CubicBezier;
|
||||||
obj->getMode() == Draw::Calculation;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1290,7 +1288,7 @@ void DialogTool::FillCombo(QComboBox *box, GOType gType, FillComboBox rule, cons
|
||||||
SCASSERT(box != nullptr)
|
SCASSERT(box != nullptr)
|
||||||
box->blockSignals(true);
|
box->blockSignals(true);
|
||||||
|
|
||||||
const QHash<quint32, QSharedPointer<VGObject> > *objs = data->DataGObjects();
|
const QHash<quint32, QSharedPointer<VGObject> > *objs = data->CalculationGObjects();
|
||||||
QHash<quint32, QSharedPointer<VGObject> >::const_iterator i;
|
QHash<quint32, QSharedPointer<VGObject> >::const_iterator i;
|
||||||
QMap<QString, quint32> list;
|
QMap<QString, quint32> list;
|
||||||
for (i = objs->constBegin(); i != objs->constEnd(); ++i)
|
for (i = objs->constBegin(); i != objs->constEnd(); ++i)
|
||||||
|
@ -1300,7 +1298,7 @@ void DialogTool::FillCombo(QComboBox *box, GOType gType, FillComboBox rule, cons
|
||||||
if (i.key() != toolId && i.key() != ch1 && i.key() != ch2)
|
if (i.key() != toolId && i.key() != ch1 && i.key() != ch2)
|
||||||
{
|
{
|
||||||
QSharedPointer<VGObject> obj = i.value();
|
QSharedPointer<VGObject> obj = i.value();
|
||||||
if (obj->getType() == gType && obj->getMode() == Draw::Calculation)
|
if (obj->getType() == gType)
|
||||||
{
|
{
|
||||||
PrepareList<GObject>(list, i.key());
|
PrepareList<GObject>(list, i.key());
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,35 +83,6 @@ template <class T> class QSharedPointer;
|
||||||
|
|
||||||
const QString VAbstractTool::AttrInUse = QStringLiteral("inUse");
|
const QString VAbstractTool::AttrInUse = QStringLiteral("inUse");
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
quint32 CreateNodeSpline(VContainer *data, quint32 id)
|
|
||||||
{
|
|
||||||
if (data->GetGObject(id)->getType() == GOType::Spline)
|
|
||||||
{
|
|
||||||
return VAbstractTool::CreateNode<VSpline>(data, id);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return VAbstractTool::CreateNode<VCubicBezier>(data, id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
quint32 CreateNodeSplinePath(VContainer *data, quint32 id)
|
|
||||||
{
|
|
||||||
if (data->GetGObject(id)->getType() == GOType::SplinePath)
|
|
||||||
{
|
|
||||||
return VAbstractTool::CreateNode<VSplinePath>(data, id);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return VAbstractTool::CreateNode<VCubicBezierPath>(data, id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}//static functions
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief VAbstractTool container.
|
* @brief VAbstractTool container.
|
||||||
|
@ -379,7 +350,7 @@ QMap<QString, QString> VAbstractTool::ColorsList()
|
||||||
// cppcheck-suppress unusedFunction
|
// cppcheck-suppress unusedFunction
|
||||||
QMap<QString, quint32> VAbstractTool::PointsList() const
|
QMap<QString, quint32> VAbstractTool::PointsList() const
|
||||||
{
|
{
|
||||||
const QHash<quint32, QSharedPointer<VGObject> > *objs = data.DataGObjects();
|
const QHash<quint32, QSharedPointer<VGObject> > *objs = data.CalculationGObjects();
|
||||||
QMap<QString, quint32> list;
|
QMap<QString, quint32> list;
|
||||||
QHash<quint32, QSharedPointer<VGObject> >::const_iterator i;
|
QHash<quint32, QSharedPointer<VGObject> >::const_iterator i;
|
||||||
for (i = objs->constBegin(); i != objs->constEnd(); ++i)
|
for (i = objs->constBegin(); i != objs->constEnd(); ++i)
|
||||||
|
@ -387,7 +358,7 @@ QMap<QString, quint32> VAbstractTool::PointsList() const
|
||||||
if (i.key() != m_id)
|
if (i.key() != m_id)
|
||||||
{
|
{
|
||||||
QSharedPointer<VGObject> obj = i.value();
|
QSharedPointer<VGObject> obj = i.value();
|
||||||
if (obj->getType() == GOType::Point && obj->getMode() == Draw::Calculation)
|
if (obj->getType() == GOType::Point)
|
||||||
{
|
{
|
||||||
const QSharedPointer<VPointF> point = data.GeometricObject<VPointF>(i.key());
|
const QSharedPointer<VPointF> point = data.GeometricObject<VPointF>(i.key());
|
||||||
list[point->name()] = i.key();
|
list[point->name()] = i.key();
|
||||||
|
@ -694,3 +665,29 @@ quint32 VAbstractTool::PrepareNode(const VPieceNode &node, VMainGraphicsScene *s
|
||||||
}
|
}
|
||||||
return initData.id;
|
return initData.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VAbstractTool::CreateNodeSpline(VContainer *data, quint32 id)
|
||||||
|
{
|
||||||
|
if (data->GetGObject(id)->getType() == GOType::Spline)
|
||||||
|
{
|
||||||
|
return VAbstractTool::CreateNode<VSpline>(data, id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return VAbstractTool::CreateNode<VCubicBezier>(data, id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VAbstractTool::CreateNodeSplinePath(VContainer *data, quint32 id)
|
||||||
|
{
|
||||||
|
if (data->GetGObject(id)->getType() == GOType::SplinePath)
|
||||||
|
{
|
||||||
|
return VAbstractTool::CreateNode<VSplinePath>(data, id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return VAbstractTool::CreateNode<VCubicBezierPath>(data, id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user