Seamly2D
Code documentation
vlabeltemplate.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  * *
3  * Copyright (C) 2017 Seamly, LLC *
4  * *
5  * https://github.com/fashionfreedom/seamly2d *
6  * *
7  ***************************************************************************
8  **
9  ** Seamly2D is free software: you can redistribute it and/or modify
10  ** it under the terms of the GNU General Public License as published by
11  ** the Free Software Foundation, either version 3 of the License, or
12  ** (at your option) any later version.
13  **
14  ** Seamly2D is distributed in the hope that it will be useful,
15  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
16  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  ** GNU General Public License for more details.
18  **
19  ** You should have received a copy of the GNU General Public License
20  ** along with Seamly2D. If not, see <http://www.gnu.org/licenses/>.
21  **
22  **************************************************************************
23 
24  ************************************************************************
25  **
26  ** @file vlabeltemplate.cpp
27  ** @author Roman Telezhynskyi <dismine(at)gmail.com>
28  ** @date 10 8, 2015
29  **
30  ** @brief
31  ** @copyright
32  ** This source code is part of the Valentine project, a pattern making
33  ** program, whose allow create and modeling patterns of clothing.
34  ** Copyright (C) 2015 Seamly2D project
35  ** <https://github.com/fashionfreedom/seamly2d> All Rights Reserved.
36  **
37  ** Seamly2D is free software: you can redistribute it and/or modify
38  ** it under the terms of the GNU General Public License as published by
39  ** the Free Software Foundation, either version 3 of the License, or
40  ** (at your option) any later version.
41  **
42  ** Seamly2D is distributed in the hope that it will be useful,
43  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
44  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
45  ** GNU General Public License for more details.
46  **
47  ** You should have received a copy of the GNU General Public License
48  ** along with Seamly2D. If not, see <http://www.gnu.org/licenses/>.
49  **
50  *************************************************************************/
51 
52 #include "vlabeltemplate.h"
53 #include "../ifc/xml/vlabeltemplateconverter.h"
54 
55 const QString VLabelTemplate::TagTemplate = QStringLiteral("template");
56 const QString VLabelTemplate::TagLines = QStringLiteral("lines");
57 
58 //---------------------------------------------------------------------------------------------------------------------
60  : VDomDocument()
61 {}
62 
63 //---------------------------------------------------------------------------------------------------------------------
65 {
66  clear();
67  QDomElement templateElement = this->createElement(TagTemplate);
68 
69  QDomElement version = createElement(TagVersion);
70  QDomText newNodeText = createTextNode(VLabelTemplateConverter::LabelTemplateMaxVerStr);
71  version.appendChild(newNodeText);
72  templateElement.appendChild(version);
73 
74  templateElement.appendChild(createElement(TagLines));
75 
76  this->appendChild(templateElement);
77  insertBefore(createProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\""), this->firstChild());
78 }
79 
80 //---------------------------------------------------------------------------------------------------------------------
82 {
83  const QDomNodeList listLines = elementsByTagName(TagLines);
84  if (listLines.size() == 0)
85  {
86  return;
87  }
88 
89  QDomElement tag = listLines.at(0).toElement();
91 }
92 
93 //---------------------------------------------------------------------------------------------------------------------
95 {
96  const QDomNodeList listLines = elementsByTagName(TagLines);
97  if (listLines.size() == 0)
98  {
100  }
101 
102  return VDomDocument::GetLabelTemplate(listLines.at(0).toElement());
103 }
The VDomDocument class represents a Seamly2D document (.val file).
Definition: vdomdocument.h:105
void SetLabelTemplate(QDomElement &element, const QVector< VLabelTemplateLine > &lines)
static const QString TagVersion
Definition: vdomdocument.h:115
QVector< VLabelTemplateLine > GetLabelTemplate(const QDomElement &element) const
static const QString LabelTemplateMaxVerStr
static const QString TagLines
void AddLines(const QVector< VLabelTemplateLine > &lines)
static const QString TagTemplate
void CreateEmptyTemplate()
QVector< VLabelTemplateLine > ReadLines() const