From 313d4aad6b60889ae1c5f006072623c9b5355445 Mon Sep 17 00:00:00 2001 From: dismine Date: Tue, 25 Feb 2014 20:03:17 +0200 Subject: [PATCH] Refactoring if-else. Static members instead strings. --HG-- branch : feature --- src/tools/vabstracttool.cpp | 5 +- src/tools/vtooldetail.cpp | 15 ++- src/tools/vtooldetail.h | 4 + src/xml/vpattern.cpp | 190 +++++++++++++++++++++--------------- src/xml/vpattern.h | 13 +++ 5 files changed, 142 insertions(+), 85 deletions(-) diff --git a/src/tools/vabstracttool.cpp b/src/tools/vabstracttool.cpp index 7a1ede620..3832ba14c 100644 --- a/src/tools/vabstracttool.cpp +++ b/src/tools/vabstracttool.cpp @@ -62,8 +62,9 @@ const QString VAbstractTool::AttrPathPoint = QStringLiteral("pathPoint"); const QString VAbstractTool::AttrPSpline = QStringLiteral("pSpline"); const QString VAbstractTool::AttrAxisP1 = QStringLiteral("axisP1"); const QString VAbstractTool::AttrAxisP2 = QStringLiteral("axisP2"); -const QString VAbstractTool::TypeLineNone = QStringLiteral("none"); -const QString VAbstractTool::TypeLineLine = QStringLiteral("hair"); + +const QString VAbstractTool::TypeLineNone = QStringLiteral("none"); +const QString VAbstractTool::TypeLineLine = QStringLiteral("hair"); const QString VAbstractTool::TypeLineDashLine = QStringLiteral("dashLine"); const QString VAbstractTool::TypeLineDotLine = QStringLiteral("dotLine"); const QString VAbstractTool::TypeLineDashDotLine = QStringLiteral("dashDotLine"); diff --git a/src/tools/vtooldetail.cpp b/src/tools/vtooldetail.cpp index a07ca47f4..3beb3072f 100644 --- a/src/tools/vtooldetail.cpp +++ b/src/tools/vtooldetail.cpp @@ -32,14 +32,21 @@ const QString VToolDetail::TagName = QStringLiteral("detail"); const QString VToolDetail::TagNode = QStringLiteral("node"); + const QString VToolDetail::AttrSupplement = QStringLiteral("supplement"); const QString VToolDetail::AttrClosed = QStringLiteral("closed"); const QString VToolDetail::AttrWidth = QStringLiteral("width"); const QString VToolDetail::AttrIdObject = QStringLiteral("idObject"); const QString VToolDetail::AttrNodeType = QStringLiteral("nodeType"); + const QString VToolDetail::NodeTypeContour = QStringLiteral("Contour"); const QString VToolDetail::NodeTypeModeling = QStringLiteral("Modeling"); +const QString VToolDetail::NodeArc = QStringLiteral("NodeArc"); +const QString VToolDetail::NodePoint = QStringLiteral("NodePoint"); +const QString VToolDetail::NodeSpline = QStringLiteral("NodeSpline"); +const QString VToolDetail::NodeSplinePath = QStringLiteral("NodeSplinePath"); + VToolDetail::VToolDetail(VPattern *doc, VContainer *data, const quint32 &id, const Tool::Sources &typeCreation, VMainGraphicsScene *scene, QGraphicsItem *parent) :VAbstractTool(doc, data, id), QGraphicsPathItem(parent), dialog(0), sceneDetails(scene) @@ -376,16 +383,16 @@ void VToolDetail::AddNode(QDomElement &domElement, const VNodeDetail &node) switch (node.getTypeTool()) { case (Tool::NodeArc): - doc->SetAttribute(nod, AttrType, QStringLiteral("NodeArc")); + doc->SetAttribute(nod, AttrType, NodeArc); break; case (Tool::NodePoint): - doc->SetAttribute(nod, AttrType, QStringLiteral("NodePoint")); + doc->SetAttribute(nod, AttrType, NodePoint); break; case (Tool::NodeSpline): - doc->SetAttribute(nod, AttrType, QStringLiteral("NodeSpline")); + doc->SetAttribute(nod, AttrType, NodeSpline); break; case (Tool::NodeSplinePath): - doc->SetAttribute(nod, AttrType, QStringLiteral("NodeSplinePath")); + doc->SetAttribute(nod, AttrType, NodeSplinePath); break; default: qWarning()<<"May be wrong tool type!!! Ignoring."< +const QString VPattern::TagPattern = QStringLiteral("pattern"); const QString VPattern::TagCalculation = QStringLiteral("calculation"); const QString VPattern::TagModeling = QStringLiteral("modeling"); const QString VPattern::TagDetails = QStringLiteral("details"); @@ -45,8 +46,22 @@ const QString VPattern::TagAuthor = QStringLiteral("author"); const QString VPattern::TagDescription = QStringLiteral("description"); const QString VPattern::TagNotes = QStringLiteral("notes"); const QString VPattern::TagIncrements = QStringLiteral("increments"); +const QString VPattern::TagIncrement = QStringLiteral("increment"); const QString VPattern::TagDraw = QStringLiteral("draw"); +const QString VPattern::TagPoint = QStringLiteral("point"); +const QString VPattern::TagLine = QStringLiteral("line"); +const QString VPattern::TagSpline = QStringLiteral("spline"); +const QString VPattern::TagArc = QStringLiteral("arc"); +const QString VPattern::TagTools = QStringLiteral("tools"); + const QString VPattern::AttrName = QStringLiteral("name"); +const QString VPattern::AttrType = QStringLiteral("type"); + +const QString VPattern::IncrementName = QStringLiteral("name"); +const QString VPattern::IncrementBase = QStringLiteral("base"); +const QString VPattern::IncrementKsize = QStringLiteral("ksize"); +const QString VPattern::IncrementKgrowth = QStringLiteral("kgrowth"); +const QString VPattern::IncrementDescription = QStringLiteral("description"); VPattern::VPattern(VContainer *data, QComboBox *comboBoxDraws, Draw::Draws *mode, QObject *parent) : QObject(parent), VDomDocument(data), nameActivDraw(QString()), tools(QHash()), @@ -56,7 +71,7 @@ VPattern::VPattern(VContainer *data, QComboBox *comboBoxDraws, Draw::Draws *mode void VPattern::CreateEmptyFile() { - QDomElement patternElement = this->createElement("pattern"); + QDomElement patternElement = this->createElement(TagPattern); patternElement.appendChild(createComment("Valentina pattern format.")); patternElement.appendChild(createElement(TagAuthor)); @@ -172,29 +187,35 @@ void VPattern::Parse(const Document::Documents &parse, VMainGraphicsScene *scene const QDomElement domElement = domNode.toElement(); if (domElement.isNull() == false) { - if (domElement.tagName()==TagDraw) + QStringList tags; + tags << TagDraw << TagIncrements; + switch(tags.indexOf(domElement.tagName())) { - if (parse == Document::FullParse) - { - if (nameActivDraw.isEmpty()) + case 0: // TagDraw + if (parse == Document::FullParse) { - SetActivDraw(GetParametrString(domElement, AttrName)); + if (nameActivDraw.isEmpty()) + { + SetActivDraw(GetParametrString(domElement, AttrName)); + } + else + { + ChangeActivDraw(GetParametrString(domElement, AttrName)); + } + comboBoxDraws->addItem(GetParametrString(domElement, AttrName)); } else { - ChangeActivDraw(GetParametrString(domElement, AttrName)); + ChangeActivDraw(GetParametrString(domElement, AttrName), Document::LiteParse); } - comboBoxDraws->addItem(GetParametrString(domElement, AttrName)); - } - else - { - ChangeActivDraw(GetParametrString(domElement, AttrName), Document::LiteParse); - } - ParseDrawElement(sceneDraw, sceneDetail, domElement, parse); - } - if (domElement.tagName()=="increments") - { - ParseIncrementsElement(domElement); + ParseDrawElement(sceneDraw, sceneDetail, domElement, parse); + break; + case 1: // TagIncrements + ParseIncrementsElement(domElement); + break; + default: + qWarning()<<"Wrong tag name"<ClearCalculationGObjects(); - ParseDrawMode(sceneDraw, sceneDetail, domElement, parse, Draw::Calculation); - } - if (domElement.tagName() == "modeling") - { - ParseDrawMode(sceneDraw, sceneDetail, domElement, parse, Draw::Modeling); - } - if (domElement.tagName() == "details") - { - ParseDetails(sceneDetail, domElement, parse); + case 0: // TagCalculation + data->ClearCalculationGObjects(); + ParseDrawMode(sceneDraw, sceneDetail, domElement, parse, Draw::Calculation); + break; + case 1: // TagModeling + ParseDrawMode(sceneDraw, sceneDetail, domElement, parse, Draw::Modeling); + break; + case 2: // TagDetails + ParseDetails(sceneDetail, domElement, parse); + break; + default: + qWarning()<<"Wrong tag name"<UpdateId(id); data->AddIncrementTableRow(name, VIncrementTableRow(id, base, ksize, kgrowth, desc)); } @@ -1209,7 +1241,7 @@ void VPattern::ParseIncrementsElement(const QDomNode &node) quint32 VPattern::GetParametrId(const QDomElement &domElement) const { Q_ASSERT_X(domElement.isNull() == false, Q_FUNC_INFO, "domElement is null"); - const quint32 id = GetParametrUInt(domElement, "id", "0"); + const quint32 id = GetParametrUInt(domElement, VAbstractTool::AttrId, "0"); if (id <= 0) { throw VExceptionWrongParameterId(tr("Got wrong parameter id. Need only id > 0."), domElement); @@ -1219,7 +1251,7 @@ quint32 VPattern::GetParametrId(const QDomElement &domElement) const void VPattern::CollectId(const QDomElement &node, QVector &vector) const { - if (node.hasAttribute("id")) + if (node.hasAttribute(VAbstractTool::AttrId)) { const quint32 id = GetParametrId(node); if (vector.contains(id)) diff --git a/src/xml/vpattern.h b/src/xml/vpattern.h index 2c52058b1..afdb02e3e 100644 --- a/src/xml/vpattern.h +++ b/src/xml/vpattern.h @@ -164,6 +164,7 @@ public: * @return true if found. */ bool GetActivNodeElement(const QString& name, QDomElement& element); + static const QString TagPattern; static const QString TagCalculation; static const QString TagModeling; static const QString TagDetails; @@ -171,8 +172,20 @@ public: static const QString TagDescription; static const QString TagNotes; static const QString TagIncrements; + static const QString TagIncrement; static const QString TagDraw; + static const QString TagPoint; + static const QString TagLine; + static const QString TagSpline; + static const QString TagArc; + static const QString TagTools; static const QString AttrName; + static const QString AttrType; + static const QString IncrementName; + static const QString IncrementBase; + static const QString IncrementKsize; + static const QString IncrementKgrowth; + static const QString IncrementDescription; signals: /** * @brief ChangedActivDraw change active pattern peace.