Complited refactoring VPattern.
--HG-- branch : feature
This commit is contained in:
parent
f166f2521b
commit
d969cfb2d5
|
@ -52,8 +52,7 @@
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VPattern::VPattern(VContainer *data, Draw *mode, VMainGraphicsScene *sceneDraw,
|
VPattern::VPattern(VContainer *data, Draw *mode, VMainGraphicsScene *sceneDraw,
|
||||||
VMainGraphicsScene *sceneDetail, QObject *parent)
|
VMainGraphicsScene *sceneDetail, QObject *parent)
|
||||||
: VAbstractPattern(parent), data(data), patternPieces(QStringList()), mode(mode), sceneDraw(sceneDraw),
|
: VAbstractPattern(parent), data(data), mode(mode), sceneDraw(sceneDraw), sceneDetail(sceneDetail)
|
||||||
sceneDetail(sceneDetail)
|
|
||||||
{
|
{
|
||||||
SCASSERT(sceneDraw != nullptr);
|
SCASSERT(sceneDraw != nullptr);
|
||||||
SCASSERT(sceneDetail != nullptr);
|
SCASSERT(sceneDetail != nullptr);
|
||||||
|
@ -409,38 +408,6 @@ void VPattern::LiteParseTree(const Document &parse)
|
||||||
qCDebug(vXML, "Scene size updated.");
|
qCDebug(vXML, "Scene size updated.");
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief haveLiteChange we have unsaved change.
|
|
||||||
*/
|
|
||||||
void VPattern::haveLiteChange()
|
|
||||||
{
|
|
||||||
emit patternChanged(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief ShowHistoryTool hightlight tool.
|
|
||||||
* @param id tool id.
|
|
||||||
* @param enable enable or diasable hightlight.
|
|
||||||
*/
|
|
||||||
void VPattern::ShowHistoryTool(quint32 id, bool enable)
|
|
||||||
{
|
|
||||||
emit ShowTool(id, enable);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void VPattern::NeedFullParsing()
|
|
||||||
{
|
|
||||||
emit UndoCommand();
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void VPattern::ClearScene()
|
|
||||||
{
|
|
||||||
emit ClearMainWindow();
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
// cppcheck-suppress unusedFunction
|
// cppcheck-suppress unusedFunction
|
||||||
void VPattern::customEvent(QEvent *event)
|
void VPattern::customEvent(QEvent *event)
|
||||||
|
@ -1356,75 +1323,6 @@ void VPattern::ParseCurrentPP()
|
||||||
emit CheckLayout();
|
emit CheckLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void VPattern::CheckTagExists(const QString &tag)
|
|
||||||
{
|
|
||||||
QDomNodeList list = elementsByTagName(tag);
|
|
||||||
if (list.size() == 0)
|
|
||||||
{
|
|
||||||
QStringList tags = QStringList() << TagVersion << TagAuthor << TagDescription << TagNotes << TagGradation;
|
|
||||||
QDomElement pattern = documentElement();
|
|
||||||
switch (tags.indexOf(tag))
|
|
||||||
{
|
|
||||||
case 0: //TagVersion
|
|
||||||
break;// Mandatory tag
|
|
||||||
case 1: //TagAuthor
|
|
||||||
pattern.insertAfter(createElement(TagAuthor), elementsByTagName(TagVersion).at(0));
|
|
||||||
SetVersion();
|
|
||||||
break;
|
|
||||||
case 2: //TagDescription
|
|
||||||
{
|
|
||||||
for (int i = tags.indexOf(tag)-1; i >= 0; --i)
|
|
||||||
{
|
|
||||||
QDomNodeList list = elementsByTagName(tags.at(i));
|
|
||||||
if (list.isEmpty())
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
pattern.insertAfter(createElement(TagDescription), list.at(0));
|
|
||||||
}
|
|
||||||
SetVersion();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 3: //TagNotes
|
|
||||||
{
|
|
||||||
for (int i = tags.indexOf(tag)-1; i >= 0; --i)
|
|
||||||
{
|
|
||||||
QDomNodeList list = elementsByTagName(tags.at(i));
|
|
||||||
if (list.isEmpty())
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
pattern.insertAfter(createElement(TagNotes), list.at(0));
|
|
||||||
}
|
|
||||||
SetVersion();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 4: //TagGradation
|
|
||||||
{
|
|
||||||
QDomElement gradation = createElement(TagGradation);
|
|
||||||
gradation.appendChild(createElement(TagHeights));
|
|
||||||
gradation.appendChild(createElement(TagSizes));
|
|
||||||
|
|
||||||
for (int i = tags.indexOf(tag)-1; i >= 0; --i)
|
|
||||||
{
|
|
||||||
QDomNodeList list = elementsByTagName(tags.at(i));
|
|
||||||
if (list.isEmpty())
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
pattern.insertAfter(gradation, list.at(0));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
SetVersion();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QString VPattern::GetLabelBase(unsigned int index) const
|
QString VPattern::GetLabelBase(unsigned int index) const
|
||||||
{
|
{
|
||||||
|
@ -1834,288 +1732,6 @@ void VPattern::ParseIncrementsElement(const QDomNode &node)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
QMap<GHeights, bool> VPattern::GetGradationHeights() const
|
|
||||||
{
|
|
||||||
QMap<GHeights, bool> map;
|
|
||||||
map.insert(GHeights::ALL, true);
|
|
||||||
map.insert(GHeights::H92, true);
|
|
||||||
map.insert(GHeights::H98, true);
|
|
||||||
map.insert(GHeights::H104, true);
|
|
||||||
map.insert(GHeights::H110, true);
|
|
||||||
map.insert(GHeights::H116, true);
|
|
||||||
map.insert(GHeights::H122, true);
|
|
||||||
map.insert(GHeights::H128, true);
|
|
||||||
map.insert(GHeights::H134, true);
|
|
||||||
map.insert(GHeights::H140, true);
|
|
||||||
map.insert(GHeights::H146, true);
|
|
||||||
map.insert(GHeights::H152, true);
|
|
||||||
map.insert(GHeights::H158, true);
|
|
||||||
map.insert(GHeights::H164, true);
|
|
||||||
map.insert(GHeights::H170, true);
|
|
||||||
map.insert(GHeights::H176, true);
|
|
||||||
map.insert(GHeights::H182, true);
|
|
||||||
map.insert(GHeights::H188, true);
|
|
||||||
map.insert(GHeights::H194, true);
|
|
||||||
|
|
||||||
QDomNodeList tags = elementsByTagName(TagGradation);
|
|
||||||
if (tags.size() == 0)
|
|
||||||
{
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList gTags = QStringList() << TagHeights << TagSizes;
|
|
||||||
QDomNode domNode = tags.at(0).firstChild();
|
|
||||||
while (domNode.isNull() == false)
|
|
||||||
{
|
|
||||||
if (domNode.isElement())
|
|
||||||
{
|
|
||||||
const QDomElement domElement = domNode.toElement();
|
|
||||||
if (domElement.isNull() == false)
|
|
||||||
{
|
|
||||||
const QString defValue = QStringLiteral("true");
|
|
||||||
switch (gTags.indexOf(domElement.tagName()))
|
|
||||||
{
|
|
||||||
case 0: // TagHeights
|
|
||||||
if (GetParametrBool(domElement, AttrAll, defValue))
|
|
||||||
{
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
map.insert(GHeights::ALL, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
map.insert(GHeights::H92, GetParametrBool(domElement, AttrH92, defValue));
|
|
||||||
map.insert(GHeights::H98, GetParametrBool(domElement, AttrH98, defValue));
|
|
||||||
map.insert(GHeights::H104, GetParametrBool(domElement, AttrH104, defValue));
|
|
||||||
map.insert(GHeights::H110, GetParametrBool(domElement, AttrH110, defValue));
|
|
||||||
map.insert(GHeights::H116, GetParametrBool(domElement, AttrH116, defValue));
|
|
||||||
map.insert(GHeights::H122, GetParametrBool(domElement, AttrH122, defValue));
|
|
||||||
map.insert(GHeights::H128, GetParametrBool(domElement, AttrH128, defValue));
|
|
||||||
map.insert(GHeights::H134, GetParametrBool(domElement, AttrH134, defValue));
|
|
||||||
map.insert(GHeights::H140, GetParametrBool(domElement, AttrH140, defValue));
|
|
||||||
map.insert(GHeights::H146, GetParametrBool(domElement, AttrH146, defValue));
|
|
||||||
map.insert(GHeights::H152, GetParametrBool(domElement, AttrH152, defValue));
|
|
||||||
map.insert(GHeights::H158, GetParametrBool(domElement, AttrH158, defValue));
|
|
||||||
map.insert(GHeights::H164, GetParametrBool(domElement, AttrH164, defValue));
|
|
||||||
map.insert(GHeights::H170, GetParametrBool(domElement, AttrH170, defValue));
|
|
||||||
map.insert(GHeights::H176, GetParametrBool(domElement, AttrH176, defValue));
|
|
||||||
map.insert(GHeights::H182, GetParametrBool(domElement, AttrH182, defValue));
|
|
||||||
map.insert(GHeights::H188, GetParametrBool(domElement, AttrH188, defValue));
|
|
||||||
map.insert(GHeights::H194, GetParametrBool(domElement, AttrH194, defValue));
|
|
||||||
return map;
|
|
||||||
break;
|
|
||||||
case 1: // TagSizes
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
domNode = domNode.nextSibling();
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void VPattern::SetGradationHeights(const QMap<GHeights, bool> &options)
|
|
||||||
{
|
|
||||||
CheckTagExists(TagGradation);
|
|
||||||
QDomNodeList tags = elementsByTagName(TagGradation);
|
|
||||||
if (tags.size() == 0)
|
|
||||||
{
|
|
||||||
qDebug()<<"Can't save tag "<<TagGradation<<Q_FUNC_INFO;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList gTags = QStringList() << TagHeights << TagSizes;
|
|
||||||
QDomNode domNode = tags.at(0).firstChild();
|
|
||||||
while (domNode.isNull() == false)
|
|
||||||
{
|
|
||||||
if (domNode.isElement())
|
|
||||||
{
|
|
||||||
QDomElement domElement = domNode.toElement();
|
|
||||||
if (domElement.isNull() == false)
|
|
||||||
{
|
|
||||||
switch (gTags.indexOf(domElement.tagName()))
|
|
||||||
{
|
|
||||||
case 0: // TagHeights
|
|
||||||
SetAttribute(domElement, AttrAll, options.value(GHeights::ALL));
|
|
||||||
SetAttribute(domElement, AttrH92, options.value(GHeights::H92));
|
|
||||||
SetAttribute(domElement, AttrH98, options.value(GHeights::H98));
|
|
||||||
SetAttribute(domElement, AttrH104, options.value(GHeights::H104));
|
|
||||||
SetAttribute(domElement, AttrH110, options.value(GHeights::H110));
|
|
||||||
SetAttribute(domElement, AttrH116, options.value(GHeights::H116));
|
|
||||||
SetAttribute(domElement, AttrH122, options.value(GHeights::H122));
|
|
||||||
SetAttribute(domElement, AttrH128, options.value(GHeights::H128));
|
|
||||||
SetAttribute(domElement, AttrH134, options.value(GHeights::H134));
|
|
||||||
SetAttribute(domElement, AttrH140, options.value(GHeights::H140));
|
|
||||||
SetAttribute(domElement, AttrH146, options.value(GHeights::H146));
|
|
||||||
SetAttribute(domElement, AttrH152, options.value(GHeights::H152));
|
|
||||||
SetAttribute(domElement, AttrH158, options.value(GHeights::H158));
|
|
||||||
SetAttribute(domElement, AttrH164, options.value(GHeights::H164));
|
|
||||||
SetAttribute(domElement, AttrH170, options.value(GHeights::H170));
|
|
||||||
SetAttribute(domElement, AttrH176, options.value(GHeights::H176));
|
|
||||||
SetAttribute(domElement, AttrH182, options.value(GHeights::H182));
|
|
||||||
SetAttribute(domElement, AttrH188, options.value(GHeights::H188));
|
|
||||||
SetAttribute(domElement, AttrH194, options.value(GHeights::H194));
|
|
||||||
|
|
||||||
emit patternChanged(false);
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case 1: // TagSizes
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
domNode = domNode.nextSibling();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
QMap<GSizes, bool> VPattern::GetGradationSizes() const
|
|
||||||
{
|
|
||||||
QMap<GSizes, bool> map;
|
|
||||||
map.insert(GSizes::ALL, true);
|
|
||||||
map.insert(GSizes::S22, true);
|
|
||||||
map.insert(GSizes::S24, true);
|
|
||||||
map.insert(GSizes::S26, true);
|
|
||||||
map.insert(GSizes::S28, true);
|
|
||||||
map.insert(GSizes::S30, true);
|
|
||||||
map.insert(GSizes::S32, true);
|
|
||||||
map.insert(GSizes::S34, true);
|
|
||||||
map.insert(GSizes::S36, true);
|
|
||||||
map.insert(GSizes::S38, true);
|
|
||||||
map.insert(GSizes::S40, true);
|
|
||||||
map.insert(GSizes::S42, true);
|
|
||||||
map.insert(GSizes::S44, true);
|
|
||||||
map.insert(GSizes::S46, true);
|
|
||||||
map.insert(GSizes::S48, true);
|
|
||||||
map.insert(GSizes::S50, true);
|
|
||||||
map.insert(GSizes::S52, true);
|
|
||||||
map.insert(GSizes::S54, true);
|
|
||||||
map.insert(GSizes::S56, true);
|
|
||||||
|
|
||||||
QDomNodeList tags = elementsByTagName(TagGradation);
|
|
||||||
if (tags.size() == 0)
|
|
||||||
{
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList gTags = QStringList() << TagHeights << TagSizes;
|
|
||||||
QDomNode domNode = tags.at(0).firstChild();
|
|
||||||
while (domNode.isNull() == false)
|
|
||||||
{
|
|
||||||
if (domNode.isElement())
|
|
||||||
{
|
|
||||||
const QDomElement domElement = domNode.toElement();
|
|
||||||
if (domElement.isNull() == false)
|
|
||||||
{
|
|
||||||
const QString defValue = QStringLiteral("true");
|
|
||||||
switch (gTags.indexOf(domElement.tagName()))
|
|
||||||
{
|
|
||||||
case 0: // TagHeights
|
|
||||||
break;
|
|
||||||
case 1: // TagSizes
|
|
||||||
if (GetParametrBool(domElement, AttrAll, defValue))
|
|
||||||
{
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
map.insert(GSizes::ALL, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
map.insert(GSizes::S22, GetParametrBool(domElement, AttrS22, defValue));
|
|
||||||
map.insert(GSizes::S24, GetParametrBool(domElement, AttrS24, defValue));
|
|
||||||
map.insert(GSizes::S26, GetParametrBool(domElement, AttrS26, defValue));
|
|
||||||
map.insert(GSizes::S28, GetParametrBool(domElement, AttrS28, defValue));
|
|
||||||
map.insert(GSizes::S30, GetParametrBool(domElement, AttrS30, defValue));
|
|
||||||
map.insert(GSizes::S32, GetParametrBool(domElement, AttrS32, defValue));
|
|
||||||
map.insert(GSizes::S34, GetParametrBool(domElement, AttrS34, defValue));
|
|
||||||
map.insert(GSizes::S36, GetParametrBool(domElement, AttrS36, defValue));
|
|
||||||
map.insert(GSizes::S38, GetParametrBool(domElement, AttrS38, defValue));
|
|
||||||
map.insert(GSizes::S40, GetParametrBool(domElement, AttrS40, defValue));
|
|
||||||
map.insert(GSizes::S42, GetParametrBool(domElement, AttrS42, defValue));
|
|
||||||
map.insert(GSizes::S44, GetParametrBool(domElement, AttrS44, defValue));
|
|
||||||
map.insert(GSizes::S46, GetParametrBool(domElement, AttrS46, defValue));
|
|
||||||
map.insert(GSizes::S48, GetParametrBool(domElement, AttrS48, defValue));
|
|
||||||
map.insert(GSizes::S50, GetParametrBool(domElement, AttrS50, defValue));
|
|
||||||
map.insert(GSizes::S52, GetParametrBool(domElement, AttrS52, defValue));
|
|
||||||
map.insert(GSizes::S54, GetParametrBool(domElement, AttrS54, defValue));
|
|
||||||
map.insert(GSizes::S56, GetParametrBool(domElement, AttrS56, defValue));
|
|
||||||
return map;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
domNode = domNode.nextSibling();
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void VPattern::SetGradationSizes(const QMap<GSizes, bool> &options)
|
|
||||||
{
|
|
||||||
CheckTagExists(TagGradation);
|
|
||||||
QDomNodeList tags = elementsByTagName(TagGradation);
|
|
||||||
if (tags.size() == 0)
|
|
||||||
{
|
|
||||||
qDebug()<<"Can't save tag "<<TagGradation<<Q_FUNC_INFO;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList gTags = QStringList() << TagHeights << TagSizes;
|
|
||||||
QDomNode domNode = tags.at(0).firstChild();
|
|
||||||
while (domNode.isNull() == false)
|
|
||||||
{
|
|
||||||
if (domNode.isElement())
|
|
||||||
{
|
|
||||||
QDomElement domElement = domNode.toElement();
|
|
||||||
if (domElement.isNull() == false)
|
|
||||||
{
|
|
||||||
switch (gTags.indexOf(domElement.tagName()))
|
|
||||||
{
|
|
||||||
case 0: // TagHeights
|
|
||||||
break;
|
|
||||||
case 1: // TagSizes
|
|
||||||
SetAttribute(domElement, AttrAll, options.value(GSizes::ALL));
|
|
||||||
SetAttribute(domElement, AttrS22, options.value(GSizes::S22));
|
|
||||||
SetAttribute(domElement, AttrS24, options.value(GSizes::S24));
|
|
||||||
SetAttribute(domElement, AttrS26, options.value(GSizes::S26));
|
|
||||||
SetAttribute(domElement, AttrS28, options.value(GSizes::S28));
|
|
||||||
SetAttribute(domElement, AttrS30, options.value(GSizes::S30));
|
|
||||||
SetAttribute(domElement, AttrS32, options.value(GSizes::S32));
|
|
||||||
SetAttribute(domElement, AttrS34, options.value(GSizes::S34));
|
|
||||||
SetAttribute(domElement, AttrS36, options.value(GSizes::S36));
|
|
||||||
SetAttribute(domElement, AttrS38, options.value(GSizes::S38));
|
|
||||||
SetAttribute(domElement, AttrS40, options.value(GSizes::S40));
|
|
||||||
SetAttribute(domElement, AttrS42, options.value(GSizes::S42));
|
|
||||||
SetAttribute(domElement, AttrS44, options.value(GSizes::S44));
|
|
||||||
SetAttribute(domElement, AttrS46, options.value(GSizes::S46));
|
|
||||||
SetAttribute(domElement, AttrS48, options.value(GSizes::S48));
|
|
||||||
SetAttribute(domElement, AttrS50, options.value(GSizes::S50));
|
|
||||||
SetAttribute(domElement, AttrS52, options.value(GSizes::S52));
|
|
||||||
SetAttribute(domElement, AttrS54, options.value(GSizes::S54));
|
|
||||||
SetAttribute(domElement, AttrS56, options.value(GSizes::S56));
|
|
||||||
|
|
||||||
emit patternChanged(false);
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
domNode = domNode.nextSibling();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QString VPattern::GetAuthor() const
|
QString VPattern::GetAuthor() const
|
||||||
{
|
{
|
||||||
|
@ -2130,47 +1746,6 @@ void VPattern::SetAuthor(const QString &text)
|
||||||
emit patternChanged(false);
|
emit patternChanged(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
QString VPattern::GetDescription() const
|
|
||||||
{
|
|
||||||
return UniqueTagText(TagDescription);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void VPattern::SetDescription(const QString &text)
|
|
||||||
{
|
|
||||||
CheckTagExists(TagDescription);
|
|
||||||
setTagText(TagDescription, text);
|
|
||||||
emit patternChanged(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
QString VPattern::GetNotes() const
|
|
||||||
{
|
|
||||||
return UniqueTagText(TagNotes);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void VPattern::SetNotes(const QString &text)
|
|
||||||
{
|
|
||||||
CheckTagExists(TagNotes);
|
|
||||||
setTagText(TagNotes, text);
|
|
||||||
emit patternChanged(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
QString VPattern::GetVersion() const
|
|
||||||
{
|
|
||||||
return UniqueTagText(TagVersion, VPatternConverter::PatternMaxVerStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void VPattern::SetVersion()
|
|
||||||
{
|
|
||||||
setTagText(TagVersion, VPatternConverter::PatternMaxVerStr);
|
|
||||||
emit patternChanged(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QString VPattern::GenerateLabel(const LabelType &type) const
|
QString VPattern::GenerateLabel(const LabelType &type) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -62,46 +62,26 @@ public:
|
||||||
quint32 SPointActiveDraw();
|
quint32 SPointActiveDraw();
|
||||||
|
|
||||||
virtual bool SaveDocument(const QString &fileName, QString &error) const;
|
virtual bool SaveDocument(const QString &fileName, QString &error) const;
|
||||||
QStringList getPatternPieces() const;
|
|
||||||
QRectF ActiveDrawBoundingRect() const;
|
QRectF ActiveDrawBoundingRect() const;
|
||||||
|
|
||||||
QMap<GHeights, bool> GetGradationHeights() const;
|
|
||||||
void SetGradationHeights(const QMap<GHeights, bool> &options);
|
|
||||||
|
|
||||||
QMap<GSizes, bool> GetGradationSizes() const;
|
|
||||||
void SetGradationSizes(const QMap<GSizes, bool> &options);
|
|
||||||
|
|
||||||
QString GetAuthor() const;
|
QString GetAuthor() const;
|
||||||
void SetAuthor(const QString &text);
|
void SetAuthor(const QString &text);
|
||||||
|
|
||||||
QString GetDescription() const;
|
|
||||||
void SetDescription(const QString &text);
|
|
||||||
|
|
||||||
QString GetNotes() const;
|
|
||||||
void SetNotes(const QString &text);
|
|
||||||
|
|
||||||
QString GetVersion() const;
|
|
||||||
void SetVersion();
|
|
||||||
|
|
||||||
QString GenerateLabel(const LabelType &type)const;
|
QString GenerateLabel(const LabelType &type)const;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void LiteParseTree(const Document &parse);
|
void LiteParseTree(const Document &parse);
|
||||||
void haveLiteChange();
|
|
||||||
void ShowHistoryTool(quint32 id, bool enable);
|
|
||||||
void NeedFullParsing();
|
|
||||||
void ClearScene();
|
|
||||||
protected:
|
protected:
|
||||||
virtual void customEvent(QEvent * event);
|
virtual void customEvent(QEvent * event);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VPattern)
|
Q_DISABLE_COPY(VPattern)
|
||||||
|
|
||||||
/** @brief data container with data. */
|
/** @brief data container with data. */
|
||||||
VContainer *data;
|
VContainer *data;
|
||||||
|
|
||||||
/** @brief patternPieces list of patern pieces names for combobox*/
|
|
||||||
QStringList patternPieces;
|
|
||||||
|
|
||||||
/** @brief mode current draw mode. */
|
/** @brief mode current draw mode. */
|
||||||
Draw *mode;
|
Draw *mode;
|
||||||
|
|
||||||
|
@ -137,14 +117,7 @@ private:
|
||||||
template <typename T>
|
template <typename T>
|
||||||
QRectF ToolBoundingRect(const QRectF &rec, const quint32 &id) const;
|
QRectF ToolBoundingRect(const QRectF &rec, const quint32 &id) const;
|
||||||
void ParseCurrentPP();
|
void ParseCurrentPP();
|
||||||
void CheckTagExists(const QString &tag);
|
|
||||||
QString GetLabelBase(unsigned int index)const;
|
QString GetLabelBase(unsigned int index)const;
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
inline QStringList VPattern::getPatternPieces() const
|
|
||||||
{
|
|
||||||
return patternPieces;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // VPATTERN_H
|
#endif // VPATTERN_H
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "vabstractpattern.h"
|
#include "vabstractpattern.h"
|
||||||
#include "../vmisc/def.h"
|
#include "../vmisc/def.h"
|
||||||
#include "exception/vexceptionbadid.h"
|
#include "exception/vexceptionbadid.h"
|
||||||
|
#include "vpatternconverter.h"
|
||||||
|
|
||||||
const QString VAbstractPattern::TagPattern = QStringLiteral("pattern");
|
const QString VAbstractPattern::TagPattern = QStringLiteral("pattern");
|
||||||
const QString VAbstractPattern::TagCalculation = QStringLiteral("calculation");
|
const QString VAbstractPattern::TagCalculation = QStringLiteral("calculation");
|
||||||
|
@ -103,7 +104,7 @@ const QString VAbstractPattern::IncrementDescription = QStringLiteral("descripti
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VAbstractPattern::VAbstractPattern(QObject *parent)
|
VAbstractPattern::VAbstractPattern(QObject *parent)
|
||||||
: QObject(parent), VDomDocument(), nameActivPP(QString()), cursor(0), tools(QHash<quint32, VDataTool*>()),
|
: QObject(parent), VDomDocument(), nameActivPP(QString()), cursor(0), tools(QHash<quint32, VDataTool*>()),
|
||||||
history(QVector<VToolRecord>())
|
history(QVector<VToolRecord>()), patternPieces(QStringList())
|
||||||
{}
|
{}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -538,6 +539,367 @@ quint32 VAbstractPattern::SiblingNodeId(const quint32 &nodeId) const
|
||||||
return siblingId;
|
return siblingId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QStringList VAbstractPattern::getPatternPieces() const
|
||||||
|
{
|
||||||
|
return patternPieces;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QMap<GHeights, bool> VAbstractPattern::GetGradationHeights() const
|
||||||
|
{
|
||||||
|
QMap<GHeights, bool> map;
|
||||||
|
map.insert(GHeights::ALL, true);
|
||||||
|
map.insert(GHeights::H92, true);
|
||||||
|
map.insert(GHeights::H98, true);
|
||||||
|
map.insert(GHeights::H104, true);
|
||||||
|
map.insert(GHeights::H110, true);
|
||||||
|
map.insert(GHeights::H116, true);
|
||||||
|
map.insert(GHeights::H122, true);
|
||||||
|
map.insert(GHeights::H128, true);
|
||||||
|
map.insert(GHeights::H134, true);
|
||||||
|
map.insert(GHeights::H140, true);
|
||||||
|
map.insert(GHeights::H146, true);
|
||||||
|
map.insert(GHeights::H152, true);
|
||||||
|
map.insert(GHeights::H158, true);
|
||||||
|
map.insert(GHeights::H164, true);
|
||||||
|
map.insert(GHeights::H170, true);
|
||||||
|
map.insert(GHeights::H176, true);
|
||||||
|
map.insert(GHeights::H182, true);
|
||||||
|
map.insert(GHeights::H188, true);
|
||||||
|
map.insert(GHeights::H194, true);
|
||||||
|
|
||||||
|
QDomNodeList tags = elementsByTagName(TagGradation);
|
||||||
|
if (tags.size() == 0)
|
||||||
|
{
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList gTags = QStringList() << TagHeights << TagSizes;
|
||||||
|
QDomNode domNode = tags.at(0).firstChild();
|
||||||
|
while (domNode.isNull() == false)
|
||||||
|
{
|
||||||
|
if (domNode.isElement())
|
||||||
|
{
|
||||||
|
const QDomElement domElement = domNode.toElement();
|
||||||
|
if (domElement.isNull() == false)
|
||||||
|
{
|
||||||
|
const QString defValue = QStringLiteral("true");
|
||||||
|
switch (gTags.indexOf(domElement.tagName()))
|
||||||
|
{
|
||||||
|
case 0: // TagHeights
|
||||||
|
if (GetParametrBool(domElement, AttrAll, defValue))
|
||||||
|
{
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
map.insert(GHeights::ALL, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
map.insert(GHeights::H92, GetParametrBool(domElement, AttrH92, defValue));
|
||||||
|
map.insert(GHeights::H98, GetParametrBool(domElement, AttrH98, defValue));
|
||||||
|
map.insert(GHeights::H104, GetParametrBool(domElement, AttrH104, defValue));
|
||||||
|
map.insert(GHeights::H110, GetParametrBool(domElement, AttrH110, defValue));
|
||||||
|
map.insert(GHeights::H116, GetParametrBool(domElement, AttrH116, defValue));
|
||||||
|
map.insert(GHeights::H122, GetParametrBool(domElement, AttrH122, defValue));
|
||||||
|
map.insert(GHeights::H128, GetParametrBool(domElement, AttrH128, defValue));
|
||||||
|
map.insert(GHeights::H134, GetParametrBool(domElement, AttrH134, defValue));
|
||||||
|
map.insert(GHeights::H140, GetParametrBool(domElement, AttrH140, defValue));
|
||||||
|
map.insert(GHeights::H146, GetParametrBool(domElement, AttrH146, defValue));
|
||||||
|
map.insert(GHeights::H152, GetParametrBool(domElement, AttrH152, defValue));
|
||||||
|
map.insert(GHeights::H158, GetParametrBool(domElement, AttrH158, defValue));
|
||||||
|
map.insert(GHeights::H164, GetParametrBool(domElement, AttrH164, defValue));
|
||||||
|
map.insert(GHeights::H170, GetParametrBool(domElement, AttrH170, defValue));
|
||||||
|
map.insert(GHeights::H176, GetParametrBool(domElement, AttrH176, defValue));
|
||||||
|
map.insert(GHeights::H182, GetParametrBool(domElement, AttrH182, defValue));
|
||||||
|
map.insert(GHeights::H188, GetParametrBool(domElement, AttrH188, defValue));
|
||||||
|
map.insert(GHeights::H194, GetParametrBool(domElement, AttrH194, defValue));
|
||||||
|
return map;
|
||||||
|
break;
|
||||||
|
case 1: // TagSizes
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
domNode = domNode.nextSibling();
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractPattern::SetGradationHeights(const QMap<GHeights, bool> &options)
|
||||||
|
{
|
||||||
|
CheckTagExists(TagGradation);
|
||||||
|
QDomNodeList tags = elementsByTagName(TagGradation);
|
||||||
|
if (tags.size() == 0)
|
||||||
|
{
|
||||||
|
qDebug()<<"Can't save tag "<<TagGradation<<Q_FUNC_INFO;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList gTags = QStringList() << TagHeights << TagSizes;
|
||||||
|
QDomNode domNode = tags.at(0).firstChild();
|
||||||
|
while (domNode.isNull() == false)
|
||||||
|
{
|
||||||
|
if (domNode.isElement())
|
||||||
|
{
|
||||||
|
QDomElement domElement = domNode.toElement();
|
||||||
|
if (domElement.isNull() == false)
|
||||||
|
{
|
||||||
|
switch (gTags.indexOf(domElement.tagName()))
|
||||||
|
{
|
||||||
|
case 0: // TagHeights
|
||||||
|
SetAttribute(domElement, AttrAll, options.value(GHeights::ALL));
|
||||||
|
SetAttribute(domElement, AttrH92, options.value(GHeights::H92));
|
||||||
|
SetAttribute(domElement, AttrH98, options.value(GHeights::H98));
|
||||||
|
SetAttribute(domElement, AttrH104, options.value(GHeights::H104));
|
||||||
|
SetAttribute(domElement, AttrH110, options.value(GHeights::H110));
|
||||||
|
SetAttribute(domElement, AttrH116, options.value(GHeights::H116));
|
||||||
|
SetAttribute(domElement, AttrH122, options.value(GHeights::H122));
|
||||||
|
SetAttribute(domElement, AttrH128, options.value(GHeights::H128));
|
||||||
|
SetAttribute(domElement, AttrH134, options.value(GHeights::H134));
|
||||||
|
SetAttribute(domElement, AttrH140, options.value(GHeights::H140));
|
||||||
|
SetAttribute(domElement, AttrH146, options.value(GHeights::H146));
|
||||||
|
SetAttribute(domElement, AttrH152, options.value(GHeights::H152));
|
||||||
|
SetAttribute(domElement, AttrH158, options.value(GHeights::H158));
|
||||||
|
SetAttribute(domElement, AttrH164, options.value(GHeights::H164));
|
||||||
|
SetAttribute(domElement, AttrH170, options.value(GHeights::H170));
|
||||||
|
SetAttribute(domElement, AttrH176, options.value(GHeights::H176));
|
||||||
|
SetAttribute(domElement, AttrH182, options.value(GHeights::H182));
|
||||||
|
SetAttribute(domElement, AttrH188, options.value(GHeights::H188));
|
||||||
|
SetAttribute(domElement, AttrH194, options.value(GHeights::H194));
|
||||||
|
|
||||||
|
emit patternChanged(false);
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case 1: // TagSizes
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
domNode = domNode.nextSibling();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QMap<GSizes, bool> VAbstractPattern::GetGradationSizes() const
|
||||||
|
{
|
||||||
|
QMap<GSizes, bool> map;
|
||||||
|
map.insert(GSizes::ALL, true);
|
||||||
|
map.insert(GSizes::S22, true);
|
||||||
|
map.insert(GSizes::S24, true);
|
||||||
|
map.insert(GSizes::S26, true);
|
||||||
|
map.insert(GSizes::S28, true);
|
||||||
|
map.insert(GSizes::S30, true);
|
||||||
|
map.insert(GSizes::S32, true);
|
||||||
|
map.insert(GSizes::S34, true);
|
||||||
|
map.insert(GSizes::S36, true);
|
||||||
|
map.insert(GSizes::S38, true);
|
||||||
|
map.insert(GSizes::S40, true);
|
||||||
|
map.insert(GSizes::S42, true);
|
||||||
|
map.insert(GSizes::S44, true);
|
||||||
|
map.insert(GSizes::S46, true);
|
||||||
|
map.insert(GSizes::S48, true);
|
||||||
|
map.insert(GSizes::S50, true);
|
||||||
|
map.insert(GSizes::S52, true);
|
||||||
|
map.insert(GSizes::S54, true);
|
||||||
|
map.insert(GSizes::S56, true);
|
||||||
|
|
||||||
|
QDomNodeList tags = elementsByTagName(TagGradation);
|
||||||
|
if (tags.size() == 0)
|
||||||
|
{
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList gTags = QStringList() << TagHeights << TagSizes;
|
||||||
|
QDomNode domNode = tags.at(0).firstChild();
|
||||||
|
while (domNode.isNull() == false)
|
||||||
|
{
|
||||||
|
if (domNode.isElement())
|
||||||
|
{
|
||||||
|
const QDomElement domElement = domNode.toElement();
|
||||||
|
if (domElement.isNull() == false)
|
||||||
|
{
|
||||||
|
const QString defValue = QStringLiteral("true");
|
||||||
|
switch (gTags.indexOf(domElement.tagName()))
|
||||||
|
{
|
||||||
|
case 0: // TagHeights
|
||||||
|
break;
|
||||||
|
case 1: // TagSizes
|
||||||
|
if (GetParametrBool(domElement, AttrAll, defValue))
|
||||||
|
{
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
map.insert(GSizes::ALL, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
map.insert(GSizes::S22, GetParametrBool(domElement, AttrS22, defValue));
|
||||||
|
map.insert(GSizes::S24, GetParametrBool(domElement, AttrS24, defValue));
|
||||||
|
map.insert(GSizes::S26, GetParametrBool(domElement, AttrS26, defValue));
|
||||||
|
map.insert(GSizes::S28, GetParametrBool(domElement, AttrS28, defValue));
|
||||||
|
map.insert(GSizes::S30, GetParametrBool(domElement, AttrS30, defValue));
|
||||||
|
map.insert(GSizes::S32, GetParametrBool(domElement, AttrS32, defValue));
|
||||||
|
map.insert(GSizes::S34, GetParametrBool(domElement, AttrS34, defValue));
|
||||||
|
map.insert(GSizes::S36, GetParametrBool(domElement, AttrS36, defValue));
|
||||||
|
map.insert(GSizes::S38, GetParametrBool(domElement, AttrS38, defValue));
|
||||||
|
map.insert(GSizes::S40, GetParametrBool(domElement, AttrS40, defValue));
|
||||||
|
map.insert(GSizes::S42, GetParametrBool(domElement, AttrS42, defValue));
|
||||||
|
map.insert(GSizes::S44, GetParametrBool(domElement, AttrS44, defValue));
|
||||||
|
map.insert(GSizes::S46, GetParametrBool(domElement, AttrS46, defValue));
|
||||||
|
map.insert(GSizes::S48, GetParametrBool(domElement, AttrS48, defValue));
|
||||||
|
map.insert(GSizes::S50, GetParametrBool(domElement, AttrS50, defValue));
|
||||||
|
map.insert(GSizes::S52, GetParametrBool(domElement, AttrS52, defValue));
|
||||||
|
map.insert(GSizes::S54, GetParametrBool(domElement, AttrS54, defValue));
|
||||||
|
map.insert(GSizes::S56, GetParametrBool(domElement, AttrS56, defValue));
|
||||||
|
return map;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
domNode = domNode.nextSibling();
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractPattern::SetGradationSizes(const QMap<GSizes, bool> &options)
|
||||||
|
{
|
||||||
|
CheckTagExists(TagGradation);
|
||||||
|
QDomNodeList tags = elementsByTagName(TagGradation);
|
||||||
|
if (tags.size() == 0)
|
||||||
|
{
|
||||||
|
qDebug()<<"Can't save tag "<<TagGradation<<Q_FUNC_INFO;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList gTags = QStringList() << TagHeights << TagSizes;
|
||||||
|
QDomNode domNode = tags.at(0).firstChild();
|
||||||
|
while (domNode.isNull() == false)
|
||||||
|
{
|
||||||
|
if (domNode.isElement())
|
||||||
|
{
|
||||||
|
QDomElement domElement = domNode.toElement();
|
||||||
|
if (domElement.isNull() == false)
|
||||||
|
{
|
||||||
|
switch (gTags.indexOf(domElement.tagName()))
|
||||||
|
{
|
||||||
|
case 0: // TagHeights
|
||||||
|
break;
|
||||||
|
case 1: // TagSizes
|
||||||
|
SetAttribute(domElement, AttrAll, options.value(GSizes::ALL));
|
||||||
|
SetAttribute(domElement, AttrS22, options.value(GSizes::S22));
|
||||||
|
SetAttribute(domElement, AttrS24, options.value(GSizes::S24));
|
||||||
|
SetAttribute(domElement, AttrS26, options.value(GSizes::S26));
|
||||||
|
SetAttribute(domElement, AttrS28, options.value(GSizes::S28));
|
||||||
|
SetAttribute(domElement, AttrS30, options.value(GSizes::S30));
|
||||||
|
SetAttribute(domElement, AttrS32, options.value(GSizes::S32));
|
||||||
|
SetAttribute(domElement, AttrS34, options.value(GSizes::S34));
|
||||||
|
SetAttribute(domElement, AttrS36, options.value(GSizes::S36));
|
||||||
|
SetAttribute(domElement, AttrS38, options.value(GSizes::S38));
|
||||||
|
SetAttribute(domElement, AttrS40, options.value(GSizes::S40));
|
||||||
|
SetAttribute(domElement, AttrS42, options.value(GSizes::S42));
|
||||||
|
SetAttribute(domElement, AttrS44, options.value(GSizes::S44));
|
||||||
|
SetAttribute(domElement, AttrS46, options.value(GSizes::S46));
|
||||||
|
SetAttribute(domElement, AttrS48, options.value(GSizes::S48));
|
||||||
|
SetAttribute(domElement, AttrS50, options.value(GSizes::S50));
|
||||||
|
SetAttribute(domElement, AttrS52, options.value(GSizes::S52));
|
||||||
|
SetAttribute(domElement, AttrS54, options.value(GSizes::S54));
|
||||||
|
SetAttribute(domElement, AttrS56, options.value(GSizes::S56));
|
||||||
|
|
||||||
|
emit patternChanged(false);
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
domNode = domNode.nextSibling();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QString VAbstractPattern::GetDescription() const
|
||||||
|
{
|
||||||
|
return UniqueTagText(TagDescription);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractPattern::SetDescription(const QString &text)
|
||||||
|
{
|
||||||
|
CheckTagExists(TagDescription);
|
||||||
|
setTagText(TagDescription, text);
|
||||||
|
emit patternChanged(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QString VAbstractPattern::GetNotes() const
|
||||||
|
{
|
||||||
|
return UniqueTagText(TagNotes);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractPattern::SetNotes(const QString &text)
|
||||||
|
{
|
||||||
|
CheckTagExists(TagNotes);
|
||||||
|
setTagText(TagNotes, text);
|
||||||
|
emit patternChanged(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QString VAbstractPattern::GetVersion() const
|
||||||
|
{
|
||||||
|
return UniqueTagText(TagVersion, VPatternConverter::PatternMaxVerStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractPattern::SetVersion()
|
||||||
|
{
|
||||||
|
setTagText(TagVersion, VPatternConverter::PatternMaxVerStr);
|
||||||
|
emit patternChanged(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief haveLiteChange we have unsaved change.
|
||||||
|
*/
|
||||||
|
void VAbstractPattern::haveLiteChange()
|
||||||
|
{
|
||||||
|
emit patternChanged(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* @brief ShowHistoryTool hightlight tool.
|
||||||
|
* @param id tool id.
|
||||||
|
* @param enable enable or diasable hightlight.
|
||||||
|
*/
|
||||||
|
void VAbstractPattern::ShowHistoryTool(quint32 id, bool enable)
|
||||||
|
{
|
||||||
|
emit ShowTool(id, enable);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractPattern::NeedFullParsing()
|
||||||
|
{
|
||||||
|
emit UndoCommand();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractPattern::ClearScene()
|
||||||
|
{
|
||||||
|
emit ClearMainWindow();
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VAbstractPattern::ToolExists(const quint32 &id) const
|
void VAbstractPattern::ToolExists(const quint32 &id) const
|
||||||
{
|
{
|
||||||
|
@ -558,3 +920,72 @@ void VAbstractPattern::SetActivPP(const QString &name)
|
||||||
this->nameActivPP = name;
|
this->nameActivPP = name;
|
||||||
emit ChangedActivPP(name);
|
emit ChangedActivPP(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractPattern::CheckTagExists(const QString &tag)
|
||||||
|
{
|
||||||
|
QDomNodeList list = elementsByTagName(tag);
|
||||||
|
if (list.size() == 0)
|
||||||
|
{
|
||||||
|
QStringList tags = QStringList() << TagVersion << TagAuthor << TagDescription << TagNotes << TagGradation;
|
||||||
|
QDomElement pattern = documentElement();
|
||||||
|
switch (tags.indexOf(tag))
|
||||||
|
{
|
||||||
|
case 0: //TagVersion
|
||||||
|
break;// Mandatory tag
|
||||||
|
case 1: //TagAuthor
|
||||||
|
pattern.insertAfter(createElement(TagAuthor), elementsByTagName(TagVersion).at(0));
|
||||||
|
SetVersion();
|
||||||
|
break;
|
||||||
|
case 2: //TagDescription
|
||||||
|
{
|
||||||
|
for (int i = tags.indexOf(tag)-1; i >= 0; --i)
|
||||||
|
{
|
||||||
|
QDomNodeList list = elementsByTagName(tags.at(i));
|
||||||
|
if (list.isEmpty())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
pattern.insertAfter(createElement(TagDescription), list.at(0));
|
||||||
|
}
|
||||||
|
SetVersion();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3: //TagNotes
|
||||||
|
{
|
||||||
|
for (int i = tags.indexOf(tag)-1; i >= 0; --i)
|
||||||
|
{
|
||||||
|
QDomNodeList list = elementsByTagName(tags.at(i));
|
||||||
|
if (list.isEmpty())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
pattern.insertAfter(createElement(TagNotes), list.at(0));
|
||||||
|
}
|
||||||
|
SetVersion();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 4: //TagGradation
|
||||||
|
{
|
||||||
|
QDomElement gradation = createElement(TagGradation);
|
||||||
|
gradation.appendChild(createElement(TagHeights));
|
||||||
|
gradation.appendChild(createElement(TagSizes));
|
||||||
|
|
||||||
|
for (int i = tags.indexOf(tag)-1; i >= 0; --i)
|
||||||
|
{
|
||||||
|
QDomNodeList list = elementsByTagName(tags.at(i));
|
||||||
|
if (list.isEmpty())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
pattern.insertAfter(gradation, list.at(0));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
SetVersion();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -78,6 +78,23 @@ public:
|
||||||
|
|
||||||
quint32 SiblingNodeId(const quint32 &nodeId) const;
|
quint32 SiblingNodeId(const quint32 &nodeId) const;
|
||||||
|
|
||||||
|
QStringList getPatternPieces() const;
|
||||||
|
|
||||||
|
QMap<GHeights, bool> GetGradationHeights() const;
|
||||||
|
void SetGradationHeights(const QMap<GHeights, bool> &options);
|
||||||
|
|
||||||
|
QMap<GSizes, bool> GetGradationSizes() const;
|
||||||
|
void SetGradationSizes(const QMap<GSizes, bool> &options);
|
||||||
|
|
||||||
|
QString GetDescription() const;
|
||||||
|
void SetDescription(const QString &text);
|
||||||
|
|
||||||
|
QString GetNotes() const;
|
||||||
|
void SetNotes(const QString &text);
|
||||||
|
|
||||||
|
QString GetVersion() const;
|
||||||
|
void SetVersion();
|
||||||
|
|
||||||
static const QString TagPattern;
|
static const QString TagPattern;
|
||||||
static const QString TagCalculation;
|
static const QString TagCalculation;
|
||||||
static const QString TagModeling;
|
static const QString TagModeling;
|
||||||
|
@ -187,6 +204,12 @@ signals:
|
||||||
void CheckLayout();
|
void CheckLayout();
|
||||||
void SetCurrentPP(const QString &patterPiece);
|
void SetCurrentPP(const QString &patterPiece);
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void haveLiteChange();
|
||||||
|
void ShowHistoryTool(quint32 id, bool enable);
|
||||||
|
void NeedFullParsing();
|
||||||
|
void ClearScene();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/** @brief nameActivDraw name current pattern peace. */
|
/** @brief nameActivDraw name current pattern peace. */
|
||||||
QString nameActivPP;
|
QString nameActivPP;
|
||||||
|
@ -200,10 +223,15 @@ protected:
|
||||||
/** @brief history history records. */
|
/** @brief history history records. */
|
||||||
QVector<VToolRecord> history;
|
QVector<VToolRecord> history;
|
||||||
|
|
||||||
|
/** @brief patternPieces list of patern pieces names for combobox*/
|
||||||
|
QStringList patternPieces;
|
||||||
|
|
||||||
void ToolExists(const quint32 &id) const;
|
void ToolExists(const quint32 &id) const;
|
||||||
|
|
||||||
void SetActivPP(const QString& name);
|
void SetActivPP(const QString& name);
|
||||||
|
|
||||||
|
void CheckTagExists(const QString &tag);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VAbstractPattern)
|
Q_DISABLE_COPY(VAbstractPattern)
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user