Lite parsing. Parse only current pattern piece.

--HG--
branch : develop
This commit is contained in:
dismine 2014-07-29 18:23:18 +03:00
parent c0debc16e0
commit 14edede972
5 changed files with 52 additions and 4 deletions

View file

@ -340,11 +340,17 @@ const QStringList VAbstractTool::Styles()
*/
void VAbstractTool::AddRecord(const quint32 id, const Tool &toolType, VPattern *doc)
{
quint32 cursor = doc->getCursor();
QVector<VToolRecord> *history = doc->getHistory();
VToolRecord record = VToolRecord(id, toolType, doc->GetNameActivPP());
if (history->contains(record))
{
return;
}
quint32 cursor = doc->getCursor();
if (cursor <= 0)
{
history->append(VToolRecord(id, toolType, doc->GetNameActivPP()));
history->append(record);
}
else
{
@ -358,6 +364,6 @@ void VAbstractTool::AddRecord(const quint32 id, const Tool &toolType, VPattern *
break;
}
}
history->insert(index+1, VToolRecord(id, toolType, doc->GetNameActivPP()));
history->insert(index+1, record);
}
}

View file

@ -675,7 +675,8 @@ void VPattern::LiteParseTree()
try
{
emit SetEnabledGUI(true);
Parse(Document::LiteParse);
ParceCurrentPP();
//Parse(Document::LiteParse);
}
catch (const VExceptionUndo &e)
{
@ -1475,6 +1476,17 @@ void VPattern::SplinesCommonAttributes(const QDomElement &domElement, quint32 &i
idTool = GetParametrUInt(domElement, VAbstractNode::AttrIdTool, "0");
}
//---------------------------------------------------------------------------------------------------------------------
void VPattern::ParceCurrentPP()
{
QDomElement domElement;
if (GetActivDrawElement(domElement))
{
ParseDrawElement(domElement, Document::LiteParse);
}
emit CheckLayout();
}
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief ParseSplineElement parse spline tag.
@ -2015,6 +2027,7 @@ QRectF VPattern::ActiveDrawBoundingRect() const
return rec;
}
//---------------------------------------------------------------------------------------------------------------------
template <typename T>
QRectF VPattern::ToolBoundingRect(const QRectF &rec, const quint32 &id) const
{

View file

@ -214,6 +214,7 @@ private:
quint32 &idTool);
template <typename T>
QRectF ToolBoundingRect(const QRectF &rec, const quint32 &id) const;
void ParceCurrentPP();
};
//---------------------------------------------------------------------------------------------------------------------

View file

@ -46,3 +46,28 @@ VToolRecord::VToolRecord()
VToolRecord::VToolRecord(const quint32 &id, const Tool &typeTool, const QString &nameDraw)
:id(id), typeTool(typeTool), nameDraw(nameDraw)
{}
//---------------------------------------------------------------------------------------------------------------------
bool VToolRecord::VToolRecord::operator==(const VToolRecord &record) const
{
bool isEqual = false;
if (id == record.getId() && typeTool == record.getTypeTool() && nameDraw == record.getNameDraw())
{
isEqual = true;
}
return isEqual;
}
//---------------------------------------------------------------------------------------------------------------------
VToolRecord &VToolRecord::operator=(const VToolRecord &record)
{
this->id = record.getId();
this->typeTool = record.getTypeTool();
this->nameDraw = record.getNameDraw();
return *this;
}
//---------------------------------------------------------------------------------------------------------------------
VToolRecord::VToolRecord(const VToolRecord &record)
:id(record.getId()), typeTool(record.getTypeTool()), nameDraw(record.getNameDraw())
{}

View file

@ -41,6 +41,9 @@ class VToolRecord
public:
VToolRecord();
VToolRecord(const quint32 &id, const Tool &typeTool, const QString &nameDraw);
bool operator==(const VToolRecord &record) const;
VToolRecord &operator=(const VToolRecord &record);
VToolRecord(const VToolRecord &record);
quint32 getId() const;
void setId(const quint32 &value);
Tool getTypeTool() const;